/* PROTO */ IMCOMM_RET imcomm_im_signon(void *handle, const char *sn, const char *pw) { IMCOMM_RET ret; pkt_t *packet; #ifdef MACINTOSH_CLASSIC OSErr err; struct hostInfo hostinfo; volatile int resolverDone = FALSE; TCPiopb pb; UDPiopb upb; size_t buflen; #else struct sockaddr_in sin; struct hostent *he; #endif #ifndef MD5_LOGIN const char client_ident[] = CLIENT_IDENT; const unsigned char roaststring[] = { 0xF3, 0x26, 0x81, 0xC4, 0x39, 0x86, 0xDB, 0x92, 0x71, 0xA3, 0xB9, 0xE6, 0x53, 0x7A, 0x95, 0x7C }; unsigned char *roastpw; int x; #else pkt_t *pk2; #endif #ifdef MACINTOSH_CLASSIC if (!initialized) { err = OpenDriver("\p.IPP", &refnum); if (err != noErr) { printf("Error initializing driver.\n"); return IMCOMM_RET_ERROR; } err = OpenResolver(NULL); if (err != noErr) { printf("Error initializing resolver.\n"); return IMCOMM_RET_ERROR; } mactcp_lookupdone_upp = NewResultProc(&mactcp_lookupdone); mactcp_asr_upp = NewTCPNotifyProc(&mactcp_asr); initialized = 1; }
/* make sure tcp_driver is open */ static short tcp_checkdriver() { short msg = NATCP_nodriver; struct tcpstate *ts = *tcpstate; IOParam *opb = ts->open_pb; if (!opb) return (1); if (opb->ioResult == 1) return (0); if (opb->ioResult == noErr && OpenResolver(nil) == noErr) { ts->tcp_driver = opb->ioRefNum; msg = NATCP_connect; } DisposPtr((Ptr) opb); ts = *tcpstate; ts->open_pb = NULL; (*ts->tcp_initp)(msg); return (1); }
static long OpenNetwork(void) { OSStatus lStatus; OSErr err; long lResponse, lCriteria; err = Gestalt(gestaltOpenTpt, &lResponse); if (err == noErr) { /* Older OpenTransport Headers require that thenext line read: lCriteria = gestaltOpenTptPresent + gestaltOpenTptTCPPresent; */ lCriteria = gestaltOpenTptPresentMask + gestaltOpenTptTCPPresentMask; lResponse = lCriteria & lResponse; if (lResponse == lCriteria) { #ifdef __CARBON__ lStatus=InitOpenTransportInContext(kInitOTForApplicationMask,NULL); #else lStatus = InitOpenTransport(); #endif if (lStatus == noErr) { if (OpenInetServices(&sSvcRef)) { slNetSvcOpen=1; return(1); } } return(0); /* OT present, but won't open */ } } #if !TARGET_API_MAC_CARBON else { gMacTCPDNRResultProcUPP = NewResultProc(&MacTCPDNRResultProc); err = OpenResolver(nil); if (err == noErr) { slNetSvcOpen=1; return(2); } } #endif return(0); } /* end OpenNetwork() */
OSErr mactcp_init(mactcp_inst *i) { OSErr err; err = OpenDriver("\p.IPP", &(i->refnum)); if(err != noErr) { printf("Error initializing driver\n"); return err; } err = OpenResolver(NULL); if(err != noErr) { printf("Error initializing resolver\n"); return err; } i->mactcp_lookupdone_upp = NewResultProc(&mactcp_lookupdone); i->mactcp_asr_upp = NewTCPNotifyProc(&mactcp_asr); i->initialized = 1; GetCurrentProcess(&psn); return noErr; }