fix
[oweals/gnunet.git] / src / vpn / gnunet-vpn-packet.h
index 71908d10c9b2dbe3fefe10dd983c32bfa79a6e10..3df33a3f1ed0cacf3508a40328ecca13d9b155a3 100644 (file)
@@ -22,8 +22,9 @@ struct ip6_hdr {
 };
 
 struct ip_hdr {
-       unsigned version:4 GNUNET_PACKED;
        unsigned hdr_lngth:4 GNUNET_PACKED;
+       unsigned version:4 GNUNET_PACKED;
+
        unsigned diff_serv:8 GNUNET_PACKED;
        unsigned tot_lngth:16 GNUNET_PACKED;
 
@@ -60,7 +61,7 @@ struct udp_pkt {
 };
 
 // DNS-Stuff
-struct dns_pkt {
+struct dns_static {
        unsigned short id GNUNET_PACKED;
 
        unsigned rd:1 GNUNET_PACKED; // recursion desired (client -> server)
@@ -82,17 +83,31 @@ struct dns_pkt {
        unsigned short ancount GNUNET_PACKED; // number of answers
        unsigned short nscount GNUNET_PACKED; // number of authority-records
        unsigned short arcount GNUNET_PACKED; // number of additional records
+};
+
+struct dns_pkt {
+       struct dns_static s;
        unsigned char data[1];
 };
 
+struct dns_pkt_parsed {
+       struct dns_static s;
+       struct dns_query** queries;
+       struct dns_record** answers;
+       struct dns_record** nameservers;
+       struct dns_record** additional;
+};
+
 struct dns_query {
-       unsigned char* name;
+       char* name;
+       unsigned char namelen;
        unsigned short qtype;
        unsigned short qclass;
 };
 
 struct dns_record {
-       unsigned char* name;
+       char* name;
+       unsigned char namelen;
        unsigned short type;
        unsigned short class;
        unsigned int ttl;