diff options
Diffstat (limited to 'src/mesh/mesh_api.c')
-rw-r--r-- | src/mesh/mesh_api.c | 39 |
1 files changed, 24 insertions, 15 deletions
diff --git a/src/mesh/mesh_api.c b/src/mesh/mesh_api.c index 5ea4789b8..615593621 100644 --- a/src/mesh/mesh_api.c +++ b/src/mesh/mesh_api.c | |||
@@ -200,6 +200,7 @@ send_hello_message (void *cls, size_t size, void *buf) | |||
200 | 200 | ||
201 | struct peer_list_element *element = cls; | 201 | struct peer_list_element *element = cls; |
202 | struct GNUNET_MESH_Handle *handle = element->handle; | 202 | struct GNUNET_MESH_Handle *handle = element->handle; |
203 | |||
203 | element->hello = NULL; | 204 | element->hello = NULL; |
204 | struct GNUNET_MessageHeader *hdr = buf; | 205 | struct GNUNET_MessageHeader *hdr = buf; |
205 | 206 | ||
@@ -216,22 +217,30 @@ send_hello_message (void *cls, size_t size, void *buf) | |||
216 | return sent; | 217 | return sent; |
217 | } | 218 | } |
218 | 219 | ||
219 | void schedule_hello_message(void* cls, const struct GNUNET_SCHEDULER_TaskContext* tctx) | 220 | void |
221 | schedule_hello_message (void *cls, | ||
222 | const struct GNUNET_SCHEDULER_TaskContext *tctx) | ||
220 | { | 223 | { |
221 | struct peer_list_element *element = cls; | 224 | struct peer_list_element *element = cls; |
225 | |||
222 | element->sched = GNUNET_SCHEDULER_NO_TASK; | 226 | element->sched = GNUNET_SCHEDULER_NO_TASK; |
223 | 227 | ||
224 | if ((tctx->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0) | 228 | if ((tctx->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0) |
225 | return; | 229 | return; |
226 | 230 | ||
227 | if (element->hello == NULL) | 231 | if (element->hello == NULL) |
228 | element->hello = GNUNET_CORE_notify_transmit_ready (element->handle->core, GNUNET_NO, 42, | 232 | element->hello = |
229 | GNUNET_TIME_UNIT_SECONDS, &element->peer, | 233 | GNUNET_CORE_notify_transmit_ready (element->handle->core, GNUNET_NO, 42, |
230 | sizeof (struct GNUNET_MessageHeader) + | 234 | GNUNET_TIME_UNIT_SECONDS, |
231 | element->handle->hello_message_size, | 235 | &element->peer, |
232 | &send_hello_message, element); | 236 | sizeof (struct GNUNET_MessageHeader) |
233 | 237 | + | |
234 | element->sched = GNUNET_SCHEDULER_add_delayed(GNUNET_TIME_UNIT_MINUTES, schedule_hello_message, cls); | 238 | element->handle->hello_message_size, |
239 | &send_hello_message, element); | ||
240 | |||
241 | element->sched = | ||
242 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_MINUTES, | ||
243 | schedule_hello_message, cls); | ||
235 | } | 244 | } |
236 | 245 | ||
237 | 246 | ||
@@ -257,7 +266,7 @@ core_connect (void *cls, const struct GNUNET_PeerIdentity *peer, | |||
257 | element->handle = handle; | 266 | element->handle = handle; |
258 | 267 | ||
259 | /* Send a hello to this peer */ | 268 | /* Send a hello to this peer */ |
260 | element->sched = GNUNET_SCHEDULER_add_now(schedule_hello_message, element); | 269 | element->sched = GNUNET_SCHEDULER_add_now (schedule_hello_message, element); |
261 | 270 | ||
262 | if (NULL != atsi) | 271 | if (NULL != atsi) |
263 | memcpy (&element->atsi, atsi, | 272 | memcpy (&element->atsi, atsi, |
@@ -327,8 +336,8 @@ core_disconnect (void *cls, const struct GNUNET_PeerIdentity *peer) | |||
327 | tail); | 336 | tail); |
328 | GNUNET_free (tail); | 337 | GNUNET_free (tail); |
329 | } | 338 | } |
330 | GNUNET_CORE_notify_transmit_ready_cancel(element->hello); | 339 | GNUNET_CORE_notify_transmit_ready_cancel (element->hello); |
331 | GNUNET_SCHEDULER_cancel(element->sched); | 340 | GNUNET_SCHEDULER_cancel (element->sched); |
332 | GNUNET_free (element); | 341 | GNUNET_free (element); |
333 | } | 342 | } |
334 | 343 | ||
@@ -885,8 +894,8 @@ GNUNET_MESH_disconnect (struct GNUNET_MESH_Handle *handle) | |||
885 | tail); | 894 | tail); |
886 | GNUNET_free (tail); | 895 | GNUNET_free (tail); |
887 | } | 896 | } |
888 | GNUNET_CORE_notify_transmit_ready_cancel(element->hello); | 897 | GNUNET_CORE_notify_transmit_ready_cancel (element->hello); |
889 | GNUNET_SCHEDULER_cancel(element->sched); | 898 | GNUNET_SCHEDULER_cancel (element->sched); |
890 | GNUNET_free (element); | 899 | GNUNET_free (element); |
891 | element = next; | 900 | element = next; |
892 | } | 901 | } |
@@ -912,4 +921,4 @@ GNUNET_MESH_disconnect (struct GNUNET_MESH_Handle *handle) | |||
912 | GNUNET_free (handle); | 921 | GNUNET_free (handle); |
913 | } | 922 | } |
914 | 923 | ||
915 | /* end of mesh_api.c */ | 924 | /* end of mesh_api.c */ \ No newline at end of file |