fixed bugs in disconnect sequence
This commit is contained in:
@@ -175,6 +175,10 @@ cac::~cac ()
|
||||
tsDLIterBD <tcpiiu> piiu ( this->iiuList.first () );
|
||||
while ( piiu.valid () ) {
|
||||
tsDLIterBD <tcpiiu> pnext = piiu.itemAfter ();
|
||||
{
|
||||
osiAutoMutex autoMutex ( this->defaultMutex );
|
||||
piiu->disconnectAllChan ( *this->pudpiiu );
|
||||
}
|
||||
piiu->disconnect ();
|
||||
piiu->suicide ();
|
||||
piiu = pnext;
|
||||
@@ -250,6 +254,12 @@ void cac::processRecvBacklog ()
|
||||
}
|
||||
}
|
||||
|
||||
if ( piiu->channelCount () ) {
|
||||
char hostNameTmp[64];
|
||||
piiu->hostName ( hostNameTmp, sizeof ( hostNameTmp ) );
|
||||
genLocalExcep ( *this, ECA_DISCONN, hostNameTmp );
|
||||
}
|
||||
|
||||
{
|
||||
osiAutoMutex autoMutex ( this->defaultMutex );
|
||||
piiu->disconnectAllChan ( *this->pudpiiu );
|
||||
|
||||
Reference in New Issue
Block a user