Lines Matching defs:d

316 int sldns_wire2str_pkt_buf(uint8_t* d, size_t dlen, char* s, size_t slen)
319 return sldns_wire2str_pkt_scan(&d, &dlen, &s, &slen);
322 int sldns_wire2str_rr_buf(uint8_t* d, size_t dlen, char* s, size_t slen)
325 return sldns_wire2str_rr_scan(&d, &dlen, &s, &slen, NULL, 0, NULL);
328 int sldns_wire2str_rrquestion_buf(uint8_t* d, size_t dlen, char* s, size_t slen)
331 return sldns_wire2str_rrquestion_scan(&d, &dlen, &s, &slen, NULL, 0, NULL);
342 int sldns_wire2str_rr_unknown_buf(uint8_t* d, size_t dlen, char* s, size_t slen)
345 return sldns_wire2str_rr_unknown_scan(&d, &dlen, &s, &slen, NULL, 0, NULL);
380 int sldns_wire2str_dname_buf(uint8_t* d, size_t dlen, char* s, size_t slen)
383 return sldns_wire2str_dname_scan(&d, &dlen, &s, &slen, NULL, 0, NULL);
425 static int print_remainder_hex(const char* pref, uint8_t** d, size_t* dlen,
430 w += print_hex_buf(s, slen, *d, *dlen);
431 *d += *dlen;
436 int sldns_wire2str_pkt_scan(uint8_t** d, size_t* dlen, char** s, size_t* slen)
440 uint8_t* pkt = *d;
443 qdcount = (unsigned)LDNS_QDCOUNT(*d);
444 ancount = (unsigned)LDNS_ANCOUNT(*d);
445 nscount = (unsigned)LDNS_NSCOUNT(*d);
446 arcount = (unsigned)LDNS_ARCOUNT(*d);
450 w += sldns_wire2str_header_scan(d, dlen, s, slen);
454 w += sldns_wire2str_rrquestion_scan(d, dlen, s, slen,
461 w += sldns_wire2str_rr_scan(d, dlen, s, slen, pkt, pktlen, &comprloop);
467 w += sldns_wire2str_rr_scan(d, dlen, s, slen, pkt, pktlen, &comprloop);
473 w += sldns_wire2str_rr_scan(d, dlen, s, slen, pkt, pktlen, &comprloop);
477 w += sldns_str_print(s, slen, ";; MSG SIZE rcvd: %d\n", (int)pktlen);
480 d, dlen, s, slen);
487 static int sldns_rr_tcttl_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
495 d, dl, s, sl);
497 t = sldns_read_uint16(*d);
498 c = sldns_read_uint16((*d)+2);
499 (*d)+=4;
507 "; Error malformed ttl 0x", d, dl, s, sl);
509 t = sldns_read_uint16(*d);
510 c = sldns_read_uint16((*d)+2);
511 ttl = sldns_read_uint32((*d)+4);
512 (*d)+=8;
521 int sldns_wire2str_rr_scan(uint8_t** d, size_t* dlen, char** s, size_t* slen,
525 uint8_t* rr = *d;
529 if(*dlen >= 3 && (*d)[0]==0 &&
530 sldns_read_uint16((*d)+1)==LDNS_RR_TYPE_OPT) {
532 return sldns_wire2str_edns_scan(d, dlen, s, slen, pkt, pktlen);
537 w += sldns_wire2str_dname_scan(d, dlen, s, slen, pkt, pktlen, comprloop);
542 uint16_t t = sldns_read_uint16(*d);
543 uint16_t c = sldns_read_uint16((*d)+2);
544 (*d)+=4;
555 w += print_remainder_hex(";Error partial RR 0x", d, dlen, s, slen);
558 rrtype = sldns_read_uint16(*d);
559 w += sldns_rr_tcttl_scan(d, dlen, s, slen);
567 d, dlen, s, slen);
570 rdlen = sldns_read_uint16(*d);
572 (*d)+=2;
578 w += print_remainder_hex(";Error partial rdata 0x", d, dlen, s, slen);
581 w += sldns_wire2str_rdata_scan(d, &rdlen, s, slen, rrtype, pkt, pktlen,
592 int sldns_wire2str_rrquestion_scan(uint8_t** d, size_t* dlen, char** s,
597 w += sldns_wire2str_dname_scan(d, dlen, s, slen, pkt, pktlen, comprloop);
602 w += print_remainder_hex("Error malformed 0x", d, dlen, s, slen);
605 t = sldns_read_uint16(*d);
606 c = sldns_read_uint16((*d)+2);
607 (*d)+=4;
616 int sldns_wire2str_rr_unknown_scan(uint8_t** d, size_t* dlen, char** s,
621 w += sldns_wire2str_dname_scan(d, dlen, s, slen, pkt, pktlen, comprloop);
623 w += sldns_rr_tcttl_scan(d, dlen, s, slen);
629 d, dlen, s, slen);
632 rdlen = sldns_read_uint16(*d);
634 (*d) += 2;
640 w += print_remainder_hex(";Error partial rdata 0x", d, dlen, s, slen);
643 w += sldns_wire2str_rdata_unknown_scan(d, &rdlen, s, slen);
698 return sldns_str_print(s, slen, " ;{id = %d}",
732 int sldns_wire2str_header_scan(uint8_t** d, size_t* dlen, char** s,
741 return w+print_remainder_hex("Error header too short 0x", d, dlen, s, slen);
742 opcode = (int)LDNS_OPCODE_WIRE(*d);
743 rcode = (int)LDNS_RCODE_WIRE(*d);
750 w += sldns_str_print(s, slen, "id: %d\n", (int)LDNS_ID_WIRE(*d));
752 if(LDNS_QR_WIRE(*d)) w += sldns_str_print(s, slen, " qr");
753 if(LDNS_AA_WIRE(*d)) w += sldns_str_print(s, slen, " aa");
754 if(LDNS_TC_WIRE(*d)) w += sldns_str_print(s, slen, " tc");
755 if(LDNS_RD_WIRE(*d)) w += sldns_str_print(s, slen, " rd");
756 if(LDNS_CD_WIRE(*d)) w += sldns_str_print(s, slen, " cd");
757 if(LDNS_RA_WIRE(*d)) w += sldns_str_print(s, slen, " ra");
758 if(LDNS_AD_WIRE(*d)) w += sldns_str_print(s, slen, " ad");
759 if(LDNS_Z_WIRE(*d)) w += sldns_str_print(s, slen, " z");
762 return w+print_remainder_hex("Error header too short 0x", d, dlen, s, slen);
763 w += sldns_str_print(s, slen, "QUERY: %d, ", (int)LDNS_QDCOUNT(*d));
764 w += sldns_str_print(s, slen, "ANSWER: %d, ", (int)LDNS_ANCOUNT(*d));
765 w += sldns_str_print(s, slen, "AUTHORITY: %d, ", (int)LDNS_NSCOUNT(*d));
766 w += sldns_str_print(s, slen, "ADDITIONAL: %d ", (int)LDNS_ARCOUNT(*d));
767 *d += LDNS_HEADER_SIZE;
772 int sldns_wire2str_rdata_scan(uint8_t** d, size_t* dlen, char** s,
777 uint8_t* origd = *d;
786 return sldns_wire2str_rdata_unknown_scan(d, dlen, s, slen);
799 n = sldns_wire2str_rdf_scan(d, dlen, s, slen, rdftype,
804 *d = origd; *s = origs;
806 return sldns_wire2str_rdata_unknown_scan(d, dlen,
817 int sldns_wire2str_rdata_unknown_scan(uint8_t** d, size_t* dlen, char** s,
828 w += print_hex_buf(s, slen, *d, *dlen);
829 (*d) += *dlen;
850 int sldns_wire2str_dname_scan(uint8_t** d, size_t* dlen, char** s, size_t* slen,
855 uint8_t* pos = *d;
868 (*d)++;
875 if(in_buf) { (*d)++; (*dlen)--; }
888 if(in_buf) { (*d)++; (*dlen)--; }
929 (*d) += labellen;
936 if(in_buf && *dlen > 0) { (*d)++; (*dlen)--; }
990 int sldns_wire2str_class_scan(uint8_t** d, size_t* dlen, char** s, size_t* slen)
994 if(*dlen < 2) return print_remainder_hex("Error malformed 0x", d, dlen, s, slen);
995 c = sldns_read_uint16(*d);
996 (*d)+=2;
1001 int sldns_wire2str_type_scan(uint8_t** d, size_t* dlen, char** s, size_t* slen)
1005 if(*dlen < 2) return print_remainder_hex("Error malformed 0x", d, dlen, s, slen);
1006 t = sldns_read_uint16(*d);
1007 (*d)+=2;
1012 int sldns_wire2str_ttl_scan(uint8_t** d, size_t* dlen, char** s, size_t* slen)
1016 if(*dlen < 4) return print_remainder_hex("Error malformed 0x", d, dlen, s, slen);
1017 ttl = sldns_read_uint32(*d);
1018 (*d)+=4;
1030 return sldns_str_print(s, slen, "key%d", (int)svcparamkey);
1041 w = sldns_str_print(s, slen, "=%d", (int)sldns_read_uint16(data));
1185 int sldns_wire2str_svcparam_scan(uint8_t** d, size_t* dlen, char** s, size_t* slen)
1196 svcparamkey = sldns_read_uint16(*d);
1197 data_len = sldns_read_uint16(*d+2);
1198 *d += 4;
1224 r = sldns_wire2str_svcparam_port2str(s, slen, data_len, *d);
1227 r = sldns_wire2str_svcparam_ipv4hint2str(s, slen, data_len, *d);
1230 r = sldns_wire2str_svcparam_ipv6hint2str(s, slen, data_len, *d);
1233 r = sldns_wire2str_svcparam_mandatory2str(s, slen, data_len, *d);
1238 r = sldns_wire2str_svcparam_alpn2str(s, slen, data_len, *d);
1241 r = sldns_wire2str_svcparam_ech2str(s, slen, data_len, *d);
1250 ch = (*d)[i];
1269 *d += data_len;
1274 int sldns_wire2str_rdf_scan(uint8_t** d, size_t* dlen, char** s, size_t* slen,
1282 return sldns_wire2str_dname_scan(d, dlen, s, slen, pkt, pktlen, comprloop);
1284 return sldns_wire2str_int8_scan(d, dlen, s, slen);
1286 return sldns_wire2str_int16_scan(d, dlen, s, slen);
1288 return sldns_wire2str_int32_scan(d, dlen, s, slen);
1290 return sldns_wire2str_period_scan(d, dlen, s, slen);
1292 return sldns_wire2str_tsigtime_scan(d, dlen, s, slen);
1294 return sldns_wire2str_a_scan(d, dlen, s, slen);
1296 return sldns_wire2str_aaaa_scan(d, dlen, s, slen);
1298 return sldns_wire2str_str_scan(d, dlen, s, slen);
1300 return sldns_wire2str_apl_scan(d, dlen, s, slen);
1302 return sldns_wire2str_b32_ext_scan(d, dlen, s, slen);
1304 return sldns_wire2str_b64_scan(d, dlen, s, slen);
1306 return sldns_wire2str_hex_scan(d, dlen, s, slen);
1308 return sldns_wire2str_nsec_scan(d, dlen, s, slen);
1310 return sldns_wire2str_nsec3_salt_scan(d, dlen, s, slen);
1312 return sldns_wire2str_type_scan(d, dlen, s, slen);
1314 return sldns_wire2str_class_scan(d, dlen, s, slen);
1316 return sldns_wire2str_cert_alg_scan(d, dlen, s, slen);
1318 return sldns_wire2str_alg_scan(d, dlen, s, slen);
1320 return sldns_wire2str_unknown_scan(d, dlen, s, slen);
1322 return sldns_wire2str_time_scan(d, dlen, s, slen);
1324 return sldns_wire2str_loc_scan(d, dlen, s, slen);
1327 return sldns_wire2str_wks_scan(d, dlen, s, slen);
1329 return sldns_wire2str_nsap_scan(d, dlen, s, slen);
1331 return sldns_wire2str_atma_scan(d, dlen, s, slen);
1333 return sldns_wire2str_ipseckey_scan(d, dlen, s, slen, pkt,
1336 return sldns_wire2str_hip_scan(d, dlen, s, slen);
1338 return sldns_wire2str_int16_data_scan(d, dlen, s, slen);
1340 return sldns_wire2str_b32_ext_scan(d, dlen, s, slen);
1342 return sldns_wire2str_ilnp64_scan(d, dlen, s, slen);
1344 return sldns_wire2str_eui48_scan(d, dlen, s, slen);
1346 return sldns_wire2str_eui64_scan(d, dlen, s, slen);
1348 return sldns_wire2str_tag_scan(d, dlen, s, slen);
1350 return sldns_wire2str_long_str_scan(d, dlen, s, slen);
1352 return sldns_wire2str_svcparam_scan(d, dlen, s, slen);
1354 return sldns_wire2str_tsigerror_scan(d, dlen, s, slen);
1360 int sldns_wire2str_int8_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1364 w = sldns_str_print(s, sl, "%u", (unsigned)**d);
1365 (*d)++;
1370 int sldns_wire2str_int16_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1374 w = sldns_str_print(s, sl, "%lu", (unsigned long)sldns_read_uint16(*d));
1375 (*d)+=2;
1380 int sldns_wire2str_int32_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1384 w = sldns_str_print(s, sl, "%lu", (unsigned long)sldns_read_uint32(*d));
1385 (*d)+=4;
1390 int sldns_wire2str_period_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1394 w = sldns_str_print(s, sl, "%u", (unsigned)sldns_read_uint32(*d));
1395 (*d)+=4;
1400 int sldns_wire2str_tsigtime_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1407 d0 = (*d)[0]; /* cast to uint64 for shift operations */
1408 d1 = (*d)[1];
1409 d2 = (*d)[2];
1410 d3 = (*d)[3];
1411 d4 = (*d)[4];
1412 d5 = (*d)[5];
1419 (*d)+=6;
1424 int sldns_wire2str_a_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1429 if(!inet_ntop(AF_INET, *d, buf, (socklen_t)sizeof(buf)))
1432 (*d)+=4;
1437 int sldns_wire2str_aaaa_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1443 if(!inet_ntop(AF_INET6, *d, buf, (socklen_t)sizeof(buf)))
1446 (*d)+=16;
1470 int sldns_wire2str_str_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1475 len = **d;
1477 (*d)++;
1481 w += str_char_print(s, sl, (*d)[i]);
1483 (*d)+=len;
1488 int sldns_wire2str_apl_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1494 family = sldns_read_uint16(*d);
1495 prefix = (*d)[2];
1496 negation = ((*d)[3] & LDNS_APL_NEGATION);
1497 adflength = ((*d)[3] & LDNS_APL_MASK);
1511 w += sldns_str_print(s, sl, "%d", (*d)[4+i]);
1521 w += sldns_str_print(s, sl, "%02x", (*d)[4+i]);
1526 (*d) += 4+adflength;
1531 int sldns_wire2str_b32_ext_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1536 datalen = (*d)[0];
1540 (*d) += datalen+1;
1545 sldns_b32_ntop_extended_hex((*d)+1, datalen, *s, *sl);
1546 (*d) += datalen+1;
1554 static int sldns_wire2str_b64_scan_num(uint8_t** d, size_t* dl, char** s,
1560 (*d) += num;
1565 sldns_b64_ntop(*d, num, *s, *sl);
1566 (*d) += num;
1573 int sldns_wire2str_b64_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1578 return sldns_wire2str_b64_scan_num(d, dl, s, sl, *dl);
1581 int sldns_wire2str_hex_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1586 return print_remainder_hex("", d, dl, s, sl);
1589 int sldns_wire2str_nsec_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1591 uint8_t* p = *d;
1607 p = *d;
1630 (*d) += *dl;
1635 int sldns_wire2str_nsec3_salt_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1640 salt_len = (size_t)(*d)[0];
1642 (*d)++;
1647 w = print_hex_buf(s, sl, *d, salt_len);
1649 (*d)+=salt_len;
1653 int sldns_wire2str_cert_alg_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1658 data = (int)sldns_read_uint16(*d);
1662 else w = sldns_str_print(s, sl, "%d", data);
1664 (*d)+=2;
1668 int sldns_wire2str_alg_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1672 return sldns_wire2str_int8_scan(d, dl, s, sl);
1675 int sldns_wire2str_unknown_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1677 return sldns_wire2str_rdata_unknown_scan(d, dl, s, sl);
1680 int sldns_wire2str_time_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1688 t = sldns_read_uint32(*d);
1691 strftime(date_buf, 15, "%Y%m%d%H%M%S", &tm)) {
1692 (*d) += 4;
1711 w += sldns_str_print(str, sl, "%d", (int)mantissa);
1717 int sldns_wire2str_loc_scan(uint8_t** d, size_t* dl, char** str, size_t* sl)
1736 version = (*d)[0];
1738 return sldns_wire2str_hex_scan(d, dl, str, sl);
1739 size = (*d)[1];
1740 horizontal_precision = (*d)[2];
1741 vertical_precision = (*d)[3];
1743 latitude = sldns_read_uint32((*d)+4);
1744 longitude = sldns_read_uint32((*d)+8);
1745 altitude = sldns_read_uint32((*d)+12);
1798 (*d)+=16;
1803 int sldns_wire2str_wks_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1819 protocol_nr = (*d)[0];
1820 (*d)++;
1835 if((*d)[i] == 0)
1838 if(!(((*d)[i])&(0x80>>bit)))
1861 (*d) += *dl;
1866 int sldns_wire2str_nsap_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1868 return print_remainder_hex("0x", d, dl, s, sl);
1871 int sldns_wire2str_atma_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1873 return print_remainder_hex("", d, dl, s, sl);
1877 static int sldns_wire2str_ipseckey_scan_internal(uint8_t** d, size_t* dl,
1885 precedence = (*d)[0];
1886 gateway_type = (*d)[1];
1887 algorithm = (*d)[2];
1890 (*d)+=3;
1892 w += sldns_str_print(s, sl, "%d %d %d ",
1900 w += sldns_wire2str_a_scan(d, dl, s, sl);
1903 w += sldns_wire2str_aaaa_scan(d, dl, s, sl);
1906 w += sldns_wire2str_dname_scan(d, dl, s, sl, pkt, pktlen, comprloop);
1915 w += sldns_wire2str_b64_scan_num(d, dl, s, sl, *dl);
1919 int sldns_wire2str_ipseckey_scan(uint8_t** d, size_t* dl, char** s, size_t* sl,
1922 uint8_t* od = *d;
1925 int w=sldns_wire2str_ipseckey_scan_internal(d, dl, s, sl, pkt, pktlen, comprloop);
1927 *d = od;
1936 int sldns_wire2str_hip_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1945 hitlen = (*d)[0];
1946 algo = (*d)[1];
1947 pklen = sldns_read_uint16((*d)+2);
1953 w += print_hex_buf(s, sl, (*d)+4, hitlen);
1955 (*d)+=4+hitlen;
1957 w += sldns_wire2str_b64_scan_num(d, dl, s, sl, pklen);
1961 int sldns_wire2str_int16_data_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1967 n = sldns_read_uint16(*d);
1970 (*d)+=2;
1976 w += sldns_wire2str_b64_scan_num(d, dl, s, sl, n);
1980 int sldns_wire2str_nsec3_next_owner_scan(uint8_t** d, size_t* dl, char** s,
1983 return sldns_wire2str_b32_ext_scan(d, dl, s, sl);
1986 int sldns_wire2str_ilnp64_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
1992 sldns_read_uint16(*d), sldns_read_uint16((*d)+2),
1993 sldns_read_uint16((*d)+4), sldns_read_uint16((*d)+6));
1994 (*d)+=8;
1999 int sldns_wire2str_eui48_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
2005 (*d)[0], (*d)[1], (*d)[2], (*d)[3], (*d)[4], (*d)[5]);
2006 (*d)+=6;
2011 int sldns_wire2str_eui64_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
2017 (*d)[0], (*d)[1], (*d)[2], (*d)[3], (*d)[4], (*d)[5],
2018 (*d)[6], (*d)[7]);
2019 (*d)+=8;
2024 int sldns_wire2str_tag_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
2030 n = (size_t)((*d)[0]);
2034 if(!isalnum((unsigned char)(*d)[i+1]))
2037 w += sldns_str_print(s, sl, "%c", (char)(*d)[i+1]);
2038 (*d)+=n+1;
2043 int sldns_wire2str_long_str_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
2049 w += str_char_print(s, sl, (*d)[i]);
2051 (*d)+=*dl;
2056 int sldns_wire2str_tsigerror_scan(uint8_t** d, size_t* dl, char** s, size_t* sl)
2061 data = (int)sldns_read_uint16(*d);
2065 else w = sldns_str_print(s, sl, "%d", data);
2067 (*d)+=2;
2098 w += sldns_str_print(s, sl, "v%d ", (int)version);
2101 else w += sldns_str_print(s, sl, "opcode %d", (int)llq_opcode);
2104 else w += sldns_str_print(s, sl, " error %d", (int)error_code);
2160 else w += sldns_str_print(s, sl, " %d", (int)data[i]);
2175 else w += sldns_str_print(s, sl, " %d", (int)data[i]);
2188 else w += sldns_str_print(s, sl, " %d", (int)data[i]);
2249 w += sldns_str_print(s, sl, "family %d ",
2253 w += sldns_str_print(s, sl, "/%d scope /%d", (int)source, (int)scope);
2295 else w += sldns_str_print(s, sl, "%d", (int)ede_code);
2441 * and or'd with the original rcode */
2446 w += sldns_str_print(str, str_len, " ; ext-rcode: %d", rc);