Lines Matching defs:tcpInfo
663 if (n->tcpInfo.sock) { mDNSPlatformTCPCloseConnection(n->tcpInfo.sock); n->tcpInfo.sock = mDNSNULL; }
738 if (n->tcpInfo.sock) { mDNSPlatformTCPCloseConnection(n->tcpInfo.sock); n->tcpInfo.sock = mDNSNULL; }
849 mDNSPlatformMemZero(&traversal->tcpInfo, sizeof(traversal->tcpInfo));
1248 tcpInfo_t *tcpInfo = (tcpInfo_t *)context;
1250 mDNS *m = tcpInfo->m;
1251 DNSQuestion *const q = tcpInfo->question;
1254 tcpInfo->rr ? &tcpInfo->rr->tcp : mDNSNULL;
1255 if (backpointer && *backpointer != tcpInfo)
1256 LogMsg("tcpCallback: %d backpointer %p incorrect tcpInfo %p question %p rr %p",
1257 mDNSPlatformTCPGetFD(tcpInfo->sock), *backpointer, tcpInfo, q, tcpInfo->rr);
1263 mDNSu8 *end = ((mDNSu8*) &tcpInfo->request) + tcpInfo->requestLen;
1268 if (tcpInfo->rr && tcpInfo->rr->resrec.name != &tcpInfo->rr->namestorage)
1269 LogMsg("tcpCallback: ERROR: tcpInfo->rr->resrec.name %p != &tcpInfo->rr->namestorage %p",
1270 tcpInfo->rr->resrec.name, &tcpInfo->rr->namestorage);
1271 if (tcpInfo->rr && tcpInfo->rr->resrec.name != &tcpInfo->rr->namestorage) return;
1273 AuthInfo = tcpInfo->rr ? GetAuthInfoForName(m, tcpInfo->rr->resrec.name) : mDNSNULL;
1279 end = ((mDNSu8*) &tcpInfo->request) + tcpInfo->requestLen;
1290 llqData.err = GetLLQEventPort(m, &tcpInfo->Addr); // We're using TCP; tell server what UDP port to send notifications to
1294 InitializeDNSMessage(&tcpInfo->request.h, q->TargetQID, uQueryFlags);
1295 end = putLLQ(&tcpInfo->request, tcpInfo->request.data, q, &llqData);
1303 InitializeDNSMessage(&tcpInfo->request.h, q->TargetQID, (DNSSECQuestion(q) ? DNSSecQFlags : uQueryFlags));
1304 end = putQuestion(&tcpInfo->request, tcpInfo->request.data, tcpInfo->request.data + AbsoluteMaxDNSMessageData, &q->qname, q->qtype, q->qclass);
1308 end = DNSProxySetAttributes(q, &tcpInfo->request.h, &tcpInfo->request, end, tcpInfo->request.data + AbsoluteMaxDNSMessageData);
1310 end = putDNSSECOption(&tcpInfo->request, end, tcpInfo->request.data + AbsoluteMaxDNSMessageData);
1316 err = mDNSSendDNSMessage(m, &tcpInfo->request, end, mDNSInterface_Any, mDNSNULL, &tcpInfo->Addr, tcpInfo->Port, sock, AuthInfo, mDNSfalse);
1333 const mDNSBool Read_replylen = (tcpInfo->nread < 2); // Do we need to read the replylen field first?
1336 mDNSu8 *lenptr = (mDNSu8 *)&tcpInfo->replylen;
1337 n = mDNSPlatformReadTCP(sock, lenptr + tcpInfo->nread, 2 - tcpInfo->nread, &closed);
1350 if (tcpInfo->numReplies == 0)
1352 LogMsg("ERROR: socket closed prematurely tcpInfo->nread = %d", tcpInfo->nread);
1362 DisposeTCPConn(tcpInfo);
1367 tcpInfo->nread += n;
1368 if (tcpInfo->nread < 2) goto exit;
1370 tcpInfo->replylen = (mDNSu16)((mDNSu16)lenptr[0] << 8 | lenptr[1]);
1371 if (tcpInfo->replylen < sizeof(DNSMessageHeader))
1372 { LogMsg("ERROR: tcpCallback - length too short (%d bytes)", tcpInfo->replylen); err = mStatus_UnknownErr; goto exit; }
1374 tcpInfo->reply = mDNSPlatformMemAllocate(tcpInfo->replylen);
1375 if (!tcpInfo->reply) { LogMsg("ERROR: tcpCallback - malloc failed"); err = mStatus_NoMemoryErr; goto exit; }
1378 n = mDNSPlatformReadTCP(sock, ((char *)tcpInfo->reply) + (tcpInfo->nread - 2), tcpInfo->replylen - (tcpInfo->nread - 2), &closed);
1393 if (tcpInfo->numReplies == 0)
1395 LogMsg("ERROR: socket closed prematurely tcpInfo->nread = %d", tcpInfo->nread);
1405 DisposeTCPConn(tcpInfo);
1410 tcpInfo->nread += n;
1412 if ((tcpInfo->nread - 2) == tcpInfo->replylen)
1415 DNSMessage *reply = tcpInfo->reply;
1416 mDNSu8 *end = (mDNSu8 *)tcpInfo->reply + tcpInfo->replylen;
1417 mDNSAddr Addr = tcpInfo->Addr;
1418 mDNSIPPort Port = tcpInfo->Port;
1420 tcpInfo->numReplies++;
1421 tcpInfo->reply = mDNSNULL; // Detach reply buffer from tcpInfo_t, to make sure client callback can't cause it to be disposed
1422 tcpInfo->nread = 0;
1423 tcpInfo->replylen = 0;
1439 { *backpointer = mDNSNULL; DisposeTCPConn(tcpInfo); }
1521 DisposeTCPConn(tcpInfo);