Hi
Not sure I have the answer ..but a here are a few thoughts
1) Looks like you are using the free trial version off the F5 website. This is a old code base, and it might be worth getting a 45 day eval key from you local F5 SE to test a v10.2.x, or v11.x version.
2) looking at the example of the SMTP proxy (https://devcentral.f5.com/wiki/iRules.SMTPProxy.ashx) ... maybe you need to re-evaluate your collect/release statements ?
The below , with a bit more logging may help ?
===============
when CLIENT_ACCEPTED {
log local0. "Client Connected !"
set client_closed 0
Extra logging to see where the collection is done
log local0. "TCP collect 0"
TCP::collect
}
periodically checks if the client connection closed, if so, also closes associated server connection.
when CLIENT_CLOSED {
set client_closed 1
}
Triggered when a connection has been established with the target node
when SERVER_CONNECTED {
after 1000 -periodic if {$client_closed} {TCP::close}
}
when CLIENT_DATA {
scan [TCP::payload] %c%c head rlen
log local0. "Client data"
log local0. "Header = $head -- Length = $rlen"
if {($head == 0)} {
if {[TCP::payload length] < [expr {2 + $rlen}]} {
allready collecting- commenting out the TCP collect statement
TCP::collect
return
}
}
log local0. "TCP release 1"
TCP::release
TCP::release [expr {$rlen + 2}]
TCP notify is not doing anything usefull in this irule
TCP::notify request
Extra logging to see where the collection is done
log local0. "TCP collect 1"
TCP::collect
}