aboutsummaryrefslogtreecommitdiff
path: root/src/social
diff options
context:
space:
mode:
Diffstat (limited to 'src/social')
-rw-r--r--src/social/gnunet-service-social.c31
-rw-r--r--src/social/test_social.c28
2 files changed, 33 insertions, 26 deletions
diff --git a/src/social/gnunet-service-social.c b/src/social/gnunet-service-social.c
index 1746a82ca..03a113d7e 100644
--- a/src/social/gnunet-service-social.c
+++ b/src/social/gnunet-service-social.c
@@ -408,8 +408,13 @@ static int
408psyc_transmit_message (struct Place *plc); 408psyc_transmit_message (struct Place *plc);
409 409
410 410
411/**
412 * Clean up place data structures after a client disconnected.
413 *
414 * @param cls the `struct Place` to clean up
415 */
411static void 416static void
412cleanup_place (struct Place *plc); 417cleanup_place (void *cls);
413 418
414 419
415static struct MessageTransmitQueue * 420static struct MessageTransmitQueue *
@@ -426,7 +431,9 @@ place_entry_cleanup (void *cls,
426 const struct GNUNET_HashCode *key, 431 const struct GNUNET_HashCode *key,
427 void *value) 432 void *value)
428{ 433{
429 cleanup_place (value); 434 struct Place *plc = value;
435
436 cleanup_place (plc);
430 return GNUNET_YES; 437 return GNUNET_YES;
431} 438}
432 439
@@ -524,10 +531,14 @@ cleanup_guest (struct Guest *gst)
524 531
525/** 532/**
526 * Clean up place data structures after a client disconnected. 533 * Clean up place data structures after a client disconnected.
534 *
535 * @param cls the `struct Place` to clean up
527 */ 536 */
528static void 537static void
529cleanup_place (struct Place *plc) 538cleanup_place (void *cls)
530{ 539{
540 struct Place *plc = cls;
541
531 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 542 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
532 "%p Cleaning up place %s\n", 543 "%p Cleaning up place %s\n",
533 plc, GNUNET_h2s (&plc->pub_key_hash)); 544 plc, GNUNET_h2s (&plc->pub_key_hash));
@@ -541,13 +552,6 @@ cleanup_place (struct Place *plc)
541} 552}
542 553
543 554
544static void
545schedule_cleanup_place (void *cls)
546{
547 cleanup_place (cls);
548}
549
550
551/** 555/**
552 * Called whenever a client is disconnected. 556 * Called whenever a client is disconnected.
553 * Frees our resources associated with that client. 557 * Frees our resources associated with that client.
@@ -2329,7 +2333,7 @@ psyc_transmit_notify_data (void *cls, uint16_t *data_size, void *data)
2329 tmit_msg = psyc_transmit_queue_next_msg (plc, tmit_msg); 2333 tmit_msg = psyc_transmit_queue_next_msg (plc, tmit_msg);
2330 plc->is_disconnected = GNUNET_YES; 2334 plc->is_disconnected = GNUNET_YES;
2331 GNUNET_SERVER_client_disconnect (tmit_frag->client); 2335 GNUNET_SERVER_client_disconnect (tmit_frag->client);
2332 GNUNET_SCHEDULER_add_now (&schedule_cleanup_place, plc); 2336 GNUNET_SCHEDULER_add_now (&cleanup_place, plc);
2333 return ret; 2337 return ret;
2334 } 2338 }
2335 else 2339 else
@@ -2489,7 +2493,7 @@ psyc_transmit_notify_mod (void *cls, uint16_t *data_size, void *data,
2489 tmit_msg = psyc_transmit_queue_next_msg (plc, tmit_msg); 2493 tmit_msg = psyc_transmit_queue_next_msg (plc, tmit_msg);
2490 plc->is_disconnected = GNUNET_YES; 2494 plc->is_disconnected = GNUNET_YES;
2491 GNUNET_SERVER_client_disconnect (tmit_frag->client); 2495 GNUNET_SERVER_client_disconnect (tmit_frag->client);
2492 GNUNET_SCHEDULER_add_now (&schedule_cleanup_place, plc); 2496 GNUNET_SCHEDULER_add_now (&cleanup_place, plc);
2493 } 2497 }
2494 else 2498 else
2495 { 2499 {
@@ -3480,8 +3484,7 @@ run (void *cls, struct GNUNET_SERVER_Handle *server,
3480 nc = GNUNET_SERVER_notification_context_create (server, 1); 3484 nc = GNUNET_SERVER_notification_context_create (server, 1);
3481 GNUNET_SERVER_add_handlers (server, handlers); 3485 GNUNET_SERVER_add_handlers (server, handlers);
3482 GNUNET_SERVER_disconnect_notify (server, &client_disconnect, NULL); 3486 GNUNET_SERVER_disconnect_notify (server, &client_disconnect, NULL);
3483 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, 3487 GNUNET_SCHEDULER_add_shutdown (&shutdown_task, NULL);
3484 &shutdown_task, NULL);
3485} 3488}
3486 3489
3487 3490
diff --git a/src/social/test_social.c b/src/social/test_social.c
index 5eeb20196..e2639f4d6 100644
--- a/src/social/test_social.c
+++ b/src/social/test_social.c
@@ -267,16 +267,17 @@ end ()
267 GNUNET_SCHEDULER_cancel (end_badly_task); 267 GNUNET_SCHEDULER_cancel (end_badly_task);
268 end_badly_task = NULL; 268 end_badly_task = NULL;
269 } 269 }
270 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_MILLISECONDS, 270 GNUNET_SCHEDULER_add_now (&end_normally, NULL);
271 &end_normally, NULL);
272} 271}
273 272
274 273
275static void 274static void
276transmit_resume (void *cls) 275transmit_resume (void *cls)
277{ 276{
278 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Transmission resumed.\n");
279 struct TransmitClosure *tmit = cls; 277 struct TransmitClosure *tmit = cls;
278
279 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
280 "Transmission resumed.\n");
280 if (NULL != tmit->host_ann) 281 if (NULL != tmit->host_ann)
281 GNUNET_SOCIAL_host_announce_resume (tmit->host_ann); 282 GNUNET_SOCIAL_host_announce_resume (tmit->host_ann);
282 else 283 else
@@ -357,14 +358,14 @@ host_farewell2 (void *cls,
357{ 358{
358 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, 359 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
359 "Nym left the place again.\n"); 360 "Nym left the place again.\n");
360 GNUNET_SCHEDULER_add_now (schedule_host_leave, NULL); 361 GNUNET_SCHEDULER_add_now (&schedule_host_leave, NULL);
361} 362}
362 363
363 364
364static void 365static void
365host_reconnected (void *cls, int result, 366host_reconnected (void *cls, int result,
366 const struct GNUNET_CRYPTO_EddsaPublicKey *home_pub_key, 367 const struct GNUNET_CRYPTO_EddsaPublicKey *home_pub_key,
367 uint64_t max_message_id) 368 uint64_t max_message_id)
368{ 369{
369 place_pub_key = *home_pub_key; 370 place_pub_key = *home_pub_key;
370 GNUNET_CRYPTO_hash (&place_pub_key, sizeof (place_pub_key), &place_pub_hash); 371 GNUNET_CRYPTO_hash (&place_pub_key, sizeof (place_pub_key), &place_pub_hash);
@@ -375,7 +376,7 @@ host_reconnected (void *cls, int result,
375 is_host_reconnected = GNUNET_YES; 376 is_host_reconnected = GNUNET_YES;
376 if (GNUNET_YES == is_guest_reconnected) 377 if (GNUNET_YES == is_guest_reconnected)
377 { 378 {
378 GNUNET_SCHEDULER_add_now (schedule_guest_leave, NULL); 379 GNUNET_SCHEDULER_add_now (&schedule_guest_leave, NULL);
379 } 380 }
380} 381}
381 382
@@ -393,7 +394,7 @@ guest_reconnected (void *cls, int result,
393 is_guest_reconnected = GNUNET_YES; 394 is_guest_reconnected = GNUNET_YES;
394 if (GNUNET_YES == is_host_reconnected) 395 if (GNUNET_YES == is_host_reconnected)
395 { 396 {
396 GNUNET_SCHEDULER_add_now (schedule_guest_leave, NULL); 397 GNUNET_SCHEDULER_add_now (&schedule_guest_leave, NULL);
397 } 398 }
398} 399}
399 400
@@ -583,8 +584,10 @@ schedule_guest_leave (void *cls)
583 584
584 585
585static void 586static void
586guest_look_for_result (void *cls, int64_t result_code, 587guest_look_for_result (void *cls,
587 const void *data, uint16_t data_size) 588 int64_t result_code,
589 const void *data,
590 uint16_t data_size)
588{ 591{
589 struct ResultClosure *rcls = cls; 592 struct ResultClosure *rcls = cls;
590 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, 593 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
@@ -1047,7 +1050,7 @@ guest_recv_entry_decision (void *cls,
1047 break; 1050 break;
1048 1051
1049 case TEST_GUEST_ENTER_BY_NAME: 1052 case TEST_GUEST_ENTER_BY_NAME:
1050 GNUNET_SCHEDULER_add_now (schedule_reconnect, NULL); 1053 GNUNET_SCHEDULER_add_now (&schedule_reconnect, NULL);
1051 break; 1054 break;
1052 1055
1053 default: 1056 default:
@@ -1313,7 +1316,8 @@ run (void *cls,
1313#endif 1316#endif
1314{ 1317{
1315 cfg = c; 1318 cfg = c;
1316 end_badly_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly, NULL); 1319 end_badly_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT,
1320 &end_badly, NULL);
1317 1321
1318 core = GNUNET_CORE_connect (cfg, NULL, &core_connected, NULL, NULL, 1322 core = GNUNET_CORE_connect (cfg, NULL, &core_connected, NULL, NULL,
1319 NULL, GNUNET_NO, NULL, GNUNET_NO, NULL); 1323 NULL, GNUNET_NO, NULL, GNUNET_NO, NULL);