Lines Matching refs:packet
35 { 3, "PGP" }, /* OpenPGP packet */
38 { 6, "IPGP" }, /* The fingerprint and URL of an OpenPGP packet */
599 skip_nsec(struct buffer* packet, uint16_t rdlength, uint16_t *offset)
605 uint8_t window = buffer_read_u8(packet);
606 uint8_t blocks = buffer_read_u8(packet);
613 buffer_skip(packet, blocks);
707 * Skip over the svcparams in the packet. Moves position.
708 * @param packet: wire packet, position at rdata fields of svcparams.
709 * @param rdlength: remaining rdata length in the packet.
713 skip_svcparams(struct buffer *packet, uint16_t rdlength)
720 if(!buffer_available(packet, 4))
722 key = buffer_read_u16(packet);
723 count = buffer_read_u16(packet);
731 if(!buffer_available(packet, count))
733 buffer_skip(packet, count);
1017 struct buffer *packet, struct rr **rr)
1019 if (buffer_remaining(packet) < rdlength)
1024 buffer_read(packet, (*rr)->rdata, rdlength);
1031 struct buffer *packet, struct rr **rr)
1033 return read_rdata(domains, rdlength, packet, rr);
1040 buffer_write(query->packet, rr->rdata, rr->rdlength);
1313 struct buffer *packet, struct rr **rr)
1318 const size_t mark = buffer_position(packet);
1320 if (!dname_make_from_packet_buffered(&dname, packet, 1, 1) ||
1321 rdlength != buffer_position(packet) - mark)
1335 struct buffer *packet, struct rr **rr)
1340 const size_t mark = buffer_position(packet);
1342 if (!dname_make_from_packet_buffered(&dname, packet,
1344 rdlength != buffer_position(packet)-mark)
1360 query_put_dname_offset(q, domain, buffer_position(q->packet));
1366 buffer_write(q->packet, dname_name(domain_dname(domain)),
1377 buffer_write_u16(q->packet,
1380 buffer_write_u8(q->packet, 0);
1401 buffer_write(query->packet, dname_name(dname), dname->name_size);
1415 struct buffer *packet, struct rr **rr)
1419 return read_rdata(domains, rdlength, packet, rr);
1432 struct buffer *packet, struct rr **rr)
1439 const size_t mark = buffer_position(packet);
1440 if (!dname_make_from_packet_buffered(&primary, packet, 1, 1) ||
1441 !dname_make_from_packet_buffered(&mailbox, packet, 1, 1) ||
1442 rdlength != (buffer_position(packet) - mark) + 20)
1455 buffer_read(packet, (*rr)->rdata + 2 * sizeof(void*), 20);
1470 buffer_write(query->packet, rr->rdata + (2 * sizeof(void*)), 20);
1525 struct buffer *packet, struct rr **rr)
1529 return read_rdata(domains, rdlength, packet, rr);
1581 struct buffer *packet, struct rr **rr)
1584 const size_t mark = buffer_position(packet);
1586 if(!buffer_available(packet, rdlength))
1588 if (skip_string(packet, rdlength, &length) < 0
1589 || skip_string(packet, rdlength, &length) < 0
1592 buffer_set_position(packet, mark);
1593 return read_rdata(domains, rdlength, packet, rr);
1612 struct buffer *packet, struct rr **rr)
1617 const size_t mark = buffer_position(packet);
1619 if (buffer_remaining(packet) < rdlength ||
1620 !dname_make_from_packet_buffered(&rmailbx, packet, 1, 1) ||
1621 !dname_make_from_packet_buffered(&emailbx, packet, 1, 1) ||
1622 rdlength != buffer_position(packet)-mark)
1664 struct buffer *packet, struct rr **rr)
1671 const size_t mark = buffer_position(packet);
1672 if (buffer_remaining(packet) < rdlength || rdlength < 2)
1674 buffer_skip(packet, 2);
1675 if (!dname_make_from_packet_buffered(&exchange, packet, 1, 1))
1677 if (rdlength != buffer_position(packet)-mark)
1684 buffer_read_at(packet, mark, (*rr)->rdata, 2);
1696 buffer_write(query->packet, rr->rdata, 2);
1714 struct buffer *packet, struct rr **rr)
1717 const size_t mark = buffer_position(packet);
1718 if(!buffer_available(packet, rdlength))
1720 if (skip_strings(packet, rdlength, &length) < 0 || rdlength != length)
1722 buffer_set_position(packet, mark);
1723 return read_rdata(owners, rdlength, packet, rr);
1745 struct buffer *packet, struct rr **rr)
1750 const size_t mark = buffer_position(packet);
1752 if (buffer_remaining(packet) < rdlength ||
1753 !dname_make_from_packet_buffered(&mbox, packet, 1 /*lenient*/, 1) ||
1754 !dname_make_from_packet_buffered(&txt, packet, 1 /*lenient*/, 1) ||
1755 rdlength != buffer_position(packet)-mark)
1781 buffer_write(query->packet, dname_name(mbox), mbox->name_size);
1782 buffer_write(query->packet, dname_name(txt), txt->name_size);
1800 struct buffer *packet, struct rr **rr)
1806 const size_t mark = buffer_position(packet);
1808 if (buffer_remaining(packet) < rdlength || rdlength < 2)
1810 buffer_skip(packet, 2);
1811 if (!dname_make_from_packet_buffered(&hostname, packet,
1813 rdlength != buffer_position(packet)-mark)
1820 buffer_read_at(packet, mark, (*rr)->rdata, 2);
1835 buffer_write(query->packet, rr->rdata, 2);
1836 buffer_write(query->packet, dname_name(dname), dname->name_size);
1853 struct buffer *packet, struct rr **rr)
1856 const size_t mark = buffer_position(packet);
1857 if(!buffer_available(packet, rdlength))
1859 if (skip_string(packet, rdlength, &length) < 0 || rdlength != length)
1861 buffer_set_position(packet, mark);
1862 return read_rdata(domains, rdlength, packet, rr);
1878 struct buffer *packet, struct rr **rr)
1881 const size_t mark = buffer_position(packet);
1883 if(!buffer_available(packet, rdlength))
1885 if (skip_string(packet, rdlength, &length) < 0)
1889 if (skip_string(packet, rdlength, &length) < 0
1893 buffer_set_position(packet, mark);
1894 return read_rdata(domains, rdlength, packet, rr);
1916 struct buffer *packet, struct rr **rr)
1921 const size_t mark = buffer_position(packet);
1923 if(!buffer_available(packet, rdlength))
1927 buffer_skip(packet, 2);
1928 if (!dname_make_from_packet_buffered(&dname, packet, 1 /*lenient*/, 1))
1930 if (rdlength != buffer_position(packet)-mark)
1937 buffer_read_at(packet, mark, (*rr)->rdata, 2);
1952 buffer_write(query->packet, rr->rdata, 2);
1953 buffer_write(query->packet, dname_name(dname), dname->name_size);
1993 struct buffer *packet, struct rr **rr)
1998 const size_t mark = buffer_position(packet);
2001 if (buffer_remaining(packet) < rdlength ||
2004 buffer_skip(packet, 2);
2005 if(!dname_make_from_packet_buffered(&map822, packet,
2007 !dname_make_from_packet_buffered(&mapx400, packet,
2009 rdlength != buffer_position(packet) - mark)
2020 buffer_read_at(packet, mark, (*rr)->rdata, 2);
2037 buffer_write(query->packet, rr->rdata, 2);
2038 buffer_write(query->packet, dname_name(map822), map822->name_size);
2039 buffer_write(query->packet, dname_name(mapx400), mapx400->name_size);
2076 struct buffer *packet, struct rr **rr)
2080 return read_rdata(domains, rdlength, packet, rr);
2093 struct buffer *packet, struct rr **rr)
2099 if(!buffer_available(packet, rdlength))
2107 mark = buffer_position(packet);
2108 version = buffer_read_u8_at(packet, mark + 0);
2112 return read_rdata(domains, rdlength, packet, rr);
2219 struct buffer *packet, struct rr **rr)
2225 const size_t mark = buffer_position(packet);
2228 if(!buffer_available(packet, rdlength))
2230 if (!dname_make_from_packet_buffered(&dname, packet, 1, 1))
2232 if(rdlength < buffer_position(packet) - mark)
2234 bitmap_size = rdlength - (buffer_position(packet) - mark);
2242 buffer_read(packet, (*rr)->rdata + sizeof(void*), bitmap_size);
2256 buffer_write(query->packet, dname_name(dname), dname->name_size);
2258 buffer_write(query->packet, rr->rdata + sizeof(void*),
2308 struct buffer *packet, struct rr **rr)
2313 const size_t mark = buffer_position(packet);
2316 if (buffer_remaining(packet) < rdlength || rdlength < 6)
2318 buffer_skip(packet, 6);
2319 if (!dname_make_from_packet_buffered(&dname, packet,
2321 rdlength != buffer_position(packet)-mark)
2328 buffer_read_at(packet, mark, (*rr)->rdata, 6);
2343 buffer_write(query->packet, rr->rdata, 6);
2344 buffer_write(query->packet, dname_name(dname), dname->name_size);
2395 struct buffer *packet, struct rr **rr)
2401 const size_t mark = buffer_position(packet);
2404 if (buffer_remaining(packet) < rdlength ||
2407 buffer_skip(packet, 4);
2408 if(skip_string(packet, rdlength, &length) < 0 ||
2409 skip_string(packet, rdlength, &length) < 0 ||
2410 skip_string(packet, rdlength, &length) < 0 ||
2411 !dname_make_from_packet_buffered(&dname, packet, 1, 1) ||
2412 rdlength != buffer_position(packet) - mark)
2420 buffer_read_at(packet, mark, (*rr)->rdata, length);
2438 buffer_write(query->packet, rr->rdata, length);
2439 buffer_write(query->packet, dname_name(dname), dname->name_size);
2468 struct buffer *packet, struct rr **rr)
2472 const size_t mark = buffer_position(packet);
2476 if(buffer_remaining(packet) < rdlength || rdlength < 2)
2478 buffer_skip(packet, 2);
2479 if(!dname_make_from_packet_buffered(&dname, packet,
2481 rdlength != buffer_position(packet) - mark)
2489 buffer_read_at(packet, mark, (*rr)->rdata, 2);
2505 buffer_write(query->packet, rr->rdata, 2);
2506 buffer_write(query->packet, dname_name(dname), dname->name_size);
2511 struct buffer *packet, struct rr **rr)
2516 return read_rdata(domains, rdlength, packet, rr);
2554 struct buffer *packet, struct rr **rr)
2557 const uint8_t *rdata = buffer_current(packet);
2559 if (buffer_remaining(packet) < rdlength)
2570 return read_rdata(domains, rdlength, packet, rr);
2641 struct buffer *packet, struct rr **rr)
2646 return read_rdata(domains, rdlength, packet, rr);
2668 struct buffer *packet, struct rr **rr)
2673 return read_rdata(domains, rdlength, packet, rr);
2697 struct buffer *packet, struct rr **rr)
2702 const size_t mark = buffer_position(packet);
2706 if (buffer_remaining(packet) < rdlength || rdlength < 3)
2709 buffer_skip(packet, 3);
2711 switch (buffer_read_u8_at(packet, mark + 1)) {
2718 gateway_rdata = buffer_current(packet);
2721 buffer_skip(packet, gateway_length);
2725 gateway_rdata = buffer_current(packet);
2728 buffer_skip(packet, gateway_length);
2734 if (!dname_make_from_packet_buffered(&gateway, packet,
2737 if(rdlength < buffer_position(packet) - mark)
2745 keylen = rdlength - (buffer_position(packet)-mark);
2751 buffer_read_at(packet, mark, (*rr)->rdata, 3);
2755 buffer_read(packet, (*rr)->rdata + 3 + gateway_length, keylen);
2837 struct buffer *packet, struct rr **rr)
2840 const size_t mark = buffer_position(packet);
2844 if (buffer_remaining(packet) < rdlength || rdlength < 18)
2846 buffer_skip(packet, 18);
2847 if (!dname_make_from_packet_buffered(&signer, packet,
2850 if (rdlength < buffer_position(packet) - mark)
2853 b64len = rdlength - (buffer_position(packet) - mark);
2856 buffer_read_at(packet, mark, (*rr)->rdata, 18);
2860 buffer_read(packet, (*rr)->rdata+memrdlen, b64len);
2897 struct buffer *packet, struct rr **rr)
2902 const size_t mark = buffer_position(packet);
2905 if(buffer_remaining(packet) < rdlength ||
2906 !dname_make_from_packet_buffered(&next, packet,
2908 rdlength < buffer_position(packet) - mark)
2911 bitmapmark = buffer_position(packet);
2913 if (skip_nsec(packet, rdlength, &length) < 0
2916 bitmaplen = buffer_position(packet) - bitmapmark;
2922 buffer_read_at(packet, bitmapmark,
2945 struct buffer *packet, struct rr **rr)
2950 return read_rdata(domains, rdlength, packet, rr);
2972 struct buffer *packet, struct rr **rr)
2977 return read_rdata(domains, rdlength, packet, rr);
2994 struct buffer *packet, struct rr **rr)
2998 const size_t mark = buffer_position(packet);
3000 if (buffer_remaining(packet
3002 buffer_skip(packet, length);
3003 if (skip_string(packet, rdlength, &length) < 0 ||
3004 skip_string(packet, rdlength, &length) < 0 ||
3005 skip_nsec(packet, rdlength, &length) < 0 ||
3008 buffer_set_position(packet, mark);
3009 return read_rdata(domains, rdlength, packet, rr);
3037 struct buffer *packet, struct rr **rr)
3041 const size_t mark = buffer_position(packet);
3043 if (buffer_remaining(packet) < rdlength || rdlength < length)
3045 buffer_skip(packet, length);
3046 if (skip_string(packet, rdlength, &length) < 0 ||
3049 buffer_set_position(packet, mark);
3050 return read_rdata(domains, rdlength, packet, rr);
3073 struct buffer *packet, struct rr **rr)
3078 return read_rdata(domains, rdlength, packet, rr);
3101 struct buffer *packet, struct rr **rr)
3107 return read_rdata(domains, rdlength, packet, rr);
3143 struct buffer *packet, struct rr **rr)
3148 return read_rdata(domains, rdlength, packet, rr);
3170 struct buffer *packet, struct rr **rr)
3173 const size_t mark = buffer_position(packet);
3174 if(!buffer_available(packet, rdlength))
3176 if(!dname_make_from_packet_buffered(&prev, packet,
3179 if(buffer_position(packet)-mark > rdlength)
3181 if(!dname_make_from_packet_buffered(&next, packet,
3184 if(buffer_position(packet)-mark != rdlength)
3224 struct buffer *packet, struct rr **rr)
3229 return read_rdata(domains, rdlength, packet, rr);
3251 struct buffer *packet, struct rr **rr)
3256 return read_rdata(domains, rdlength, packet, rr);
3278 struct buffer *packet, struct rr **rr)
3284 const size_t mark = buffer_position(packet);
3287 if (buffer_remaining(packet) < rdlength || rdlength < length)
3289 buffer_skip(packet, length);
3290 if (!dname_make_from_packet_buffered(&target, packet,
3293 if(rdlength < buffer_position(packet) - mark)
3295 length = buffer_position(packet)-mark;
3299 if(!skip_svcparams(packet, rdlength-length))
3301 if(rdlength < buffer_position(packet) - mark)
3305 buffer_skip(packet, svcparams_length);
3312 buffer_read_at(packet, mark, (*rr)->rdata, 2);
3315 buffer_read_at(packet, mark + length,
3331 buffer_write(query->packet, rr->rdata, 2);
3332 buffer_write(query->packet, dname_name(target), target->name_size);
3335 buffer_write(query->packet, rr->rdata + length,
3360 struct buffer *packet, struct rr **rr)
3364 const size_t mark = buffer_position(packet);
3367 if (buffer_remaining(packet) < rdlength || rdlength < length)
3369 buffer_skip(packet, length);
3370 if(!dname_make_from_packet_buffered(&target, packet,
3372 rdlength != buffer_position(packet) - mark)
3378 buffer_read_at(packet, mark, (*rr)->rdata, 5);
3403 struct buffer *packet, struct rr **rr)
3407 return read_rdata(domains, rdlength, packet, rr);
3427 struct buffer *packet, struct rr **rr)
3431 return read_rdata(domains, rdlength, packet, rr);
3451 struct buffer *packet, struct rr **rr)
3455 return read_rdata(domains, rdlength, packet, rr);
3475 struct buffer *packet, struct rr **rr)
3481 const size_t mark = buffer_position(packet);
3483 if (buffer_remaining(packet) < rdlength || rdlength < 2)
3485 buffer_skip(packet, 2);
3486 if (!dname_make_from_packet_buffered(&target, packet,
3488 rdlength != buffer_position(packet) - mark)
3495 buffer_read_at(packet, mark, (*rr)->rdata, 2);
3511 buffer_write(query->packet, rr->rdata, 2);
3512 buffer_write(query->packet, dname_name(dname), dname->name_size);
3530 struct buffer *packet, struct rr **rr)
3534 return read_rdata(domains, rdlength, packet, rr);
3550 struct buffer *packet, struct rr **rr)
3554 return read_rdata(domains, rdlength, packet, rr);
3570 struct buffer *packet, struct rr **rr)
3575 return read_rdata(domains, rdlength, packet, rr);
3608 struct buffer *packet, struct rr **rr)
3610 const size_t mark = buffer_position(packet);
3614 if (buffer_remaining(packet) < rdlength || rdlength < 2)
3616 buffer_skip(packet, 1);
3617 if (skip_string(packet, rdlength, &length) < 0 || rdlength < length)
3619 buffer_set_position(packet, mark);
3620 return read_rdata(domains, rdlength, packet, rr);
3677 struct buffer *packet, struct rr **rr)
3682 const size_t mark = buffer_position(packet);
3685 if (buffer_remaining(packet) < rdlength || rdlength < 2)
3688 buffer_skip(packet, 2);
3690 switch (buffer_read_u8_at(packet, mark + 1)&AMTRELAY_TYPE_MASK) {
3697 relay_rdata = buffer_current(packet);
3700 buffer_skip(packet, relay_length);
3704 relay_rdata = buffer_current(packet);
3707 buffer_skip(packet, relay_length);
3713 if(!dname_make_from_packet_buffered(&relay, packet,
3716 if(rdlength < buffer_position(packet) - mark)
3724 if(rdlength != buffer_position(packet) - mark)
3731 buffer_read_at(packet, mark, (*rr)->rdata, 2);
3825 struct buffer *packet, struct rr **rr)
3830 return read_rdata(domains, rdlength, packet, rr);