gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r13302 - gnunet/src/vpn
Date: Tue, 19 Oct 2010 23:16:45 +0200

Author: toelke
Date: 2010-10-19 23:16:45 +0200 (Tue, 19 Oct 2010)
New Revision: 13302

Modified:
   gnunet/src/vpn/gnunet-daemon-vpn.c
   gnunet/src/vpn/gnunet-service-dns-p.h
   gnunet/src/vpn/gnunet-service-dns.c
Log:
allow the service-dns to answer not only with an unchanged dns-packet, but
also with other types of answer

Modified: gnunet/src/vpn/gnunet-daemon-vpn.c
===================================================================
--- gnunet/src/vpn/gnunet-daemon-vpn.c  2010-10-19 21:16:43 UTC (rev 13301)
+++ gnunet/src/vpn/gnunet-daemon-vpn.c  2010-10-19 21:16:45 UTC (rev 13302)
@@ -151,6 +151,8 @@
        struct answer_packet_list* ans = mycls.answer_head;
        size_t len = ntohs(ans->pkt.hdr.size);
 
+       GNUNET_assert(ans->pkt.subtype == GNUNET_DNS_ANSWER_TYPE_IP);
+
        size_t data_len = len - sizeof(struct answer_packet) + 1;
        size_t net_len = sizeof(struct ip_hdr) + sizeof(struct udp_dns) + 
data_len;
        size_t pkt_len = sizeof(struct GNUNET_MessageHeader) + sizeof(struct 
pkt_tun) + net_len;

Modified: gnunet/src/vpn/gnunet-service-dns-p.h
===================================================================
--- gnunet/src/vpn/gnunet-service-dns-p.h       2010-10-19 21:16:43 UTC (rev 
13301)
+++ gnunet/src/vpn/gnunet-service-dns-p.h       2010-10-19 21:16:45 UTC (rev 
13302)
@@ -19,15 +19,24 @@
        struct query_packet pkt;
 };
 
+enum GNUNET_DNS_ANSWER_Subtype {
+    /**
+     * Answers of this type contain a dns-packet that just has to be 
transmitted
+     */
+    GNUNET_DNS_ANSWER_TYPE_IP
+};
+
 struct answer_packet {
-       struct GNUNET_MessageHeader hdr;
+    struct GNUNET_MessageHeader hdr;
+    enum GNUNET_DNS_ANSWER_Subtype subtype GNUNET_PACKED;
 
-       unsigned from:32 GNUNET_PACKED;
-       unsigned to:32 GNUNET_PACKED;
-       unsigned dst_port:16 GNUNET_PACKED;
+    unsigned from:32 GNUNET_PACKED;
+    unsigned to:32 GNUNET_PACKED;
+    unsigned dst_port:16 GNUNET_PACKED;
 
-       unsigned char data[1];
+    unsigned char data[1];
 };
+
 struct answer_packet_list {
        struct answer_packet_list* next GNUNET_PACKED;
        struct answer_packet_list* prev GNUNET_PACKED;

Modified: gnunet/src/vpn/gnunet-service-dns.c
===================================================================
--- gnunet/src/vpn/gnunet-service-dns.c 2010-10-19 21:16:43 UTC (rev 13301)
+++ gnunet/src/vpn/gnunet-service-dns.c 2010-10-19 21:16:45 UTC (rev 13302)
@@ -178,6 +178,7 @@
                struct answer_packet_list* answer = GNUNET_malloc(len + 
2*sizeof(struct answer_packet_list*));
                answer->pkt.hdr.type = 
htons(GNUNET_MESSAGE_TYPE_LOCAL_RESPONSE_DNS);
                answer->pkt.hdr.size = htons(len);
+               answer->pkt.subtype = GNUNET_DNS_ANSWER_TYPE_IP;
                answer->pkt.from = addr.sin_addr.s_addr;
                answer->pkt.to = query_states[dns->s.id].local_ip;
                answer->pkt.dst_port = query_states[dns->s.id].local_port;




reply via email to

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