aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/util/resolver_api.c32
1 files changed, 19 insertions, 13 deletions
diff --git a/src/util/resolver_api.c b/src/util/resolver_api.c
index bd46b4fbb..b92fd6a02 100644
--- a/src/util/resolver_api.c
+++ b/src/util/resolver_api.c
@@ -500,11 +500,13 @@ handle_response (void *cls,
500 GNUNET_free (nret); 500 GNUNET_free (nret);
501 } 501 }
502 /* finally, make termination call */ 502 /* finally, make termination call */
503 rh->name_callback (rh->cls, 503 if (GNUNET_SYSERR != rh->was_transmitted)
504 NULL); 504 rh->name_callback (rh->cls,
505 NULL);
505 } 506 }
506 if (NULL != rh->addr_callback) 507 if ( (NULL != rh->addr_callback) &&
507 rh->addr_callback (rh->cls, 508 (GNUNET_SYSERR != rh->was_transmitted) )
509 rh->addr_callback (rh->cls,
508 NULL, 510 NULL,
509 0); 511 0);
510 } 512 }
@@ -637,6 +639,7 @@ numeric_resolution (void *cls)
637 (const struct sockaddr *) &v4, 639 (const struct sockaddr *) &v4,
638 sizeof (v4)); 640 sizeof (v4));
639 if ( (rh->af == AF_UNSPEC) && 641 if ( (rh->af == AF_UNSPEC) &&
642 (GNUNET_SYSERR != rh->was_transmitted) &&
640 (1 == inet_pton (AF_INET6, 643 (1 == inet_pton (AF_INET6,
641 hostname, 644 hostname,
642 &v6.sin6_addr)) ) 645 &v6.sin6_addr)) )
@@ -646,9 +649,10 @@ numeric_resolution (void *cls)
646 (const struct sockaddr *) &v6, 649 (const struct sockaddr *) &v6,
647 sizeof (v6)); 650 sizeof (v6));
648 } 651 }
649 rh->addr_callback (rh->cls, 652 if (GNUNET_SYSERR != rh->was_transmitted)
650 NULL, 653 rh->addr_callback (rh->cls,
651 0); 654 NULL,
655 0);
652 GNUNET_free (rh); 656 GNUNET_free (rh);
653 return; 657 return;
654 } 658 }
@@ -661,9 +665,10 @@ numeric_resolution (void *cls)
661 rh->addr_callback (rh->cls, 665 rh->addr_callback (rh->cls,
662 (const struct sockaddr *) &v6, 666 (const struct sockaddr *) &v6,
663 sizeof (v6)); 667 sizeof (v6));
664 rh->addr_callback (rh->cls, 668 if (GNUNET_SYSERR != rh->was_transmitted)
665 NULL, 669 rh->addr_callback (rh->cls,
666 0); 670 NULL,
671 0);
667 GNUNET_free (rh); 672 GNUNET_free (rh);
668 return; 673 return;
669 } 674 }
@@ -725,9 +730,10 @@ loopback_resolution (void *cls)
725 GNUNET_break (0); 730 GNUNET_break (0);
726 break; 731 break;
727 } 732 }
728 rh->addr_callback (rh->cls, 733 if (GNUNET_SYSERR != rh->was_transmitted)
729 NULL, 734 rh->addr_callback (rh->cls,
730 0); 735 NULL,
736 0);
731 LOG (GNUNET_ERROR_TYPE_DEBUG, 737 LOG (GNUNET_ERROR_TYPE_DEBUG,
732 "Finished resolving hostname `%s'.\n", 738 "Finished resolving hostname `%s'.\n",
733 (const char *) &rh[1]); 739 (const char *) &rh[1]);