aboutsummaryrefslogtreecommitdiff
path: root/src/cadet
diff options
context:
space:
mode:
Diffstat (limited to 'src/cadet')
-rw-r--r--src/cadet/gnunet-service-cadet_hello.c11
-rw-r--r--src/cadet/gnunet-service-cadet_peer.c27
2 files changed, 16 insertions, 22 deletions
diff --git a/src/cadet/gnunet-service-cadet_hello.c b/src/cadet/gnunet-service-cadet_hello.c
index 7a33b0e05..1e3322733 100644
--- a/src/cadet/gnunet-service-cadet_hello.c
+++ b/src/cadet/gnunet-service-cadet_hello.c
@@ -68,7 +68,6 @@ got_hello (void *cls,
68 const char *err_msg) 68 const char *err_msg)
69{ 69{
70 struct CadetPeer *peer; 70 struct CadetPeer *peer;
71 struct GNUNET_HELLO_Builder *builder = GNUNET_HELLO_builder_from_msg (hello);
72 71
73 if ((NULL == id) || 72 if ((NULL == id) ||
74 (NULL == hello)) 73 (NULL == hello))
@@ -81,19 +80,17 @@ got_hello (void *cls,
81 GCD_hello_update (); 80 GCD_hello_update ();
82 return; 81 return;
83 } 82 }
84 83
85 LOG (GNUNET_ERROR_TYPE_DEBUG, 84 LOG (GNUNET_ERROR_TYPE_DEBUG,
86 "Hello for %s (%d bytes), expires on %s\n", 85 "Hello for %s (%d bytes), expires on %s\n",
87 GNUNET_i2s (id), 86 GNUNET_i2s (id),
88 sizeof (hello), 87 sizeof (hello),
89 GNUNET_STRINGS_absolute_time_to_string ( 88 GNUNET_STRINGS_absolute_time_to_string (
90 GNUNET_HELLO_builder_get_expiration_time (builder, 89 GNUNET_HELLO_builder_get_expiration_time (hello)));
91 hello)));
92 peer = GCP_get (id, 90 peer = GCP_get (id,
93 GNUNET_YES); 91 GNUNET_YES);
94 GCP_set_hello (peer, 92 GCP_set_hello (peer,
95 hello); 93 hello);
96 GNUNET_HELLO_builder_free (builder);
97} 94}
98 95
99 96
@@ -108,8 +105,8 @@ GCH_init (const struct GNUNET_CONFIGURATION_Handle *c)
108 GNUNET_assert (NULL == peerstore_notify); 105 GNUNET_assert (NULL == peerstore_notify);
109 peerstore = GNUNET_PEERSTORE_connect (c); 106 peerstore = GNUNET_PEERSTORE_connect (c);
110 peerstore_notify = 107 peerstore_notify =
111 GNUNET_PEERSTORE_hello_changed_notify (peerstore, GNUNET_NO, &got_hello, 108 GNUNET_PEERSTORE_hello_changed_notify (peerstore, GNUNET_NO, &got_hello,
112 NULL); 109 NULL);
113} 110}
114 111
115 112
diff --git a/src/cadet/gnunet-service-cadet_peer.c b/src/cadet/gnunet-service-cadet_peer.c
index c46e968dc..5c810e926 100644
--- a/src/cadet/gnunet-service-cadet_peer.c
+++ b/src/cadet/gnunet-service-cadet_peer.c
@@ -491,15 +491,13 @@ consider_peer_destroy (struct CadetPeer *cp)
491 return; /* still relevant! */ 491 return; /* still relevant! */
492 if (NULL != cp->hello) 492 if (NULL != cp->hello)
493 { 493 {
494 struct GNUNET_HELLO_Builder *builder = GNUNET_HELLO_builder_from_msg (cp->hello);
495
496 /* relevant only until HELLO expires */ 494 /* relevant only until HELLO expires */
497 exp = GNUNET_TIME_absolute_get_remaining (GNUNET_HELLO_builder_get_expiration_time (builder, 495 exp = GNUNET_TIME_absolute_get_remaining (
498 cp->hello)); 496 GNUNET_HELLO_builder_get_expiration_time (cp
497 ->hello));
499 cp->destroy_task = GNUNET_SCHEDULER_add_delayed (exp, 498 cp->destroy_task = GNUNET_SCHEDULER_add_delayed (exp,
500 &destroy_peer, 499 &destroy_peer,
501 cp); 500 cp);
502 GNUNET_HELLO_builder_free (builder);
503 return; 501 return;
504 } 502 }
505 cp->destroy_task = GNUNET_SCHEDULER_add_delayed (IDLE_PEER_TIMEOUT, 503 cp->destroy_task = GNUNET_SCHEDULER_add_delayed (IDLE_PEER_TIMEOUT,
@@ -1323,14 +1321,15 @@ GCP_set_hello (struct CadetPeer *cp,
1323 if (NULL != cp->hello) 1321 if (NULL != cp->hello)
1324 { 1322 {
1325 struct GNUNET_TIME_Absolute now = GNUNET_TIME_absolute_get (); 1323 struct GNUNET_TIME_Absolute now = GNUNET_TIME_absolute_get ();
1326 struct GNUNET_HELLO_Builder *builder = GNUNET_HELLO_builder_from_msg (hello); 1324
1327 struct GNUNET_HELLO_Builder *cp_builder = GNUNET_HELLO_builder_from_msg (cp->hello); 1325 struct GNUNET_TIME_Absolute new_hello_exp =
1328 struct GNUNET_TIME_Absolute new_hello_exp = GNUNET_HELLO_builder_get_expiration_time (builder, 1326 GNUNET_HELLO_builder_get_expiration_time (hello);
1329 hello); 1327 struct GNUNET_TIME_Absolute old_hello_exp =
1330 struct GNUNET_TIME_Absolute old_hello_exp = GNUNET_HELLO_builder_get_expiration_time (cp_builder, 1328 GNUNET_HELLO_builder_get_expiration_time (cp
1331 cp->hello); 1329 ->hello);
1332 1330
1333 if (GNUNET_TIME_absolute_cmp (new_hello_exp, > , now) && GNUNET_TIME_absolute_cmp (new_hello_exp, > , old_hello_exp)) 1331 if (GNUNET_TIME_absolute_cmp (new_hello_exp, >, now) &&
1332 GNUNET_TIME_absolute_cmp (new_hello_exp, >, old_hello_exp))
1334 { 1333 {
1335 GNUNET_free (cp->hello); 1334 GNUNET_free (cp->hello);
1336 cp->hello = GNUNET_malloc (size); 1335 cp->hello = GNUNET_malloc (size);
@@ -1340,8 +1339,6 @@ GCP_set_hello (struct CadetPeer *cp,
1340 { 1339 {
1341 return; 1340 return;
1342 } 1341 }
1343 GNUNET_HELLO_builder_free (builder);
1344 GNUNET_HELLO_builder_free (cp_builder);
1345 } 1342 }
1346 else 1343 else
1347 { 1344 {