Method close() should really close the underlying channel, not only send the SSL close message.

This commit is contained in:
Simone Bordet 2011-09-29 23:01:43 +02:00
parent 79e431f330
commit a134664b4c
1 changed files with 35 additions and 29 deletions

View File

@ -219,7 +219,6 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
progress=false;
// flush output data
{
int len=_outNIOBuffer==null?0:_outNIOBuffer.length();
// we must flush it, as the other end might be
@ -229,7 +228,6 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
// If we have written some bytes, then progress has been made.
progress|=(_outNIOBuffer==null?0:_outNIOBuffer.length())<len;
}
// handle the current hand share status
if (_debug) LOG.debug("status {} {}",_engine,_engine.getHandshakeStatus());
@ -342,11 +340,19 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
{
if (_closing)
return;
LOG.debug("{} close",_session);
_closing=true;
LOG.debug("{} close",_session);
try
{
_engine.closeOutbound();
process(null,null);
}
finally
{
super.close();
}
}
/* ------------------------------------------------------------ */
/** Fill the buffer with unencrypted bytes.