Home | History | Annotate | Download | only in mDNSCore

Lines Matching refs:tcpInfo

463 		if (n->tcpInfo.sock) { mDNSPlatformTCPCloseConnection(n->tcpInfo.sock); n->tcpInfo.sock = mDNSNULL; }
596 mDNSPlatformMemZero(&traversal->tcpInfo, sizeof(traversal->tcpInfo));
966 tcpInfo_t *tcpInfo = (tcpInfo_t *)context;
968 mDNS *m = tcpInfo->m;
969 DNSQuestion *const q = tcpInfo->question;
972 tcpInfo->rr ? &tcpInfo->rr ->tcp : mDNSNULL;
973 if (backpointer && *backpointer != tcpInfo)
974 LogMsg("tcpCallback: %d backpointer %p incorrect tcpInfo %p question %p rr %p",
975 mDNSPlatformTCPGetFD(tcpInfo->sock), *backpointer, tcpInfo, q, tcpInfo->rr);
981 mDNSu8 *end = ((mDNSu8*) &tcpInfo->request) + tcpInfo->requestLen;
986 if (tcpInfo->rr && tcpInfo->rr->resrec.name != &tcpInfo->rr->namestorage)
987 LogMsg("tcpCallback: ERROR: tcpInfo->rr->resrec.name %p != &tcpInfo->rr->namestorage %p",
988 tcpInfo->rr->resrec.name, &tcpInfo->rr->namestorage);
989 if (tcpInfo->rr && tcpInfo->rr-> resrec.name != &tcpInfo->rr-> namestorage) return;
991 AuthInfo = tcpInfo->rr ? GetAuthInfoForName(m, tcpInfo->rr->resrec.name) : mDNSNULL;
997 end = ((mDNSu8*) &tcpInfo->request) + tcpInfo->requestLen;
1008 llqData.err = GetLLQEventPort(m, &tcpInfo->Addr); // We're using TCP; tell server what UDP port to send notifications to
1012 InitializeDNSMessage(&tcpInfo->request.h, q->TargetQID, uQueryFlags);
1013 end = putLLQ(&tcpInfo->request, tcpInfo->request.data, q, &llqData);
1021 InitializeDNSMessage(&tcpInfo->request.h, q->TargetQID, uQueryFlags);
1022 end = putQuestion(&tcpInfo->request, tcpInfo->request.data, tcpInfo->request.data + AbsoluteMaxDNSMessageData, &q->qname, q->qtype, q->qclass);
1026 err = mDNSSendDNSMessage(m, &tcpInfo->request, end, mDNSInterface_Any, mDNSNULL, &tcpInfo->Addr, tcpInfo->Port, sock, AuthInfo);
1043 if (tcpInfo->nread < 2) // First read the two-byte length preceeding the DNS message
1045 mDNSu8 *lenptr = (mDNSu8 *)&tcpInfo->replylen;
1046 n = mDNSPlatformReadTCP(sock, lenptr + tcpInfo->nread, 2 - tcpInfo->nread, &closed);
1059 if (tcpInfo->numReplies == 0)
1061 LogMsg("ERROR: socket closed prematurely tcpInfo->nread = %d", tcpInfo->nread);
1071 DisposeTCPConn(tcpInfo);
1076 tcpInfo->nread += n;
1077 if (tcpInfo->nread < 2) goto exit;
1079 tcpInfo->replylen = (mDNSu16)((mDNSu16)lenptr[0] << 8 | lenptr[1]);
1080 if (tcpInfo->replylen < sizeof(DNSMessageHeader))
1081 { LogMsg("ERROR: tcpCallback - length too short (%d bytes)", tcpInfo->replylen); err = mStatus_UnknownErr; goto exit; }
1083 tcpInfo->reply = mDNSPlatformMemAllocate(tcpInfo->replylen);
1084 if (!tcpInfo->reply) { LogMsg("ERROR: tcpCallback - malloc failed"); err = mStatus_NoMemoryErr; goto exit; }
1087 n = mDNSPlatformReadTCP(sock, ((char *)tcpInfo->reply) + (tcpInfo->nread - 2), tcpInfo->replylen - (tcpInfo->nread - 2), &closed);
1097 if (tcpInfo->numReplies == 0)
1099 LogMsg("ERROR: socket closed prematurely tcpInfo->nread = %d", tcpInfo->nread);
1109 DisposeTCPConn(tcpInfo);
1114 tcpInfo->nread += n;
1116 if ((tcpInfo->nread - 2) == tcpInfo->replylen)
1119 DNSMessage *reply = tcpInfo->reply;
1120 mDNSu8 *end = (mDNSu8 *)tcpInfo->reply + tcpInfo->replylen;
1121 mDNSAddr Addr = tcpInfo->Addr;
1122 mDNSIPPort Port = tcpInfo->Port;
1124 tcpInfo->numReplies++;
1125 tcpInfo->reply = mDNSNULL; // Detach reply buffer from tcpInfo_t, to make sure client callback can't cause it to be disposed
1126 tcpInfo->nread = 0;
1127 tcpInfo->replylen = 0;
1143 { *backpointer = mDNSNULL; DisposeTCPConn(tcpInfo); }
1225 DisposeTCPConn(tcpInfo);