Closing a socket - Mac/2.1
Bob Arning
arning at charm.net
Fri Jul 24 22:33:24 UTC 1998
On Fri, 24 Jul 1998 13:06:06 -0700 Maloney <johnm at wdi.disney.com> =
wrote:=3D20
>From your discription, it sounds as though the server that Squeak is
>talking to is not closing the connection properly. I don't know of any
>bug in the Mac socket implementation that would cause this to happen.
>(There was a recent bug related to socket closing in the Win32
>implementation, but it had different symptoms from those you describe.)
Part of what I am wondering about is the following code from =
sqMacNetwork.c:
void TCPSockCloseConnection(TCPSockPtr s) {
/* Note: This operation uses a dedicated parameter block so that it
can be invoked even in the previous send is not yet complete.
It will eventually use a completion routine to delete the
socket automatically. For now, this is the client's responsibility.
*/
if ((s =3D3D=3D3D nil) || (s->tcpStream =3D3D=3D3D nil)) return; /* =
socket destroyed */
InitTCPCmd(TCPClose, s->tcpStream, &s->closePB);
// s->closePB.ioCompletion =3D3D tcpCloseDoneProc;
s->connectStatus =3D3D ThisEndClosed; // xxx remove when making this =
async
s->lastError =3D3D PBControlSync((ParmBlkPtr) &s->closePB);
}
are those //'s some sort of comment? Does this accurately reflect the =
2.1 vm?
>
>What is the server? Is it implemented in Squeak?
Whatever my ISP uses as a POP server. This is what appears when I =
connect:
+OK QPOP (version 2.5) at fellspt.charm.net starting. =3D20
>
>It could be merely that you need a longer timeout in the call
>to waitForDisconnectionUntil:.
>
I just raised the timeout to 60 seconds and it took 60 seconds to close =
the connection (abort it actually).
Cheers,
Bob
More information about the Squeak-dev
mailing list
|