Kevin_Jones_505
Oct 26, 2004Historic F5 Account
TCP::payload - How do I get data from the TCP data field?
I'm trying to write an iRule that reads the TCP data rather than HTTP data. I'm building it off an HTTP data iRule that works. The first one works as expected.
when HTTP_REQUEST {
if {[findstr [HTTP::uri] "user=" 5] == "me" } {
pool pool1
}
else {
pool pool2
}
}
The second doesn't seem to get any data; the TCP::payload seems to be a null.
when CLIENT_ACCEPTED {
if {[TCP::local_port] == 80} {
TCP::collect 75
log local0. "Test1[findstr [TCP::payload] "user=" 5]End"
}
}
when CLIENT_DATA {
if {[findstr [TCP::payload] "user=" 5] == "me"} {
pool pool1
}
else {
pool pool2
}
}
When I run this, the ltm log shows .. Test1End, infering the TCP::payload is null. I've tried many other combinations, but no luck so far. Any advice?
thanks ...