Hi Aaron,
Below is the complete irule i have with your suggestions:
when HTTP_REQUEST {
if {[HTTP::header value Content-Type] contains "application/vnd.syncml+xml"}{
Prevent the server from sending a compressed response
remove the compression offerings from the client
HTTP::header remove "Accept-Encoding"
Don't allow response data to be chunked
if { [HTTP::version] eq "1.1" } {
Force downgrade to HTTP 1.0, but still allow keep-alive connections.
Since HTTP 1.1 is keep-alive by default, and 1.0 isn't,
we need make sure the headers reflect the keep-alive status.
Check if this is a keep alive connection
if { [HTTP::header is_keepalive] } {
Replace the connection header value with "Keep-Alive"
HTTP::header replace "Connection" "Keep-Alive"
}
Set server side request version to 1.0
This forces the server to respond without chunking
HTTP::version "1.0"
}
Trigger collection for up to 1MB of data
if {[HTTP::header exists "Content-Length"] && [HTTP::header "Content-Length"] <= 1048576}{
set content_length [HTTP::header "Content-Length"]
}
Check if $content_length has been set and is not set to 0
if { [info exists content_length] && $content_length > 0} {
HTTP::collect $content_length
log local0. " content_length: $content_length"
}
}
}
when HTTP_REQUEST_DATA {
do stuff with the payload set payload [HTTP::payload]
log local0. " HTTP::payload: [HTTP::payload]"
}
But still i don't get the complete payload logged. please advice.
Thanks,
Ravi