[omniORB] omniORB4 shutdown hangs with wrong ssl cert
Norrie Quinn
norrie.quinn@tumbleweed.com
Thu Aug 8 05:19:00 2002
When using the SSL transport with a mismatched cert and ca cert (i.e. a cert
that was signed by another ca), we have a problem that prevents a clean
omniORB4 shutdown.
With a matched cert and ca cert:
- giopRendezvouser::terminate() calls Poke() on itself during shutdown
- sslEndpoint::AcceptAndMonitor() returns a valid new giopConnection
- giopRendezvouser detects that the server is no longer ACTIVE and
terminates.
With a mis-matched cert and ca cert:
- giopRendezvouser::terminate() calls Poke() on itself during shutdown
- the Poke fails but ignores the SSL error
- sslEndpoint::AcceptAndMonitor() detects an SSL error but keeps looping
- the giopRendezvouser doesn't terminate and so shutdown is hung
I was thinking of a fix that did not call Poke during shutdown. The
terminate() call could set a flag in the giopRendezvouser which could be
checked in the select loop.
Does anyone have a simpler fix or see a problem with that approach?
Thanks
Norrie