* Perform DNS resolution.
*
* @param ctx stub resolver to use
- * @param af address family to use
+ * @param sa the socket address
+ * @param sa_len the socket length
* @param request DNS request to transmit
* @param request_len number of bytes in msg
* @param rc function to call with result
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 ==
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;
}
/* 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;
&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;
}
}
+/**
+ * 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.