From 2f26ab4c1a43a754fbb1d2cc3e27e82db272f81e Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Thu, 5 Jan 2012 12:17:50 +0000 Subject: -dns API improvements, towards serialization --- src/include/gnunet_dnsparser_lib.h | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) (limited to 'src/include/gnunet_dnsparser_lib.h') diff --git a/src/include/gnunet_dnsparser_lib.h b/src/include/gnunet_dnsparser_lib.h index 70dc63326..6654394be 100644 --- a/src/include/gnunet_dnsparser_lib.h +++ b/src/include/gnunet_dnsparser_lib.h @@ -223,6 +223,24 @@ struct GNUNET_DNSPARSER_SoaRecord }; +/** + * Binary record information (unparsed). + */ +struct GNUNET_DNSPARSER_RawRecord +{ + + /** + * Binary record data. + */ + void *data; + + /** + * Number of bytes in data. + */ + size_t data_len; +}; + + /** * A DNS response record. */ @@ -255,14 +273,10 @@ struct GNUNET_DNSPARSER_Record /** * Raw data for all other types. */ - char *raw; + struct GNUNET_DNSPARSER_RawRecord raw; } data; - /** - * Number of bytes in data. - */ - size_t data_len; /** * When does the record expire? @@ -366,6 +380,7 @@ GNUNET_DNSPARSER_free_packet (struct GNUNET_DNSPARSER_Packet *p); * Given a DNS packet, generate the corresponding UDP payload. * * @param p packet to pack + * @param max maximum allowed size for the resulting UDP payload * @param buf set to a buffer with the packed message * @param buf_length set to the length of buf * @return GNUNET_SYSERR if 'p' is invalid @@ -373,7 +388,8 @@ GNUNET_DNSPARSER_free_packet (struct GNUNET_DNSPARSER_Packet *p); * GNUNET_OK if 'p' was packed completely into '*buf' */ int -GNUNET_DNSPARSER_pack (struct GNUNET_DNSPARSER_Packet *p, +GNUNET_DNSPARSER_pack (const struct GNUNET_DNSPARSER_Packet *p, + uint16_t max, char **buf, size_t *buf_length); -- cgit v1.2.3