ldns  1.7.0
Functions
host2wire.h File Reference

Go to the source code of this file.

Functions

ldns_status ldns_dname2buffer_wire (ldns_buffer *buffer, const ldns_rdf *name)
 Copies the dname data to the buffer in wire format. More...
 
ldns_status ldns_dname2buffer_wire_compress (ldns_buffer *buffer, const ldns_rdf *name, ldns_rbtree_t *compression_data)
 Copies the dname data to the buffer in wire format. More...
 
ldns_status ldns_rdf2buffer_wire (ldns_buffer *output, const ldns_rdf *rdf)
 Copies the rdata data to the buffer in wire format. More...
 
ldns_status ldns_rdf2buffer_wire_compress (ldns_buffer *output, const ldns_rdf *rdf, ldns_rbtree_t *compression_data)
 Copies the rdata data to the buffer in wire format. More...
 
ldns_status ldns_rdf2buffer_wire_canonical (ldns_buffer *output, const ldns_rdf *rdf)
 Copies the rdata data to the buffer in wire format If the rdata is a dname, the letters will be lowercased during the conversion. More...
 
ldns_status ldns_rr2buffer_wire (ldns_buffer *output, const ldns_rr *rr, int section)
 Copies the rr data to the buffer in wire format. More...
 
ldns_status ldns_rr2buffer_wire_compress (ldns_buffer *output, const ldns_rr *rr, int section, ldns_rbtree_t *compression_data)
 Copies the rr data to the buffer in wire format while doing DNAME compression. More...
 
ldns_status ldns_rr2buffer_wire_canonical (ldns_buffer *output, const ldns_rr *rr, int section)
 Copies the rr data to the buffer in wire format, in canonical format according to RFC3597 (every dname in rdata fields of RR's mentioned in that RFC will be lowercased) More...
 
ldns_status ldns_rrsig2buffer_wire (ldns_buffer *output, const ldns_rr *sigrr)
 Converts a rrsig to wireformat BUT EXCLUDE the rrsig rdata This is needed in DNSSEC verification. More...
 
ldns_status ldns_rr_rdata2buffer_wire (ldns_buffer *output, const ldns_rr *rr)
 Converts an rr's rdata to wireformat, while excluding the ownername and all the stuff before the rdata. More...
 
ldns_status ldns_pkt2buffer_wire (ldns_buffer *output, const ldns_pkt *pkt)
 Copies the packet data to the buffer in wire format. More...
 
ldns_status ldns_rr_list2buffer_wire (ldns_buffer *output, const ldns_rr_list *rrlist)
 Copies the rr_list data to the buffer in wire format. More...
 
ldns_status ldns_rdf2wire (uint8_t **dest, const ldns_rdf *rdf, size_t *size)
 Allocates an array of uint8_t at dest, and puts the wireformat of the given rdf in that array. More...
 
ldns_status ldns_rr2wire (uint8_t **dest, const ldns_rr *rr, int section, size_t *size)
 Allocates an array of uint8_t at dest, and puts the wireformat of the given rr in that array. More...
 
ldns_status ldns_pkt2wire (uint8_t **dest, const ldns_pkt *p, size_t *size)
 Allocates an array of uint8_t at dest, and puts the wireformat of the given packet in that array. More...
 

Detailed Description

Contains all functions to translate the main structures to wire format

Definition in file host2wire.h.

Function Documentation

◆ ldns_dname2buffer_wire()

ldns_status ldns_dname2buffer_wire ( ldns_buffer buffer,
const ldns_rdf name 
)

Copies the dname data to the buffer in wire format.

Parameters
[out]*bufferbuffer to append the result to
[in]*namerdata dname to convert
Returns
ldns_status

Definition at line 20 of file host2wire.c.

References ldns_dname2buffer_wire_compress().

◆ ldns_dname2buffer_wire_compress()

ldns_status ldns_dname2buffer_wire_compress ( ldns_buffer buffer,
const ldns_rdf name,
ldns_rbtree_t compression_data 
)

Copies the dname data to the buffer in wire format.

Parameters
[out]*bufferbuffer to append the result to
[in]*namerdata dname to convert
[out]*compression_datadata structure holding state for compression
Returns
ldns_status

Definition at line 26 of file host2wire.c.

References ldns_buffer_reserve(), and ldns_rdf_size().

◆ ldns_rdf2buffer_wire()

ldns_status ldns_rdf2buffer_wire ( ldns_buffer output,
const ldns_rdf rdf 
)

Copies the rdata data to the buffer in wire format.

Parameters
[out]*outputbuffer to append the result to
[in]*rdfrdata to convert
Returns
ldns_status

Definition at line 99 of file host2wire.c.

References ldns_rdf2buffer_wire_compress().

◆ ldns_rdf2buffer_wire_compress()

ldns_status ldns_rdf2buffer_wire_compress ( ldns_buffer output,
const ldns_rdf rdf,
ldns_rbtree_t compression_data 
)

Copies the rdata data to the buffer in wire format.

Parameters
[out]*outputbuffer to append the result to
[in]*rdfrdata to convert
[out]*compression_datadata structure holding state for compression
Returns
ldns_status

Definition at line 105 of file host2wire.c.

References ldns_buffer_reserve(), ldns_dname2buffer_wire_compress(), ldns_rdf_get_type(), ldns_rdf_size(), and LDNS_RDF_TYPE_DNAME.

◆ ldns_rdf2buffer_wire_canonical()

ldns_status ldns_rdf2buffer_wire_canonical ( ldns_buffer output,
const ldns_rdf rdf 
)

Copies the rdata data to the buffer in wire format If the rdata is a dname, the letters will be lowercased during the conversion.

Parameters
[out]*outputbuffer to append the result to
[in]*rdfrdata to convert
Returns
ldns_status

Definition at line 120 of file host2wire.c.

References ldns_buffer_reserve(), ldns_rdf_data(), ldns_rdf_get_type(), ldns_rdf_size(), and LDNS_RDF_TYPE_DNAME.

◆ ldns_rr2buffer_wire()

ldns_status ldns_rr2buffer_wire ( ldns_buffer output,
const ldns_rr rr,
int  section 
)

Copies the rr data to the buffer in wire format.

Parameters
[out]*outputbuffer to append the result to
[in]*rrresource record to convert
[in]sectionthe section in the packet this rr is supposed to be in (to determine whether to add rdata or not)
Returns
ldns_status

Definition at line 234 of file host2wire.c.

References ldns_rr2buffer_wire_compress().

◆ ldns_rr2buffer_wire_compress()

ldns_status ldns_rr2buffer_wire_compress ( ldns_buffer output,
const ldns_rr rr,
int  section,
ldns_rbtree_t compression_data 
)

Copies the rr data to the buffer in wire format while doing DNAME compression.

Parameters
[out]*outputbuffer to append the result to
[in]*rrresource record to convert
[in]sectionthe section in the packet this rr is supposed to be in (to determine whether to add rdata or not)
[out]*compression_datadata structure holding state information for compression
Returns
ldns_status

Definition at line 240 of file host2wire.c.

References ldns_buffer_reserve(), ldns_dname2buffer_wire_compress(), and ldns_rr_owner().

◆ ldns_rr2buffer_wire_canonical()

ldns_status ldns_rr2buffer_wire_canonical ( ldns_buffer output,
const ldns_rr rr,
int  section 
)

Copies the rr data to the buffer in wire format, in canonical format according to RFC3597 (every dname in rdata fields of RR's mentioned in that RFC will be lowercased)

Parameters
[out]*outputbuffer to append the result to
[in]*rrresource record to convert
[in]sectionthe section in the packet this rr is supposed to be in (to determine whether to add rdata or not)
Returns
ldns_status

Definition at line 161 of file host2wire.c.

References ldns_buffer_reserve(), ldns_rdf2buffer_wire_canonical(), ldns_rr_get_type(), ldns_rr_owner(), LDNS_RR_TYPE_A6, LDNS_RR_TYPE_AFSDB, LDNS_RR_TYPE_CNAME, LDNS_RR_TYPE_DNAME, LDNS_RR_TYPE_HINFO, LDNS_RR_TYPE_KX, LDNS_RR_TYPE_MB, LDNS_RR_TYPE_MD, LDNS_RR_TYPE_MF, LDNS_RR_TYPE_MG, LDNS_RR_TYPE_MINFO, LDNS_RR_TYPE_MR, LDNS_RR_TYPE_MX, LDNS_RR_TYPE_NAPTR, LDNS_RR_TYPE_NS, LDNS_RR_TYPE_NXT, LDNS_RR_TYPE_PTR, LDNS_RR_TYPE_PX, LDNS_RR_TYPE_RP, LDNS_RR_TYPE_RRSIG, LDNS_RR_TYPE_RT, LDNS_RR_TYPE_SIG, LDNS_RR_TYPE_SOA, and LDNS_RR_TYPE_SRV.

◆ ldns_rrsig2buffer_wire()

ldns_status ldns_rrsig2buffer_wire ( ldns_buffer output,
const ldns_rr sigrr 
)

Converts a rrsig to wireformat BUT EXCLUDE the rrsig rdata This is needed in DNSSEC verification.

Parameters
[out]outputbuffer to append the result to
[in]sigrrsignature rr to operate on
Returns
ldns_status

Definition at line 284 of file host2wire.c.

References ldns_rdf2buffer_wire_canonical(), ldns_rr_get_type(), ldns_rr_rd_count(), ldns_rr_rdf(), LDNS_RR_TYPE_RRSIG, and LDNS_STATUS_ERR.

◆ ldns_rr_rdata2buffer_wire()

ldns_status ldns_rr_rdata2buffer_wire ( ldns_buffer output,
const ldns_rr rr 
)

Converts an rr's rdata to wireformat, while excluding the ownername and all the stuff before the rdata.

This is needed in DNSSEC keytag calculation, the ds calcalution from the key and maybe elsewhere.

Parameters
[out]*outputbuffer where to put the result
[in]*rrrr to operate on
Returns
ldns_status

Definition at line 304 of file host2wire.c.

References ldns_rdf2buffer_wire(), ldns_rr_rd_count(), and ldns_rr_rdf().

◆ ldns_pkt2buffer_wire()

ldns_status ldns_pkt2buffer_wire ( ldns_buffer output,
const ldns_pkt pkt 
)

Copies the packet data to the buffer in wire format.

Parameters
[out]*outputbuffer to append the result to
[in]*pktpacket to convert
Returns
ldns_status

Definition at line 366 of file host2wire.c.

References ldns_dname_compare(), and ldns_rbtree_create().

◆ ldns_rr_list2buffer_wire()

ldns_status ldns_rr_list2buffer_wire ( ldns_buffer output,
const ldns_rr_list rrlist 
)

Copies the rr_list data to the buffer in wire format.

Parameters
[out]*outputbuffer to append the result to
[in]*rrlistrr_list to to convert
Returns
ldns_status

Definition at line 146 of file host2wire.c.

References ldns_rr2buffer_wire(), ldns_rr_list_rr(), ldns_rr_list_rr_count(), and LDNS_SECTION_ANY.

◆ ldns_rdf2wire()

ldns_status ldns_rdf2wire ( uint8_t **  dest,
const ldns_rdf rdf,
size_t *  size 
)

Allocates an array of uint8_t at dest, and puts the wireformat of the given rdf in that array.

The result_size value contains the length of the array, if it succeeds, and 0 otherwise (in which case the function also returns NULL)

Parameters
[out]destpointer to the array of bytes to be created
[in]rdfthe rdata field to convert
[out]sizethe size of the converted result

Definition at line 443 of file host2wire.c.

References ldns_buffer_new(), LDNS_MAX_PACKETLEN, ldns_rdf2buffer_wire(), LDNS_STATUS_MEM_ERR, and LDNS_STATUS_OK.

◆ ldns_rr2wire()

ldns_status ldns_rr2wire ( uint8_t **  dest,
const ldns_rr rr,
int  section,
size_t *  size 
)

Allocates an array of uint8_t at dest, and puts the wireformat of the given rr in that array.

The result_size value contains the length of the array, if it succeeds, and 0 otherwise (in which case the function also returns NULL)

If the section argument is LDNS_SECTION_QUESTION, data like ttl and rdata are not put into the result

Parameters
[out]destpointer to the array of bytes to be created
[in]rrthe rr to convert
[in]sectionthe rr section, determines how the rr is written.
[out]sizethe size of the converted result

Definition at line 461 of file host2wire.c.

References ldns_buffer_new(), LDNS_MAX_PACKETLEN, ldns_rr2buffer_wire(), LDNS_STATUS_MEM_ERR, and LDNS_STATUS_OK.

◆ ldns_pkt2wire()

ldns_status ldns_pkt2wire ( uint8_t **  dest,
const ldns_pkt p,
size_t *  size 
)

Allocates an array of uint8_t at dest, and puts the wireformat of the given packet in that array.

The result_size value contains the length of the array, if it succeeds, and 0 otherwise (in which case the function also returns NULL)

Definition at line 479 of file host2wire.c.

References ldns_buffer_new(), LDNS_MAX_PACKETLEN, ldns_pkt2buffer_wire(), LDNS_STATUS_MEM_ERR, and LDNS_STATUS_OK.