unbound: sldns/wire2str.c File Reference

unbound 0.1

Functions | Variables
wire2str.c File Reference

Contains functions to translate the wireformat to text representation, as well as functions to print them. More...

`#include "config.h"`
`#include "sldns/wire2str.h"`
`#include "sldns/str2wire.h"`
`#include "sldns/rrdef.h"`
`#include "sldns/pkthdr.h"`
`#include "sldns/parseutil.h"`
`#include "sldns/sbuffer.h"`
`#include "sldns/keyraw.h"`
`#include "util/data/dname.h"`
`#include <sys/time.h>`
`#include <stdarg.h>`
`#include <ctype.h>`

## Functions
char * | sldns_wire2str_pkt (uint8_t *data, size_t len)
| Convert wireformat packet to a string representation.
char * | sldns_wire2str_rr (uint8_t *rr, size_t len)
| Convert wireformat RR to a string representation.
char * | sldns_wire2str_type (uint16_t rrtype)
| Convert wire RR type to a string, 'MX', 'TYPE1234'...
char * | sldns_wire2str_class (uint16_t rrclass)
| Convert wire RR class to a string, 'IN', 'CLASS1'.
char * | sldns_wire2str_dname (uint8_t *dname, size_t dname_len)
| Convert wire dname to a string.
char * | sldns_wire2str_rcode (int rcode)
| Convert wire packet rcode to a string, 'NOERROR', 'NXDOMAIN'...
int | sldns_wire2str_pkt_buf (uint8_t *d, size_t dlen, char *s, size_t slen)
| Convert wireformat packet to a string representation with user buffer It appends every RR with default comments.
int | sldns_wire2str_rr_buf (uint8_t *d, size_t dlen, char *s, size_t slen)
| Convert RR to string presentation format, on one line.
int | sldns_wire2str_rrquestion_buf (uint8_t *d, size_t dlen, char *s, size_t slen)
| Convert question RR to string presentation format, on one line.
int | sldns_wire2str_rdata_buf (uint8_t *rdata, size_t rdata_len, char *str, size_t str_len, uint16_t rrtype)
| Convert RDATA to string presentation format, on one line.
int | sldns_wire2str_rr_unknown_buf (uint8_t *d, size_t dlen, char *s, size_t slen)
| 3597 printout of an RR in unknown rr format.
int | sldns_wire2str_rr_comment_buf (uint8_t *rr, size_t rrlen, size_t dname_len, char *s, size_t slen)
| This creates the comment to print after the RR.
int | sldns_wire2str_type_buf (uint16_t rrtype, char *s, size_t slen)
| Convert wire RR type to a string, 'MX', 'TYPE12'.
int | sldns_wire2str_class_buf (uint16_t rrclass, char *s, size_t slen)
| Convert wire RR class to a string, 'IN', 'CLASS12'.
int | sldns_wire2str_rcode_buf (int rcode, char *s, size_t slen)
| Convert wire RR rcode to a string, 'NOERROR', 'NXDOMAIN'.
int | sldns_wire2str_opcode_buf (int opcode, char *s, size_t slen)
| Convert host format opcode to a string.
int | sldns_wire2str_dname_buf (uint8_t *d, size_t dlen, char *s, size_t slen)
| Convert wire dname to a string, "example.com.".
int | sldns_str_vprint (char **str, size_t *slen, const char *format, va_list args)
| Print to string, move string along for next content.
int | sldns_str_print (char **str, size_t *slen, const char *format,...)
static int | print_hex_buf (char **s, size_t *slen, uint8_t *buf, size_t len)
| print hex format into text buffer for specified length
static int | print_remainder_hex (const char *pref, uint8_t **d, size_t *dlen, char **s, size_t *slen)
| print remainder of buffer in hex format with prefixed text
int | sldns_wire2str_pkt_scan (uint8_t **d, size_t *dlen, char **s, size_t *slen)
| Scan wireformat packet to a string representation with user buffer It appends every RR with default comments.
static int | sldns_rr_tcttl_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| scan type, class and ttl and printout, for rr
int | sldns_wire2str_rr_scan (uint8_t **d, size_t *dlen, char **s, size_t *slen, uint8_t *pkt, size_t pktlen, int *comprloop)
| Scan wireformat rr to string, with user buffers.
int | sldns_wire2str_rrquestion_scan (uint8_t **d, size_t *dlen, char **s, size_t *slen, uint8_t *pkt, size_t pktlen, int *comprloop)
| Scan wireformat question rr to string, with user buffers.
int | sldns_wire2str_rr_unknown_scan (uint8_t **d, size_t *dlen, char **s, size_t *slen, uint8_t *pkt, size_t pktlen, int *comprloop)
| Scan wireformat RR to string in unknown RR format, with user buffers.
static int | rr_comment_dnskey (char **s, size_t *slen, uint8_t *rr, size_t rrlen, size_t dname_off)
| print rr comment for type DNSKEY
static int | rr_comment_rrsig (char **s, size_t *slen, uint8_t *rr, size_t rrlen, size_t dname_off)
| print rr comment for type RRSIG
static int | rr_comment_nsec3 (char **s, size_t *slen, uint8_t *rr, size_t rrlen, size_t dname_off)
| print rr comment for type NSEC3
int | sldns_wire2str_rr_comment_print (char **s, size_t *slen, uint8_t *rr, size_t rrlen, size_t dname_off, uint16_t rrtype)
| Print to string the RR-information comment in default format, with user buffers.
int | sldns_wire2str_header_scan (uint8_t **d, size_t *dlen, char **s, size_t *slen)
| Scan wireformat packet header to string, with user buffers.
int | sldns_wire2str_rdata_scan (uint8_t **d, size_t *dlen, char **s, size_t *slen, uint16_t rrtype, uint8_t *pkt, size_t pktlen, int *comprloop)
| Scan wireformat rdata to string, with user buffers.
int | sldns_wire2str_rdata_unknown_scan (uint8_t **d, size_t *dlen, char **s, size_t *slen)
| Scan wireformat rdata to string in unknown format, with user buffers.
static int | dname_char_print (char **s, size_t *slen, uint8_t c)
| print and escape one character for a domain dname
int | sldns_wire2str_dname_scan (uint8_t **d, size_t *dlen, char **s, size_t *slen, uint8_t *pkt, size_t pktlen, int *comprloop)
| Scan wireformat domain name to string, with user buffers.
int | sldns_wire2str_opcode_print (char **s, size_t *slen, int opcode)
| Print host format opcode to string.
int | sldns_wire2str_rcode_print (char **s, size_t *slen, int rcode)
| Print host format rcode to string.
int | sldns_wire2str_class_print (char **s, size_t *slen, uint16_t rrclass)
| Print host format rr class to string.
int | sldns_wire2str_type_print (char **s, size_t *slen, uint16_t rrtype)
| Print host format rr type to string.
int | sldns_wire2str_edns_option_code_print (char **s, size_t *slen, uint16_t opcode)
| Print host format EDNS0 option to string.
int | sldns_wire2str_class_scan (uint8_t **d, size_t *dlen, char **s, size_t *slen)
| Scan wireformat rr class to string, with user buffers.
int | sldns_wire2str_type_scan (uint8_t **d, size_t *dlen, char **s, size_t *slen)
| Scan wireformat rr type to string, with user buffers.
int | sldns_wire2str_ttl_scan (uint8_t **d, size_t *dlen, char **s, size_t *slen)
| Scan wireformat rr ttl to string, with user buffers.
static int | sldns_print_svcparamkey (char **s, size_t *slen, uint16_t svcparamkey)
static int | sldns_wire2str_svcparam_port2str (char **s, size_t *slen, uint16_t data_len, uint8_t *data)
static int | sldns_wire2str_svcparam_ipv4hint2str (char **s, size_t *slen, uint16_t data_len, uint8_t *data)
static int | sldns_wire2str_svcparam_ipv6hint2str (char **s, size_t *slen, uint16_t data_len, uint8_t *data)
static int | sldns_wire2str_svcparam_mandatory2str (char **s, size_t *slen, uint16_t data_len, uint8_t *data)
static int | sldns_wire2str_svcparam_alpn2str (char **s, size_t *slen, uint16_t data_len, uint8_t *data)
static int | sldns_wire2str_svcparam_ech2str (char **s, size_t *slen, uint16_t data_len, uint8_t *data)
int | sldns_wire2str_svcparam_scan (uint8_t **d, size_t *dlen, char **s, size_t *slen)
| Convert wire SVCB to a string with user buffer.
int | sldns_wire2str_rdf_scan (uint8_t **d, size_t *dlen, char **s, size_t *slen, int rdftype, uint8_t *pkt, size_t pktlen, int *comprloop)
| Scan wireformat rdf field to string, with user buffers.
int | sldns_wire2str_int8_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat int8 field to string, with user buffers.
int | sldns_wire2str_int16_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat int16 field to string, with user buffers.
int | sldns_wire2str_int32_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat int32 field to string, with user buffers.
int | sldns_wire2str_period_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat period field to string, with user buffers.
int | sldns_wire2str_tsigtime_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat tsigtime field to string, with user buffers.
int | sldns_wire2str_a_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat ip4 A field to string, with user buffers.
int | sldns_wire2str_aaaa_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat ip6 AAAA field to string, with user buffers.
static int | str_char_print (char **s, size_t *sl, uint8_t c)
| printout escaped TYPE_STR character
int | sldns_wire2str_str_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat str field to string, with user buffers.
int | sldns_wire2str_apl_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat apl field to string, with user buffers.
int | sldns_wire2str_b32_ext_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat b32_ext field to string, with user buffers.
static int | sldns_wire2str_b64_scan_num (uint8_t **d, size_t *dl, char **s, size_t *sl, size_t num)
| scan number of bytes from wire into b64 presentation format
int | sldns_wire2str_b64_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat b64 field to string, with user buffers.
int | sldns_wire2str_hex_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat hex field to string, with user buffers.
int | sldns_wire2str_nsec_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat nsec bitmap field to string, with user buffers.
int | sldns_wire2str_nsec3_salt_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat nsec3_salt field to string, with user buffers.
int | sldns_wire2str_cert_alg_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat cert_alg field to string, with user buffers.
int | sldns_wire2str_alg_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat alg field to string, with user buffers.
int | sldns_wire2str_unknown_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat type unknown field to string, with user buffers.
int | sldns_wire2str_time_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat time field to string, with user buffers.
static int | loc_cm_print (char **str, size_t *sl, uint8_t mantissa, uint8_t exponent)
int | sldns_wire2str_loc_scan (uint8_t **d, size_t *dl, char **str, size_t *sl)
| Scan wireformat LOC field to string, with user buffers.
int | sldns_wire2str_wks_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat WKS field to string, with user buffers.
int | sldns_wire2str_nsap_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat NSAP field to string, with user buffers.
int | sldns_wire2str_atma_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat ATMA field to string, with user buffers.
static int | sldns_wire2str_ipseckey_scan_internal (uint8_t **d, size_t *dl, char **s, size_t *sl, uint8_t *pkt, size_t pktlen, int *comprloop)
int | sldns_wire2str_ipseckey_scan (uint8_t **d, size_t *dl, char **s, size_t *sl, uint8_t *pkt, size_t pktlen, int *comprloop)
| Scan wireformat IPSECKEY field to string, with user buffers.
int | sldns_wire2str_hip_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat HIP (algo, HIT, pubkey) field to string, with user buffers.
int | sldns_wire2str_int16_data_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat int16_data field to string, with user buffers.
int | sldns_wire2str_nsec3_next_owner_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat nsec3_next_owner field to string, with user buffers.
int | sldns_wire2str_ilnp64_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat ILNP64 field to string, with user buffers.
int | sldns_wire2str_eui48_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat EUI48 field to string, with user buffers.
int | sldns_wire2str_eui64_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat EUI64 field to string, with user buffers.
int | sldns_wire2str_tag_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat TAG field to string, with user buffers.
int | sldns_wire2str_long_str_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat long_str field to string, with user buffers.
int | sldns_wire2str_tsigerror_scan (uint8_t **d, size_t *dl, char **s, size_t *sl)
| Scan wireformat tsigerror field to string, with user buffers.
int | sldns_wire2str_edns_llq_print (char **s, size_t *sl, uint8_t *data, size_t len)
| Print EDNS LLQ option data to string.
int | sldns_wire2str_edns_ul_print (char **s, size_t *sl, uint8_t *data, size_t len)
| Print EDNS UL option data to string.
int | sldns_wire2str_edns_nsid_print (char **s, size_t *sl, uint8_t *data, size_t len)
| Print EDNS NSID option data to string.
int | sldns_wire2str_edns_dau_print (char **s, size_t *sl, uint8_t *data, size_t len)
| Print EDNS DAU option data to string.
int | sldns_wire2str_edns_dhu_print (char **s, size_t *sl, uint8_t *data, size_t len)
| Print EDNS DHU option data to string.
int | sldns_wire2str_edns_n3u_print (char **s, size_t *sl, uint8_t *data, size_t len)
| Print EDNS N3U option data to string.
int | sldns_wire2str_edns_subnet_print (char **s, size_t *sl, uint8_t *data, size_t len)
| Print EDNS SUBNET option data to string.
static int | sldns_wire2str_edns_keepalive_print (char **s, size_t *sl, uint8_t *data, size_t len)
int | sldns_wire2str_edns_ede_print (char **s, size_t *sl, uint8_t *data, size_t len)
| Print EDNS EDE option data to string.
int | sldns_wire2str_edns_option_print (char **s, size_t *sl, uint16_t option_code, uint8_t *optdata, size_t optlen)
| Print an EDNS option as OPT: VALUE.
static int | print_edns_opts (char **s, size_t *sl, uint8_t *rdata, size_t rdatalen)
| print the edns options to string
int | sldns_wire2str_edns_scan (uint8_t **data, size_t *data_len, char **str, size_t *str_len, uint8_t *pkt, size_t pktlen)
| Scan wireformat EDNS OPT to string, with user buffers.

## Variables
static sldns_lookup_table | sldns_algorithms_data []
sldns_lookup_table * | sldns_algorithms = sldns_algorithms_data
| Taken from RFC 2535, section 7.
static sldns_lookup_table | sldns_hashes_data []
sldns_lookup_table * | sldns_hashes = sldns_hashes_data
| DS record hash algorithms.
static sldns_lookup_table | sldns_cert_algorithms_data []
sldns_lookup_table * | sldns_cert_algorithms = sldns_cert_algorithms_data
| Taken from RFC 2538, section 2.1.
static sldns_lookup_table | sldns_rcodes_data []
sldns_lookup_table * | sldns_rcodes = sldns_rcodes_data
| Response codes.
static sldns_lookup_table | sldns_opcodes_data []
sldns_lookup_table * | sldns_opcodes = sldns_opcodes_data
| Operation codes.
static sldns_lookup_table | sldns_wireparse_errors_data []
sldns_lookup_table * | sldns_wireparse_errors = sldns_wireparse_errors_data
| error string from wireparse
static sldns_lookup_table | sldns_edns_flags_data []
sldns_lookup_table * | sldns_edns_flags = sldns_edns_flags_data
| EDNS flags.
static sldns_lookup_table | sldns_edns_options_data []
sldns_lookup_table * | sldns_edns_options = sldns_edns_options_data
| EDNS option codes.
static sldns_lookup_table | sldns_edns_ede_codes_data []
sldns_lookup_table * | sldns_edns_ede_codes = sldns_edns_ede_codes_data
| EDNS EDE codes.
static sldns_lookup_table | sldns_tsig_errors_data []
sldns_lookup_table * | sldns_tsig_errors = sldns_tsig_errors_data
| tsig errors are the rcodes with extra (higher) values
const char * | svcparamkey_strs []

## Detailed Description

Contains functions to translate the wireformat to text representation, as well as functions to print them.

## Function Documentation

## ◆ sldns_wire2str_pkt()

char * sldns_wire2str_pkt | ( | uint8_t * | data,
|  | size_t | len )

Convert wireformat packet to a string representation.

Parameters

  data | wireformat packet data (starting at ID bytes).
  len | length of packet.

Returns
  string(malloced) or NULL on failure.

References sldns_wire2str_pkt_buf().

Referenced by checkformerr(), dstest_entry(), handle_query(), log_dns_msg(), log_pkt(), match_all(), match_answer(), match_question(), nsec3_hash_test_entry(), pretty_output(), recv_one(), test_buffers(), and verifytest_entry().

## ◆ sldns_wire2str_rr()

char * sldns_wire2str_rr | ( | uint8_t * | rr,
|  | size_t | len )

Convert wireformat RR to a string representation.

Parameters

  rr | the wireformat RR, in uncompressed form. Starts at the domain name start, ends with the rdata of the RR.
  len | length of the rr wireformat.

Returns
  string(malloced) or NULL on failure.

References sldns_wire2str_rr_buf().

Referenced by autr_debug_print_ta().

## ◆ sldns_wire2str_type()

char * sldns_wire2str_type | ( | uint16_t | rrtype | ) |

Convert wire RR type to a string, 'MX', 'TYPE1234'...

Parameters

  rrtype | the RR type in host order.

Returns
  malloced string with the RR type or NULL on malloc failure.

References sldns_wire2str_type_buf().

Referenced by do_dump_requestlist(), dump_msg(), dump_msg_ref(), and get_mesh_status().

## ◆ sldns_wire2str_class()

char * sldns_wire2str_class | ( | uint16_t | rrclass | ) |

Convert wire RR class to a string, 'IN', 'CLASS1'.

Parameters

  rrclass | the RR class in host order.

Returns
  malloced string with the RR class or NULL on malloc failure.

References sldns_wire2str_class_buf().

Referenced by do_dump_requestlist(), dump_msg(), dump_msg_ref(), get_mesh_status(), and ssl_print_name_dp().

## ◆ sldns_wire2str_dname()

char * sldns_wire2str_dname | ( | uint8_t * | dname,
|  | size_t | dname_len )

Convert wire dname to a string.

Parameters

  dname | the dname in uncompressed wireformat.
  dname_len | length of the dname.

Returns
  string or NULL on failure.

References sldns_wire2str_dname_buf().

Referenced by auth_zone_read_zonefile(), dump_msg(), dump_msg_ref(), print_id(), rpz_insert_rr(), and verbose_key().

## ◆ sldns_wire2str_rcode()

char * sldns_wire2str_rcode | ( | int | rcode | ) |

Convert wire packet rcode to a string, 'NOERROR', 'NXDOMAIN'...

Parameters

  rcode | as integer, host order

Returns
  malloced string with the rcode or NULL on malloc failure.

References sldns_wire2str_rcode_buf().

Referenced by find_match().

## ◆ sldns_wire2str_pkt_buf()

int sldns_wire2str_pkt_buf | ( | uint8_t * | data,
|  | size_t | data_len,
|  | char * | str,
|  | size_t | str_len )

Convert wireformat packet to a string representation with user buffer It appends every RR with default comments.

For more formatter options use the function: TBD(TODO)

Parameters

  data | wireformat packet data (starting at ID bytes).
  data_len | length of packet.
  str | the string buffer for the output. If you pass NULL as the str the return value of the function is the str_len you need for the entire packet. It does not include the 0 byte at the end.
  str_len | the size of the string buffer. If more is needed, it'll silently truncate the output to fit in the buffer.

Returns
  the number of characters for this element, excluding zerobyte. Is larger or equal than str_len if output was truncated.

References sldns_wire2str_pkt_scan().

Referenced by sldns_wire2str_pkt().

## ◆ sldns_wire2str_rr_buf()

int sldns_wire2str_rr_buf | ( | uint8_t * | rr,
|  | size_t | rr_len,
|  | char * | str,
|  | size_t | str_len )

Convert RR to string presentation format, on one line.

User buffer.

Parameters

  rr | wireformat RR data
  rr_len | length of the rr wire data.
  str | the string buffer to write to. If you pass NULL as the str, the return value of the function is the str_len you need for the entire packet. It does not include the 0 byte at the end.
  str_len | the size of the string buffer. If more is needed, it'll silently truncate the output to fit in the buffer.

Returns
  the number of characters for this element, excluding zerobyte. Is larger or equal than str_len if output was truncated.

References sldns_wire2str_rr_scan().

Referenced by packed_rr_to_string(), rr_transform(), and sldns_wire2str_rr().

## ◆ sldns_wire2str_rrquestion_buf()

int sldns_wire2str_rrquestion_buf | ( | uint8_t * | rr,
|  | size_t | rr_len,
|  | char * | str,
|  | size_t | str_len )

Convert question RR to string presentation format, on one line.

User buffer.

Parameters

  rr | wireformat RR data
  rr_len | length of the rr wire data.
  str | the string buffer to write to. If you pass NULL as the str, the return value of the function is the str_len you need for the entire packet. It does not include the 0 byte at the end.
  str_len | the size of the string buffer. If more is needed, it'll silently truncate the output to fit in the buffer.

Returns
  the number of characters for this element, excluding zerobyte. Is larger or equal than str_len if output was truncated.

References sldns_wire2str_rrquestion_scan().

## ◆ sldns_wire2str_rdata_buf()

int sldns_wire2str_rdata_buf | ( | uint8_t * | rdata,
|  | size_t | rdata_len,
|  | char * | str,
|  | size_t | str_len,
|  | uint16_t | rrtype )

Convert RDATA to string presentation format, on one line.

User buffer.

Parameters

  rdata | wireformat rdata part of an RR.
  rdata_len | length of the rr wire data.
  str | the string buffer to write to. If you pass NULL as the str, the return value of the function is the str_len you need for the entire packet. It does not include the 0 byte at the end.
  str_len | the size of the string buffer. If more is needed, it'll silently truncate the output to fit in the buffer.
  rrtype | rr type of the data

Returns
  the number of characters for this element, excluding zerobyte. Is larger or equal than str_len if output was truncated.

References sldns_wire2str_rdata_scan().

Referenced by do_print(), and print_rd().

## ◆ sldns_wire2str_rr_unknown_buf()

int sldns_wire2str_rr_unknown_buf | ( | uint8_t * | rr,
|  | size_t | rr_len,
|  | char * | str,
|  | size_t | str_len )

3597 printout of an RR in unknown rr format.

There are more format and comment options available for printout with the function: TBD(TODO)

Parameters

  rr | wireformat RR data
  rr_len | length of the rr wire data.
  str | the string buffer to write to. If you pass NULL as the str, the return value of the function is the str_len you need for the entire rr. It does not include the 0 byte at the end.
  str_len | the size of the string buffer. If more is needed, it'll silently truncate the output to fit in the buffer.

Returns
  the number of characters for this element, excluding zerobyte. Is larger or equal than str_len if output was truncated.

References sldns_wire2str_rr_unknown_scan().

## ◆ sldns_wire2str_rr_comment_buf()

int sldns_wire2str_rr_comment_buf | ( | uint8_t * | rr,
|  | size_t | rr_len,
|  | size_t | dname_len,
|  | char * | str,
|  | size_t | str_len )

This creates the comment to print after the RR.

; keytag=... , and other basic comments for RRs. There are more format and comment options available for printout with the function: TBD(TODO)

Parameters

  rr | wireformat RR data
  rr_len | length of the rr wire data.
  dname_len | length of the dname in front of the RR.
  str | the string buffer to write to. If you pass NULL as the str, the return value of the function is the str_len you need for the entire comment. It does not include the 0 byte at the end.
  str_len | the size of the string buffer. If more is needed, it'll silently truncate the output to fit in the buffer.

Returns
  the number of characters for this element, excluding zerobyte. Is larger or equal than str_len if output was truncated.

References sldns_wire2str_rr_comment_print(), and sldns_wirerr_get_type().

## ◆ sldns_wire2str_type_buf()

int sldns_wire2str_type_buf | ( | uint16_t | rrtype,
|  | char * | str,
|  | size_t | len )

Convert wire RR type to a string, 'MX', 'TYPE12'.

With user buffer.

Parameters

  rrtype | the RR type in host order.
  str | the string to write to.
  len | length of str.

Returns
  the number of characters for this element, excluding zerobyte. Is larger or equal than str_len if output was truncated.

References sldns_wire2str_type_print().

Referenced by auth_zone_generate_answer(), az_parse_file(), do_print(), errinf_rrset(), errinf_to_str_bogus(), errinf_to_str_servfail(), infra_ratelimit_inc(), log_reply_info(), log_rrlist_position(), pretty_type(), read_root_hints(), sldns_wire2str_type(), and zonemd_dnssec_verify_rrset().

## ◆ sldns_wire2str_class_buf()

int sldns_wire2str_class_buf | ( | uint16_t | rrclass,
|  | char * | str,
|  | size_t | len )

Convert wire RR class to a string, 'IN', 'CLASS12'.

With user buffer.

Parameters

  rrclass | the RR class in host order.
  str | the string to write to.
  len | length of str.

Returns
  the number of characters for this element, excluding zerobyte. Is larger or equal than str_len if output was truncated.

References sldns_wire2str_class_print().

Referenced by errinf_rrset(), errinf_to_str_bogus(), errinf_to_str_servfail(), infra_ratelimit_inc(), log_reply_info(), pretty_class(), and sldns_wire2str_class().

## ◆ sldns_wire2str_rcode_buf()

int sldns_wire2str_rcode_buf | ( | int | rcode,
|  | char * | str,
|  | size_t | len )

Convert wire RR rcode to a string, 'NOERROR', 'NXDOMAIN'.

With user buffer.

Parameters

  rcode | rcode as integer in host order
  str | the string to write to.
  len | length of str.

Returns
  the number of characters for this element, excluding zerobyte. Is larger or equal than str_len if output was truncated.

References sldns_wire2str_rcode_print().

Referenced by check_xfer_packet(), ds_response_to_ke(), entry_to_repinfo(), errinf_reply(), log_reply_info(), needs_validation(), perfendstats(), perftestpkt(), pr_flags(), pretty_rcode(), sldns_wire2str_rcode(), and testpkt().

## ◆ sldns_wire2str_opcode_buf()

int sldns_wire2str_opcode_buf | ( | int | opcode,
|  | char * | str,
|  | size_t | len )

Convert host format opcode to a string.

'QUERY', 'NOTIFY', 'UPDATE'. With user buffer.

Parameters

  opcode | opcode as integer in host order
  str | the string to write to.
  len | length of str.

Returns
  the number of characters for this element, excluding zerobyte. Is larger or equal than str_len if output was truncated.

References sldns_wire2str_opcode_print().

## ◆ sldns_wire2str_dname_buf()

int sldns_wire2str_dname_buf | ( | uint8_t * | dname,
|  | size_t | dname_len,
|  | char * | str,
|  | size_t | len )

Convert wire dname to a string, "example.com.".

With user buffer.

Parameters

  dname | the dname in uncompressed wireformat.
  dname_len | length of the dname.
  str | the string to write to.
  len | length of string.

Returns
  the number of characters for this element, excluding zerobyte. Is larger or equal than str_len if output was truncated.

References sldns_wire2str_dname_scan().

Referenced by auth_zone_generate_answer(), chaos_trustanchor(), and sldns_wire2str_dname().

## ◆ sldns_str_vprint()

int sldns_str_vprint | ( | char ** | str,
|  | size_t * | slen,
|  | const char * | format,
|  | va_list | args )

Print to string, move string along for next content.

With va_list.

Parameters

  str | string buffer. Adjusted at end to after the output.
  slen | length of the string buffer. Adjusted at end.
  format | printf format string.
  args | arguments for printf.

Returns
  number of characters needed. Can be larger than slen.

## ◆ sldns_wire2str_pkt_scan()

int sldns_wire2str_pkt_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat packet to a string representation with user buffer It appends every RR with default comments.

For more formatter options use the function: TBD(TODO)

Parameters

  data | wireformat packet data (starting at ID bytes).
  data_len | length of packet.
  str | the string buffer for the output.
  str_len | the size of the string buffer.

Returns
  number of characters for string. returns the number of characters that are needed (except terminating null), so it may return a value larger than str_len. On error you get less output (i.e. shorter output in str (null terminated)) On exit the data, data_len, str and str_len values are adjusted to move them from their original position along the input and output for the content that has been consumed (and produced) by this function. If the end of the output string is reached, *str_len is set to 0. The output string is null terminated (shortening the output if necessary). If the end of the input is reached *data_len is set to 0.

References print_remainder_hex(), sldns_wire2str_header_scan(), sldns_wire2str_rr_scan(), and sldns_wire2str_rrquestion_scan().

Referenced by sldns_wire2str_pkt_buf().

## ◆ sldns_wire2str_rr_scan()

int sldns_wire2str_rr_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len,
|  | uint8_t * | pkt,
|  | size_t | pktlen,
|  | int * | comprloop )

Scan wireformat rr to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.
  pkt | packet for decompression, if NULL no decompression.
  pktlen | length of packet buffer.
  comprloop | if pkt, bool detects compression loops.

Returns
  number of characters (except null) needed to print.

References LDNS_RR_TYPE_OPT, print_remainder_hex(), sldns_rr_tcttl_scan(), sldns_wire2str_class_print(), sldns_wire2str_dname_scan(), sldns_wire2str_edns_scan(), sldns_wire2str_rdata_scan(), sldns_wire2str_rr_comment_print(), and sldns_wire2str_type_print().

Referenced by get_serial(), pkt_find_edns_opt(), sldns_wire2str_pkt_scan(), sldns_wire2str_rr_buf(), and zerottls().

## ◆ sldns_wire2str_rrquestion_scan()

int sldns_wire2str_rrquestion_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len,
|  | uint8_t * | pkt,
|  | size_t | pktlen,
|  | int * | comprloop )

Scan wireformat question rr to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.
  pkt | packet for decompression, if NULL no decompression.
  pktlen | length of packet buffer.
  comprloop | if pkt, bool detects compression loops.

Returns
  number of characters (except null) needed to print.

References print_remainder_hex(), sldns_wire2str_class_print(), sldns_wire2str_dname_scan(), and sldns_wire2str_type_print().

Referenced by get_serial(), pkt_find_edns_opt(), sldns_wire2str_pkt_scan(), sldns_wire2str_rrquestion_buf(), and zerottls().

## ◆ sldns_wire2str_rr_unknown_scan()

int sldns_wire2str_rr_unknown_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len,
|  | uint8_t * | pkt,
|  | size_t | pktlen,
|  | int * | comprloop )

Scan wireformat RR to string in unknown RR format, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.
  pkt | packet for decompression, if NULL no decompression.
  pktlen | length of packet buffer.
  comprloop | if pkt, bool detects compression loops.

Returns
  number of characters (except null) needed to print.

References print_remainder_hex(), sldns_rr_tcttl_scan(), sldns_wire2str_dname_scan(), and sldns_wire2str_rdata_unknown_scan().

Referenced by sldns_wire2str_rr_unknown_buf().

## ◆ sldns_wire2str_rr_comment_print()

int sldns_wire2str_rr_comment_print | ( | char ** | str,
|  | size_t * | str_len,
|  | uint8_t * | rr,
|  | size_t | rrlen,
|  | size_t | dname_off,
|  | uint16_t | rrtype )

Print to string the RR-information comment in default format, with user buffers.

Moves string along.

Parameters

  str | string buffer.
  str_len | length of string buffer.
  rr | wireformat data.
  rrlen | length of data buffer.
  dname_off | offset in buffer behind owner dname, the compressed size of the owner name.
  rrtype | type of the RR, host format.

Returns
  number of characters (except null) needed to print.

References LDNS_RR_TYPE_RRSIG, rr_comment_dnskey(), rr_comment_nsec3(), and rr_comment_rrsig().

Referenced by sldns_wire2str_rr_comment_buf(), and sldns_wire2str_rr_scan().

## ◆ sldns_wire2str_header_scan()

int sldns_wire2str_header_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat packet header to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print.

References print_remainder_hex(), sldns_wire2str_opcode_print(), and sldns_wire2str_rcode_print().

Referenced by sldns_wire2str_pkt_scan().

## ◆ sldns_wire2str_rdata_scan()

int sldns_wire2str_rdata_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len,
|  | uint16_t | rrtype,
|  | uint8_t * | pkt,
|  | size_t | pktlen,
|  | int * | comprloop )

Scan wireformat rdata to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer. The length of the rdata in the buffer. The rdatalen itself has already been scanned, the data points to the rdata after the rdatalen.
  str | string buffer.
  str_len | length of string buffer.
  rrtype | RR type of Rdata, host format.
  pkt | packet for decompression, if NULL no decompression.
  pktlen | length of packet buffer.
  comprloop | if pkt, bool detects compression loops.

Returns
  number of characters (except null) needed to print.

References sldns_rr_descript(), sldns_rr_descriptor_field_type(), sldns_rr_descriptor_maximum(), sldns_rr_descriptor_minimum(), sldns_wire2str_rdata_unknown_scan(), and sldns_wire2str_rdf_scan().

Referenced by auth_rr_to_string(), sldns_wire2str_rdata_buf(), and sldns_wire2str_rr_scan().

## ◆ sldns_wire2str_rdata_unknown_scan()

int sldns_wire2str_rdata_unknown_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat rdata to string in unknown format, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer, the length of the rdata in buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print.

References print_hex_buf().

Referenced by sldns_wire2str_rdata_scan(), sldns_wire2str_rr_unknown_scan(), and sldns_wire2str_unknown_scan().

## ◆ sldns_wire2str_dname_scan()

int sldns_wire2str_dname_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len,
|  | uint8_t * | pkt,
|  | size_t | pktlen,
|  | int * | comprloop )

Scan wireformat domain name to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.
  pkt | packet for decompression, if NULL no decompression.
  pktlen | length of packet buffer.
  comprloop | inout bool, that is set true if compression loop failure happens. Pass in 0, if passsed in as true, a lower bound is set on compression loops to stop arbitrary long packet parse times. This is meant so you can set it to 0 at the start of a list of dnames, and then scan all of them in sequence, if a loop happens, it becomes true and then it becomes more strict for the next dnames in the list. You can leave it at NULL if there is no pkt (pkt is NULL too).

Returns
  number of characters (except null) needed to print.

References dname_char_print(), LDNS_MAX_DOMAINLEN, and MAX_COMPRESS_PTRS.

Referenced by auth_rr_to_string(), equal_dname(), get_qname_len(), get_qtype(), get_serial(), pkt_find_edns_opt(), sldns_wire2str_dname_buf(), sldns_wire2str_rdf_scan(), sldns_wire2str_rr_scan(), sldns_wire2str_rr_unknown_scan(), sldns_wire2str_rrquestion_scan(), subdomain_dname(), and zerottls().

## ◆ sldns_wire2str_opcode_print()

int sldns_wire2str_opcode_print | ( | char ** | str,
|  | size_t * | str_len,
|  | int | opcode )

Print host format opcode to string.

Moves string along, user buffers.

Parameters

  str | string buffer.
  str_len | length of string buffer.
  opcode | host format opcode number.

Returns
  number of characters (except null) needed to print.

References sldns_opcodes.

Referenced by sldns_wire2str_header_scan(), and sldns_wire2str_opcode_buf().

## ◆ sldns_wire2str_rcode_print()

int sldns_wire2str_rcode_print | ( | char ** | str,
|  | size_t * | str_len,
|  | int | rcode )

Print host format rcode to string.

Moves string along, user buffers.

Parameters

  str | string buffer.
  str_len | length of string buffer.
  rcode | host format rcode number.

Returns
  number of characters (except null) needed to print.

References sldns_rcodes.

Referenced by sldns_wire2str_header_scan(), and sldns_wire2str_rcode_buf().

## ◆ sldns_wire2str_class_print()

int sldns_wire2str_class_print | ( | char ** | str,
|  | size_t * | str_len,
|  | uint16_t | rrclass )

Print host format rr class to string.

Moves string along, user buffers.

Parameters

  str | string buffer.
  str_len | length of string buffer.
  rrclass | host format rr class.

Returns
  number of characters (except null) needed to print.

References sldns_rr_classes.

Referenced by auth_rr_to_string(), sldns_rr_tcttl_scan(), sldns_wire2str_class_buf(), sldns_wire2str_class_scan(), sldns_wire2str_rr_scan(), and sldns_wire2str_rrquestion_scan().

## ◆ sldns_wire2str_type_print()

int sldns_wire2str_type_print | ( | char ** | str,
|  | size_t * | str_len,
|  | uint16_t | rrtype )

Print host format rr type to string.

Moves string along, user buffers.

Parameters

  str | string buffer.
  str_len | length of string buffer.
  rrtype | host format rr type.

Returns
  number of characters (except null) needed to print.

References sldns_struct_rr_descriptor::_name, and sldns_rr_descript().

Referenced by auth_rr_to_string(), sldns_rr_tcttl_scan(), sldns_wire2str_nsec_scan(), sldns_wire2str_rr_scan(), sldns_wire2str_rrquestion_scan(), sldns_wire2str_type_buf(), and sldns_wire2str_type_scan().

## ◆ sldns_wire2str_edns_option_code_print()

int sldns_wire2str_edns_option_code_print | ( | char ** | str,
|  | size_t * | str_len,
|  | uint16_t | opcode )

Print host format EDNS0 option to string.

Moves string along, user buffers.

Parameters

  str | string buffer.
  str_len | length of string buffer.
  opcode | host format option number.

Returns
  number of characters (except null) needed to print.

References sldns_edns_options.

Referenced by log_edns_known_options(), print_edns_opts(), and sldns_wire2str_edns_option_print().

## ◆ sldns_wire2str_class_scan()

int sldns_wire2str_class_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat rr class to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print.

References print_remainder_hex(), and sldns_wire2str_class_print().

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_type_scan()

int sldns_wire2str_type_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat rr type to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print.

References print_remainder_hex(), and sldns_wire2str_type_print().

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_ttl_scan()

int sldns_wire2str_ttl_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat rr ttl to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print.

References print_remainder_hex().

## ◆ sldns_wire2str_svcparam_scan()

int sldns_wire2str_svcparam_scan | ( | uint8_t ** | d,
|  | size_t * | dlen,
|  | char ** | s,
|  | size_t * | slen )

Convert wire SVCB to a string with user buffer.

Parameters

  d | the SVCB data in uncompressed wireformat.
  dlen | length of the SVCB data.
  s | the string to write to.
  slen | length of string.

Returns
  the number of characters for this element, excluding zerobyte. Is larger or equal than str_len if output was truncated.

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_rdf_scan()

int sldns_wire2str_rdf_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len,
|  | int | rdftype,
|  | uint8_t * | pkt,
|  | size_t | pktlen,
|  | int * | comprloop )

Scan wireformat rdf field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.
  rdftype | the type of the rdata field, enum sldns_rdf_type.
  pkt | packet for decompression, if NULL no decompression.
  pktlen | length of packet buffer.
  comprloop | if pkt, bool detects compression loops.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

References LDNS_RDF_TYPE_A, LDNS_RDF_TYPE_AAAA, LDNS_RDF_TYPE_ALG, LDNS_RDF_TYPE_APL, LDNS_RDF_TYPE_ATMA, LDNS_RDF_TYPE_B32_EXT, LDNS_RDF_TYPE_B64, LDNS_RDF_TYPE_CERT_ALG, LDNS_RDF_TYPE_CLASS, LDNS_RDF_TYPE_DNAME, LDNS_RDF_TYPE_EUI48, LDNS_RDF_TYPE_EUI64, LDNS_RDF_TYPE_HEX, LDNS_RDF_TYPE_HIP, LDNS_RDF_TYPE_ILNP64, LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_INT16_DATA, LDNS_RDF_TYPE_INT32, LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_IPSECKEY, LDNS_RDF_TYPE_LOC, LDNS_RDF_TYPE_LONG_STR, LDNS_RDF_TYPE_NONE, LDNS_RDF_TYPE_NSAP, LDNS_RDF_TYPE_NSEC, LDNS_RDF_TYPE_NSEC3_NEXT_OWNER, LDNS_RDF_TYPE_NSEC3_SALT, LDNS_RDF_TYPE_PERIOD, LDNS_RDF_TYPE_SERVICE, LDNS_RDF_TYPE_STR, LDNS_RDF_TYPE_TAG, LDNS_RDF_TYPE_TIME, LDNS_RDF_TYPE_TSIGERROR, LDNS_RDF_TYPE_TSIGTIME, LDNS_RDF_TYPE_TYPE, LDNS_RDF_TYPE_UNKNOWN, LDNS_RDF_TYPE_WKS, sldns_wire2str_a_scan(), sldns_wire2str_aaaa_scan(), sldns_wire2str_alg_scan(), sldns_wire2str_apl_scan(), sldns_wire2str_atma_scan(), sldns_wire2str_b32_ext_scan(), sldns_wire2str_b64_scan(), sldns_wire2str_cert_alg_scan(), sldns_wire2str_class_scan(), sldns_wire2str_dname_scan(), sldns_wire2str_eui48_scan(), sldns_wire2str_eui64_scan(), sldns_wire2str_hex_scan(), sldns_wire2str_hip_scan(), sldns_wire2str_ilnp64_scan(), sldns_wire2str_int16_data_scan(), sldns_wire2str_int16_scan(), sldns_wire2str_int32_scan(), sldns_wire2str_int8_scan(), sldns_wire2str_ipseckey_scan(), sldns_wire2str_loc_scan(), sldns_wire2str_long_str_scan(), sldns_wire2str_nsap_scan(), sldns_wire2str_nsec3_salt_scan(), sldns_wire2str_nsec_scan(), sldns_wire2str_period_scan(), sldns_wire2str_str_scan(), sldns_wire2str_svcparam_scan(), sldns_wire2str_tag_scan(), sldns_wire2str_time_scan(), sldns_wire2str_tsigerror_scan(), sldns_wire2str_tsigtime_scan(), sldns_wire2str_type_scan(), sldns_wire2str_unknown_scan(), and sldns_wire2str_wks_scan().

Referenced by sldns_wire2str_rdata_scan().

## ◆ sldns_wire2str_int8_scan()

int sldns_wire2str_int8_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat int8 field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

Referenced by sldns_wire2str_alg_scan(), and sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_int16_scan()

int sldns_wire2str_int16_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat int16 field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_int32_scan()

int sldns_wire2str_int32_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat int32 field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_period_scan()

int sldns_wire2str_period_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat period field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_tsigtime_scan()

int sldns_wire2str_tsigtime_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat tsigtime field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_a_scan()

int sldns_wire2str_a_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat ip4 A field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_aaaa_scan()

int sldns_wire2str_aaaa_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat ip6 AAAA field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_str_scan()

int sldns_wire2str_str_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat str field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

References str_char_print().

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_apl_scan()

int sldns_wire2str_apl_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat apl field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_b32_ext_scan()

int sldns_wire2str_b32_ext_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat b32_ext field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

References sldns_b32_ntop_calculate_size(), and sldns_b32_ntop_extended_hex().

Referenced by sldns_wire2str_nsec3_next_owner_scan(), and sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_b64_scan()

int sldns_wire2str_b64_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat b64 field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

References sldns_wire2str_b64_scan_num().

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_hex_scan()

int sldns_wire2str_hex_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat hex field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

References print_remainder_hex().

Referenced by sldns_wire2str_loc_scan(), and sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_nsec_scan()

int sldns_wire2str_nsec_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat nsec bitmap field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

References sldns_wire2str_type_print().

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_nsec3_salt_scan()

int sldns_wire2str_nsec3_salt_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat nsec3_salt field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

References print_hex_buf().

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_cert_alg_scan()

int sldns_wire2str_cert_alg_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat cert_alg field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

References sldns_cert_algorithms.

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_alg_scan()

int sldns_wire2str_alg_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat alg field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

References sldns_wire2str_int8_scan().

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_unknown_scan()

int sldns_wire2str_unknown_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat type unknown field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

References sldns_wire2str_rdata_unknown_scan().

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_time_scan()

int sldns_wire2str_time_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat time field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

References sldns_serial_arithmetics_gmtime_r().

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_loc_scan()

int sldns_wire2str_loc_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat LOC field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

References sldns_wire2str_hex_scan().

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_wks_scan()

int sldns_wire2str_wks_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat WKS field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

References service().

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_nsap_scan()

int sldns_wire2str_nsap_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat NSAP field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

References print_remainder_hex().

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_atma_scan()

int sldns_wire2str_atma_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat ATMA field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

References print_remainder_hex().

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_ipseckey_scan()

int sldns_wire2str_ipseckey_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len,
|  | uint8_t * | pkt,
|  | size_t | pktlen,
|  | int * | comprloop )

Scan wireformat IPSECKEY field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.
  pkt | packet for decompression, if NULL no decompression.
  pktlen | length of packet buffer.
  comprloop | if pkt, bool detects compression loops.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_hip_scan()

int sldns_wire2str_hip_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat HIP (algo, HIT, pubkey) field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

References print_hex_buf(), and sldns_wire2str_b64_scan_num().

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_int16_data_scan()

int sldns_wire2str_int16_data_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat int16_data field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

References sldns_wire2str_b64_scan_num().

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_nsec3_next_owner_scan()

int sldns_wire2str_nsec3_next_owner_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat nsec3_next_owner field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

References sldns_wire2str_b32_ext_scan().

## ◆ sldns_wire2str_ilnp64_scan()

int sldns_wire2str_ilnp64_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat ILNP64 field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_eui48_scan()

int sldns_wire2str_eui48_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat EUI48 field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_eui64_scan()

int sldns_wire2str_eui64_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat EUI64 field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_tag_scan()

int sldns_wire2str_tag_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat TAG field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_long_str_scan()

int sldns_wire2str_long_str_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat long_str field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

References str_char_print().

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_tsigerror_scan()

int sldns_wire2str_tsigerror_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len )

Scan wireformat tsigerror field to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.

Returns
  number of characters (except null) needed to print. Can return -1 on failure.

References sldns_tsig_errors.

Referenced by sldns_wire2str_rdf_scan().

## ◆ sldns_wire2str_edns_llq_print()

int sldns_wire2str_edns_llq_print | ( | char ** | str,
|  | size_t * | str_len,
|  | uint8_t * | option_data,
|  | size_t | option_len )

Print EDNS LLQ option data to string.

User buffers, moves string pointers.

Parameters

  str | string buffer.
  str_len | length of string buffer.
  option_data | buffer with EDNS option code data.
  option_len | length of the data for this option.

Returns
  number of characters (except null) needed to print.

References print_hex_buf().

Referenced by sldns_wire2str_edns_option_print().

## ◆ sldns_wire2str_edns_ul_print()

int sldns_wire2str_edns_ul_print | ( | char ** | str,
|  | size_t * | str_len,
|  | uint8_t * | option_data,
|  | size_t | option_len )

Print EDNS UL option data to string.

User buffers, moves string pointers.

Parameters

  str | string buffer.
  str_len | length of string buffer.
  option_data | buffer with EDNS option code data.
  option_len | length of the data for this option.

Returns
  number of characters (except null) needed to print.

References print_hex_buf().

Referenced by sldns_wire2str_edns_option_print().

## ◆ sldns_wire2str_edns_nsid_print()

int sldns_wire2str_edns_nsid_print | ( | char ** | str,
|  | size_t * | str_len,
|  | uint8_t * | option_data,
|  | size_t | option_len )

Print EDNS NSID option data to string.

User buffers, moves string pointers.

Parameters

  str | string buffer.
  str_len | length of string buffer.
  option_data | buffer with EDNS option code data.
  option_len | length of the data for this option.

Returns
  number of characters (except null) needed to print.

References print_hex_buf().

Referenced by sldns_wire2str_edns_option_print().

## ◆ sldns_wire2str_edns_dau_print()

int sldns_wire2str_edns_dau_print | ( | char ** | str,
|  | size_t * | str_len,
|  | uint8_t * | option_data,
|  | size_t | option_len )

Print EDNS DAU option data to string.

User buffers, moves string pointers.

Parameters

  str | string buffer.
  str_len | length of string buffer.
  option_data | buffer with EDNS option code data.
  option_len | length of the data for this option.

Returns
  number of characters (except null) needed to print.

References sldns_algorithms.

Referenced by sldns_wire2str_edns_option_print().

## ◆ sldns_wire2str_edns_dhu_print()

int sldns_wire2str_edns_dhu_print | ( | char ** | str,
|  | size_t * | str_len,
|  | uint8_t * | option_data,
|  | size_t | option_len )

Print EDNS DHU option data to string.

User buffers, moves string pointers.

Parameters

  str | string buffer.
  str_len | length of string buffer.
  option_data | buffer with EDNS option code data.
  option_len | length of the data for this option.

Returns
  number of characters (except null) needed to print.

References sldns_hashes.

Referenced by sldns_wire2str_edns_option_print().

## ◆ sldns_wire2str_edns_n3u_print()

int sldns_wire2str_edns_n3u_print | ( | char ** | str,
|  | size_t * | str_len,
|  | uint8_t * | option_data,
|  | size_t | option_len )

Print EDNS N3U option data to string.

User buffers, moves string pointers.

Parameters

  str | string buffer.
  str_len | length of string buffer.
  option_data | buffer with EDNS option code data.
  option_len | length of the data for this option.

Returns
  number of characters (except null) needed to print.

Referenced by sldns_wire2str_edns_option_print().

## ◆ sldns_wire2str_edns_subnet_print()

int sldns_wire2str_edns_subnet_print | ( | char ** | str,
|  | size_t * | str_len,
|  | uint8_t * | option_data,
|  | size_t | option_len )

Print EDNS SUBNET option data to string.

User buffers, moves string pointers.

Parameters

  str | string buffer.
  str_len | length of string buffer.
  option_data | buffer with EDNS option code data.
  option_len | length of the data for this option.

Returns
  number of characters (except null) needed to print.

References print_hex_buf().

Referenced by sldns_wire2str_edns_option_print().

## ◆ sldns_wire2str_edns_ede_print()

int sldns_wire2str_edns_ede_print | ( | char ** | str,
|  | size_t * | str_len,
|  | uint8_t * | option_data,
|  | size_t | option_len )

Print EDNS EDE option data to string.

User buffers, moves string pointers.

Parameters

  str | string buffer.
  str_len | length of string buffer.
  option_data | buffer with EDNS option code data.
  option_len | length of the data for this option.

Returns
  number of characters (except null) needed to print.

References print_hex_buf(), sldns_edns_ede_codes, and str_char_print().

Referenced by sldns_wire2str_edns_option_print().

## ◆ sldns_wire2str_edns_option_print()

int sldns_wire2str_edns_option_print | ( | char ** | str,
|  | size_t * | str_len,
|  | uint16_t | option_code,
|  | uint8_t * | option_data,
|  | size_t | option_len )

Print an EDNS option as OPT: VALUE.

User buffers, moves string pointers.

Parameters

  str | string buffer.
  str_len | length of string buffer.
  option_code | host format EDNS option code.
  option_data | buffer with EDNS option code data.
  option_len | length of the data for this option.

Returns
  number of characters (except null) needed to print.

References print_hex_buf(), sldns_wire2str_edns_dau_print(), sldns_wire2str_edns_dhu_print(), sldns_wire2str_edns_ede_print(), sldns_wire2str_edns_llq_print(), sldns_wire2str_edns_n3u_print(), sldns_wire2str_edns_nsid_print(), sldns_wire2str_edns_option_code_print(), sldns_wire2str_edns_subnet_print(), and sldns_wire2str_edns_ul_print().

Referenced by log_edns_opt_list(), and print_edns_opts().

## ◆ sldns_wire2str_edns_scan()

int sldns_wire2str_edns_scan | ( | uint8_t ** | data,
|  | size_t * | data_len,
|  | char ** | str,
|  | size_t * | str_len,
|  | uint8_t * | pkt,
|  | size_t | pktlen )

Scan wireformat EDNS OPT to string, with user buffers.

It shifts the arguments to move along (see sldns_wire2str_pkt_scan).

Parameters

  data | wireformat data.
  data_len | length of data buffer.
  str | string buffer.
  str_len | length of string buffer.
  pkt | packet with header and other info (may be NULL)
  pktlen | length of packet buffer.

Returns
  number of characters (except null) needed to print.

References LDNS_RR_TYPE_OPT, print_edns_opts(), and print_remainder_hex().

Referenced by sldns_wire2str_rr_scan().

## Variable Documentation

## ◆ sldns_algorithms_data

sldns_lookup_table sldns_algorithms_data[]
| static

Initial value:
= {
{ LDNS_RSAMD5, "RSAMD5" },
{ LDNS_DH, "DH" },
{ LDNS_DSA, "DSA" },
{ LDNS_ECC, "ECC" },
{ LDNS_RSASHA1, "RSASHA1" },
{ LDNS_DSA_NSEC3, "DSA-NSEC3-SHA1" },
{ LDNS_RSASHA1_NSEC3, "RSASHA1-NSEC3-SHA1" },
{ LDNS_RSASHA256, "RSASHA256"},
{ LDNS_RSASHA512, "RSASHA512"},
{ LDNS_ECC_GOST, "ECC-GOST"},
{ LDNS_ECDSAP256SHA256, "ECDSAP256SHA256"},
{ LDNS_ECDSAP384SHA384, "ECDSAP384SHA384"},
{ LDNS_ED25519, "ED25519"},
{ LDNS_ED448, "ED448"},
{ LDNS_INDIRECT, "INDIRECT" },
{ LDNS_PRIVATEDNS, "PRIVATEDNS" },
{ LDNS_PRIVATEOID, "PRIVATEOID" },
{ 0, NULL }
}

## ◆ sldns_algorithms

sldns_lookup_table* sldns_algorithms = sldns_algorithms_data

Taken from RFC 2535, section 7.

Referenced by algo_needs_reason(), sldns_str2wire_alg_buf(), sldns_wire2str_edns_dau_print(), and val_dsset_isusable().

## ◆ sldns_hashes_data

sldns_lookup_table sldns_hashes_data[]
| static

Initial value:
= {
{ LDNS_SHA1, "SHA1" },
{ LDNS_SHA256, "SHA256" },
{ LDNS_HASH_GOST, "HASH-GOST" },
{ LDNS_SHA384, "SHA384" },
{ 0, NULL }
}

## ◆ sldns_cert_algorithms_data

sldns_lookup_table sldns_cert_algorithms_data[]
| static

Initial value:
= {
{ LDNS_CERT_PKIX, "PKIX" },
{ LDNS_CERT_SPKI, "SPKI" },
{ LDNS_CERT_PGP, "PGP" },
{ LDNS_CERT_IPKIX, "IPKIX" },
{ LDNS_CERT_ISPKI, "ISPKI" },
{ LDNS_CERT_IPGP, "IPGP" },
{ LDNS_CERT_ACPKIX, "ACPKIX" },
{ LDNS_CERT_IACPKIX, "IACPKIX" },
{ LDNS_CERT_URI, "URI" },
{ LDNS_CERT_OID, "OID" },
{ 0, NULL }
}

## ◆ sldns_cert_algorithms

sldns_lookup_table* sldns_cert_algorithms = sldns_cert_algorithms_data

Taken from RFC 2538, section 2.1.

Referenced by sldns_str2wire_cert_alg_buf(), and sldns_wire2str_cert_alg_scan().

## ◆ sldns_rcodes_data

sldns_lookup_table sldns_rcodes_data[]
| static

Initial value:
= {
{ LDNS_RCODE_NOERROR, "NOERROR" },
{ LDNS_RCODE_FORMERR, "FORMERR" },
{ LDNS_RCODE_SERVFAIL, "SERVFAIL" },
{ LDNS_RCODE_NXDOMAIN, "NXDOMAIN" },
{ LDNS_RCODE_NOTIMPL, "NOTIMPL" },
{ LDNS_RCODE_REFUSED, "REFUSED" },
{ LDNS_RCODE_YXDOMAIN, "YXDOMAIN" },
{ LDNS_RCODE_YXRRSET, "YXRRSET" },
{ LDNS_RCODE_NXRRSET, "NXRRSET" },
{ LDNS_RCODE_NOTAUTH, "NOTAUTH" },
{ LDNS_RCODE_NOTZONE, "NOTZONE" },
{ 0, NULL }
}

## ◆ sldns_opcodes_data

sldns_lookup_table sldns_opcodes_data[]
| static

Initial value:
= {
{ LDNS_PACKET_QUERY, "QUERY" },
{ LDNS_PACKET_IQUERY, "IQUERY" },
{ LDNS_PACKET_STATUS, "STATUS" },
{ LDNS_PACKET_NOTIFY, "NOTIFY" },
{ LDNS_PACKET_UPDATE, "UPDATE" },
{ 0, NULL }
}

## ◆ sldns_edns_flags_data

sldns_lookup_table sldns_edns_flags_data[]
| static

Initial value:
= {
{ 3600, "do"},
{ 0, NULL}
}

## ◆ sldns_edns_options_data

sldns_lookup_table sldns_edns_options_data[]
| static

Initial value:
= {
{ 1, "LLQ" },
{ 2, "UL" },
{ 3, "NSID" },
{ 5, "DAU" },
{ 6, "DHU" },
{ 7, "N3U" },
{ 8, "edns-client-subnet" },
{ 10, "COOKIE" },
{ 11, "edns-tcp-keepalive"},
{ 12, "Padding" },
{ 15, "EDE"},
{ 0, NULL}
}

## ◆ sldns_tsig_errors_data

sldns_lookup_table sldns_tsig_errors_data[]
| static

Initial value:
= {
{ LDNS_TSIG_ERROR_NOERROR, "NOERROR" },
{ LDNS_RCODE_FORMERR, "FORMERR" },
{ LDNS_RCODE_SERVFAIL, "SERVFAIL" },
{ LDNS_RCODE_NXDOMAIN, "NXDOMAIN" },
{ LDNS_RCODE_NOTIMPL, "NOTIMPL" },
{ LDNS_RCODE_REFUSED, "REFUSED" },
{ LDNS_RCODE_YXDOMAIN, "YXDOMAIN" },
{ LDNS_RCODE_YXRRSET, "YXRRSET" },
{ LDNS_RCODE_NXRRSET, "NXRRSET" },
{ LDNS_RCODE_NOTAUTH, "NOTAUTH" },
{ LDNS_RCODE_NOTZONE, "NOTZONE" },
{ LDNS_TSIG_ERROR_BADSIG, "BADSIG" },
{ LDNS_TSIG_ERROR_BADKEY, "BADKEY" },
{ LDNS_TSIG_ERROR_BADTIME, "BADTIME" },
{ LDNS_TSIG_ERROR_BADMODE, "BADMODE" },
{ LDNS_TSIG_ERROR_BADNAME, "BADNAME" },
{ LDNS_TSIG_ERROR_BADALG, "BADALG" },
{ 0, NULL }
}
LDNS_TSIG_ERROR_NOERROR
#define LDNS_TSIG_ERROR_NOERROR
TSIG and TKEY extended rcodes (16bit), 0-15 are the normal rcodes.
Definition rrdef.h:484

## ◆ svcparamkey_strs

const char* svcparamkey_strs[]

Initial value:
= {
"mandatory", "alpn", "no-default-alpn", "port",
"ipv4hint", "ech", "ipv6hint", "dohpath"
}