Lines Matching refs:packet
42 * This function determines if the final response packet needs the NS RRset
136 buffer_clear(q->packet);
138 QR_SET(q->packet); /* This is an answer. */
139 AD_CLR(q->packet);
140 RCODE_SET(q->packet, (int) rcode); /* Error code. */
143 QDCOUNT_SET(q->packet, 0);
144 ANCOUNT_SET(q->packet, 0);
145 NSCOUNT_SET(q->packet, 0);
146 ARCOUNT_SET(q->packet, 0);
147 buffer_set_position(q->packet, QHEADERSZ);
170 int opcode = OPCODE(query->packet);
173 FLAGS_SET(query->packet, FLAGS(query->packet) & 0x0100U);
175 OPCODE_SET(query->packet, opcode);
197 query->packet = buffer_create(region, QIOBUFSZ);
220 query->packet = buffer;
232 buffer_create_from(q->packet, data, data_capacity);
255 buffer_clear(q->packet);
318 if (dname >= buffer_begin(q->packet)
319 && dname <= buffer_current(q->packet))
321 buffer_write_u16(q->packet,
322 0xc000 | (dname - buffer_begin(q->packet)));
324 buffer_write(q->packet, dname + 1, *dname);
327 buffer_write_u16(q->packet, TYPE_TXT);
328 buffer_write_u16(q->packet, klass);
329 buffer_write_u32(q->packet, ttl);
330 buffer_write_u16(q->packet, len + 1);
331 buffer_write_u8(q->packet, len);
332 buffer_write(q->packet, txt, len);
345 buffer_set_position(query->packet, QHEADERSZ);
347 if(!packet_read_query_section(query->packet, qnamebuf,
404 buffer_set_position(q->packet, q->edns.position);
405 buffer_set_limit(q->packet, q->edns.position);
406 ARCOUNT_SET(q->packet, ARCOUNT(q->packet) - 1);
429 buffer_set_limit(q->packet, q->tsig.position);
430 ARCOUNT_SET(q->packet, ARCOUNT(q->packet) - 1);
432 tsig_update(&q->tsig, q->packet, buffer_limit(q->packet));
467 if(!tsig_find_rr(&query->tsig, query->packet)) {
516 if(buffer_limit(query->packet) > MAX_PACKET_SIZE)
520 sz = buffer_limit(query->packet)
524 !write_socket(s, buffer_begin(query->packet),
525 buffer_limit(query->packet)) ||
536 if(packet_find_notify_serial(query->packet, &serial))
546 QR_SET(query->packet); /* This is an answer. */
547 AA_SET(query->packet); /* we are authoritative. */
548 ANCOUNT_SET(query->packet, 0);
549 NSCOUNT_SET(query->packet, 0);
550 ARCOUNT_SET(query->packet, 0);
551 RCODE_SET(query->packet, RCODE_OK); /* Error code. */
553 pos = buffer_position(query->packet);
554 buffer_clear(query->packet);
555 buffer_set_position(query->packet, pos);
584 AA_CLR(q->packet);
596 buffer_begin(q->packet) + QHEADERSZ,
600 ANCOUNT_SET(q->packet, ANCOUNT(q->packet) + 1);
602 RCODE_SET(q->packet, RCODE_REFUSE);
615 buffer_begin(q->packet) + QHEADERSZ,
619 ANCOUNT_SET(q->packet, ANCOUNT(q->packet) + 1);
621 RCODE_SET(q->packet, RCODE_REFUSE);
627 RCODE_SET(q->packet, RCODE_REFUSE);
635 RCODE_SET(q->packet, RCODE_REFUSE);
951 DEBUG(DEBUG_QUERY,2, (LOG_INFO, "could not add synthesized CNAME rrset to packet for query %s", dname_to_string(q->qname, NULL)));
973 AA_CLR(query->packet);
975 AA_SET(query->packet);
1048 RCODE_SET(query->packet, RCODE_NXDOMAIN);
1227 RCODE_SET(q->packet, RCODE_YXDOMAIN);
1344 if (RCODE(q->packet)!=RCODE_OK) {
1368 RCODE_SET(q->packet, RCODE_REFUSE);
1400 RCODE_SET(q->packet, RCODE_REFUSE);
1443 RCODE_SET(q->packet, RCODE_REFUSE);
1454 RCODE_SET(q->packet, RCODE_SERVFAIL);
1498 RCODE_SET(q->packet, RCODE_SERVFAIL);
1514 RCODE_SET(q->packet, RCODE_SERVFAIL);
1529 AA_CLR(q->packet);
1531 AA_SET(q->packet);
1546 AA_CLR(q->packet);
1548 AA_SET(q->packet);
1590 * Preserve the data up-to the current packet's limit.
1592 buffer_set_position(q->packet, buffer_limit(q->packet));
1593 buffer_set_limit(q->packet, buffer_capacity(q->packet));
1602 flags = FLAGS(q->packet);
1606 FLAGS_SET(q->packet, flags);
1622 if (buffer_limit(q->packet) < QHEADERSZ) {
1623 /* packet too small to contain DNS header.
1624 Now packet investigation macros will work without problems. */
1627 if (QR(q->packet)) {
1633 * specification of the meaning of the rest of the packet */
1634 q->opcode = OPCODE(q->packet);
1643 if (RCODE(q->packet) != RCODE_OK || !process_query_section(q)) {
1663 if (QDCOUNT(q->packet) != 1) {
1664 if(QDCOUNT(q->packet) == 0 && ANCOUNT(q->packet) == 0 &&
1665 NSCOUNT(q->packet) == 0 && ARCOUNT(q->packet) == 1 &&
1666 buffer_limit(q->packet) >= QHEADERSZ+OPT_LEN+
1669 buffer_set_position(q->packet, QHEADERSZ);
1670 if (edns_parse_record(&q->edns, q->packet, q, nsd)) {
1672 int opcode = OPCODE(q->packet);
1675 FLAGS_SET(q->packet, FLAGS(q->packet) & 0x0100U);
1677 OPCODE_SET(q->packet, opcode);
1678 QR_SET(q->packet);
1683 FLAGS_SET(q->packet, 0);
1690 if (ANCOUNT(q->packet) != 0 ||
1691 (q->qtype!=TYPE_IXFR && NSCOUNT(q->packet) != 0)) {
1694 if(q->qtype==TYPE_IXFR && NSCOUNT(q->packet) > 0) {
1696 unsigned int nscount = (unsigned)NSCOUNT(q->packet);
1704 if(!packet_skip_rr(q->packet, 0))
1708 arcount = ARCOUNT(q->packet);
1722 if (edns_parse_record(&q->edns, q->packet, q, nsd))
1728 if (!tsig_parse_rr(&q->tsig, q->packet))
1740 if (buffer_remaining(q->packet) > 0) {
1746 buffer_set_limit(q->packet, buffer_position(q->packet));
1758 RCODE_SET(q->packet, NSD_RC_OK);
1759 buffer_clear(q->packet);
1760 buffer_set_position(q->packet,
1762 QR_SET(q->packet);
1763 AD_CLR(q->packet);
1764 QDCOUNT_SET(q->packet, 1);
1765 ANCOUNT_SET(q->packet, 0);
1766 NSCOUNT_SET(q->packet, 0);
1767 ARCOUNT_SET(q->packet, 0);
1792 TC_SET(q->packet);
1810 if (RCODE(q->packet) == RCODE_FORMAT) {
1819 buffer_write(q->packet, edns->ok, OPT_LEN);
1840 q->packet, 2+q->edns.opt_reserved_space)) {
1842 buffer_write(q->packet, edns->rdata_none, OPT_RDATA);
1845 buffer_write_u16(q->packet, q->edns.opt_reserved_space);
1849 buffer_write(q->packet, edns->nsid, OPT_HDR);
1851 buffer_write(q->packet, nsd->nsid, nsd->nsid_len);
1859 buffer_write_u16(q->packet, ZONEVERSION_CODE);
1860 buffer_write_u16( q->packet
1864 buffer_write_u8(q->packet,
1866 buffer_write_u8( q->packet
1869 buffer_write_u32(q->packet, serial);
1873 buffer_write(q->packet, edns->cookie, OPT_HDR);
1876 buffer_write(q->packet, q->edns.cookie, 24);
1881 buffer_write_u16(q->packet, EDE_CODE);
1883 buffer_write_u16(q->packet,
1887 buffer_write_u16(q->packet, q->edns.ede);
1890 buffer_write(q->packet,
1895 ARCOUNT_SET(q->packet, ARCOUNT(q->packet) + 1);
1902 buffer_write(q->packet, edns->error, OPT_LEN);
1903 buffer_write(q->packet, edns->rdata_none, OPT_RDATA);
1904 ARCOUNT_SET(q->packet, ARCOUNT(q->packet) + 1);
1914 tsig_append_rr(&q->tsig, q->packet);
1915 ARCOUNT_SET(q->packet, ARCOUNT(q->packet) + 1);
1922 tsig_update(&q->tsig, q->packet, buffer_position(q->packet));
1925 tsig_append_rr(&q->tsig, q->packet);
1926 ARCOUNT_SET(q->packet, ARCOUNT(q->packet) + 1);