Forum Discussion
jhanrahan_43314
Nimbostratus
Feb 10, 2009Use IRULE to change Response Chunking
Can I use and Irule to change the Response Chunking depending on the source IP address. If so can you please send me an example
4 Replies
- JRahm
Admin
Support for changing profile parameters in iRules is not there yet. - Deb_Allen_18Historic F5 AccountYou could try using the trick we use for HTTP collection mechanics where you force the connection to HTTP/1.0 (RFC2616 prohibits servers from responding to 1.0 requests w/chunked encoding):
when HTTP_REQUEST { Don't allow data to be chunked if { [HTTP::version] eq "1.1" } { if { [HTTP::header is_keepalive] } { HTTP::header replace "Connection" "Keep-Alive" } HTTP::version "1.0" } }
Just add a Data Group list of type Address that includes the IP addresses & networks for which chunking is not desired, and modify the above code snip to add a source IP test against the address class:when HTTP_REQUEST { if {[matchclass [IP::client_addr] equals $::NoChunkIPs]}{ Don't allow data to be chunked if { [HTTP::version] eq "1.1" } { if { [HTTP::header is_keepalive] } { HTTP::header replace "Connection" "Keep-Alive" } HTTP::version "1.0" } } }
hth
/d - Deb_Allen_18Historic F5 Accounthate to do the matchclass for each request is all...
this s/b more efficient & does the same thing:when CLIENT_ACCEPTED { set chunk 1 if {[matchclass [IP::client_addr] equals $::NoChunkIPs]}{ set chunk 0 } } when HTTP_REQUEST { if { $chunk == 0 }{ Don't allow data to be chunked if { [HTTP::version] eq "1.1" } { if { [HTTP::header is_keepalive] } { HTTP::header replace "Connection" "Keep-Alive" } HTTP::version "1.0" } } }
/d- Jason_AdamsRet. Employee
^ Expanding the above iRule as it was clobbered during one of our platform migrations
when CLIENT_ACCEPTED priority 500 {
set chunk 1
if {[class match -- [IP::client_addr] equals "/Common/NoChunkIPs"]} {
set chunk 0
}
}
when HTTP_REQUEST priority 500 {
if {$chunk == 0} {
# Don't allow data to be chunked
if {[HTTP::version] eq "1.1"} {
if {[HTTP::header is_keepalive]} {
HTTP::header replace "Connection" "Keep-Alive"
}
HTTP::version "1.0"
}
}
}
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects
