Forum Discussion
albert_forster_
Nimbostratus
Apr 05, 2005relate_client & relate_server
We use TCP::collect and TCP::payload to gather the initial OPTIONS command. Then use TCP::respond to send an options response back to the client. With TCP::collect and TCP::payload we get the DESCRIBE...
unRuleY_95363
Apr 05, 2005Historic F5 Account
BTW, Dr.Teeth's comments about the TCP::collect/TCP::release might seem confusing, so here's some further notes about the TCP::collect & TCP::release commands:
There are several implicit rules that are probably worth mentioning regarding the CLIENT_DATA/SERVER_DATA events.
1) If TCP::collect is specified with no arguments, it is considered an indefinite hold. New incoming data will continuously be aggregated in the payload and trigger CLIENT_DATA/SERVER_DATA events until an explicit TCP::release is given. If TCP::release is used with an argument, the indefinite hold will continue and only the specified amount of data is released. If TCP::release is used without arguments, the entire payload is released and the indefinite hold is cancelled.
2) There is an implied TCP::release at the end of the CLIENT_DATA/SERVER_DATA event if TCP::collect was specified with an explicit amount. This implied release can be overriden with an explicit TCP::release command or a new TCP::collect command in the event.
So, Dr.Teeth's remark about the additional TCP::collect is due to the fact that the original TCP::collect in CLIENT_ACCEPTED was an indefinite hold. However, it also does not adversely effect anything having the extra TCP::collect in there.
Hope this helps.
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