Lines Matching defs:pkt
60 static void read_input(sldns_buffer* pkt, FILE* in)
73 hex_to_buf(pkt, buf);
77 static void analyze_dname(sldns_buffer* pkt)
79 size_t oldpos = sldns_buffer_position(pkt);
82 dname_print(stdout, pkt, sldns_buffer_current(pkt));
83 len = pkt_dname_len(pkt);
85 if(sldns_buffer_position(pkt)-oldpos != len)
87 (int)(sldns_buffer_position(pkt)-oldpos));
92 static void analyze_rdata(sldns_buffer*pkt, const sldns_rr_descriptor* desc,
101 oldpos = sldns_buffer_position(pkt);
102 analyze_dname(pkt);
103 rdlen -= sldns_buffer_position(pkt)-oldpos;
108 len = sldns_buffer_current(pkt)[0] + 1;
115 sldns_buffer_skip(pkt, (ssize_t)len);
124 printf(" %2.2X", (unsigned)sldns_buffer_current(pkt)[i]);
128 sldns_buffer_skip(pkt, (ssize_t)rdlen);
132 static void analyze_rr(sldns_buffer* pkt, int q)
136 analyze_dname(pkt);
137 type = sldns_buffer_read_u16(pkt);
138 dclass = sldns_buffer_read_u16(pkt);
147 ttl = sldns_buffer_read_u32(pkt);
149 len = sldns_buffer_read_u16(pkt);
152 analyze_rdata(pkt, sldns_rr_descript(type), len);
153 else sldns_buffer_skip(pkt, (ssize_t)len);
157 /** analyse pkt */
158 static void analyze(sldns_buffer* pkt)
162 printf("packet length %d\n", (int)sldns_buffer_limit(pkt));
163 if(sldns_buffer_limit(pkt) < 12) return;
165 i = sldns_buffer_read_u16(pkt);
167 f = sldns_buffer_read_u16(pkt);
169 qd = sldns_buffer_read_u16(pkt);
171 an = sldns_buffer_read_u16(pkt);
173 ns = sldns_buffer_read_u16(pkt);
175 ar = sldns_buffer_read_u16(pkt);
179 while(sldns_buffer_remaining(pkt) > 0) {
187 analyze_rr(pkt, rrnum < (int)qd);
195 sldns_buffer* pkt;
204 pkt = sldns_buffer_new(65553);
205 if(!pkt) fatal_exit("out of memory");
207 read_input(pkt, stdin);
208 analyze(pkt);
210 sldns_buffer_free(pkt);