X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fdns%2Fdnsstub.c;h=c755aff16032b0d4e45b36bbafa4d86de7b294a5;hb=70466ec3c34f9a920e9e798e3169f886e9486a59;hp=49254b8d625eb466356b1b463e3fb8bdb5f6f655;hpb=ce91e88505a41fa637a7ae28dc199a7ef010a6ee;p=oweals%2Fgnunet.git diff --git a/src/dns/dnsstub.c b/src/dns/dnsstub.c index 49254b8d6..c755aff16 100644 --- a/src/dns/dnsstub.c +++ b/src/dns/dnsstub.c @@ -279,6 +279,10 @@ GNUNET_DNSSTUB_resolve (struct GNUNET_DNSSTUB_Context *ctx, else ret = rs->dnsout6; GNUNET_assert (NULL != ret); + memcpy (&rs->addr, + sa, + sa_len); + rs->addrlen = sa_len; rs->rc = rc; rs->rc_cls = rc_cls; if (GNUNET_SYSERR == @@ -290,6 +294,10 @@ GNUNET_DNSSTUB_resolve (struct GNUNET_DNSSTUB_Context *ctx, GNUNET_log (GNUNET_ERROR_TYPE_WARNING, _("Failed to send DNS request to %s\n"), GNUNET_a2s (sa, sa_len)); + else + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + _("Sent DNS request to %s\n"), + GNUNET_a2s (sa, sa_len)); return rs; } @@ -409,7 +417,9 @@ do_dns_read (struct GNUNET_DNSSTUB_RequestSocket *rs, /* port the code above? */ len = UINT16_MAX; #endif - + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Receiving %d byte DNS reply\n", + len); { unsigned char buf[len] GNUNET_ALIGN; @@ -437,11 +447,16 @@ do_dns_read (struct GNUNET_DNSSTUB_RequestSocket *rs, &addr, addrlen)) || (0 == GNUNET_TIME_absolute_get_remaining (rs->timeout).rel_value) ) + { + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Request timeout or invalid sender address; ignoring reply\n"); return GNUNET_NO; - rs->rc (rs->rc_cls, - rs, - dns, - r); + } + if (NULL != rs->rc) + rs->rc (rs->rc_cls, + rs, + dns, + r); } return GNUNET_OK; } @@ -492,6 +507,17 @@ read_response (void *cls, } +/** + * Cancel DNS resolution. + * + * @param rs resolution to cancel + */ +void +GNUNET_DNSSTUB_resolve_cancel (struct GNUNET_DNSSTUB_RequestSocket *rs) +{ + rs->rc = NULL; +} + /** * Start a DNS stub resolver.