gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r13215 - in gnunet/src: block include vpn


From: gnunet
Subject: [GNUnet-SVN] r13215 - in gnunet/src: block include vpn
Date: Fri, 8 Oct 2010 09:36:37 +0200

Author: toelke
Date: 2010-10-08 09:36:36 +0200 (Fri, 08 Oct 2010)
New Revision: 13215

Added:
   gnunet/src/include/gnunet_block_dns.h
Removed:
   gnunet/src/vpn/gnunet-block-dns.h
Modified:
   gnunet/src/block/plugin_block_dns.c
Log:
hash and validate a dns-block

Modified: gnunet/src/block/plugin_block_dns.c
===================================================================
--- gnunet/src/block/plugin_block_dns.c 2010-10-08 07:36:36 UTC (rev 13214)
+++ gnunet/src/block/plugin_block_dns.c 2010-10-08 07:36:36 UTC (rev 13215)
@@ -26,6 +26,7 @@
 
 #include "platform.h"
 #include "plugin_block.h"
+#include "gnunet_block_dns.h"
 
 #define DEBUG_DHT GNUNET_NO
 
@@ -60,9 +61,19 @@
   case GNUNET_BLOCK_TYPE_DNS:
     if (xquery_size != 0)
       return GNUNET_BLOCK_EVALUATION_REQUEST_INVALID;
+
     if (reply_block_size == 0)
       return GNUNET_BLOCK_EVALUATION_REQUEST_VALID;
-    return GNUNET_BLOCK_EVALUATION_OK_LAST;
+
+    if (reply_block_size < sizeof(struct GNUNET_DNS_Record))
+      return GNUNET_BLOCK_EVALUATION_RESULT_INVALID;
+
+    const struct GNUNET_DNS_Record* rec = reply_block;
+    if(reply_block_size != (sizeof(struct GNUNET_DNS_Record) + rec->namelen - 
1))
+      return GNUNET_BLOCK_EVALUATION_RESULT_INVALID;
+
+    /* How to decide whether there are no more? */
+    return GNUNET_BLOCK_EVALUATION_OK_MORE;
   default:
     return GNUNET_BLOCK_EVALUATION_TYPE_NOT_SUPPORTED;
   }
@@ -89,7 +100,8 @@
 {
   if (type != GNUNET_BLOCK_TYPE_DNS)
     return GNUNET_SYSERR;
-  return GNUNET_SYSERR;
+  GNUNET_CRYPTO_hash(block, block_size, key);
+  return GNUNET_OK;
 }
 
 /**

Copied: gnunet/src/include/gnunet_block_dns.h (from rev 13214, 
gnunet/src/vpn/gnunet-block-dns.h)
===================================================================
--- gnunet/src/include/gnunet_block_dns.h                               (rev 0)
+++ gnunet/src/include/gnunet_block_dns.h       2010-10-08 07:36:36 UTC (rev 
13215)
@@ -0,0 +1,49 @@
+#ifndef _GNVPN_BLOCKDNS_H_
+#define _GNVPN_BLOCKDNS_H_
+
+#include "gnunet_common.h"
+
+/**
+ * Bitmask describing what ip-services are supported by services
+ * It is 2 bytes long
+ */
+struct GNUNET_ipservices {
+  unsigned UDP:1 GNUNET_PACKED;
+  unsigned TCP:1 GNUNET_PACKED;
+  unsigned RESERVED:14 GNUNET_PACKED;
+};
+
+/**
+ * This is the structure describing an dns-record such as www.gnunet.
+ */
+struct GNUNET_DNS_Record
+{
+  /**
+   * The peer providing this service
+   */
+  struct GNUNET_PeerIdentity peer;
+
+  /**
+   * The descriptor for the service
+   * (a peer may provide more than one service)
+   */
+  GNUNET_HashCode service_descriptor;
+
+  /**
+   * What connection-types (UDP, TCP, ...) are supported by the service
+   */
+  struct GNUNET_ipservices connectiontypes;
+
+  /**
+   * The length of the name of the service
+   */
+  unsigned char namelen;
+
+  /**
+   * The name of the service
+   * This is namelen bytes
+   */
+  char name[1];
+};
+
+#endif

Deleted: gnunet/src/vpn/gnunet-block-dns.h
===================================================================
--- gnunet/src/vpn/gnunet-block-dns.h   2010-10-08 07:36:36 UTC (rev 13214)
+++ gnunet/src/vpn/gnunet-block-dns.h   2010-10-08 07:36:36 UTC (rev 13215)
@@ -1,49 +0,0 @@
-#ifndef _GNVPN_BLOCKDNS_H_
-#define _GNVPN_BLOCKDNS_H_
-
-#include "gnunet_common.h"
-
-/**
- * Bitmask describing what ip-services are supported by services
- * It is 2 bytes long
- */
-struct GNUNET_ipservices {
-  unsigned UDP:1 GNUNET_PACKED;
-  unsigned TCP:1 GNUNET_PACKED;
-  unsigned RESERVED:14 GNUNET_PACKED;
-};
-
-/**
- * This is the structure describing an dns-record such as www.gnunet.
- */
-struct GNUNET_DNS_Record
-{
-  /**
-   * The peer providing this service
-   */
-  struct GNUNET_PeerIdentity peer;
-
-  /**
-   * The descriptor for the service
-   * (a peer may provide more than one service)
-   */
-  GNUNET_HashCode service_descriptor;
-
-  /**
-   * What connection-types (UDP, TCP, ...) are supported by the service
-   */
-  struct GNUNET_ipservices connectiontypes;
-
-  /**
-   * The length of the name of the service
-   */
-  unsigned char namelen;
-
-  /**
-   * The name of the service
-   * This is namelen bytes
-   */
-  char name[1];
-};
-
-#endif




reply via email to

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