gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r12032 - gnunet/src/vpn


From: gnunet
Subject: [GNUnet-SVN] r12032 - gnunet/src/vpn
Date: Mon, 28 Jun 2010 14:37:47 +0200

Author: toelke
Date: 2010-06-28 14:37:47 +0200 (Mon, 28 Jun 2010)
New Revision: 12032

Modified:
   gnunet/src/vpn/packet.h
Log:
vpn: Packet-Structure for udp and dns over ipv6

Modified: gnunet/src/vpn/packet.h
===================================================================
--- gnunet/src/vpn/packet.h     2010-06-28 12:37:46 UTC (rev 12031)
+++ gnunet/src/vpn/packet.h     2010-06-28 12:37:47 UTC (rev 12032)
@@ -31,6 +31,36 @@
        unsigned char data[1];
 };
 
+struct udp_pkt {
+       unsigned spt:16;
+       unsigned dpt:16;
+       unsigned len:16;
+       unsigned crc:16;
+}
+
+struct dns_pkt {
+       unsigned id:16;
+       unsigned qr:1; // query:0, response:1
+       unsigned op:4; // query:0, inverse q.:1, status: 2
+       unsigned aa:1; // authoritative answer
+       unsigned tc:1; // message is truncated
+       unsigned rd:1; // recursion desired (client -> server)
+       unsigned ra:1; // recursion available (server -> client)
+       unsigned z:2;  // reserved
+       unsigned a:1;  // answer is signed by server
+       unsigned rcode:4; // 0 No error
+                         // 1 Format error
+                         // 2 Server failure
+                         // 3 Name Error
+                         // 4 Not Implemented
+                         // 5 Refused
+       unsigned qdcount:16; // number of questions
+       unsigned ancount:16; // number of answers
+       unsigned nscount:16; // number of authority-records
+       unsigned arcount:16; // number of additional records
+       unsigned char data[1];
+}
+
 struct ip6_pkt {
        struct pkt_tun tun;
        struct ip6_hdr hdr;
@@ -43,6 +73,12 @@
        struct tcp_pkt data;
 };
 
+struct ip6_udp {
+       struct pkt_tun tun;
+       struct ip6_hdr hdr;
+       struct udp_pkt data;
+};
+
 extern void send_pkt(int fd, struct ip6_pkt* pkt);
 extern int recv_ipv6pkt(int fd, struct pkt_tun** pkt);
 extern int recv_pkt(int fd, struct pkt_tun** pkt);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]