Forum Discussion
spark_86682
Aug 28, 2010Historic F5 Account
In the HTTP_RESPONSE I want to close the connection to the server but leave the F5->Client socket/HTTP alone as if "HTTP_RESPONSE" event was never fired. I want to do this based on some header value from the server.
It appears that drop and discard does not solve the problem. Both of these commands close the clients socket immediately.
Here is an example use case:
http://yepher.com/sequencePNG.jsp?data=[settings]%0AshowRungNumber%3Dyes%0A%0A[title]%0ALeave%20Open%20Use%20Case%0A%0A[actors]%0AClientA%0A|%0AF5%0AWebServer%0A%0A[sequences]%0AHTTP%20Request%2C%20ClientA%2C%20F5%0AHTTP%20Request%2C%20F5%2C%20WebServer%0AHTTP%20Response%20%28x-leave-open%3A%20true%29%2C%20WebServer%2C%20F5%0ATCP%20Close%20Connection%2C%20F5%2C%20WebServer%0ANo%20HTTP%20Response%20Back%20to%20ClientA%2C%20F5%2C%20F5%0A%0A%0A&name=image.png
Once I figure out how to do this I wan to be able to push data over the F5-Client TCP connection from another server at some point in the future.
This isn't going to be a trivial iRule. I don't know exactly what it will look like, but HTTP::retry is likely to be your best path to success here. You can certainly suppress the initial server response to the client while collecting it in a variable, and then call HTTP::retry and prepend the original server's response to the second server's response (rinse and repeat as necessary). I'd start there. Good luck!