Lines Matching refs:tcp

172 static short tcp_wait(struct tcpstate *ts, tcpinfo *tcp)  in tcp_wait()  argument
179 || (tcp && (tcp->state & TCP_DNSINUSE) && ! (volatile) tcp->dnrdone) in tcp_wait()
180 || (tcp && (tcp->state & TCP_PBINUSE) && (volatile short) tcp->pb.ioResult == 1)) { in tcp_wait()
206 tcpinfo *tcp; in tcp_closep() local
215 if ((tcp = tstate->tcpbufs[i]) != NULL) { in tcp_closep()
217 if (!tcp->server || tcp->state != TCP_CONNECT) tcp_wait(tstate, tcp); in tcp_closep()
218 if (!tcp->gethost) { in tcp_closep()
220 pb.tcpStream = tcp->stream; in tcp_closep()
224 freewb(tcp->wb); in tcp_closep()
225 freewb(tcp->wb + 1); in tcp_closep()
226 DisposPtr((Ptr) tcp); in tcp_closep()
238 static short beginwrite(tcpinfo *tcp) in beginwrite() argument
240 tcpwb *wb = tcp->wb + tcp->wbnum; in beginwrite()
243 if (tcp->rclose == 3 || tcp->lclose > 1) return (0); in beginwrite()
244 memset((void *) &tcp->pb.csParam, 0, sizeof (tcp->pb.csParam)); in beginwrite()
245 tcp->pb.csCode = TCPSend; in beginwrite()
246 tcp->pb.csParam.send.ulpTimeoutValue = 60; /* 1 minute to send data */ in beginwrite()
247 tcp->pb.csParam.send.ulpTimeoutAction = 0; in beginwrite()
248 tcp->pb.csParam.send.validityFlags = 0xC0; in beginwrite()
249 tcp->pb.csParam.send.wdsPtr = (Ptr) wb->rds; in beginwrite()
250 tcp->pb.csParam.send.pushFlag = tcp->pushed = tcp->push; in beginwrite()
251 PBControl((ParmBlkPtr) &tcp->pb, true); in beginwrite()
252 tcp->push = 0; in beginwrite()
253 tcp->wbnum = 1 - tcp->wbnum; in beginwrite()
256 return (tcp->state = TCP_WRITING); in beginwrite()
263 tcpinfo *tcp; in NATCPtask() local
278 if ((tcp = tstate->tcpbufs[i]) != NULL) do { in NATCPtask()
280 if (!tcp->reading && !tcp->rclose && tcp->havedata && tcp->state != TCP_CONNECT) { in NATCPtask()
281 tcp->rpb.ioCRefNum = tstate->tcp_driver; in NATCPtask()
282 tcp->rpb.tcpStream = tcp->stream; in NATCPtask()
283 tcp->rpb.csCode = TCPNoCopyRcv; in NATCPtask()
284 tcp->rpb.csParam.receive.rdsPtr = (Ptr) tcp->rrds; in NATCPtask()
285 tcp->rpb.csParam.receive.commandTimeoutValue = 5; in NATCPtask()
286 tcp->rpb.csParam.receive.rdsLength = RDS; in NATCPtask()
287 if (tcp->pushed) { in NATCPtask()
288 tcp->rpb.csParam.receive.commandTimeoutValue = 1; in NATCPtask()
289 tcp->rpb.csParam.receive.rdsLength = 1; in NATCPtask()
291 tcp->havedata = 0; in NATCPtask()
292 PBControl((ParmBlkPtr) &tcp->rpb, tcp->pushed ? false : true); in NATCPtask()
293 tcp->reading = 1; in NATCPtask()
294 tcp->pushed = 0; in NATCPtask()
296 if (tcp->reading) { in NATCPtask()
297 if ((result = tcp->rpb.ioResult) == 1) { in NATCPtask()
300 tcp->reading = 0; in NATCPtask()
303 (*tcp->callback)(tcp->context, i, NATCP_noread, result, NULL); in NATCPtask()
307 if (tcp->rpb.csParam.receive.urgentFlag) tcp->urgent = 1; in NATCPtask()
308 if (tcp->urgent) result |= NATCP_urgent; in NATCPtask()
309 if (tcp->rpb.csParam.receive.markFlag) tcp->urgent = 0; in NATCPtask()
310 for (rds = tcp->rrds; rds->length; ++rds) { in NATCPtask()
312 (*tcp->callback)(tcp->context, i, result, in NATCPtask()
315 tcp->rpb.csCode = TCPRcvBfrReturn; in NATCPtask()
316 PBControl((ParmBlkPtr) &tcp->rpb, false); in NATCPtask()
320 result = tcp->pb.ioResult; in NATCPtask()
322 switch (tcp->state) { in NATCPtask()
324 if (tcp->dnrdone) { in NATCPtask()
325 tcp->rclose = 3; in NATCPtask()
327 if (tcp->host.rtnCode != noErr) { in NATCPtask()
328 (*tcp->callback)(tcp->context, i, NATCP_nohost, in NATCPtask()
329 tcp->host.rtnCode, NULL); in NATCPtask()
331 (*tcp->callback)(tcp->context, i, NATCP_connect, in NATCPtask()
332 strlen(tcp->host.cname), tcp->host.cname); in NATCPtask()
333 strcpy(tstate->localhost, tcp->host.cname); in NATCPtask()
338 if (tcp->dnrdone) { in NATCPtask()
339 if (tcp->host.rtnCode != noErr) { in NATCPtask()
340 tcp->rclose = 3; in NATCPtask()
342 (*tcp->callback)(tcp->context, i, NATCP_nohost, in NATCPtask()
343 tcp->host.rtnCode, NULL); in NATCPtask()
344 } else if (!tcp->lclose) { in NATCPtask()
345 memset((void *) &tcp->pb, 0, sizeof (tcp->pb)); in NATCPtask()
346 tcp->pb.ioCRefNum = tstate->tcp_driver; in NATCPtask()
347 tcp->pb.tcpStream = tcp->stream; in NATCPtask()
348 tcp->pb.csParam.open.ulpTimeoutValue = 30; in NATCPtask()
349 tcp->pb.csParam.open.ulpTimeoutAction = 1; /* Abort on timeout */ in NATCPtask()
350 tcp->pb.csParam.open.tosFlags = tstate->TOS; in NATCPtask()
351 tcp->pb.csParam.open.precedence = tstate->precedence; in NATCPtask()
352 tcp->pb.csParam.open.validityFlags = in NATCPtask()
354 tcp->pb.csParam.open.remoteHost = tcp->host.addr[0]; in NATCPtask()
355 if (tcp->server) { in NATCPtask()
356 tcp->pb.csCode = TCPPassiveOpen; in NATCPtask()
357 tcp->pb.csParam.open.commandTimeoutValue = 0; in NATCPtask()
358 tcp->pb.csParam.open.remotePort = 0; in NATCPtask()
359 tcp->pb.csParam.open.localPort = tcp->port; in NATCPtask()
361 tcp->pb.csCode = TCPActiveOpen; in NATCPtask()
362 tcp->pb.csParam.open.remotePort = tcp->port; in NATCPtask()
363 tcp->pb.csParam.open.localPort = 0; in NATCPtask()
365 PBControl((ParmBlkPtr) &tcp->pb, true); in NATCPtask()
376 tcp->rclose = 3; in NATCPtask()
378 (*tcp->callback)(tcp->context, i, NATCP_nocon, result, NULL); in NATCPtask()
381 if (tcp->server) { in NATCPtask()
382 tcp->port = tcp->pb.csParam.open.remotePort; in NATCPtask()
383 if (!*tcp->host.cname) { in NATCPtask()
384 AddrToStr(tcp->pb.csParam.open.remoteHost, tcp->host.cname); in NATCPtask()
387 (*tcp->callback)(tcp->context, i, NATCP_connect, in NATCPtask()
388 tcp->port, tcp->host.cname); in NATCPtask()
393 wb = tcp->wb + tcp->wbnum; in NATCPtask()
394 if (wb->rused && (newstate = beginwrite(tcp))) { in NATCPtask()
398 if (tcp->rclose == 1) { in NATCPtask()
399 tcp->rclose = 2; in NATCPtask()
400 (*tcp->callback)(tcp->context, i, NATCP_closing, 0, NULL); in NATCPtask()
403 if (tcp->lclose == 1) { in NATCPtask()
404 tcp->lclose = 2; in NATCPtask()
405 tcp->pb.csCode = TCPClose; in NATCPtask()
406 tcp->pb.csParam.close.validityFlags = 0xC0; in NATCPtask()
407 tcp->pb.csParam.close.ulpTimeoutValue = 30; /* give 30 secs to close */ in NATCPtask()
408 tcp->pb.csParam.close.ulpTimeoutAction = 0; in NATCPtask()
409 PBControl((ParmBlkPtr) &tcp->pb, true); in NATCPtask()
414 if (tcp->rclose == 3) { in NATCPtask()
415 (*tcp->callback)(tcp->context, i, NATCP_closed, tcp->reason, NULL); in NATCPtask()
424 wb = tcp->wb; in NATCPtask()
428 tcp->pushed = 0; in NATCPtask()
429 (*tcp->callback)(tcp->context, i, NATCP_nowrite, result, NULL); in NATCPtask()
441 if (!tcp->rclose) break; in NATCPtask()
442 if (!tcp->gethost) { in NATCPtask()
443 tcp->pb.csCode = TCPRelease; in NATCPtask()
444 PBControl((ParmBlkPtr)&tcp->pb, false); in NATCPtask()
446 freewb(tcp->wb); in NATCPtask()
447 freewb(tcp->wb + 1); in NATCPtask()
448 DisposPtr((Ptr) tcp); in NATCPtask()
452 if (newstate) tcp->state = newstate; in NATCPtask()
464 tcpinfo *tcp = (tcpinfo *) userDataPtr; in myTCPNotifyProc() local
468 tcp->rclose = 3; in myTCPNotifyProc()
469 tcp->reason = terminReason; in myTCPNotifyProc()
472 tcp->rclose = 1; in myTCPNotifyProc()
475 tcp->havedata = 1; in myTCPNotifyProc()
478 tcp->urgent = 1; in myTCPNotifyProc()
545 tcpinfo *tcp; in getTCPbuf() local
560 tcp = (tcpinfo *) NewPtr(sizeof (tcpinfo) - 1 in getTCPbuf()
562 if (!tcp) { in getTCPbuf()
567 (*tcpstate)->tcpbufs[i] = tcp; in getTCPbuf()
568 memset((char *) tcp, 0, sizeof (tcpinfo)); in getTCPbuf()
571 tcp->wbsize = (*tcpstate)->wbsize; in getTCPbuf()
572 tcp->wb[0].buf = tcp->buf + (*tcpstate)->streamsize; in getTCPbuf()
573 tcp->wb[1].buf = tcp->wb[0].buf + tcp->wbsize; in getTCPbuf()
574 tcp->pb.ioCRefNum = (*tcpstate)->tcp_driver; in getTCPbuf()
575 tcp->context = context; in getTCPbuf()
576 tcp->callback = callback; in getTCPbuf()
578 return (tcp); in getTCPbuf()
586 tcpinfo *tcp; in NATCPgethost() local
595 } else if ((tcp = getTCPbuf(callback, context, &id)) != NULL) { in NATCPgethost()
599 ippb = (struct IPParamBlock *) &tcp->pb; in NATCPgethost()
606 DisposPtr((Ptr) tcp); in NATCPgethost()
610 tcp->dnrdone = 0; in NATCPgethost()
611 AddrToName(ippb->ourAddress, &tcp->host, addrproc, (char *) tcp); in NATCPgethost()
612 tcp->state = TCP_GETHOST; in NATCPgethost()
613 tcp->gethost = 1; in NATCPgethost()
624 tcpinfo *tcp; in NATCPopen() local
626 if ((tcp = getTCPbuf(callback, context, &i)) == NULL) return (-1); in NATCPopen()
627 if (flags & NATCP_server) tcp->server = 1; in NATCPopen()
628 tcp->port = port; in NATCPopen()
629 tcp->pb.csCode = TCPCreate; in NATCPopen()
630 tcp->pb.csParam.create.rcvBuff = (Ptr) tcp->buf; in NATCPopen()
631 tcp->pb.csParam.create.rcvBuffLen = (*tcpstate)->streamsize; in NATCPopen()
632 tcp->pb.csParam.create.notifyProc = myTCPNotifyProc; in NATCPopen()
633 tcp->pb.csParam.create.userDataPtr = (Ptr) tcp; in NATCPopen()
634 PBControl((ParmBlkPtr)&tcp->pb, false); in NATCPopen()
635 if (tcp->pb.ioResult == 0) { in NATCPopen()
636 tcp->state = TCP_RESOLVE; in NATCPopen()
637 tcp->stream = tcp->pb.tcpStream; in NATCPopen()
639 if (!host && tcp->server) return (i); in NATCPopen()
640 tcp->dnrdone = 0; in NATCPopen()
641 resolve = StrToAddr(host, &tcp->host, addrproc, (char *) tcp); in NATCPopen()
642 if (resolve == noErr) tcp->dnrdone = 1; in NATCPopen()
648 DisposPtr((Ptr) tcp); in NATCPopen()
667 tcpinfo *tcp = (*tcpstate)->tcpbufs[i]; in NATCPwrite() local
673 if (tcp == NULL || tcp->lclose > 0 || tcp->rclose == 3) { in NATCPwrite()
676 wb = tcp->wb + tcp->wbnum; in NATCPwrite()
677 if (wb->rused == RDS) wb = tcp->wb + (1 - tcp->wbnum); in NATCPwrite()
688 if (len < tcp->wbsize - wb->wused) { in NATCPwrite()
707 if (tcp->push && tcp->state == TCP_READY) { in NATCPwrite()
708 (void) beginwrite(tcp); in NATCPwrite()
727 tcpinfo *tcp = (*tcpstate)->tcpbufs[i]; in NATCPclose() local
729 if (tcp && tcp->lclose < 1) tcp->lclose = 1; in NATCPclose()