gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r22037 - in gnunet/src: include namestore


From: gnunet
Subject: [GNUnet-SVN] r22037 - in gnunet/src: include namestore
Date: Sat, 16 Jun 2012 12:47:23 +0200

Author: schanzen
Date: 2012-06-16 12:47:23 +0200 (Sat, 16 Jun 2012)
New Revision: 22037

Modified:
   gnunet/src/include/gnunet_namestore_service.h
   gnunet/src/namestore/namestore_common.c
Log:
-add vpn record type to namestore

Modified: gnunet/src/include/gnunet_namestore_service.h
===================================================================
--- gnunet/src/include/gnunet_namestore_service.h       2012-06-16 09:44:58 UTC 
(rev 22036)
+++ gnunet/src/include/gnunet_namestore_service.h       2012-06-16 10:47:23 UTC 
(rev 22037)
@@ -64,6 +64,11 @@
 #define GNUNET_NAMESTORE_TYPE_LEHO 65538
 
 /**
+ * Record type for VPN resolution
+ */
+#define GNUNET_NAMESTORE_TYPE_VPN 65539
+
+/**
  * Entry in the queue.
  */
 struct GNUNET_NAMESTORE_QueueEntry;

Modified: gnunet/src/namestore/namestore_common.c
===================================================================
--- gnunet/src/namestore/namestore_common.c     2012-06-16 09:44:58 UTC (rev 
22036)
+++ gnunet/src/namestore/namestore_common.c     2012-06-16 10:47:23 UTC (rev 
22037)
@@ -376,6 +376,8 @@
     return GNUNET_strndup (data, data_size);
   case GNUNET_NAMESTORE_TYPE_LEHO:
     return GNUNET_strndup (data, data_size);
+  case GNUNET_NAMESTORE_TYPE_VPN:
+    return GNUNET_strndup (data, data_size);
   default:
     GNUNET_break (0);
   }
@@ -414,6 +416,9 @@
   uint32_t soa_retry;
   uint32_t soa_expire;
   uint32_t soa_min;
+  struct GNUNET_HashCode hash;
+  struct GNUNET_CRYPTO_HashAsciiEncoded s_peer, s_serv;
+  int af, proto;
   
   switch (type)
   {
@@ -495,6 +500,20 @@
     *data = GNUNET_strdup (s);
     *data_size = strlen (s);
     return GNUNET_OK;
+  case GNUNET_NAMESTORE_TYPE_VPN:
+    if (4 != SSCANF (s,"%d:%d:%s:%s",
+                     &af, &proto, (char*)&s_peer, (char*)&s_serv))
+    {
+      return GNUNET_SYSERR;
+    }
+    if ((GNUNET_OK != GNUNET_CRYPTO_hash_from_string ((char*)&s_peer, &hash)) 
||
+        (GNUNET_OK != GNUNET_CRYPTO_hash_from_string ((char*)&s_serv, &hash)))
+    {
+      return GNUNET_SYSERR;
+    }
+    *data = GNUNET_strdup (s);
+    *data_size = strlen (s);
+    return GNUNET_OK;
   default:
     GNUNET_break (0);
   }




reply via email to

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