gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r32638 - gnunet/src/mesh
Date: Thu, 13 Mar 2014 16:01:43 +0100

Author: bartpolot
Date: 2014-03-13 16:01:43 +0100 (Thu, 13 Mar 2014)
New Revision: 32638

Modified:
   gnunet/src/mesh/mesh_profiler.c
Log:
- use pointers in struct itself

Modified: gnunet/src/mesh/mesh_profiler.c
===================================================================
--- gnunet/src/mesh/mesh_profiler.c     2014-03-13 15:01:42 UTC (rev 32637)
+++ gnunet/src/mesh/mesh_profiler.c     2014-03-13 15:01:43 UTC (rev 32638)
@@ -87,7 +87,8 @@
    */
   int data_received;
 
-  unsigned int dest;
+  struct MeshPeer *dest;
+  struct MeshPeer *incoming;
   GNUNET_SCHEDULER_TaskIdentifier ping_task;
 };
 
@@ -405,6 +406,30 @@
 
 
 /**
+ * @brief Send data to destination
+ *
+ * @param cls Closure (peer).
+ * @param tc Task context.
+ */
+static void
+ping (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+  struct MeshPeer *peer = (struct MeshPeer *) cls;
+
+  peer->ping_task = GNUNET_SCHEDULER_NO_TASK;
+  if ((GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason) != 0)
+    return;
+
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "%u -> %u\n",
+              get_index (peer), get_index (peer->dest));
+
+  GNUNET_MESH_notify_transmit_ready (peer->ch, GNUNET_NO,
+                                     GNUNET_TIME_UNIT_FOREVER_REL,
+                                     size_payload, &tmt_rdy, peer);
+}
+
+
+/**
  * Transmit ready callback
  *
  * @param cls Closure (peer).
@@ -451,6 +476,9 @@
     }
   }
 
+  peers->ping_task = GNUNET_SCHEDULER_add_delayed (delay_ms_rnd (60 * 1000),
+                                                   &ping, peer);
+
   return size_payload;
 }
 
@@ -572,25 +600,6 @@
 
 
 /**
- * @brief Send data to destination
- *
- * @param cls Closure (peer).
- * @param tc Task context.
- */
-static void
-ping (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
-  struct MeshPeer *peer = (struct MeshPeer *) cls;
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "%u -> %u\n",
-              get_index (peer), peer->dest);
-
-  GNUNET_MESH_notify_transmit_ready (peer->ch, GNUNET_NO,
-                                     GNUNET_TIME_UNIT_FOREVER_REL,
-                                     size_payload, &tmt_rdy, (void *) 1L);
-}
-
-
-/**
  * START THE TESTCASE ITSELF, AS WE ARE CONNECTED TO THE MESH SERVICES.
  *
  * Testcase continues when the root receives confirmation of connected peers,
@@ -619,13 +628,14 @@
   flags = GNUNET_MESH_OPTION_DEFAULT;
   for (i = 0; i < TOTAL_PEERS; i++)
   {
-    peers[i].dest = GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_WEAK,
-                                              TOTAL_PEERS);
+    unsigned int r;
+    r = GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_WEAK, TOTAL_PEERS);
+    peers[i].dest = &peers[r];
     peers[i].ch = GNUNET_MESH_channel_create (peers[i].mesh, NULL,
-                                              &peers[peers[i].dest].id,
+                                              &peers[i].dest->id,
                                               1, flags);
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "%u => %u\n", i, peers[i].dest);
-    peers[i].ping_task = GNUNET_SCHEDULER_add_delayed (delay_ms_rnd(2000),
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "%u => %u\n", i, r);
+    peers[i].ping_task = GNUNET_SCHEDULER_add_delayed (delay_ms_rnd (2000),
                                                        &ping, &peers[i]);
   }
 }




reply via email to

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