gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r32231 - gnunet/src/mesh


From: gnunet
Subject: [GNUnet-SVN] r32231 - gnunet/src/mesh
Date: Wed, 5 Feb 2014 18:24:27 +0100

Author: bartpolot
Date: 2014-02-05 18:24:27 +0100 (Wed, 05 Feb 2014)
New Revision: 32231

Modified:
   gnunet/src/mesh/gnunet-service-mesh_dht.c
Log:
- fix PUT, use proper key

Modified: gnunet/src/mesh/gnunet-service-mesh_dht.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh_dht.c   2014-02-05 17:24:26 UTC (rev 
32230)
+++ gnunet/src/mesh/gnunet-service-mesh_dht.c   2014-02-05 17:24:27 UTC (rev 
32231)
@@ -220,6 +220,7 @@
                     size_t size, const void *data)
 {
   struct GMD_search_handle *h = cls;
+  struct GNUNET_HELLO_Message *hello;
   struct MeshPeerPath *p;
 
   LOG (GNUNET_ERROR_TYPE_DEBUG, "Got results!\n");
@@ -227,6 +228,10 @@
                            put_path, put_path_length);
   h->callback (h->cls, p);
   path_destroy (p);
+  LOG (GNUNET_ERROR_TYPE_ERROR, "Got type %u!\n", type);
+  LOG (GNUNET_ERROR_TYPE_ERROR, "Got size %u!\n", size);
+  hello = (struct GNUNET_HELLO_Message *) data;
+  LOG (GNUNET_ERROR_TYPE_ERROR, "HELLO size %u!\n", GNUNET_HELLO_size (hello));
   return;
 }
 
@@ -241,7 +246,7 @@
 announce_id (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
   struct GNUNET_HashCode phash;
-  struct GNUNET_HELLO_Message *hello;
+  const struct GNUNET_HELLO_Message *hello;
   size_t size;
 
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
@@ -249,18 +254,30 @@
     announce_id_task = GNUNET_SCHEDULER_NO_TASK;
     return;
   }
+  LOG (GNUNET_ERROR_TYPE_ERROR, "Announce ID\n");
 
   /* TODO
    * - Set data expiration in function of X
    * - Adapt X to churn
    */
   hello = GMH_get_mine ();
-  size = GNUNET_HELLO_size (hello);
-  GNUNET_CRYPTO_hash (&my_full_id, sizeof (struct GNUNET_PeerIdentity), 
&phash);
+  if (NULL == hello || (size = GNUNET_HELLO_size (hello)) == 0)
+  {
+    /* Peerinfo gave us no hello yet, try again in a second. */
+    announce_id_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
+                                                     &announce_id, cls);
+    LOG (GNUNET_ERROR_TYPE_ERROR, "  no hello, waiting!\n");
+    return;
+  }
+
+  LOG (GNUNET_ERROR_TYPE_ERROR, "Hello %p size: %u\n", hello, size);
+  memset (&phash, 0, sizeof (phash));
+  memcpy (&phash, &my_full_id, sizeof (my_full_id));
   GNUNET_DHT_put (dht_handle,   /* DHT handle */
                   &phash,       /* Key to use */
                   dht_replication_level,     /* Replication level */
-                  GNUNET_DHT_RO_RECORD_ROUTE | 
GNUNET_DHT_RO_DEMULTIPLEX_EVERYWHERE,    /* DHT options */
+                  GNUNET_DHT_RO_RECORD_ROUTE
+                  | GNUNET_DHT_RO_DEMULTIPLEX_EVERYWHERE,    /* DHT options */
                   GNUNET_BLOCK_TYPE_DHT_HELLO,       /* Block type */
                   size,  /* Size of the data */
                   (const char *) hello, /* Data itself */




reply via email to

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