Hi,
I'm running stunnel 4.04 on ia64-redhat-linux-gnu PTHREAD+LIBWRAP with
OpenSSL 0.9.7a Feb 19 2003.
I have basically taken a generic TCP interface and implemented a
STUNNEL client/server setup to allow the connection to transfer data using
SSL. I have an issue with checking the status of the connection when a
connection attempt is made. We are using ObjectSpace libraries for all of
our tcp related connections so I don't have the low level calls that are
actually being made, but here is a brief description of what is
happenning....
We create an os_tcp_socket object and call the connect_to() method.
This establishes a connection to the stunnel client on my local
machine....which in turn makes the connection the the stunnel server on
the remote machine. The problem I'm am having is when I can't get to the
remote machine. After the connect_to() call, we check the status of the
socket and unless I sleep for 5-10 seconds, it always seems to think that
the connection is ok...which kind-of makes sense because it is able to
connect to the stunnel client port since it is local...but in fact, if
there isn't access to the remote machine, eventually stunnel will close
that initial connection to that socket (that where the 5-10 second delay
seems to help). The status I really want is weather or not the entire
connection was successful through stunnel to the remote machine. Is there
a better way to do this other than putting a sleep() in. Right now I
have a 10 second sleep in between the connect_to() call and the status
check on the local/client stunnel TCP port. That seems to be enough time
for stunnel to attept to complete the connection and kill the connection
to it's local/client port so that when I check the status of it, it comes
back bad.
If this is the best way to do it...what is the amount of time needed
for stunnel to attempt to complete it's connection to the remote machine?
Thanks!
Jeff