mirror of https://github.com/getdnsapi/getdns.git
Network request submission and callback reporting
This commit is contained in:
parent
2220c1a48d
commit
f8c7d8b5d5
|
@ -691,6 +691,7 @@ _getdns_upstreams_dereference(getdns_upstreams *upstreams)
|
||||||
while (upstream->finished_dnsreqs) {
|
while (upstream->finished_dnsreqs) {
|
||||||
dnsreq = upstream->finished_dnsreqs;
|
dnsreq = upstream->finished_dnsreqs;
|
||||||
upstream->finished_dnsreqs = dnsreq->finished_next;
|
upstream->finished_dnsreqs = dnsreq->finished_next;
|
||||||
|
debug_req("Destroy ", *dnsreq->netreqs);
|
||||||
_getdns_context_cancel_request(dnsreq);
|
_getdns_context_cancel_request(dnsreq);
|
||||||
}
|
}
|
||||||
if (upstream->tls_session != NULL)
|
if (upstream->tls_session != NULL)
|
||||||
|
@ -3080,6 +3081,7 @@ getdns_cancel_callback(getdns_context *context,
|
||||||
|
|
||||||
getdns_context_request_count_changed(context);
|
getdns_context_request_count_changed(context);
|
||||||
|
|
||||||
|
debug_req("CB Cancel ", *dnsreq->netreqs);
|
||||||
if (dnsreq->user_callback) {
|
if (dnsreq->user_callback) {
|
||||||
dnsreq->context->processing = 1;
|
dnsreq->context->processing = 1;
|
||||||
dnsreq->user_callback(dnsreq->context, GETDNS_CALLBACK_CANCEL,
|
dnsreq->user_callback(dnsreq->context, GETDNS_CALLBACK_CANCEL,
|
||||||
|
@ -3095,6 +3097,7 @@ _getdns_context_request_timed_out(getdns_dns_req *dnsreq)
|
||||||
{
|
{
|
||||||
DEBUG_SCHED("%s(%p)\n", __FUNC__, (void *)dnsreq);
|
DEBUG_SCHED("%s(%p)\n", __FUNC__, (void *)dnsreq);
|
||||||
|
|
||||||
|
debug_req("CB Timeout ", *dnsreq->netreqs);
|
||||||
if (dnsreq->user_callback) {
|
if (dnsreq->user_callback) {
|
||||||
dnsreq->context->processing = 1;
|
dnsreq->context->processing = 1;
|
||||||
dnsreq->user_callback(dnsreq->context, GETDNS_CALLBACK_TIMEOUT,
|
dnsreq->user_callback(dnsreq->context, GETDNS_CALLBACK_TIMEOUT,
|
||||||
|
|
19
src/debug.h
19
src/debug.h
|
@ -36,7 +36,6 @@
|
||||||
#define DEBUG_H
|
#define DEBUG_H
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#define STUB_DEBUG_ENTRY "=> ENTRY: "
|
#define STUB_DEBUG_ENTRY "=> ENTRY: "
|
||||||
#define STUB_DEBUG_SETUP "--- SETUP: "
|
#define STUB_DEBUG_SETUP "--- SETUP: "
|
||||||
#define STUB_DEBUG_SETUP_TLS "--- SETUP(TLS): "
|
#define STUB_DEBUG_SETUP_TLS "--- SETUP(TLS): "
|
||||||
|
@ -94,8 +93,26 @@
|
||||||
#if defined(REQ_DEBUG) && REQ_DEBUG
|
#if defined(REQ_DEBUG) && REQ_DEBUG
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#define DEBUG_REQ(...) DEBUG_ON(__VA_ARGS__)
|
#define DEBUG_REQ(...) DEBUG_ON(__VA_ARGS__)
|
||||||
|
#include "gldns/wire2str.h"
|
||||||
|
#include "rr-dict.h"
|
||||||
|
#include "types-internal.h"
|
||||||
|
static inline void debug_req(const char *msg, getdns_network_req *netreq)
|
||||||
|
{
|
||||||
|
char str[1024];
|
||||||
|
struct timeval tv;
|
||||||
|
uint64_t t;
|
||||||
|
|
||||||
|
(void) gettimeofday(&tv, NULL);
|
||||||
|
t = tv.tv_sec * 1000 + tv.tv_usec / 1000;
|
||||||
|
t = t >= netreq->owner->expires ? 0 : netreq->owner->expires - t;
|
||||||
|
(void) gldns_wire2str_dname_buf(netreq->owner->name,
|
||||||
|
netreq->owner->name_len, str, sizeof(str));
|
||||||
|
DEBUG_REQ("NETREQ %s %4"PRIu64" %s %s\n", msg, t,
|
||||||
|
str, _getdns_rr_type_name(netreq->request_type));
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
#define DEBUG_REQ(...) DEBUG_OFF(__VA_ARGS__)
|
#define DEBUG_REQ(...) DEBUG_OFF(__VA_ARGS__)
|
||||||
|
#define debug_req(...) DEBUG_OFF(__VA_ARGS__)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(SCHED_DEBUG) && SCHED_DEBUG
|
#if defined(SCHED_DEBUG) && SCHED_DEBUG
|
||||||
|
|
|
@ -186,6 +186,14 @@ _getdns_check_dns_req_complete(getdns_dns_req *dns_req)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#if defined(REQ_DEBUG) && REQ_DEBUG
|
||||||
|
if (dns_req->internal_cb)
|
||||||
|
debug_req("CB Internal", *dns_req->netreqs);
|
||||||
|
else if (results_found)
|
||||||
|
debug_req("CB Complete", *dns_req->netreqs);
|
||||||
|
else
|
||||||
|
debug_req("CB Error ", *dns_req->netreqs);
|
||||||
|
#endif
|
||||||
if (dns_req->internal_cb) {
|
if (dns_req->internal_cb) {
|
||||||
_getdns_context_clear_outbound_request(dns_req);
|
_getdns_context_clear_outbound_request(dns_req);
|
||||||
dns_req->internal_cb(dns_req);
|
dns_req->internal_cb(dns_req);
|
||||||
|
@ -373,6 +381,8 @@ _getdns_submit_netreq(getdns_network_req *netreq, uint64_t *now_ms)
|
||||||
}
|
}
|
||||||
_getdns_netreq_change_state(netreq, NET_REQ_IN_FLIGHT);
|
_getdns_netreq_change_state(netreq, NET_REQ_IN_FLIGHT);
|
||||||
|
|
||||||
|
debug_req("Submitting ", netreq);
|
||||||
|
|
||||||
#ifdef STUB_NATIVE_DNSSEC
|
#ifdef STUB_NATIVE_DNSSEC
|
||||||
# ifdef DNSSEC_ROADBLOCK_AVOIDANCE
|
# ifdef DNSSEC_ROADBLOCK_AVOIDANCE
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue