gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r32195 - gnunet/src/mesh
Date: Tue, 4 Feb 2014 13:36:33 +0100

Author: bartpolot
Date: 2014-02-04 13:36:33 +0100 (Tue, 04 Feb 2014)
New Revision: 32195

Modified:
   gnunet/src/mesh/gnunet-service-mesh_peer.c
Log:
- merge hellos in case old hello is still valid

Modified: gnunet/src/mesh/gnunet-service-mesh_peer.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh_peer.c  2014-02-04 12:36:33 UTC (rev 
32194)
+++ gnunet/src/mesh/gnunet-service-mesh_peer.c  2014-02-04 12:36:33 UTC (rev 
32195)
@@ -1842,7 +1842,24 @@
 void
 GMP_set_hello (struct MeshPeer *peer, const struct GNUNET_HELLO_Message *hello)
 {
-  peer->hello = hello;
+  struct GNUNET_TIME_Absolute expiration;
+  struct GNUNET_TIME_Relative remaining;
+
+  if (NULL == peer->hello)
+  {
+    peer->hello = hello;
+    return;
+  }
+
+  expiration = GNUNET_HELLO_get_last_expiration (peer->hello);
+  remaining = GNUNET_TIME_absolute_get_remaining (expiration);
+  if (0 == remaining.rel_value_us)
+  {
+    GNUNET_free (peer->hello);
+    peer->hello = hello;
+  }
+  else
+    peer->hello = GNUNET_HELLO_merge (peer->hello, hello);
 }
 
 




reply via email to

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