Great idea, but it doesn't seem to work. I also tried this:
while (IO::Socket::connected($local_client) and recv ($local_client,$e
+,1,0)) { print $e; last unless
IO::Socket::connected($local_client) };
And it didn't seem to have any effect at all. The TCP sessions themselves are getting stuck in a wibbly-wobbly world. Even after the remote side gets tired of waiting and tries to terminate the connection, I get this:
fwdport 19309 user 5u IPv4 296408 TCP *:2323 (LISTEN)
fwdport 19314 user 6u IPv4 296409 TCP 10.1.10.20:2323->10.1.2.5:6
+0181 (CLOSE_WAIT)
fwdport 19314 user 7u IPv4 296412 TCP 10.1.10.20:1044->10.1.1.2:t
+elnet (CLOSE_WAIT)
fwdport 19315 user 6u IPv4 296409 TCP 10.1.10.20:2323->10.1.2.5:6
+0181 (CLOSE_WAIT)
fwdport 19315 user 7u IPv4 296412 TCP 10.1.10.20:1044->10.1.1.2:t
+elnet (CLOSE_WAIT)
Hmmm... Perhaps the while isn't the problem. Maybe there's something weird in the IO::Socket::INET routines?
"Non sequitur. Your facts are un-coordinated." - Nomad