• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/contrib/ldns/

Lines Matching refs:packet

2  * packet.c
4 * dns packet implementation
39 ldns_pkt_id(const ldns_pkt *packet)
41 return packet->_header->_id;
45 ldns_pkt_qr(const ldns_pkt *packet)
47 return packet->_header->_qr;
51 ldns_pkt_aa(const ldns_pkt *packet)
53 return packet->_header->_aa;
57 ldns_pkt_tc(const ldns_pkt *packet)
59 return packet->_header->_tc;
63 ldns_pkt_rd(const ldns_pkt *packet)
65 return packet->_header->_rd;
69 ldns_pkt_cd(const ldns_pkt *packet)
71 return packet->_header->_cd;
75 ldns_pkt_ra(const ldns_pkt *packet)
77 return packet->_header->_ra;
81 ldns_pkt_ad(const ldns_pkt *packet)
83 return packet->_header->_ad;
87 ldns_pkt_get_opcode(const ldns_pkt *packet)
89 return packet->_header->_opcode;
93 ldns_pkt_get_rcode(const ldns_pkt *packet)
95 return packet->_header->_rcode;
99 ldns_pkt_qdcount(const ldns_pkt *packet)
101 return packet->_header->_qdcount;
105 ldns_pkt_ancount(const ldns_pkt *packet)
107 return packet->_header->_ancount;
111 ldns_pkt_nscount(const ldns_pkt *packet)
113 return packet->_header->_nscount;
117 ldns_pkt_arcount(const ldns_pkt *packet)
119 return packet->_header->_arcount;
123 ldns_pkt_question(const ldns_pkt *packet)
125 return packet->_question;
129 ldns_pkt_answer(const ldns_pkt *packet)
131 return packet->_answer;
135 ldns_pkt_authority(const ldns_pkt *packet)
137 return packet->_authority;
141 ldns_pkt_additional(const ldns_pkt *packet)
143 return packet->_additional;
148 ldns_pkt_all(const ldns_pkt *packet)
153 ldns_pkt_question(packet),
154 ldns_pkt_answer(packet));
157 ldns_pkt_authority(packet));
161 ldns_pkt_additional(packet));
167 ldns_pkt_all_noquestion(const ldns_pkt *packet)
172 ldns_pkt_answer(packet),
173 ldns_pkt_authority(packet));
175 ldns_pkt_additional(packet));
182 ldns_pkt_size(const ldns_pkt *packet)
184 return packet->_size;
188 ldns_pkt_querytime(const ldns_pkt *packet)
190 return packet->_querytime;
194 ldns_pkt_answerfrom(const ldns_pkt *packet)
196 return packet->_answerfrom;
200 ldns_pkt_timestamp(const ldns_pkt *packet)
202 return packet->timestamp;
206 ldns_pkt_edns_udp_size(const ldns_pkt *packet)
208 return packet->_edns_udp_size;
212 ldns_pkt_edns_extended_rcode(const ldns_pkt *packet)
214 return packet->_edns_extended_rcode;
218 ldns_pkt_edns_version(const ldns_pkt *packet)
220 return packet->_edns_version;
224 ldns_pkt_edns_z(const ldns_pkt *packet)
226 return packet->_edns_z;
230 ldns_pkt_edns_do(const ldns_pkt *packet)
232 return (packet->_edns_z & LDNS_EDNS_MASK_DO_BIT);
236 ldns_pkt_set_edns_do(ldns_pkt *packet, bool value)
239 packet->_edns_z = packet->_edns_z | LDNS_EDNS_MASK_DO_BIT;
241 packet->_edns_z = packet->_edns_z & ~LDNS_EDNS_MASK_DO_BIT;
246 ldns_pkt_edns_data(const ldns_pkt *packet)
248 return packet->_edns_data;
253 ldns_pkt_rr_list_by_name(const ldns_pkt *packet,
261 if (!packet) {
265 rrs = ldns_pkt_get_section_clone(packet, sec);
290 ldns_pkt_rr_list_by_type(const ldns_pkt *packet,
298 if(!packet) {
302 rrs = ldns_pkt_get_section_clone(packet, sec);
326 ldns_pkt_rr_list_by_name_and_type(const ldns_pkt *packet,
336 if(!packet) {
340 rrs = ldns_pkt_get_section_clone(packet, sec);
389 ldns_pkt_section_count(const ldns_pkt *packet, ldns_pkt_section s)
393 return ldns_pkt_qdcount(packet);
395 return ldns_pkt_ancount(packet);
397 return ldns_pkt_nscount(packet);
399 return ldns_pkt_arcount(packet);
401 return ldns_pkt_qdcount(packet) +
402 ldns_pkt_ancount(packet) +
403 ldns_pkt_nscount(packet) +
404 ldns_pkt_arcount(packet);
406 return ldns_pkt_ancount(packet) +
407 ldns_pkt_nscount(packet) +
408 ldns_pkt_arcount(packet);
429 ldns_pkt_get_section_clone(const ldns_pkt *packet, ldns_pkt_section s)
433 return ldns_rr_list_clone(ldns_pkt_question(packet));
435 return ldns_rr_list_clone(ldns_pkt_answer(packet));
437 return ldns_rr_list_clone(ldns_pkt_authority(packet));
439 return ldns_rr_list_clone(ldns_pkt_additional(packet));
442 return ldns_pkt_all(packet);
444 return ldns_pkt_all_noquestion(packet);
456 ldns_pkt_set_id(ldns_pkt *packet, uint16_t id)
458 packet->_header->_id = id;
462 ldns_pkt_set_random_id(ldns_pkt *packet)
465 ldns_pkt_set_id(packet, rid);
470 ldns_pkt_set_qr(ldns_pkt *packet, bool qr)
472 packet->_header->_qr = qr;
476 ldns_pkt_set_aa(ldns_pkt *packet, bool aa)
478 packet->_header->_aa = aa;
482 ldns_pkt_set_tc(ldns_pkt *packet, bool tc)
484 packet->_header->_tc = tc;
488 ldns_pkt_set_rd(ldns_pkt *packet, bool rd)
490 packet->_header->_rd = rd;
518 ldns_pkt_set_cd(ldns_pkt *packet, bool cd)
520 packet->_header->_cd = cd;
524 ldns_pkt_set_ra(ldns_pkt *packet, bool ra)
526 packet->_header->_ra = ra;
530 ldns_pkt_set_ad(ldns_pkt *packet, bool ad)
532 packet->_header->_ad = ad;
536 ldns_pkt_set_opcode(ldns_pkt *packet, ldns_pkt_opcode opcode)
538 packet->_header->_opcode = opcode;
542 ldns_pkt_set_rcode(ldns_pkt *packet, uint8_t rcode)
544 packet->_header->_rcode = rcode;
548 ldns_pkt_set_qdcount(ldns_pkt *packet, uint16_t qdcount)
550 packet->_header->_qdcount = qdcount;
554 ldns_pkt_set_ancount(ldns_pkt *packet, uint16_t ancount)
556 packet->_header->_ancount = ancount;
560 ldns_pkt_set_nscount(ldns_pkt *packet, uint16_t nscount)
562 packet->_header->_nscount = nscount;
566 ldns_pkt_set_arcount(ldns_pkt *packet, uint16_t arcount)
568 packet->_header->_arcount = arcount;
572 ldns_pkt_set_querytime(ldns_pkt *packet, uint32_t time)
574 packet->_querytime = time;
578 ldns_pkt_set_answerfrom(ldns_pkt *packet, ldns_rdf *answerfrom)
580 packet->_answerfrom = answerfrom;
584 ldns_pkt_set_timestamp(ldns_pkt *packet, struct timeval timeval)
586 packet->timestamp.tv_sec = timeval.tv_sec;
587 packet->timestamp.tv_usec = timeval.tv_usec;
591 ldns_pkt_set_size(ldns_pkt *packet, size_t s)
593 packet->_size = s;
597 ldns_pkt_set_edns_udp_size(ldns_pkt *packet, uint16_t s)
599 packet->_edns_udp_size = s;
603 ldns_pkt_set_edns_extended_rcode(ldns_pkt *packet, uint8_t c)
605 packet->_edns_extended_rcode = c;
609 ldns_pkt_set_edns_version(ldns_pkt *packet, uint8_t v)
611 packet->_edns_version = v;
615 ldns_pkt_set_edns_z(ldns_pkt *packet, uint16_t z)
617 packet->_edns_z = z;
621 ldns_pkt_set_edns_data(ldns_pkt *packet, ldns_rdf *data)
623 packet->_edns_data = data;
627 ldns_pkt_set_section_count(ldns_pkt *packet, ldns_pkt_section s, uint16_t count)
631 ldns_pkt_set_qdcount(packet, count);
634 ldns_pkt_set_ancount(packet, count);
637 ldns_pkt_set_nscount(packet, count);
640 ldns_pkt_set_arcount(packet, count);
654 ldns_pkt_push_rr(ldns_pkt *packet, ldns_pkt_section section, ldns_rr *rr)
658 if (!ldns_rr_list_push_rr(ldns_pkt_question(packet), rr)) {
661 ldns_pkt_set_qdcount(packet, ldns_pkt_qdcount(packet) + 1);
664 if (!ldns_rr_list_push_rr(ldns_pkt_answer(packet), rr)) {
667 ldns_pkt_set_ancount(packet, ldns_pkt_ancount(packet) + 1);
670 if (!ldns_rr_list_push_rr(ldns_pkt_authority(packet), rr)) {
673 ldns_pkt_set_nscount(packet, ldns_pkt_nscount(packet) + 1);
676 if (!ldns_rr_list_push_rr(ldns_pkt_additional(packet), rr)) {
679 ldns_pkt_set_arcount(packet, ldns_pkt_arcount(packet) + 1);
741 ldns_pkt *packet;
742 packet = LDNS_MALLOC(ldns_pkt);
743 if (!packet) {
747 packet->_header = LDNS_MALLOC(ldns_hdr);
748 if (!packet->_header) {
749 LDNS_FREE(packet);
753 packet->_question = ldns_rr_list_new();
754 packet->_answer = ldns_rr_list_new();
755 packet->_authority = ldns_rr_list_new();
756 packet->_additional = ldns_rr_list_new();
759 ldns_pkt_set_qr(packet, false);
760 ldns_pkt_set_aa(packet, false);
761 ldns_pkt_set_tc(packet, false);
762 ldns_pkt_set_rd(packet, false);
763 ldns_pkt_set_ra(packet, false);
764 ldns_pkt_set_ad(packet, false);
765 ldns_pkt_set_cd(packet, false);
767 ldns_pkt_set_opcode(packet, LDNS_PACKET_QUERY);
768 ldns_pkt_set_rcode(packet, 0);
769 ldns_pkt_set_id(packet, 0);
770 ldns_pkt_set_size(packet, 0);
771 ldns_pkt_set_querytime(packet, 0);
772 memset(&packet->timestamp, 0, sizeof(packet->timestamp));
773 ldns_pkt_set_answerfrom(packet, NULL);
774 ldns_pkt_set_section_count(packet, LDNS_SECTION_QUESTION, 0);
775 ldns_pkt_set_section_count(packet, LDNS_SECTION_ANSWER, 0);
776 ldns_pkt_set_section_count(packet, LDNS_SECTION_AUTHORITY, 0);
777 ldns_pkt_set_section_count(packet, LDNS_SECTION_ADDITIONAL, 0);
779 ldns_pkt_set_edns_udp_size(packet, 0);
780 ldns_pkt_set_edns_extended_rcode(packet, 0);
781 ldns_pkt_set_edns_version(packet, 0);
782 ldns_pkt_set_edns_z(packet, 0);
783 ldns_pkt_set_edns_data(packet, NULL);
784 packet->_edns_present = false;
786 ldns_pkt_set_tsig(packet, NULL);
788 return packet;
792 ldns_pkt_free(ldns_pkt *packet)
794 if (packet) {
795 LDNS_FREE(packet->_header);
796 ldns_rr_list_deep_free(packet->_question);
797 ldns_rr_list_deep_free(packet->_answer);
798 ldns_rr_list_deep_free(packet->_authority);
799 ldns_rr_list_deep_free(packet->_additional);
800 ldns_rr_free(packet->_tsig_rr);
801 ldns_rdf_deep_free(packet->_edns_data);
802 ldns_rdf_deep_free(packet->_answerfrom);
803 LDNS_FREE(packet);
808 ldns_pkt_set_flags(ldns_pkt *packet, uint16_t flags)
810 if (!packet) {
814 ldns_pkt_set_qr(packet, true);
817 ldns_pkt_set_aa(packet, true);
820 ldns_pkt_set_rd(packet, true);
823 ldns_pkt_set_tc(packet, true);
826 ldns_pkt_set_cd(packet, true);
829 ldns_pkt_set_ra(packet, true);
832 ldns_pkt_set_ad(packet, true);
921 ldns_pkt *packet;
925 packet = ldns_pkt_new();
926 if (!packet) {
930 if (!ldns_pkt_set_flags(packet, flags)) {
952 ldns_pkt_push_rr(packet, LDNS_SECTION_QUESTION, question_rr);
955 ldns_pkt_free(packet);
960 ldns_pkt_push_rr(packet, LDNS_SECTION_AUTHORITY, authsoa_rr);
963 packet->_tsig_rr = NULL;
964 ldns_pkt_set_answerfrom(packet, NULL);
966 *p = packet;
969 ldns_pkt_free(packet);
1002 ldns_pkt *packet;
1005 packet = ldns_pkt_new();
1006 if (!packet) {
1010 if (!ldns_pkt_set_flags(packet, flags)) {
1016 ldns_pkt_free(packet);
1031 ldns_pkt_push_rr(packet, LDNS_SECTION_QUESTION, question_rr);
1034 ldns_pkt_push_rr(packet, LDNS_SECTION_AUTHORITY, authsoa_rr);
1037 packet->_tsig_rr = NULL;
1038 return packet;
1101 /* if we cannot determine the packet type, we say it's an