Forum Discussion
Alan_Sha
Nimbostratus
Sep 02, 2005How can I trigger a CLIENT_DATA event manually?
I have an iRule that breaks out the client transactions coming from TCP socket and forwards them to different servers based on the content of each request.
The TCP client is working in an a...
bl0ndie_127134
Sep 02, 2005Historic F5 Account
The purpose of 'TCP::notify response' is to raise the USER_RESPONSE on the client side so that you can detach the serverside connection after all the data has been delivered to the client. You only need to call it once when you have received all the response data.
when SERVER_DATA {
log local0.debug "Received SERVER response ... [TCP::payload]"
if { [TCP::payload] ends_with $EOT } {
TCP::notify response
}
TCP::release
TCP::collect
}
when USER_RESPONSE {
LB::detach
log local0.debug "Detaches server connection ... "
if {[TCP::payload length] > 0} {
%TODO%
Process additional client requests here ...
}
}
Is your response length delimited? If so, I would suggest that you change your response logic to use length counter rather than look for the magic EOT string. The longer your magic sting the greater the chances of it being segmented into multiple packets.
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