void server_stats_insrcode(struct server_stats* stats, ldns_buffer* buf) { if(stats->extended && ldns_buffer_limit(buf) != 0) { int r = (int)LDNS_RCODE_WIRE( ldns_buffer_begin(buf) ); stats->ans_rcode[r] ++; if(r == 0 && LDNS_ANCOUNT( ldns_buffer_begin(buf) ) == 0) stats->ans_rcode_nodata ++; } }
/** got reply for io */ static void perfreply(struct perfinfo* info, size_t n, struct timeval* now) { ssize_t r; r = recv(info->io[n].fd, (void*)sldns_buffer_begin(info->buf), sldns_buffer_capacity(info->buf), 0); if(r == -1) { #ifndef USE_WINSOCK log_err("recv: %s", strerror(errno)); #else log_err("recv: %s", wsa_strerror(WSAGetLastError())); #endif } else { info->by_rcode[LDNS_RCODE_WIRE(sldns_buffer_begin( info->buf))]++; info->numrecv++; } /*sldns_buffer_set_limit(info->buf, r); log_buf(0, "reply", info->buf);*/ perfsend(info, n, now); }