diff options
author | Martin Schanzenbach <mschanzenbach@posteo.de> | 2012-09-18 15:37:25 +0000 |
---|---|---|
committer | Martin Schanzenbach <mschanzenbach@posteo.de> | 2012-09-18 15:37:25 +0000 |
commit | db93dcf5dd2c9ec06a7375ed250f842c62bc8905 (patch) | |
tree | 43388bb13e5aeb75c4e69b5e2a7a4aaa313ea8a2 /src | |
parent | 5da16be99aee3c7afa8335f71db35f8508ffe6f6 (diff) | |
download | gnunet-db93dcf5dd2c9ec06a7375ed250f842c62bc8905.tar.gz gnunet-db93dcf5dd2c9ec06a7375ed250f842c62bc8905.zip |
-fixes
Diffstat (limited to 'src')
-rw-r--r-- | src/gns/gns_api.c | 158 | ||||
-rw-r--r-- | src/gns/test_gns_cname_lookup.c | 12 | ||||
-rw-r--r-- | src/gns/test_gns_dht_delegated_lookup.c | 13 | ||||
-rw-r--r-- | src/gns/test_gns_max_queries.c | 17 | ||||
-rw-r--r-- | src/gns/test_gns_ns_lookup.c | 6 | ||||
-rw-r--r-- | src/gns/test_gns_pseu_shorten.c | 17 | ||||
-rw-r--r-- | src/gns/test_gns_revocation.c | 14 | ||||
-rw-r--r-- | src/gns/test_gns_simple_delegated_lookup.c | 13 | ||||
-rw-r--r-- | src/gns/test_gns_simple_get_authority.c | 12 | ||||
-rw-r--r-- | src/gns/test_gns_simple_lookup.c | 15 | ||||
-rw-r--r-- | src/gns/test_gns_simple_mx_lookup.c | 15 | ||||
-rw-r--r-- | src/gns/test_gns_simple_shorten.c | 13 | ||||
-rw-r--r-- | src/gns/test_gns_simple_srv_lookup.c | 13 | ||||
-rw-r--r-- | src/gns/test_gns_simple_zkey_lookup.c | 15 |
14 files changed, 198 insertions, 135 deletions
diff --git a/src/gns/gns_api.c b/src/gns/gns_api.c index 670b036a5..427e3e375 100644 --- a/src/gns/gns_api.c +++ b/src/gns/gns_api.c | |||
@@ -159,6 +159,11 @@ struct PendingMessage | |||
159 | */ | 159 | */ |
160 | size_t size; | 160 | size_t size; |
161 | 161 | ||
162 | /** | ||
163 | * This message has been transmitted | ||
164 | */ | ||
165 | unsigned int transmitted; | ||
166 | |||
162 | }; | 167 | }; |
163 | 168 | ||
164 | 169 | ||
@@ -324,14 +329,18 @@ process_message (void *cls, const struct GNUNET_MessageHeader *msg); | |||
324 | static void | 329 | static void |
325 | process_pending_messages (struct GNUNET_GNS_Handle *handle) | 330 | process_pending_messages (struct GNUNET_GNS_Handle *handle) |
326 | { | 331 | { |
327 | struct PendingMessage *p; | 332 | struct PendingMessage *p = handle->pending_head; |
328 | 333 | ||
329 | if (NULL == handle->client) | 334 | if (NULL == handle->client) |
330 | return; /* wait for reconnect */ | 335 | return; /* wait for reconnect */ |
331 | if (NULL != handle->th) | 336 | if (NULL != handle->th) |
332 | return; /* transmission request already pending */ | 337 | return; /* transmission request already pending */ |
333 | if (NULL == (p = handle->pending_head)) | 338 | |
334 | return; /* no messages pending */ | 339 | while ((NULL != p) && (p->transmitted == GNUNET_YES)) |
340 | p = p->next; | ||
341 | if (NULL == p) | ||
342 | return; /* no messages pending */ | ||
343 | |||
335 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 344 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
336 | "Trying to transmit %u bytes\n", | 345 | "Trying to transmit %u bytes\n", |
337 | (unsigned int) p->size); | 346 | (unsigned int) p->size); |
@@ -375,14 +384,13 @@ transmit_pending (void *cls, size_t size, void *buf) | |||
375 | memcpy (&cbuf[tsize], &p[1], p->size); | 384 | memcpy (&cbuf[tsize], &p[1], p->size); |
376 | tsize += p->size; | 385 | tsize += p->size; |
377 | size -= p->size; | 386 | size -= p->size; |
378 | GNUNET_CONTAINER_DLL_remove (handle->pending_head, handle->pending_tail, p); | 387 | p->transmitted = GNUNET_YES; |
379 | if (GNUNET_YES != handle->in_receive) | 388 | if (GNUNET_YES != handle->in_receive) |
380 | { | 389 | { |
381 | GNUNET_CLIENT_receive (handle->client, &process_message, handle, | 390 | GNUNET_CLIENT_receive (handle->client, &process_message, handle, |
382 | GNUNET_TIME_UNIT_FOREVER_REL); | 391 | GNUNET_TIME_UNIT_FOREVER_REL); |
383 | handle->in_receive = GNUNET_YES; | 392 | handle->in_receive = GNUNET_YES; |
384 | } | 393 | } |
385 | GNUNET_free (p); | ||
386 | } | 394 | } |
387 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 395 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
388 | "Sending %u bytes\n", | 396 | "Sending %u bytes\n", |
@@ -404,10 +412,11 @@ process_shorten_reply (struct GNUNET_GNS_ShortenRequest *qe, | |||
404 | const struct GNUNET_GNS_ClientShortenResultMessage *msg) | 412 | const struct GNUNET_GNS_ClientShortenResultMessage *msg) |
405 | { | 413 | { |
406 | struct GNUNET_GNS_Handle *h = qe->gns_handle; | 414 | struct GNUNET_GNS_Handle *h = qe->gns_handle; |
415 | struct PendingMessage *p = (struct PendingMessage *)&qe[1]; | ||
407 | const char *short_name; | 416 | const char *short_name; |
408 | size_t mlen; | 417 | size_t mlen; |
409 | 418 | ||
410 | GNUNET_CONTAINER_DLL_remove (h->shorten_head, h->shorten_tail, qe); | 419 | |
411 | mlen = ntohs (msg->header.size); | 420 | mlen = ntohs (msg->header.size); |
412 | if (ntohs (msg->header.size) == sizeof (struct GNUNET_GNS_ClientShortenResultMessage)) | 421 | if (ntohs (msg->header.size) == sizeof (struct GNUNET_GNS_ClientShortenResultMessage)) |
413 | { | 422 | { |
@@ -421,12 +430,15 @@ process_shorten_reply (struct GNUNET_GNS_ShortenRequest *qe, | |||
421 | { | 430 | { |
422 | GNUNET_break (0); | 431 | GNUNET_break (0); |
423 | // FIXME: reconnect and queue management logic is broken... | 432 | // FIXME: reconnect and queue management logic is broken... |
424 | qe->shorten_proc (qe->proc_cls, NULL); | 433 | p->transmitted = GNUNET_NO; |
425 | GNUNET_free (qe); | ||
426 | force_reconnect (h); | 434 | force_reconnect (h); |
427 | return; | 435 | return; |
428 | } | 436 | } |
429 | } | 437 | } |
438 | GNUNET_CONTAINER_DLL_remove (h->shorten_head, h->shorten_tail, qe); | ||
439 | GNUNET_CONTAINER_DLL_remove (h->pending_head, | ||
440 | h->pending_tail, | ||
441 | p); | ||
430 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 442 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
431 | "Received shortened reply `%s' from GNS service\n", | 443 | "Received shortened reply `%s' from GNS service\n", |
432 | short_name); | 444 | short_name); |
@@ -447,20 +459,31 @@ process_get_auth_reply (struct GNUNET_GNS_GetAuthRequest *qe, | |||
447 | const struct GNUNET_GNS_ClientGetAuthResultMessage *msg) | 459 | const struct GNUNET_GNS_ClientGetAuthResultMessage *msg) |
448 | { | 460 | { |
449 | struct GNUNET_GNS_Handle *h = qe->gns_handle; | 461 | struct GNUNET_GNS_Handle *h = qe->gns_handle; |
462 | struct PendingMessage *p = (struct PendingMessage *)&qe[1]; | ||
450 | const char *auth_name; | 463 | const char *auth_name; |
464 | size_t mlen; | ||
451 | 465 | ||
452 | GNUNET_CONTAINER_DLL_remove (h->get_auth_head, h->get_auth_tail, qe); | 466 | mlen = ntohs (msg->header.size); |
453 | auth_name = (char*)&msg[1]; | 467 | if (mlen == sizeof (struct GNUNET_GNS_ClientGetAuthResultMessage)) |
454 | |||
455 | if (ntohs (((struct GNUNET_MessageHeader*)msg)->size) < | ||
456 | sizeof (struct GNUNET_GNS_ClientGetAuthResultMessage)) | ||
457 | { | 468 | { |
458 | GNUNET_free(qe); | 469 | auth_name = NULL; |
459 | GNUNET_break (0); | 470 | } |
460 | force_reconnect (h); | 471 | else |
461 | return; | 472 | { |
473 | auth_name = (char*)&msg[1]; | ||
474 | if ('\0' != auth_name[mlen - sizeof (struct GNUNET_GNS_ClientGetAuthResultMessage) - 1]) | ||
475 | { | ||
476 | GNUNET_break (0); | ||
477 | p->transmitted = GNUNET_NO; | ||
478 | force_reconnect (h); | ||
479 | return; | ||
480 | } | ||
462 | } | 481 | } |
463 | 482 | ||
483 | GNUNET_CONTAINER_DLL_remove (h->get_auth_head, h->get_auth_tail, qe); | ||
484 | GNUNET_CONTAINER_DLL_remove (h->pending_head, | ||
485 | h->pending_tail, | ||
486 | p); | ||
464 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 487 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
465 | "Received GET_AUTH reply `%s' from GNS service\n", | 488 | "Received GET_AUTH reply `%s' from GNS service\n", |
466 | auth_name); | 489 | auth_name); |
@@ -480,38 +503,34 @@ process_lookup_reply (struct GNUNET_GNS_LookupRequest *qe, | |||
480 | const struct GNUNET_GNS_ClientLookupResultMessage *msg) | 503 | const struct GNUNET_GNS_ClientLookupResultMessage *msg) |
481 | { | 504 | { |
482 | struct GNUNET_GNS_Handle *h = qe->gns_handle; | 505 | struct GNUNET_GNS_Handle *h = qe->gns_handle; |
506 | struct PendingMessage *p = (struct PendingMessage *)&qe[1]; | ||
483 | int rd_count = ntohl(msg->rd_count); | 507 | int rd_count = ntohl(msg->rd_count); |
484 | size_t len = ntohs (((struct GNUNET_MessageHeader*)msg)->size); | ||
485 | struct GNUNET_NAMESTORE_RecordData rd[rd_count]; | 508 | struct GNUNET_NAMESTORE_RecordData rd[rd_count]; |
509 | size_t mlen; | ||
486 | 510 | ||
487 | GNUNET_CONTAINER_DLL_remove (h->lookup_head, h->lookup_tail, qe); | 511 | mlen = ntohs (msg->header.size); |
488 | 512 | mlen -= sizeof (struct GNUNET_GNS_ClientLookupResultMessage); | |
489 | if (len < sizeof (struct GNUNET_GNS_ClientLookupResultMessage)) | 513 | if (GNUNET_SYSERR == GNUNET_NAMESTORE_records_deserialize (mlen, |
490 | { | ||
491 | GNUNET_free(qe); | ||
492 | GNUNET_break (0); | ||
493 | force_reconnect (h); | ||
494 | return; | ||
495 | } | ||
496 | |||
497 | len -= sizeof (struct GNUNET_GNS_ClientLookupResultMessage); | ||
498 | if (GNUNET_SYSERR == GNUNET_NAMESTORE_records_deserialize (len, | ||
499 | (char*)&msg[1], | 514 | (char*)&msg[1], |
500 | rd_count, | 515 | rd_count, |
501 | rd)) | 516 | rd)) |
502 | { | 517 | { |
503 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | 518 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
504 | "Failed to serialize lookup reply from GNS service!\n"); | 519 | _("Failed to serialize lookup reply from GNS service!\n")); |
505 | qe->lookup_proc (qe->proc_cls, 0, NULL); | 520 | qe->lookup_proc (qe->proc_cls, 0, NULL); |
506 | } | 521 | } |
507 | else | 522 | else |
508 | { | 523 | { |
509 | 524 | ||
510 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 525 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
511 | "Received lookup reply from GNS service (count=%d)\n", | 526 | "Received lookup reply from GNS service (count=%u)\n", |
512 | ntohl (msg->rd_count)); | 527 | ntohl (msg->rd_count)); |
513 | qe->lookup_proc (qe->proc_cls, rd_count, rd); | 528 | qe->lookup_proc (qe->proc_cls, rd_count, rd); |
514 | } | 529 | } |
530 | GNUNET_CONTAINER_DLL_remove (h->lookup_head, h->lookup_tail, qe); | ||
531 | GNUNET_CONTAINER_DLL_remove (h->pending_head, | ||
532 | h->pending_tail, | ||
533 | p); | ||
515 | GNUNET_free (qe); | 534 | GNUNET_free (qe); |
516 | } | 535 | } |
517 | 536 | ||
@@ -636,9 +655,10 @@ GNUNET_GNS_disconnect (struct GNUNET_GNS_Handle *handle) | |||
636 | GNUNET_SCHEDULER_cancel (handle->reconnect_task); | 655 | GNUNET_SCHEDULER_cancel (handle->reconnect_task); |
637 | handle->reconnect_task = GNUNET_SCHEDULER_NO_TASK; | 656 | handle->reconnect_task = GNUNET_SCHEDULER_NO_TASK; |
638 | } | 657 | } |
639 | GNUNET_assert (NULL == handle->lookup_head); | 658 | //FIXME sane? |
659 | /*GNUNET_assert (NULL == handle->lookup_head); | ||
640 | GNUNET_assert (NULL == handle->shorten_head); | 660 | GNUNET_assert (NULL == handle->shorten_head); |
641 | GNUNET_assert (NULL == handle->get_auth_head); | 661 | GNUNET_assert (NULL == handle->get_auth_head);*/ |
642 | GNUNET_free(handle); | 662 | GNUNET_free(handle); |
643 | /* disco from GNS */ | 663 | /* disco from GNS */ |
644 | } | 664 | } |
@@ -652,23 +672,13 @@ GNUNET_GNS_disconnect (struct GNUNET_GNS_Handle *handle) | |||
652 | void | 672 | void |
653 | GNUNET_GNS_cancel_lookup_request (struct GNUNET_GNS_LookupRequest *lr) | 673 | GNUNET_GNS_cancel_lookup_request (struct GNUNET_GNS_LookupRequest *lr) |
654 | { | 674 | { |
655 | struct PendingMessage *tmp; | 675 | struct PendingMessage *tmp = (struct PendingMessage*)&lr[1]; |
656 | 676 | ||
657 | GNUNET_assert (NULL != lr->gns_handle); | 677 | GNUNET_assert (NULL != lr->gns_handle); |
658 | for (tmp = lr->gns_handle->pending_head; | ||
659 | NULL != tmp; tmp = tmp->next) | ||
660 | { | ||
661 | if (tmp->r_id == lr->r_id) | ||
662 | break; | ||
663 | } | ||
664 | |||
665 | if (NULL != tmp) | 678 | if (NULL != tmp) |
666 | { | ||
667 | GNUNET_CONTAINER_DLL_remove (lr->gns_handle->pending_head, | 679 | GNUNET_CONTAINER_DLL_remove (lr->gns_handle->pending_head, |
668 | lr->gns_handle->pending_tail, | 680 | lr->gns_handle->pending_tail, |
669 | tmp); | 681 | tmp); |
670 | GNUNET_free (tmp); | ||
671 | } | ||
672 | 682 | ||
673 | GNUNET_CONTAINER_DLL_remove (lr->gns_handle->lookup_head, | 683 | GNUNET_CONTAINER_DLL_remove (lr->gns_handle->lookup_head, |
674 | lr->gns_handle->lookup_tail, | 684 | lr->gns_handle->lookup_tail, |
@@ -686,23 +696,13 @@ GNUNET_GNS_cancel_lookup_request (struct GNUNET_GNS_LookupRequest *lr) | |||
686 | void | 696 | void |
687 | GNUNET_GNS_cancel_shorten_request (struct GNUNET_GNS_ShortenRequest *sr) | 697 | GNUNET_GNS_cancel_shorten_request (struct GNUNET_GNS_ShortenRequest *sr) |
688 | { | 698 | { |
689 | struct PendingMessage *tmp; | 699 | struct PendingMessage *tmp = (struct PendingMessage*)&sr[1]; |
690 | 700 | ||
691 | GNUNET_assert (NULL != sr->gns_handle); | 701 | GNUNET_assert (NULL != sr->gns_handle); |
692 | for (tmp = sr->gns_handle->pending_head; | ||
693 | NULL != tmp; tmp = tmp->next) | ||
694 | { | ||
695 | if (tmp->r_id == sr->r_id) | ||
696 | break; | ||
697 | } | ||
698 | |||
699 | if (NULL != tmp) | 702 | if (NULL != tmp) |
700 | { | ||
701 | GNUNET_CONTAINER_DLL_remove (sr->gns_handle->pending_head, | 703 | GNUNET_CONTAINER_DLL_remove (sr->gns_handle->pending_head, |
702 | sr->gns_handle->pending_tail, | 704 | sr->gns_handle->pending_tail, |
703 | tmp); | 705 | tmp); |
704 | GNUNET_free (tmp); | ||
705 | } | ||
706 | 706 | ||
707 | GNUNET_CONTAINER_DLL_remove (sr->gns_handle->shorten_head, | 707 | GNUNET_CONTAINER_DLL_remove (sr->gns_handle->shorten_head, |
708 | sr->gns_handle->shorten_tail, | 708 | sr->gns_handle->shorten_tail, |
@@ -720,24 +720,15 @@ GNUNET_GNS_cancel_shorten_request (struct GNUNET_GNS_ShortenRequest *sr) | |||
720 | void | 720 | void |
721 | GNUNET_GNS_cancel_get_auth_request (struct GNUNET_GNS_GetAuthRequest *gar) | 721 | GNUNET_GNS_cancel_get_auth_request (struct GNUNET_GNS_GetAuthRequest *gar) |
722 | { | 722 | { |
723 | struct PendingMessage *tmp; | 723 | struct PendingMessage *tmp = (struct PendingMessage*)&gar[1]; |
724 | 724 | ||
725 | GNUNET_assert (NULL != gar->gns_handle); | 725 | GNUNET_assert (NULL != gar->gns_handle); |
726 | for (tmp = gar->gns_handle->pending_head; | ||
727 | NULL != tmp; tmp = tmp->next) | ||
728 | { | ||
729 | if (tmp->r_id == gar->r_id) | ||
730 | break; | ||
731 | } | ||
732 | 726 | ||
733 | if (NULL != tmp) | 727 | if (NULL != tmp) |
734 | { | ||
735 | GNUNET_CONTAINER_DLL_remove (gar->gns_handle->pending_head, | 728 | GNUNET_CONTAINER_DLL_remove (gar->gns_handle->pending_head, |
736 | gar->gns_handle->pending_tail, | 729 | gar->gns_handle->pending_tail, |
737 | tmp); | 730 | tmp); |
738 | GNUNET_free (tmp); | 731 | |
739 | } | ||
740 | |||
741 | GNUNET_CONTAINER_DLL_remove (gar->gns_handle->get_auth_head, | 732 | GNUNET_CONTAINER_DLL_remove (gar->gns_handle->get_auth_head, |
742 | gar->gns_handle->get_auth_tail, | 733 | gar->gns_handle->get_auth_tail, |
743 | gar); | 734 | gar); |
@@ -777,6 +768,7 @@ GNUNET_GNS_lookup_zone (struct GNUNET_GNS_Handle *handle, | |||
777 | struct GNUNET_CRYPTO_RsaPrivateKeyBinaryEncoded *pkey_enc; | 768 | struct GNUNET_CRYPTO_RsaPrivateKeyBinaryEncoded *pkey_enc; |
778 | size_t key_len; | 769 | size_t key_len; |
779 | char* pkey_tmp; | 770 | char* pkey_tmp; |
771 | size_t request_size; | ||
780 | 772 | ||
781 | if (NULL == name) | 773 | if (NULL == name) |
782 | { | 774 | { |
@@ -795,23 +787,23 @@ GNUNET_GNS_lookup_zone (struct GNUNET_GNS_Handle *handle, | |||
795 | pkey_enc = NULL; | 787 | pkey_enc = NULL; |
796 | key_len = 0; | 788 | key_len = 0; |
797 | } | 789 | } |
798 | 790 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | |
799 | msize = sizeof (struct GNUNET_GNS_ClientLookupMessage) | ||
800 | + key_len + strlen (name) + 1; | ||
801 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
802 | "Trying to lookup %s in GNS\n", | 791 | "Trying to lookup %s in GNS\n", |
803 | name); | 792 | name); |
804 | lr = GNUNET_malloc (sizeof (struct GNUNET_GNS_LookupRequest)); | 793 | msize = sizeof (struct GNUNET_GNS_ClientLookupMessage) |
794 | + key_len + strlen (name) + 1; | ||
795 | request_size = sizeof (struct GNUNET_GNS_LookupRequest) + | ||
796 | sizeof (struct PendingMessage) + msize; | ||
797 | lr = GNUNET_malloc (request_size); | ||
805 | lr->gns_handle = handle; | 798 | lr->gns_handle = handle; |
806 | lr->lookup_proc = proc; | 799 | lr->lookup_proc = proc; |
807 | lr->proc_cls = proc_cls; | 800 | lr->proc_cls = proc_cls; |
808 | lr->r_id = handle->r_id++; | 801 | lr->r_id = handle->r_id++; |
809 | GNUNET_CONTAINER_DLL_insert_tail (handle->lookup_head, | 802 | pending = (struct PendingMessage *)&lr[1]; |
810 | handle->lookup_tail, lr); | ||
811 | |||
812 | pending = GNUNET_malloc (sizeof (struct PendingMessage) + msize); | ||
813 | pending->size = msize; | 803 | pending->size = msize; |
814 | pending->r_id = lr->r_id; | 804 | pending->r_id = lr->r_id; |
805 | GNUNET_CONTAINER_DLL_insert_tail (handle->lookup_head, | ||
806 | handle->lookup_tail, lr); | ||
815 | 807 | ||
816 | lookup_msg = (struct GNUNET_GNS_ClientLookupMessage *) &pending[1]; | 808 | lookup_msg = (struct GNUNET_GNS_ClientLookupMessage *) &pending[1]; |
817 | lookup_msg->header.type = htons (GNUNET_MESSAGE_TYPE_GNS_LOOKUP); | 809 | lookup_msg->header.type = htons (GNUNET_MESSAGE_TYPE_GNS_LOOKUP); |
@@ -902,6 +894,7 @@ GNUNET_GNS_shorten_zone (struct GNUNET_GNS_Handle *handle, | |||
902 | struct GNUNET_GNS_ClientShortenMessage *shorten_msg; | 894 | struct GNUNET_GNS_ClientShortenMessage *shorten_msg; |
903 | struct GNUNET_GNS_ShortenRequest *sr; | 895 | struct GNUNET_GNS_ShortenRequest *sr; |
904 | size_t msize; | 896 | size_t msize; |
897 | size_t request_size; | ||
905 | struct PendingMessage *pending; | 898 | struct PendingMessage *pending; |
906 | 899 | ||
907 | if (NULL == name) | 900 | if (NULL == name) |
@@ -912,7 +905,9 @@ GNUNET_GNS_shorten_zone (struct GNUNET_GNS_Handle *handle, | |||
912 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Trying to shorten %s in GNS\n", name); | 905 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Trying to shorten %s in GNS\n", name); |
913 | 906 | ||
914 | msize = sizeof (struct GNUNET_GNS_ClientShortenMessage) + strlen(name) + 1; | 907 | msize = sizeof (struct GNUNET_GNS_ClientShortenMessage) + strlen(name) + 1; |
915 | sr = GNUNET_malloc (sizeof (struct GNUNET_GNS_ShortenRequest)); | 908 | request_size = sizeof (struct GNUNET_GNS_ShortenRequest) + |
909 | sizeof (struct PendingMessage) + msize; | ||
910 | sr = GNUNET_malloc (request_size); | ||
916 | sr->gns_handle = handle; | 911 | sr->gns_handle = handle; |
917 | sr->shorten_proc = proc; | 912 | sr->shorten_proc = proc; |
918 | sr->proc_cls = proc_cls; | 913 | sr->proc_cls = proc_cls; |
@@ -920,7 +915,7 @@ GNUNET_GNS_shorten_zone (struct GNUNET_GNS_Handle *handle, | |||
920 | GNUNET_CONTAINER_DLL_insert_tail (handle->shorten_head, | 915 | GNUNET_CONTAINER_DLL_insert_tail (handle->shorten_head, |
921 | handle->shorten_tail, sr); | 916 | handle->shorten_tail, sr); |
922 | 917 | ||
923 | pending = GNUNET_malloc (sizeof (struct PendingMessage) + msize); | 918 | pending = (struct PendingMessage *)&sr[1]; |
924 | pending->size = msize; | 919 | pending->size = msize; |
925 | pending->r_id = sr->r_id; | 920 | pending->r_id = sr->r_id; |
926 | 921 | ||
@@ -996,6 +991,7 @@ GNUNET_GNS_get_authority (struct GNUNET_GNS_Handle *handle, | |||
996 | struct GNUNET_GNS_ClientGetAuthMessage *get_auth_msg; | 991 | struct GNUNET_GNS_ClientGetAuthMessage *get_auth_msg; |
997 | struct GNUNET_GNS_GetAuthRequest *gar; | 992 | struct GNUNET_GNS_GetAuthRequest *gar; |
998 | size_t msize; | 993 | size_t msize; |
994 | size_t request_size; | ||
999 | struct PendingMessage *pending; | 995 | struct PendingMessage *pending; |
1000 | 996 | ||
1001 | if (NULL == name) | 997 | if (NULL == name) |
@@ -1007,7 +1003,9 @@ GNUNET_GNS_get_authority (struct GNUNET_GNS_Handle *handle, | |||
1007 | "Trying to look up authority for %s in GNS\n", name); | 1003 | "Trying to look up authority for %s in GNS\n", name); |
1008 | 1004 | ||
1009 | msize = sizeof (struct GNUNET_GNS_ClientGetAuthMessage) + strlen (name) + 1; | 1005 | msize = sizeof (struct GNUNET_GNS_ClientGetAuthMessage) + strlen (name) + 1; |
1010 | gar = GNUNET_malloc (sizeof (struct GNUNET_GNS_GetAuthRequest)); | 1006 | request_size = sizeof (struct GNUNET_GNS_GetAuthRequest) + |
1007 | sizeof (struct PendingMessage) + msize; | ||
1008 | gar = GNUNET_malloc (request_size); | ||
1011 | gar->gns_handle = handle; | 1009 | gar->gns_handle = handle; |
1012 | gar->auth_proc = proc; | 1010 | gar->auth_proc = proc; |
1013 | gar->proc_cls = proc_cls; | 1011 | gar->proc_cls = proc_cls; |
@@ -1015,7 +1013,7 @@ GNUNET_GNS_get_authority (struct GNUNET_GNS_Handle *handle, | |||
1015 | GNUNET_CONTAINER_DLL_insert_tail (handle->get_auth_head, | 1013 | GNUNET_CONTAINER_DLL_insert_tail (handle->get_auth_head, |
1016 | handle->get_auth_tail, gar); | 1014 | handle->get_auth_tail, gar); |
1017 | 1015 | ||
1018 | pending = GNUNET_malloc (sizeof (struct PendingMessage) + msize); | 1016 | pending = (struct PendingMessage *)&gar[1]; |
1019 | pending->size = msize; | 1017 | pending->size = msize; |
1020 | pending->r_id = gar->r_id; | 1018 | pending->r_id = gar->r_id; |
1021 | get_auth_msg = (struct GNUNET_GNS_ClientGetAuthMessage *) &pending[1]; | 1019 | get_auth_msg = (struct GNUNET_GNS_ClientGetAuthMessage *) &pending[1]; |
diff --git a/src/gns/test_gns_cname_lookup.c b/src/gns/test_gns_cname_lookup.c index 2c384cfa2..36cdcde05 100644 --- a/src/gns/test_gns_cname_lookup.c +++ b/src/gns/test_gns_cname_lookup.c | |||
@@ -104,6 +104,13 @@ end_badly_now () | |||
104 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 104 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
105 | } | 105 | } |
106 | 106 | ||
107 | static void shutdown_task (void *cls, | ||
108 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
109 | { | ||
110 | GNUNET_GNS_disconnect(gns_handle); | ||
111 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | ||
112 | GNUNET_SCHEDULER_shutdown (); | ||
113 | } | ||
107 | 114 | ||
108 | static void | 115 | static void |
109 | on_lookup_result_cname (void *cls, uint32_t rd_count, | 116 | on_lookup_result_cname (void *cls, uint32_t rd_count, |
@@ -148,10 +155,7 @@ on_lookup_result_cname (void *cls, uint32_t rd_count, | |||
148 | } | 155 | } |
149 | } | 156 | } |
150 | } | 157 | } |
151 | GNUNET_GNS_disconnect(gns_handle); | 158 | GNUNET_SCHEDULER_add_now (&shutdown_task, NULL); |
152 | gns_handle = NULL; | ||
153 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | ||
154 | GNUNET_SCHEDULER_shutdown (); | ||
155 | } | 159 | } |
156 | 160 | ||
157 | static void | 161 | static void |
diff --git a/src/gns/test_gns_dht_delegated_lookup.c b/src/gns/test_gns_dht_delegated_lookup.c index 0b5382fc8..0fcd723e3 100644 --- a/src/gns/test_gns_dht_delegated_lookup.c +++ b/src/gns/test_gns_dht_delegated_lookup.c | |||
@@ -123,6 +123,13 @@ end_badly_now () | |||
123 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 123 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
124 | } | 124 | } |
125 | 125 | ||
126 | static void shutdown_task (void *cls, | ||
127 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
128 | { | ||
129 | GNUNET_GNS_disconnect(gns_handle); | ||
130 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | ||
131 | GNUNET_SCHEDULER_shutdown (); | ||
132 | } | ||
126 | 133 | ||
127 | static void | 134 | static void |
128 | on_lookup_result(void *cls, uint32_t rd_count, | 135 | on_lookup_result(void *cls, uint32_t rd_count, |
@@ -171,12 +178,10 @@ on_lookup_result(void *cls, uint32_t rd_count, | |||
171 | } | 178 | } |
172 | } | 179 | } |
173 | } | 180 | } |
174 | GNUNET_GNS_disconnect(gns_handle); | ||
175 | gns_handle = NULL; | ||
176 | GNUNET_DHT_disconnect (dht_handle); | 181 | GNUNET_DHT_disconnect (dht_handle); |
177 | dht_handle = NULL; | 182 | dht_handle = NULL; |
178 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | 183 | |
179 | GNUNET_SCHEDULER_shutdown (); | 184 | GNUNET_SCHEDULER_add_now (&shutdown_task, NULL); |
180 | } | 185 | } |
181 | 186 | ||
182 | 187 | ||
diff --git a/src/gns/test_gns_max_queries.c b/src/gns/test_gns_max_queries.c index 0d3cf931f..fecc40925 100644 --- a/src/gns/test_gns_max_queries.c +++ b/src/gns/test_gns_max_queries.c | |||
@@ -101,10 +101,18 @@ end_badly_now () | |||
101 | } | 101 | } |
102 | 102 | ||
103 | 103 | ||
104 | static void shutdown_task (void *cls, | ||
105 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
106 | { | ||
107 | GNUNET_GNS_disconnect(gns_handle); | ||
108 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | ||
109 | GNUNET_SCHEDULER_shutdown (); | ||
110 | } | ||
104 | static void | 111 | static void |
105 | on_lookup_result_dummy(void *cls, uint32_t rd_count, | 112 | on_lookup_result_dummy(void *cls, uint32_t rd_count, |
106 | const struct GNUNET_NAMESTORE_RecordData *rd) | 113 | const struct GNUNET_NAMESTORE_RecordData *rd) |
107 | { | 114 | { |
115 | static int replies = 0; | ||
108 | if (GNUNET_SCHEDULER_NO_TASK != die_task) | 116 | if (GNUNET_SCHEDULER_NO_TASK != die_task) |
109 | { | 117 | { |
110 | GNUNET_SCHEDULER_cancel (die_task); | 118 | GNUNET_SCHEDULER_cancel (die_task); |
@@ -117,9 +125,13 @@ on_lookup_result_dummy(void *cls, uint32_t rd_count, | |||
117 | rd_count); | 125 | rd_count); |
118 | ok = -1; | 126 | ok = -1; |
119 | } | 127 | } |
128 | replies++; | ||
129 | if (replies == (max_parallel_lookups+TEST_ADDITIONAL_LOOKUPS)) | ||
130 | GNUNET_SCHEDULER_add_now (&shutdown_task, NULL); | ||
120 | fprintf (stderr, "."); | 131 | fprintf (stderr, "."); |
121 | } | 132 | } |
122 | 133 | ||
134 | |||
123 | static void | 135 | static void |
124 | on_lookup_result(void *cls, uint32_t rd_count, | 136 | on_lookup_result(void *cls, uint32_t rd_count, |
125 | const struct GNUNET_NAMESTORE_RecordData *rd) | 137 | const struct GNUNET_NAMESTORE_RecordData *rd) |
@@ -168,10 +180,7 @@ on_lookup_result(void *cls, uint32_t rd_count, | |||
168 | } | 180 | } |
169 | } | 181 | } |
170 | } | 182 | } |
171 | GNUNET_GNS_disconnect(gns_handle); | 183 | GNUNET_SCHEDULER_add_now (&shutdown_task, NULL); |
172 | gns_handle = NULL; | ||
173 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | ||
174 | GNUNET_SCHEDULER_shutdown (); | ||
175 | } | 184 | } |
176 | 185 | ||
177 | 186 | ||
diff --git a/src/gns/test_gns_ns_lookup.c b/src/gns/test_gns_ns_lookup.c index 45893a760..d0c00613e 100644 --- a/src/gns/test_gns_ns_lookup.c +++ b/src/gns/test_gns_ns_lookup.c | |||
@@ -107,7 +107,7 @@ end_badly_now () | |||
107 | } | 107 | } |
108 | 108 | ||
109 | static void | 109 | static void |
110 | end_now () | 110 | end_now (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) |
111 | { | 111 | { |
112 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Test successful, shutting down...\n"); | 112 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Test successful, shutting down...\n"); |
113 | if (GNUNET_SCHEDULER_NO_TASK != die_task) | 113 | if (GNUNET_SCHEDULER_NO_TASK != die_task) |
@@ -175,7 +175,7 @@ on_lookup_result_alt2 (void *cls, uint32_t rd_count, | |||
175 | } | 175 | } |
176 | } | 176 | } |
177 | } | 177 | } |
178 | end_now (); | 178 | GNUNET_SCHEDULER_add_now (&end_now, NULL); |
179 | } | 179 | } |
180 | 180 | ||
181 | static void | 181 | static void |
@@ -310,7 +310,7 @@ handle_dns_test (void *cls, | |||
310 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, | 310 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, |
311 | "System resolver not working. Test inconclusive!\n"); | 311 | "System resolver not working. Test inconclusive!\n"); |
312 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer1!\n"); | 312 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer1!\n"); |
313 | end_now (); | 313 | GNUNET_SCHEDULER_add_now (&end_now, NULL); |
314 | return; | 314 | return; |
315 | } | 315 | } |
316 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Starting lookup \n"); | 316 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Starting lookup \n"); |
diff --git a/src/gns/test_gns_pseu_shorten.c b/src/gns/test_gns_pseu_shorten.c index cae454047..c5ff6435e 100644 --- a/src/gns/test_gns_pseu_shorten.c +++ b/src/gns/test_gns_pseu_shorten.c | |||
@@ -133,6 +133,14 @@ end_badly_now () | |||
133 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 133 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
134 | } | 134 | } |
135 | 135 | ||
136 | static void shutdown_task (void *cls, | ||
137 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
138 | { | ||
139 | GNUNET_GNS_disconnect(gns_handle); | ||
140 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | ||
141 | GNUNET_SCHEDULER_shutdown (); | ||
142 | } | ||
143 | |||
136 | /** | 144 | /** |
137 | * Called when gns shorten finishes | 145 | * Called when gns shorten finishes |
138 | */ | 146 | */ |
@@ -146,12 +154,6 @@ process_shorten_result(void* cls, const char* sname) | |||
146 | die_task = GNUNET_SCHEDULER_NO_TASK; | 154 | die_task = GNUNET_SCHEDULER_NO_TASK; |
147 | } | 155 | } |
148 | 156 | ||
149 | if (NULL != gns_handle) | ||
150 | { | ||
151 | GNUNET_GNS_disconnect(gns_handle); | ||
152 | gns_handle = NULL; | ||
153 | } | ||
154 | |||
155 | if (NULL != dht_handle) | 157 | if (NULL != dht_handle) |
156 | { | 158 | { |
157 | GNUNET_DHT_disconnect (dht_handle); | 159 | GNUNET_DHT_disconnect (dht_handle); |
@@ -178,8 +180,7 @@ process_shorten_result(void* cls, const char* sname) | |||
178 | 180 | ||
179 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "shorten test succeeded!\n"); | 181 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "shorten test succeeded!\n"); |
180 | } | 182 | } |
181 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | 183 | GNUNET_SCHEDULER_add_now (&shutdown_task, NULL); |
182 | GNUNET_SCHEDULER_shutdown (); | ||
183 | } | 184 | } |
184 | 185 | ||
185 | 186 | ||
diff --git a/src/gns/test_gns_revocation.c b/src/gns/test_gns_revocation.c index bc31d943d..a538ab3e7 100644 --- a/src/gns/test_gns_revocation.c +++ b/src/gns/test_gns_revocation.c | |||
@@ -95,6 +95,15 @@ end_badly_now () | |||
95 | GNUNET_SCHEDULER_cancel (die_task); | 95 | GNUNET_SCHEDULER_cancel (die_task); |
96 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 96 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
97 | } | 97 | } |
98 | |||
99 | static void shutdown_task (void *cls, | ||
100 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
101 | { | ||
102 | GNUNET_GNS_disconnect(gns_handle); | ||
103 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | ||
104 | GNUNET_SCHEDULER_shutdown (); | ||
105 | } | ||
106 | |||
98 | static void | 107 | static void |
99 | on_lookup_result(void *cls, uint32_t rd_count, | 108 | on_lookup_result(void *cls, uint32_t rd_count, |
100 | const struct GNUNET_NAMESTORE_RecordData *rd) | 109 | const struct GNUNET_NAMESTORE_RecordData *rd) |
@@ -142,10 +151,7 @@ on_lookup_result(void *cls, uint32_t rd_count, | |||
142 | } | 151 | } |
143 | } | 152 | } |
144 | } | 153 | } |
145 | GNUNET_GNS_disconnect(gns_handle); | 154 | GNUNET_SCHEDULER_add_now (&shutdown_task, NULL); |
146 | gns_handle = NULL; | ||
147 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | ||
148 | GNUNET_SCHEDULER_shutdown (); | ||
149 | } | 155 | } |
150 | 156 | ||
151 | 157 | ||
diff --git a/src/gns/test_gns_simple_delegated_lookup.c b/src/gns/test_gns_simple_delegated_lookup.c index ab0395e62..b456e4112 100644 --- a/src/gns/test_gns_simple_delegated_lookup.c +++ b/src/gns/test_gns_simple_delegated_lookup.c | |||
@@ -110,6 +110,14 @@ void end_badly_now () | |||
110 | } | 110 | } |
111 | 111 | ||
112 | 112 | ||
113 | static void shutdown_task (void *cls, | ||
114 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
115 | { | ||
116 | GNUNET_GNS_disconnect(gns_handle); | ||
117 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | ||
118 | GNUNET_SCHEDULER_shutdown (); | ||
119 | } | ||
120 | |||
113 | static void | 121 | static void |
114 | on_lookup_result(void *cls, uint32_t rd_count, | 122 | on_lookup_result(void *cls, uint32_t rd_count, |
115 | const struct GNUNET_NAMESTORE_RecordData *rd) | 123 | const struct GNUNET_NAMESTORE_RecordData *rd) |
@@ -156,10 +164,7 @@ on_lookup_result(void *cls, uint32_t rd_count, | |||
156 | } | 164 | } |
157 | } | 165 | } |
158 | } | 166 | } |
159 | 167 | GNUNET_SCHEDULER_add_now (&shutdown_task, NULL); | |
160 | GNUNET_GNS_disconnect(gns_handle); | ||
161 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | ||
162 | GNUNET_SCHEDULER_shutdown (); | ||
163 | } | 168 | } |
164 | 169 | ||
165 | 170 | ||
diff --git a/src/gns/test_gns_simple_get_authority.c b/src/gns/test_gns_simple_get_authority.c index a2605fbae..4a5406e98 100644 --- a/src/gns/test_gns_simple_get_authority.c +++ b/src/gns/test_gns_simple_get_authority.c | |||
@@ -100,6 +100,13 @@ void end_badly_now () | |||
100 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 100 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
101 | } | 101 | } |
102 | 102 | ||
103 | static void shutdown_task (void *cls, | ||
104 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
105 | { | ||
106 | GNUNET_GNS_disconnect(gns_handle); | ||
107 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | ||
108 | GNUNET_SCHEDULER_shutdown (); | ||
109 | } | ||
103 | 110 | ||
104 | /** | 111 | /** |
105 | * Called when gns_get_authority finishes | 112 | * Called when gns_get_authority finishes |
@@ -108,8 +115,6 @@ static void | |||
108 | process_auth_result(void* cls, const char* aname) | 115 | process_auth_result(void* cls, const char* aname) |
109 | { | 116 | { |
110 | 117 | ||
111 | GNUNET_GNS_disconnect(gns_handle); | ||
112 | |||
113 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 118 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
114 | "Disconnecting from namestore\n"); | 119 | "Disconnecting from namestore\n"); |
115 | GNUNET_NAMESTORE_disconnect (namestore_handle); | 120 | GNUNET_NAMESTORE_disconnect (namestore_handle); |
@@ -146,8 +151,7 @@ process_auth_result(void* cls, const char* aname) | |||
146 | 151 | ||
147 | } | 152 | } |
148 | 153 | ||
149 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer1!\n"); | 154 | GNUNET_SCHEDULER_add_now (&shutdown_task, NULL); |
150 | GNUNET_SCHEDULER_shutdown (); | ||
151 | } | 155 | } |
152 | 156 | ||
153 | 157 | ||
diff --git a/src/gns/test_gns_simple_lookup.c b/src/gns/test_gns_simple_lookup.c index 97cb2b3f5..cc912b2e0 100644 --- a/src/gns/test_gns_simple_lookup.c +++ b/src/gns/test_gns_simple_lookup.c | |||
@@ -89,6 +89,16 @@ void end_badly_now () | |||
89 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 89 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
90 | } | 90 | } |
91 | 91 | ||
92 | |||
93 | static void shutdown_task (void *cls, | ||
94 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
95 | { | ||
96 | GNUNET_GNS_disconnect(gns_handle); | ||
97 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | ||
98 | GNUNET_SCHEDULER_shutdown (); | ||
99 | } | ||
100 | |||
101 | |||
92 | static void | 102 | static void |
93 | on_lookup_result(void *cls, uint32_t rd_count, | 103 | on_lookup_result(void *cls, uint32_t rd_count, |
94 | const struct GNUNET_NAMESTORE_RecordData *rd) | 104 | const struct GNUNET_NAMESTORE_RecordData *rd) |
@@ -137,10 +147,7 @@ on_lookup_result(void *cls, uint32_t rd_count, | |||
137 | } | 147 | } |
138 | } | 148 | } |
139 | 149 | ||
140 | GNUNET_GNS_disconnect(gns_handle); | 150 | GNUNET_SCHEDULER_add_now (&shutdown_task, NULL); |
141 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | ||
142 | GNUNET_SCHEDULER_shutdown (); | ||
143 | |||
144 | } | 151 | } |
145 | 152 | ||
146 | 153 | ||
diff --git a/src/gns/test_gns_simple_mx_lookup.c b/src/gns/test_gns_simple_mx_lookup.c index 03e4f867f..a2fc311d4 100644 --- a/src/gns/test_gns_simple_mx_lookup.c +++ b/src/gns/test_gns_simple_mx_lookup.c | |||
@@ -100,6 +100,15 @@ end_badly_now () | |||
100 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 100 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
101 | } | 101 | } |
102 | 102 | ||
103 | |||
104 | static void shutdown_task (void *cls, | ||
105 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
106 | { | ||
107 | GNUNET_GNS_disconnect(gns_handle); | ||
108 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | ||
109 | GNUNET_SCHEDULER_shutdown (); | ||
110 | } | ||
111 | |||
103 | static void | 112 | static void |
104 | on_lookup_result(void *cls, uint32_t rd_count, | 113 | on_lookup_result(void *cls, uint32_t rd_count, |
105 | const struct GNUNET_NAMESTORE_RecordData *rd) | 114 | const struct GNUNET_NAMESTORE_RecordData *rd) |
@@ -144,10 +153,8 @@ on_lookup_result(void *cls, uint32_t rd_count, | |||
144 | } | 153 | } |
145 | } | 154 | } |
146 | } | 155 | } |
147 | 156 | ||
148 | GNUNET_GNS_disconnect(gns_handle); | 157 | GNUNET_SCHEDULER_add_now (&shutdown_task, NULL); |
149 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | ||
150 | GNUNET_SCHEDULER_shutdown (); | ||
151 | 158 | ||
152 | } | 159 | } |
153 | 160 | ||
diff --git a/src/gns/test_gns_simple_shorten.c b/src/gns/test_gns_simple_shorten.c index fb02d223e..23305c889 100644 --- a/src/gns/test_gns_simple_shorten.c +++ b/src/gns/test_gns_simple_shorten.c | |||
@@ -95,6 +95,13 @@ void end_badly_now () | |||
95 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 95 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
96 | } | 96 | } |
97 | 97 | ||
98 | static void shutdown_task (void *cls, | ||
99 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
100 | { | ||
101 | GNUNET_GNS_disconnect(gns_handle); | ||
102 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | ||
103 | GNUNET_SCHEDULER_shutdown (); | ||
104 | } | ||
98 | 105 | ||
99 | /** | 106 | /** |
100 | * Called when gns shorten finishes | 107 | * Called when gns shorten finishes |
@@ -102,7 +109,6 @@ void end_badly_now () | |||
102 | static void | 109 | static void |
103 | process_shorten_result(void* cls, const char* sname) | 110 | process_shorten_result(void* cls, const char* sname) |
104 | { | 111 | { |
105 | GNUNET_GNS_disconnect(gns_handle); | ||
106 | 112 | ||
107 | if (GNUNET_SCHEDULER_NO_TASK != die_task) | 113 | if (GNUNET_SCHEDULER_NO_TASK != die_task) |
108 | { | 114 | { |
@@ -135,9 +141,8 @@ process_shorten_result(void* cls, const char* sname) | |||
135 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Shorten test succeeded!\n"); | 141 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Shorten test succeeded!\n"); |
136 | ok = 0; | 142 | ok = 0; |
137 | } | 143 | } |
138 | 144 | ||
139 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Shutting down peer!\n"); | 145 | GNUNET_SCHEDULER_add_now (&shutdown_task, NULL); |
140 | GNUNET_SCHEDULER_shutdown (); | ||
141 | } | 146 | } |
142 | 147 | ||
143 | /** | 148 | /** |
diff --git a/src/gns/test_gns_simple_srv_lookup.c b/src/gns/test_gns_simple_srv_lookup.c index ea1673759..b3aec0e21 100644 --- a/src/gns/test_gns_simple_srv_lookup.c +++ b/src/gns/test_gns_simple_srv_lookup.c | |||
@@ -100,6 +100,14 @@ end_badly_now () | |||
100 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 100 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
101 | } | 101 | } |
102 | 102 | ||
103 | static void shutdown_task (void *cls, | ||
104 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
105 | { | ||
106 | GNUNET_GNS_disconnect(gns_handle); | ||
107 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | ||
108 | GNUNET_SCHEDULER_shutdown (); | ||
109 | } | ||
110 | |||
103 | static void | 111 | static void |
104 | on_lookup_result(void *cls, uint32_t rd_count, | 112 | on_lookup_result(void *cls, uint32_t rd_count, |
105 | const struct GNUNET_NAMESTORE_RecordData *rd) | 113 | const struct GNUNET_NAMESTORE_RecordData *rd) |
@@ -146,9 +154,8 @@ on_lookup_result(void *cls, uint32_t rd_count, | |||
146 | } | 154 | } |
147 | } | 155 | } |
148 | 156 | ||
149 | GNUNET_GNS_disconnect(gns_handle); | 157 | GNUNET_SCHEDULER_add_now (&shutdown_task, NULL); |
150 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | 158 | |
151 | GNUNET_SCHEDULER_shutdown (); | ||
152 | } | 159 | } |
153 | 160 | ||
154 | 161 | ||
diff --git a/src/gns/test_gns_simple_zkey_lookup.c b/src/gns/test_gns_simple_zkey_lookup.c index 716ac7236..a1cef1828 100644 --- a/src/gns/test_gns_simple_zkey_lookup.c +++ b/src/gns/test_gns_simple_zkey_lookup.c | |||
@@ -99,6 +99,14 @@ end_badly_now () | |||
99 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); | 99 | die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL); |
100 | } | 100 | } |
101 | 101 | ||
102 | static void shutdown_task (void *cls, | ||
103 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
104 | { | ||
105 | GNUNET_GNS_disconnect(gns_handle); | ||
106 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | ||
107 | GNUNET_SCHEDULER_shutdown (); | ||
108 | } | ||
109 | |||
102 | static void | 110 | static void |
103 | on_lookup_result(void *cls, uint32_t rd_count, | 111 | on_lookup_result(void *cls, uint32_t rd_count, |
104 | const struct GNUNET_NAMESTORE_RecordData *rd) | 112 | const struct GNUNET_NAMESTORE_RecordData *rd) |
@@ -146,11 +154,8 @@ on_lookup_result(void *cls, uint32_t rd_count, | |||
146 | } | 154 | } |
147 | } | 155 | } |
148 | } | 156 | } |
149 | 157 | ||
150 | GNUNET_GNS_disconnect(gns_handle); | 158 | GNUNET_SCHEDULER_add_now (&shutdown_task, NULL); |
151 | gns_handle = NULL; | ||
152 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Shutting down peer!\n"); | ||
153 | GNUNET_SCHEDULER_shutdown (); | ||
154 | } | 159 | } |
155 | /** | 160 | /** |
156 | * Function scheduled to be run on the successful start of services | 161 | * Function scheduled to be run on the successful start of services |