Read: Change AFD_EVENT_CLOSE to AFD_EVENT_DISCONNECT when the other end hangs up. The socket isn't closed yet. Listen: Turn off fired flag for AFD_EVENT_ACCEPT. Modified: trunk/reactos/drivers/net/afd/afd/listen.c Modified: trunk/reactos/drivers/net/afd/afd/read.c _____
Modified: trunk/reactos/drivers/net/afd/afd/listen.c --- trunk/reactos/drivers/net/afd/afd/listen.c 2005-02-05 04:56:04 UTC (rev 13415) +++ trunk/reactos/drivers/net/afd/afd/listen.c 2005-02-05 05:40:35 UTC (rev 13416) @@ -242,6 +242,8 @@
if( !SocketAcquireStateLock( FCB ) ) return LostSocket( Irp, TRUE );
+ FCB->EventsFired &= ~AFD_EVENT_ACCEPT; + if( FCB->NeedsNewListen ) { AFD_DbgPrint(MID_TRACE,("ADDRESSFILE: %x\n", FCB->AddressFile.Handle));
_____
Modified: trunk/reactos/drivers/net/afd/afd/read.c --- trunk/reactos/drivers/net/afd/afd/read.c 2005-02-05 04:56:04 UTC (rev 13415) +++ trunk/reactos/drivers/net/afd/afd/read.c 2005-02-05 05:40:35 UTC (rev 13416) @@ -131,7 +131,7 @@
}
/* Handle closing signal */ - FCB->PollState |= AFD_EVENT_CLOSE; + FCB->PollState |= AFD_EVENT_DISCONNECT;
PollReeval( FCB->DeviceExt, FCB->FileObject ); }