X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=dns.h;fp=dns.h;h=0b6e750feb0d85adf19e94a18774307bf9f98bf6;hb=c18626ad35cdf94edbff196070ccbb6ae825abd0;hp=bdb0f0748ce49a31bdece57c5a664b273adf16da;hpb=54247ce93dc6f048c0ffea546f454653ce0e25a8;p=catta diff --git a/dns.h b/dns.h index bdb0f07..0b6e750 100644 --- a/dns.h +++ b/dns.h @@ -5,14 +5,20 @@ #include "rr.h" -#define FLX_DNS_MAX_PACKET_SIZE 9000 +#define FLX_DNS_PACKET_MAX_SIZE 9000 +#define FLX_DNS_PACKET_HEADER_SIZE 12 typedef struct _flxDnsPacket { - guint size, rindex; - guint8 data[FLX_DNS_MAX_PACKET_SIZE]; + guint size, rindex, max_size; } flxDnsPacket; -flxDnsPacket* flx_dns_packet_new(void); + +#define FLX_DNS_PACKET_DATA(p) (((guint8*) p) + sizeof(flxDnsPacket)) + +flxDnsPacket* flx_dns_packet_new(guint size); +flxDnsPacket* flx_dns_packet_new_query(guint size); +flxDnsPacket* flx_dns_packet_new_response(guint size); + void flx_dns_packet_free(flxDnsPacket *p); void flx_dns_packet_set_field(flxDnsPacket *p, guint index, guint16 v); guint16 flx_dns_packet_get_field(flxDnsPacket *p, guint index);