gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r24128 - gnunet/src/gns


From: gnunet
Subject: [GNUnet-SVN] r24128 - gnunet/src/gns
Date: Sat, 29 Sep 2012 19:38:25 +0200

Author: schanzen
Date: 2012-09-29 19:38:25 +0200 (Sat, 29 Sep 2012)
New Revision: 24128

Modified:
   gnunet/src/gns/gns.conf.in
   gnunet/src/gns/gns_api.c
   gnunet/src/gns/gnunet-service-gns.c
   gnunet/src/gns/gnunet-service-gns_resolver.c
Log:
-doxy

Modified: gnunet/src/gns/gns.conf.in
===================================================================
--- gnunet/src/gns/gns.conf.in  2012-09-29 11:52:07 UTC (rev 24127)
+++ gnunet/src/gns/gns.conf.in  2012-09-29 17:38:25 UTC (rev 24128)
@@ -14,7 +14,7 @@
 AUTO_IMPORT_CONFIRMATION_REQ = NO
 MAX_PARALLEL_BACKGROUND_QUERIES = 25
 DEFAULT_LOOKUP_TIMEOUT = 10
-RECORD_PUT_INTERVAL = 4 h
+ZONE_PUBLISH_TIME_WINDOW = 4 h
 # PREFIX = valgrind --leak-check=full --track-origins=yes
 
 [gns-proxy]

Modified: gnunet/src/gns/gns_api.c
===================================================================
--- gnunet/src/gns/gns_api.c    2012-09-29 11:52:07 UTC (rev 24127)
+++ gnunet/src/gns/gns_api.c    2012-09-29 17:38:25 UTC (rev 24128)
@@ -88,19 +88,26 @@
    */
   struct GNUNET_GNS_ShortenRequest *prev;
 
-  /* handle to gns */
+  /**
+   * handle to gns
+   */
   struct GNUNET_GNS_Handle *gns_handle;
   
-  /* processor to call on shorten result */
+  /**
+   *  processor to call on shorten result
+   */
   GNUNET_GNS_ShortenResultProcessor shorten_proc;
   
-  /* processor closure */
+  /**
+   * processor closure
+   */
   void *proc_cls;
 
-  /* request id */
+  /**
+   * request id
+   */
   uint64_t r_id;
   
-  
 };
 
 
@@ -119,16 +126,24 @@
    */
   struct GNUNET_GNS_GetAuthRequest *prev;
 
-  /* handle to gns */
+  /**
+   * handle to gns
+   */
   struct GNUNET_GNS_Handle *gns_handle;
   
-  /* processor to call on authority lookup result */
+  /**
+   * processor to call on authority lookup result
+   */
   GNUNET_GNS_GetAuthResultProcessor auth_proc;
   
-  /* processor closure */
+  /**
+   * processor closure
+   */
   void *proc_cls;
   
-  /* request id */
+  /**
+   * request id
+   */
   uint32_t r_id;
   
 };

Modified: gnunet/src/gns/gnunet-service-gns.c
===================================================================
--- gnunet/src/gns/gnunet-service-gns.c 2012-09-29 11:52:07 UTC (rev 24127)
+++ gnunet/src/gns/gnunet-service-gns.c 2012-09-29 17:38:25 UTC (rev 24128)
@@ -40,9 +40,27 @@
 #include "gnunet-service-gns_interceptor.h"
 #include "gnunet_protocols.h"
 
-#define INITIAL_ZONE_ITERATION_INTERVAL GNUNET_TIME_UNIT_MILLISECONDS
+/**
+ * The initial interval in milliseconds btween puts in
+ * a zone iteration
+ */
+#define INITIAL_PUT_INTERVAL GNUNET_TIME_UNIT_MILLISECONDS
+
+/**
+ * The upper bound for the zone iteration interval in milliseconds
+ */
 #define MINIMUM_ZONE_ITERATION_INTERVAL GNUNET_TIME_UNIT_SECONDS
-#define DEFAULT_RECORD_PUT_INTERVAL GNUNET_TIME_relative_multiply 
(GNUNET_TIME_UNIT_HOURS, 4)
+
+/**
+ * The default put interval for the zone iteration. In case
+ * No option is found
+ */
+#define DEFAULT_ZONE_PUBLISH_TIME_WINDOW GNUNET_TIME_relative_multiply 
(GNUNET_TIME_UNIT_HOURS, 4)
+
+/**
+ * The factor the current zone iteration interval is divided by for each
+ * additional new record
+ */
 #define LATE_ITERATION_SPEEDUP_FACTOR 2
 
 
@@ -52,59 +70,85 @@
 struct ClientShortenHandle
 {
 
-  /* DLL */
+  /**
+   * List for all shorten requests
+   */
   struct ClientShortenHandle *next;
-
-  /* DLL */
+  /**
+   * List for all shorten requests
+   */
   struct ClientShortenHandle *prev;
 
-  /* the requesting client that */
+  /**
+   * Handle to the requesting client
+   */
   struct GNUNET_SERVER_Client *client;
 
-  /* request id */
-  uint64_t unique_id;
+  /**
+   * The request id
+   */
+  uint64_t request_id;
 
-  /* request type */
+  /**
+   * request type
+   */
   enum GNUNET_GNS_RecordType type;
 
-  /* name to shorten */
+  /** 
+   * name to shorten
+   */
   char name[MAX_DNS_NAME_LENGTH];
 
-  /* name of private zone (relative to root) */
+  /**
+   * name of private zone (relative to root)
+   */
   char private_zone_id[MAX_DNS_NAME_LENGTH];
   
-  /* name of shorten zone (relative to root) */
+  /**
+   * name of shorten zone (relative to root)
+   */
   char shorten_zone_id[MAX_DNS_NAME_LENGTH];
   
-  /* root zone */
+  /**
+   * master zone
+   */
   struct GNUNET_CRYPTO_ShortHashCode root_zone;
 
-  /* private zone */
+  /**
+   * private zone
+   */
   struct GNUNET_CRYPTO_ShortHashCode private_zone;
   
-  /* shorten zone */
+  /**
+   * shorten zone
+   */
   struct GNUNET_CRYPTO_ShortHashCode shorten_zone;
 
-  /* Namestore lookup task */
+  /**
+   * Namestore lookup task
+   */
   struct GNUNET_NAMESTORE_QueueEntry *namestore_task;
-
 };
 
 
 /**
- * Handle to a get auhtority operation from api
+ * Handle to a get authority operation from api
  */
 struct ClientGetAuthHandle
 {
-  /* the requesting client that */
+  /**
+   * Handle to the requesting client */
   struct GNUNET_SERVER_Client *client;
 
-  /* request id */
-  uint64_t unique_id;
+  /**
+   * request id
+   */
+  uint64_t request_id;
 
-  /* name to lookup authority */
+  /**
+   * name to lookup authority
+   */
   char *name;
-
 };
 
 
@@ -114,25 +158,39 @@
 struct ClientLookupHandle
 {
 
-  /* the requesting client that */
+  /**
+   * Handle to the requesting client
+   */
   struct GNUNET_SERVER_Client *client;
 
-  /* The zone we look up in */
+  /**
+   * The zone we look up in
+   */
   struct GNUNET_CRYPTO_ShortHashCode zone;
 
-  /* Do we only want to lookup from local cache? */
+  /**
+   * GNUNET_YES if we only want to lookup from local cache
+   */
   int only_cached;
 
-  /* request id */
-  uint64_t unique_id;
+  /**
+   * request id 
+   */
+  uint64_t request_id;
 
-  /* request type */
+  /**
+   * request type
+   */
   enum GNUNET_GNS_RecordType type;
 
-  /* optional zone private key used for shorten */
+  /**
+   * optional zone private key used for shorten
+   */
   struct GNUNET_CRYPTO_RsaPrivateKey *shorten_key;
 
-  /* the name to look up */
+  /**
+   * the name to look up
+   */
   char *name; 
 };
 
@@ -149,7 +207,6 @@
 
 /**
  * Our handle to the namestore service
- * FIXME maybe need a second handle for iteration
  */
 static struct GNUNET_NAMESTORE_Handle *namestore_handle;
 
@@ -179,38 +236,59 @@
 static unsigned long long last_num_public_records;
 
 /**
- * FIXME!
+ * Zone iteration PUT interval.
  */
-static struct GNUNET_TIME_Relative zone_iteration_interval;
+static struct GNUNET_TIME_Relative put_interval;
 
-/* dht update interval FIXME define? */
-static struct GNUNET_TIME_Relative record_put_interval;
+/**
+ * Time window for zone iteration
+ */
+static struct GNUNET_TIME_Relative zone_publish_time_window;
 
-/* zone update task */
-static GNUNET_SCHEDULER_TaskIdentifier zone_update_taskid;
+/**
+ * zone publish task
+ */
+static GNUNET_SCHEDULER_TaskIdentifier zone_publish_task;
 
-/* automatic pkey import for name shortening */
+/**
+ * GNUNET_YES if automatic pkey import for name shortening
+ * is enabled
+ */
 static int auto_import_pkey;
 
-/* first zone iteration is specia */
+/**
+ * GNUNET_YES if zone has never been published before
+ */
 static int first_zone_iteration;
 
-/* lookup timeout */
+/**
+ * The lookup timeout
+ */
 static struct GNUNET_TIME_Relative default_lookup_timeout;
 
-/* ipv6 support */
+/**
+ * GNUNET_YES if ipv6 is supported
+ */
 static int v6_enabled;
 
-/* ipv4 support */
+/**
+ * GNUNET_YES if ipv4 is supported
+ */
 static int v4_enabled;
 
-/* Shorten DLL for cancelling NS requests */
+/**
+ * List for shorten requests
+ */
 static struct ClientShortenHandle *csh_head;
 
-/* Shorten DLL for cancelling NS requests */
+/**
+ * List for shorten requests
+ */
 static struct ClientShortenHandle *csh_tail;
 
-/* Statistics handle */
+/**
+ * Handle to the statistics service
+ */
 static struct GNUNET_STATISTICS_Handle *statistics;
 
 
@@ -237,8 +315,8 @@
   gns_resolver_cleanup ();
   if (NULL != statistics)
     GNUNET_STATISTICS_destroy (statistics, GNUNET_NO);
-  if (zone_update_taskid != GNUNET_SCHEDULER_NO_TASK)
-    GNUNET_SCHEDULER_cancel (zone_update_taskid);
+  if (zone_publish_task != GNUNET_SCHEDULER_NO_TASK)
+    GNUNET_SCHEDULER_cancel (zone_publish_task);
   if (NULL != namestore_iter)
     GNUNET_NAMESTORE_zone_iteration_stop (namestore_iter);
   GNUNET_NAMESTORE_disconnect(namestore_handle);
@@ -253,35 +331,25 @@
  * @param tc task context
  */
 static void
-update_zone_dht_next (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+publish_zone_dht_next (void *cls,
+                       const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
-  zone_update_taskid = GNUNET_SCHEDULER_NO_TASK;
+  zone_publish_task = GNUNET_SCHEDULER_NO_TASK;
   GNUNET_NAMESTORE_zone_iterator_next (namestore_iter);
 }
 
 
 /**
- * Continuation for DHT put
+ * Periodically iterate over our zone and store everything in dht
  *
- * @param cls closure
- * @param success GNUNET_OK if the PUT was transmitted,
- *                GNUNET_NO on timeout,
- *                GNUNET_SYSERR on disconnect from service
- *                after the PUT message was transmitted
- *                (so we don't know if it was received or not)
+ * @param cls NULL
+ * @param tc task context
  */
 static void
-record_dht_put(void *cls, int success)
-{
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "put request transmitted\n");
-}
+publish_zone_dht_start (void *cls, 
+                       const struct GNUNET_SCHEDULER_TaskContext *tc);
 
 
-/* prototype */
-static void
-update_zone_dht_start(void *cls, const struct GNUNET_SCHEDULER_TaskContext 
*tc);
-
-
 /**
  * Function used to put all records successively into the DHT.
  *
@@ -323,7 +391,7 @@
        * we can safely set the interval to the value for a single
        * record
        */
-      zone_iteration_interval = GNUNET_TIME_relative_divide 
(record_put_interval,
+      put_interval = GNUNET_TIME_relative_divide (zone_publish_time_window,
                                                              1);
 
       GNUNET_log (GNUNET_ERROR_TYPE_DEBUG | GNUNET_ERROR_TYPE_BULK,
@@ -331,18 +399,18 @@
     }
     else
     {
-      zone_iteration_interval = GNUNET_TIME_relative_divide 
(record_put_interval,
+      put_interval = GNUNET_TIME_relative_divide (zone_publish_time_window,
                                                              
num_public_records);
     }
-    zone_iteration_interval = GNUNET_TIME_relative_max 
(MINIMUM_ZONE_ITERATION_INTERVAL,
-                                                        
zone_iteration_interval);
+    put_interval = GNUNET_TIME_relative_max (MINIMUM_ZONE_ITERATION_INTERVAL,
+                                                        put_interval);
 
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                "Zone iteration finished. Adjusted zone iteration interval to 
%s\n",
-               GNUNET_STRINGS_relative_time_to_string 
(zone_iteration_interval, GNUNET_YES));
+               GNUNET_STRINGS_relative_time_to_string (put_interval, 
GNUNET_YES));
     GNUNET_STATISTICS_set (statistics,
                            "Current zone iteration interval (in ms)",
-                           zone_iteration_interval.rel_value,
+                           put_interval.rel_value,
                            GNUNET_NO);
     GNUNET_STATISTICS_update (statistics,
                               "Number of zone iterations", 1, GNUNET_NO);
@@ -351,11 +419,11 @@
                            last_num_public_records,
                            GNUNET_NO);
     if (0 == num_public_records)
-      zone_update_taskid = GNUNET_SCHEDULER_add_delayed 
(zone_iteration_interval,
-                                                         
&update_zone_dht_start,
+      zone_publish_task = GNUNET_SCHEDULER_add_delayed (put_interval,
+                                                         
&publish_zone_dht_start,
                                                          NULL);
     else
-      zone_update_taskid = GNUNET_SCHEDULER_add_now (&update_zone_dht_start, 
NULL);
+      zone_publish_task = GNUNET_SCHEDULER_add_now (&publish_zone_dht_start, 
NULL);
     return;
   }
   
@@ -365,14 +433,14 @@
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                "No records for name `%s'! Skipping.\n",
                name);
-    zone_update_taskid = GNUNET_SCHEDULER_add_now (&update_zone_dht_next,
+    zone_publish_task = GNUNET_SCHEDULER_add_now (&publish_zone_dht_next,
                                                    NULL);
     return;
   }
   if (NULL == signature)
   {
     GNUNET_break (0);
-    zone_update_taskid = GNUNET_SCHEDULER_add_now (&update_zone_dht_next,
+    zone_publish_task = GNUNET_SCHEDULER_add_now (&publish_zone_dht_next,
                                                    NULL);
     return;
   }
@@ -401,8 +469,8 @@
                _("Records for name `%s' in zone %s too large to fit into DHT"),
                name,
                GNUNET_short_h2s (&zhash));
-    GNUNET_free(nrb);
-    zone_update_taskid = GNUNET_SCHEDULER_add_now (&update_zone_dht_next,
+    GNUNET_free (nrb);
+    zone_publish_task = GNUNET_SCHEDULER_add_now (&publish_zone_dht_next,
                                                    NULL);
     return;
   }
@@ -428,7 +496,7 @@
                         (char*)nrb,
                         expiration,
                         DHT_OPERATION_TIMEOUT,
-                        &record_dht_put,
+                        NULL,
                         NULL); 
   GNUNET_free (nrb);
 
@@ -438,20 +506,20 @@
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                "Last record count was lower than current record count.  
Reducing interval.\n");
-    zone_iteration_interval = GNUNET_TIME_relative_divide (record_put_interval,
+    put_interval = GNUNET_TIME_relative_divide (zone_publish_time_window,
                                                            num_public_records);
-    next_put_interval = GNUNET_TIME_relative_divide (zone_iteration_interval,
+    next_put_interval = GNUNET_TIME_relative_divide (put_interval,
                                                     
LATE_ITERATION_SPEEDUP_FACTOR);
   }
   else
-    next_put_interval = zone_iteration_interval;
+    next_put_interval = put_interval;
 
   GNUNET_STATISTICS_set (statistics,
                         "Current zone iteration interval (ms)",
                         next_put_interval.rel_value,
                         GNUNET_NO); 
-  zone_update_taskid = GNUNET_SCHEDULER_add_delayed (next_put_interval,
-                                                    &update_zone_dht_next,
+  zone_publish_task = GNUNET_SCHEDULER_add_delayed (next_put_interval,
+                                                    &publish_zone_dht_next,
                                                     NULL);
 }
 
@@ -463,9 +531,9 @@
  * @param tc task context
  */
 static void
-update_zone_dht_start(void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+publish_zone_dht_start(void *cls, const struct GNUNET_SCHEDULER_TaskContext 
*tc)
 {
-  zone_update_taskid = GNUNET_SCHEDULER_NO_TASK;
+  zone_publish_task = GNUNET_SCHEDULER_NO_TASK;
 
   GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Scheduling DHT zone update!\n");  
   /* start counting again */
@@ -507,7 +575,7 @@
   rmsg = GNUNET_malloc (sizeof (struct GNUNET_GNS_ClientShortenResultMessage) +
                        name_len);
   
-  rmsg->id = csh->unique_id;
+  rmsg->id = csh->request_id;
   rmsg->header.type = htons(GNUNET_MESSAGE_TYPE_GNS_SHORTEN_RESULT);
   rmsg->header.size = 
     htons(sizeof(struct GNUNET_GNS_ClientShortenResultMessage) +
@@ -733,8 +801,6 @@
                struct GNUNET_SERVER_Client * client,
                const struct GNUNET_MessageHeader * message)
 {
-  uint16_t msg_size;
-  const struct GNUNET_GNS_ClientShortenMessage *sh_msg;
   struct ClientShortenHandle *csh;
   const char *utf_in;
   char name[MAX_DNS_NAME_LENGTH];
@@ -748,17 +814,14 @@
     GNUNET_SERVER_receive_done (client, GNUNET_SYSERR);
     return;
   }
-  sh_msg = (const struct GNUNET_GNS_ClientShortenMessage *) message;
-  utf_in = (const char *) &sh_msg[1];
-  if ('\0' != utf_in[msg_size - sizeof (struct 
GNUNET_GNS_ClientShortenMessage) - 1])
-  {
-    GNUNET_break (0);
-    GNUNET_SERVER_receive_done (client, GNUNET_SYSERR);
-    return;
-  }
-  csh = GNUNET_malloc (sizeof (struct ClientShortenHandle));
+
+
+  const struct GNUNET_GNS_ClientShortenMessage *sh_msg =
+    (const struct GNUNET_GNS_ClientShortenMessage *) message;
+  
+  csh = GNUNET_malloc(sizeof (struct ClientShortenHandle));
   csh->client = client;
-  csh->unique_id = sh_msg->id;
+  csh->request_id = sh_msg->id;
   GNUNET_CONTAINER_DLL_insert (csh_head, csh_tail, csh); 
   GNUNET_STRINGS_utf8_tolower (utf_in, &nameptr);
   GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
@@ -833,7 +896,7 @@
   rmsg = GNUNET_malloc(sizeof(struct GNUNET_GNS_ClientGetAuthResultMessage)
                        + strlen(name) + 1);
   
-  rmsg->id = cah->unique_id;
+  rmsg->id = cah->request_id;
   rmsg->header.type = htons(GNUNET_MESSAGE_TYPE_GNS_GET_AUTH_RESULT);
   rmsg->header.size = 
     htons(sizeof(struct GNUNET_GNS_ClientGetAuthResultMessage) +
@@ -863,8 +926,6 @@
                      struct GNUNET_SERVER_Client * client,
                      const struct GNUNET_MessageHeader * message)
 {
-  uint16_t msg_size;
-  const struct GNUNET_GNS_ClientGetAuthMessage *sh_msg;
   struct ClientGetAuthHandle *cah;
   const char *utf_in;
   char name[MAX_DNS_NAME_LENGTH];
@@ -880,18 +941,15 @@
   }
   GNUNET_SERVER_notification_context_add (nc, client);
 
-  sh_msg = (const struct GNUNET_GNS_ClientGetAuthMessage *) message;
-  utf_in = (const char *) &sh_msg[1];
-  if ('\0' != utf_in[msg_size - sizeof (struct 
GNUNET_GNS_ClientGetAuthMessage) - 1])
-  {
-    GNUNET_break (0);
-    GNUNET_SERVER_receive_done (client, GNUNET_SYSERR);
-    return;
-  }  
-  GNUNET_STRINGS_utf8_tolower(utf_in, &nameptr);
+  struct GNUNET_GNS_ClientGetAuthMessage *sh_msg =
+    (struct GNUNET_GNS_ClientGetAuthMessage *) message;
+  
+  GNUNET_STRINGS_utf8_tolower((const char*)&sh_msg[1], &nameptr);
+
+
   cah = GNUNET_malloc(sizeof(struct ClientGetAuthHandle));
   cah->client = client;
-  cah->unique_id = sh_msg->id;
+  cah->request_id = sh_msg->id;
   if (strlen (name) < strlen(GNUNET_GNS_TLD))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -925,17 +983,16 @@
     cah->name = NULL;
     send_get_auth_response(cah, name);
     return;
-  }  
-  cah->name = GNUNET_malloc(strlen (name)
+  }
+  
+  cah->name = GNUNET_malloc (strlen (name)
                             - strlen (GNUNET_GNS_TLD) + 1);
-  memset (cah->name, 0,
-         strlen (name) - strlen (GNUNET_GNS_TLD) + 1);
-  memcpy (cah->name, name,
-         strlen (name) - strlen(GNUNET_GNS_TLD));
+  memcpy(cah->name, name,
+         strlen (name) - strlen (GNUNET_GNS_TLD));
 
   /* Start delegation resolution in our namestore */
-  gns_resolver_get_authority(zone_hash, zone_hash, name, 
&send_get_auth_response, cah);
-
+  gns_resolver_get_authority (zone_hash, zone_hash, name,
+                              &send_get_auth_response, cah);
   GNUNET_STATISTICS_update (statistics,
                             "Authority lookup attempts", 1, GNUNET_NO);
 }
@@ -954,7 +1011,7 @@
                      uint32_t rd_count,
                      const struct GNUNET_NAMESTORE_RecordData *rd)
 {
-  struct ClientLookupHandle* clh = (struct ClientLookupHandle*)cls;
+  struct ClientLookupHandle* clh = cls;
   struct GNUNET_GNS_ClientLookupResultMessage *rmsg;
   size_t len;
   
@@ -962,9 +1019,10 @@
               "LOOKUP_RESULT", rd_count);
   
   len = GNUNET_NAMESTORE_records_get_size (rd_count, rd);
-  rmsg = GNUNET_malloc(len+sizeof(struct 
GNUNET_GNS_ClientLookupResultMessage));
+  rmsg = GNUNET_malloc (
+                      len + sizeof (struct 
GNUNET_GNS_ClientLookupResultMessage));
   
-  rmsg->id = clh->unique_id;
+  rmsg->id = clh->request_id;
   rmsg->rd_count = htonl(rd_count);
   rmsg->header.type = htons(GNUNET_MESSAGE_TYPE_GNS_LOOKUP_RESULT);
   rmsg->header.size = 
@@ -982,18 +1040,13 @@
   
   if (NULL != clh->shorten_key)
     GNUNET_CRYPTO_rsa_key_free (clh->shorten_key);
-
   GNUNET_free(clh);
 
   GNUNET_STATISTICS_update (statistics,
                             "Completed lookups", 1, GNUNET_NO);
-
   if (rd != NULL)
-  {
     GNUNET_STATISTICS_update (statistics,
                               "Records resolved", rd_count, GNUNET_NO);
-  }
-
 }
 
 
@@ -1009,8 +1062,6 @@
               struct GNUNET_SERVER_Client * client,
               const struct GNUNET_MessageHeader * message)
 {
-  uint16_t msg_size;
-  const struct GNUNET_GNS_ClientLookupMessage *sh_msg;
   size_t namelen;
   char name[MAX_DNS_NAME_LENGTH];
   struct ClientLookupHandle *clh;
@@ -1020,8 +1071,9 @@
   struct GNUNET_CRYPTO_RsaPrivateKey *key;
   struct GNUNET_CRYPTO_RsaPrivateKeyBinaryEncoded *pkey;
   char* tmp_pkey;
-
+  
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received `%s' message\n", "LOOKUP");
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received `%s' message\n", "LOOKUP");
   msg_size = ntohs(message->size);
   if (msg_size < sizeof (struct GNUNET_GNS_ClientLookupMessage))
   {
@@ -1031,42 +1083,40 @@
   }
   sh_msg = (const struct GNUNET_GNS_ClientLookupMessage *) message;
   GNUNET_SERVER_notification_context_add (nc, client);
+
+  struct GNUNET_GNS_ClientLookupMessage *sh_msg =
+    (struct GNUNET_GNS_ClientLookupMessage *) message;
+  
   if (GNUNET_YES == ntohl (sh_msg->have_key))
   {
-    pkey = (struct GNUNET_CRYPTO_RsaPrivateKeyBinaryEncoded *)&sh_msg[1];
-    tmp_pkey = (char*)&sh_msg[1];
-    key = GNUNET_CRYPTO_rsa_decode_key (tmp_pkey, ntohs(pkey->len));
-    GNUNET_STRINGS_utf8_tolower(&tmp_pkey[ntohs(pkey->len)], &nameptr);
+    pkey = (struct GNUNET_CRYPTO_RsaPrivateKeyBinaryEncoded *) &sh_msg[1];
+    tmp_pkey = (char*) &sh_msg[1];
+    key = GNUNET_CRYPTO_rsa_decode_key (tmp_pkey, ntohs (pkey->len));
+    GNUNET_STRINGS_utf8_tolower (&tmp_pkey[ntohs (pkey->len)], &nameptr);
   }
   else
   {
     key = NULL;
-    utf_in = (const char *) &sh_msg[1];
-    if ('\0' != utf_in[msg_size - sizeof (struct 
GNUNET_GNS_ClientLookupMessage) - 1])
-    {
-      GNUNET_break (0);
-      GNUNET_SERVER_receive_done (client, GNUNET_SYSERR);
-      return;
-    }  
-    GNUNET_STRINGS_utf8_tolower(utf_in, &nameptr);
-  }  
-  namelen = strlen (name)+1;
+    GNUNET_STRINGS_utf8_tolower ((char*) &sh_msg[1], &nameptr);
+  }
+  
+  namelen = strlen(name)+1;
   clh = GNUNET_malloc (sizeof (struct ClientLookupHandle));
   memset (clh, 0, sizeof (struct ClientLookupHandle));
   clh->client = client;
-  clh->name = GNUNET_malloc(namelen);
-  strcpy(clh->name, name);
-  clh->unique_id = sh_msg->id;
-  clh->type = ntohl(sh_msg->type);
+  clh->name = GNUNET_malloc (namelen);
+  strcpy (clh->name, name);
+  clh->request_id = sh_msg->id;
+  clh->type = ntohl (sh_msg->type);
   clh->shorten_key = key;
 
-  only_cached = ntohl(sh_msg->only_cached);
+  only_cached = ntohl (sh_msg->only_cached);
   
   if (strlen (name) > MAX_DNS_NAME_LENGTH) {
-    GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
-               "LOOKUP: %s is too long", name);
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "LOOKUP: %s is too long", name);
     clh->name = NULL;
-    send_lookup_response(clh, 0, NULL);
+    send_lookup_response (clh, 0, NULL);
     return;
   }
 
@@ -1076,21 +1126,21 @@
     GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
                "LOOKUP: Query for A record but AF_INET not supported!");
     clh->name = NULL;
-    send_lookup_response(clh, 0, NULL);
+    send_lookup_response (clh, 0, NULL);
     return;
   }
   
   if ((clh->type == GNUNET_GNS_RECORD_AAAA) &&
       (GNUNET_OK != v6_enabled))
   {
-    GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
-               "LOOKUP: Query for AAAA record but AF_INET6 not supported!");
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "LOOKUP: Query for AAAA record but AF_INET6 not supported!");
     clh->name = NULL;
-    send_lookup_response(clh, 0, NULL);
+    send_lookup_response (clh, 0, NULL);
     return;
   }
   
-  if (1 == ntohl(sh_msg->use_default_zone))
+  if (1 == ntohl (sh_msg->use_default_zone))
     clh->zone = zone_hash; //Default zone
   else
     clh->zone = sh_msg->zone;
@@ -1210,18 +1260,18 @@
 
   }
 
-  zone_iteration_interval = INITIAL_ZONE_ITERATION_INTERVAL;
+  put_interval = INITIAL_PUT_INTERVAL;
 
-  record_put_interval = DEFAULT_RECORD_PUT_INTERVAL;
+  zone_publish_time_window = DEFAULT_ZONE_PUBLISH_TIME_WINDOW;
 
   if (GNUNET_OK ==
       GNUNET_CONFIGURATION_get_value_time (c, "gns",
-                                             "RECORD_PUT_INTERVAL",
-                                             &record_put_interval))
+                                             "ZONE_PUBLISH_TIME_WINDOW",
+                                             &zone_publish_time_window))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-               "Record put interval: %s\n",
-               GNUNET_STRINGS_relative_time_to_string (record_put_interval, 
GNUNET_YES));
+               "Time window for zone iteration: %s\n",
+               GNUNET_STRINGS_relative_time_to_string 
(zone_publish_time_window, GNUNET_YES));
   }
 
   if (GNUNET_OK ==
@@ -1297,7 +1347,7 @@
    * We have roughly an hour for all records;
    */
   first_zone_iteration = GNUNET_YES;
-  zone_update_taskid = GNUNET_SCHEDULER_add_now (&update_zone_dht_start, NULL);
+  zone_publish_task = GNUNET_SCHEDULER_add_now (&publish_zone_dht_start, NULL);
 
   GNUNET_SERVER_add_handlers (server, handlers);
   

Modified: gnunet/src/gns/gnunet-service-gns_resolver.c
===================================================================
--- gnunet/src/gns/gnunet-service-gns_resolver.c        2012-09-29 11:52:07 UTC 
(rev 24127)
+++ gnunet/src/gns/gnunet-service-gns_resolver.c        2012-09-29 17:38:25 UTC 
(rev 24128)
@@ -40,8 +40,19 @@
 #include "gns.h"
 #include "gnunet-service-gns_resolver.h"
 
+/**
+ * Default DHT timeout
+ */
 #define DHT_LOOKUP_TIMEOUT DHT_OPERATION_TIMEOUT
+
+/**
+ * DHT replication level
+ */
 #define DHT_GNS_REPLICATION_LEVEL 5
+
+/**
+ * Maximum label length of DNS names
+ */
 #define MAX_DNS_LABEL_LENGTH 63
 
 
@@ -137,7 +148,6 @@
 
 /**
  * a resolution identifier pool variable
- * FIXME overflow?
  * This is a non critical identifier useful for debugging
  */
 static unsigned long long rid = 0;
@@ -351,6 +361,7 @@
   process_pseu_result (gph, NULL);
 }
 
+
 /**
  * Function called when we find a PSEU entry in the DHT
  *
@@ -437,6 +448,7 @@
   process_pseu_result (gph, NULL);
 }
 
+
 /**
  * Process PSEU discovery for shorten via namestore
  *
@@ -508,6 +520,7 @@
   process_pseu_result (gph, NULL);
 }
 
+
 /**
  * Callback called by namestore for a zone to name
  * result
@@ -571,6 +584,13 @@
 }
 
 
+/**
+ * Start shortening algorithm using auth as
+ * authority chain
+ *
+ * @param auth the authorities that were resolved
+ * @param key the private key for PKEY import
+ */
 static void
 start_shorten (struct AuthorityChain *auth,
                const struct GNUNET_CRYPTO_RsaPrivateKey *key)
@@ -777,6 +797,8 @@
 static void
 finish_shorten (struct ResolverHandle *rh,
                 struct NameShortenHandle *nsh);
+
+
 /**
  * finish get auth
  *
@@ -846,8 +868,6 @@
 }
 
 
-
-
 /**
  * Callback when record data is put into namestore
  *
@@ -883,6 +903,12 @@
 }
 
 
+/**
+ * Lookup timeout task
+ *
+ * @param cls the ResolverHandle for the task that timed out
+ * @param tc the task context
+ */
 static void
 handle_lookup_timeout (void *cls, const struct GNUNET_SCHEDULER_TaskContext 
*tc)
 {
@@ -890,7 +916,6 @@
 
   if (NULL != rh->timeout_cont)
     rh->timeout_cont (rh->timeout_cont_cls, tc);
-  /* FIXME: does this leak memory? */
 }
 
 
@@ -912,6 +937,7 @@
               rd_count);
 }
 
+
 /**
  * Handle timeout for DHT requests
  *
@@ -1122,7 +1148,6 @@
               "GNS_PHASE_REC-%llu: starting dht lookup for %s with key: %s\n",
               rh->id, rh->name, GNUNET_h2s (&lookup_key));
 
-  //rh->timeout_task = GNUNET_SCHEDULER_NO_TASK;
   rh->dht_heap_node = NULL;
 
   if (GNUNET_TIME_UNIT_FOREVER_REL.rel_value != rh->timeout.rel_value)
@@ -1370,8 +1395,6 @@
 }
 
 
-
-
 /**
  * Process VPN lookup result for record
  *
@@ -1415,6 +1438,13 @@
 send_dns_packet (struct ResolverHandle *rh);
 
 
+/**
+ * Read DNS response
+ *
+ * @param cls the ResolverHandle for this lookup
+ * @param addr the sockaddr
+ * @param addrlen the socket address length
+ */
 static void
 handle_dns_resolver (void *cls,
                      const struct sockaddr *addr,
@@ -1648,6 +1678,7 @@
   return;
 }
 
+
 /**
  * Sends a UDP dns query to a nameserver specified in the rh
  * 
@@ -1685,6 +1716,7 @@
 
 }
 
+
 /**
  * The final phase of resoution.
  * We found a NS RR and want to resolve via DNS
@@ -1888,9 +1920,9 @@
                                                GNUNET_TIME_UNIT_FOREVER_ABS, 
//FIXME
                                                &process_record_result_vpn,
                                                rh);
-
 }
 
+
 /**
  * The final phase of resolution.
  * rh->name is a name that is canonical and we do not have a delegation.
@@ -1935,7 +1967,6 @@
 }
 
 
-
 /**
  * Handle timeout for DHT requests
  *
@@ -2003,10 +2034,21 @@
   rh->proc(rh->proc_cls, rh, 0, NULL);
 }
 
-/* Prototype */
+
+/**
+ * Start DHT lookup for a name -> PKEY (compare NS) record in
+ * rh->authority's zone
+ *
+ * @param rh the pending gns query
+ */
 static void resolve_delegation_dht(struct ResolverHandle *rh);
 
-/* Prototype */
+
+/**
+ * Resolve the delegation chain for the request in our namestore
+ *
+ * @param rh the resolver handle
+ */
 static void resolve_delegation_ns(struct ResolverHandle *rh);
 
 
@@ -2136,6 +2178,7 @@
              "GNS_NS: Error putting records into namestore: %s\n", emsg);
 }
 
+
 /**
  * Function called when we get a result from the dht
  * for our query. Recursively tries to resolve authorities
@@ -2381,14 +2424,19 @@
 #define MAX_SRV_LENGTH (sizeof(uint16_t)*3)+MAX_DNS_NAME_LENGTH
 
 
+/**
+ * Exands a name ending in .+ with the zone of origin
+ *
+ * @param dest destination buffer
+ * @param sec the .+ name
+ * @param repl the string to replace the + with
+ */
 static void
 expand_plus(char* dest, char* src, char* repl)
 {
   char* pos;
   unsigned int s_len = strlen(src)+1;
 
-  GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
-             "GNS_POSTPROCESS: Got %s to expand with %s\n", src, repl);
   //Eh? I guess this is at least strlen ('x.+') == 3 FIXME
   if (3 > s_len)
   {
@@ -2414,10 +2462,13 @@
   }
   else
   {
+    GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
+               "GNS_POSTPROCESS: No postprocessing for %s\n", src);
     memcpy(dest, src, s_len+1);
   }
 }
 
+
 /**
  * finish lookup
  */
@@ -2537,6 +2588,7 @@
   free_resolver_handle (rh);
 }
 
+
 /**
  * Process DHT lookup result for record.
  *
@@ -2568,8 +2620,6 @@
 }
 
 
-
-
 /**
  * Process namestore lookup result for record.
  *
@@ -2681,6 +2731,7 @@
   strcpy(dest, (name+len+1));
 }
 
+
 /**
  * Checks if name is in tld
  *
@@ -2706,6 +2757,7 @@
   return GNUNET_YES;
 }
 
+
 /**
  * DHT resolution for delegation finished. Processing result.
  *
@@ -3380,10 +3432,8 @@
   GNUNET_CONTAINER_DLL_insert (rlh_head, rlh_tail, rh);
   
   if (NULL == key)
-  {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "No shorten key for resolution\n");
-  }
 
   if (timeout.rel_value != GNUNET_TIME_UNIT_FOREVER_REL.rel_value)
   {
@@ -3653,6 +3703,7 @@
                                  rh);
 }
 
+
 /**
  * Callback calles by namestore for a zone to name
  * result
@@ -3767,6 +3818,7 @@
   }
 }
 
+
 /**
  * Callback calles by namestore for a zone to name
  * result
@@ -4106,7 +4158,6 @@
   }
 
   nsh = GNUNET_malloc (sizeof (struct NameShortenHandle));
-
   nsh->proc = proc;
   nsh->proc_cls = proc_cls;
   nsh->root_zone = zone;
@@ -4116,7 +4167,6 @@
   strcpy (nsh->shorten_zone_name, shorten_zone_name);
   strcpy (nsh->result, name);
   
-
   rh = GNUNET_malloc (sizeof (struct ResolverHandle));
   rh->authority = *zone;
   rh->id = rid++;
@@ -4128,9 +4178,8 @@
   rh->private_local_zone = *zone;
 
   GNUNET_CONTAINER_DLL_insert (nsh_head, nsh_tail, rh);
-  
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                "Checking for TLD...\n");
+              "Checking for TLD...\n");
   if (is_zkey_tld (name) == GNUNET_YES)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -4162,7 +4211,6 @@
       proc (proc_cls, name);
       return;
     }
-
     rh->namestore_task = GNUNET_NAMESTORE_zone_to_name (namestore_handle,
                                    zone, //ours
                                    &zkey,
@@ -4238,11 +4286,9 @@
                       uint32_t rd_count,
                       const struct GNUNET_NAMESTORE_RecordData *rd)
 {
-  struct GetNameAuthorityHandle* nah;
+  struct GetNameAuthorityHandle* nah = rh->proc_cls;
   size_t answer_len;
 
-  nah = (struct GetNameAuthorityHandle*) rh->proc_cls;
-  
   /**
    * At this point rh->name contains the part of the name
    * that we do not have a PKEY in our namestore to resolve.




reply via email to

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