-add vpn record type to namestore
authorMartin Schanzenbach <mschanzenbach@posteo.de>
Sat, 16 Jun 2012 10:47:23 +0000 (10:47 +0000)
committerMartin Schanzenbach <mschanzenbach@posteo.de>
Sat, 16 Jun 2012 10:47:23 +0000 (10:47 +0000)
src/include/gnunet_namestore_service.h
src/namestore/namestore_common.c

index a484601a5a29d75e142172b55f1c210539c125fa..730f9511289a975e376478ac64b95bd94ea485d9 100644 (file)
@@ -63,6 +63,11 @@ extern "C"
  */
 #define GNUNET_NAMESTORE_TYPE_LEHO 65538
 
+/**
+ * Record type for VPN resolution
+ */
+#define GNUNET_NAMESTORE_TYPE_VPN 65539
+
 /**
  * Entry in the queue.
  */
index 95f6364a12f17205d4a65b3ee68af437061851b1..4ffeaebcff091808f3dd2c4db7fd0e9c475b2e02 100644 (file)
@@ -376,6 +376,8 @@ GNUNET_NAMESTORE_value_to_string (uint32_t type,
     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 @@ GNUNET_NAMESTORE_string_to_value (uint32_t type,
   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 @@ GNUNET_NAMESTORE_string_to_value (uint32_t type,
     *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);
   }