fixed bugs in disconnect sequence

This commit is contained in:
Jeff Hill
2000-11-30 17:03:25 +00:00
parent 0c8f90dc59
commit f861933932

View File

@@ -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 );