/* clean up the TCP task */ static short tcp_closep(na_win *win) { short i, j; tcpinfo *tcp; tcpwb *wb; TCPiopb pb; tstate->waitstart = TickCount(); tstate->waitpercent = 0; tcp_wait(tstate, NULL); memset((void *) &pb, 0, sizeof (pb)); for (i = 0; i < MAX_TCPCON; ++i) { if ((tcp = tstate->tcpbufs[i]) != NULL) { /* wait for MacTCP to finish what it's doing, but permit user cancel */ if (!tcp->server || tcp->state != TCP_CONNECT) tcp_wait(tstate, tcp); if (!tcp->gethost) { pb.ioCRefNum = tstate->tcp_driver; pb.tcpStream = tcp->stream; pb.csCode = TCPRelease; PBControl((ParmBlkPtr) &pb, false); } freewb(tcp->wb); freewb(tcp->wb + 1); DisposPtr((Ptr) tcp); tstate->tcpbufs[i] = NULL; } } tcpstate = NULL; if (tstate->tcp_driver) CloseResolver(); return (NA_CLOSED); }
void fatal (char *string) { mm_fatal (string); /* pass up the string */ /* nuke the resolver */ if (resolveropen) CloseResolver (); abort (); /* die horribly */ }
OSErr mactcp_shutdown(mactcp_inst *i) { i->initialized = 0; CloseResolver(); return noErr; }
/* Must call this before quitting app */ void ResolverCleanup(void) { if (slNetChecked && slNetSvcOpen) { if (slNetPresent==1) OTCloseProvider(sSvcRef.ref); #if !TARGET_API_MAC_CARBON else if (slNetPresent==2) CloseResolver(); #endif } } /* end ResolverCleanup() */