Introduce query_imsg2str() for the printing "qname class type". OK?
diff --git resolver.c resolver.c index dea78ca2fb3..a1e18f9d130 100644 --- resolver.c +++ resolver.c @@ -194,6 +194,7 @@ void decay_latest_histograms(int, short, void *); int running_query_cnt(void); int *resolvers_to_restart(struct uw_conf *, struct uw_conf *); +const char *query_imsg2str(struct query_imsg *); struct uw_conf *resolver_conf; struct imsgev *iev_frontend; @@ -752,8 +753,6 @@ try_next_resolver(struct running_query *rq) struct timespec tp, elapsed; struct timeval tv = {0, 0}; int64_t ms; - char qclass_buf[16]; - char qtype_buf[16]; while(rq->next_resolver < rq->res_pref.len && ((res = resolvers[rq->res_pref.types[rq->next_resolver]]) == NULL || @@ -772,13 +771,9 @@ try_next_resolver(struct running_query *rq) timespecsub(&tp, &rq->tp, &elapsed); ms = elapsed.tv_sec * 1000 + elapsed.tv_nsec / 1000000; - sldns_wire2str_class_buf(rq->query_imsg->c, qclass_buf, - sizeof(qclass_buf)); - sldns_wire2str_type_buf(rq->query_imsg->t, qtype_buf, - sizeof(qtype_buf)); - log_debug("%s[+%lldms]: %s[%s] %s %s %s", __func__, ms, + log_debug("%s[+%lldms]: %s[%s] %s", __func__, ms, uw_resolver_type_str[res->type], uw_resolver_state_str[res->state], - rq->query_imsg->qname, qclass_buf, qtype_buf); + query_imsg2str(rq->query_imsg)); if ((query_imsg = malloc(sizeof(*query_imsg))) == NULL) { log_warnx("%s", __func__); @@ -891,8 +886,6 @@ resolve_done(struct uw_resolver *res, void *arg, int rcode, int running_res, asr_pref_pos, force_acceptbogus; char *str; char rcode_buf[16]; - char qclass_buf[16]; - char qtype_buf[16]; clock_gettime(CLOCK_MONOTONIC, &tp); @@ -949,11 +942,9 @@ resolve_done(struct uw_resolver *res, void *arg, int rcode, result->answer_len = 0; sldns_wire2str_rcode_buf(result->rcode, rcode_buf, sizeof(rcode_buf)); - sldns_wire2str_class_buf(query_imsg->c, qclass_buf, sizeof(qclass_buf)); - sldns_wire2str_type_buf(query_imsg->t, qtype_buf, sizeof(qtype_buf)); - log_debug("%s[%s]: %s %s %s rcode: %s[%d], elapsed: %lldms, running: %d", - __func__, uw_resolver_type_str[res->type], query_imsg->qname, - qclass_buf, qtype_buf, rcode_buf, result->rcode, ms, + log_debug("%s[%s]: %s rcode: %s[%d], elapsed: %lldms, running: %d", + __func__, uw_resolver_type_str[res->type], + query_imsg2str(query_imsg), rcode_buf, result->rcode, ms, running_query_cnt()); force_acceptbogus = find_force(&resolver_conf->force, query_imsg->qname, @@ -2116,3 +2107,18 @@ resolvers_to_restart(struct uw_conf *oconf, struct uw_conf *nconf) } return restart; } + +const char* +query_imsg2str(struct query_imsg *query_imsg) +{ + static char buf[sizeof(query_imsg->qname) + 1 + 16 + 1 + 16]; + char qclass_buf[16]; + char qtype_buf[16]; + + sldns_wire2str_class_buf(query_imsg->c, qclass_buf, sizeof(qclass_buf)); + sldns_wire2str_type_buf(query_imsg->t, qtype_buf, sizeof(qtype_buf)); + + snprintf(buf, sizeof(buf), "%s %s %s", query_imsg->qname, qclass_buf, + qtype_buf); + return buf; +} -- I'm not entirely sure you are real.