* Fix #92: ldns-testns.c:429:15: error: 'fork' is unavailable: not
available on tvOS.
* Fix for #93: fix packaging/libldns.pc Makefile rule.
- * ldns-testns can answer several queries over one tcp connection,
- if they arrive within 100msec of each other.
1.7.1 2019-07-26
* bugfix: Manage verification paths for OpenSSL >= 1.1.0
}
userdata.s = s;
- while(1) {
- /* tcp recv */
- if (read_n_bytes(s, (uint8_t*)&tcplen, sizeof(tcplen)))
- return;
- tcplen = ntohs(tcplen);
- if(tcplen >= INBUF_SIZE) {
- log_msg("query %d bytes too large, buffer %d bytes.\n",
- tcplen, INBUF_SIZE);
+ /* tcp recv */
+ if (read_n_bytes(s, (uint8_t*)&tcplen, sizeof(tcplen)))
+ return;
+ tcplen = ntohs(tcplen);
+ if(tcplen >= INBUF_SIZE) {
+ log_msg("query %d bytes too large, buffer %d bytes.\n",
+ tcplen, INBUF_SIZE);
#ifndef USE_WINSOCK
- close(s);
+ close(s);
#else
- closesocket(s);
+ closesocket(s);
#endif
- return;
- }
- if (read_n_bytes(s, inbuf, tcplen))
- return;
-
- handle_query(inbuf, (ssize_t) tcplen, entries, count, transport_tcp,
- send_tcp, &userdata, do_verbose?logfile:0);
- /* another query straight away? */
- if(1) {
- fd_set rset;
- struct timeval tv;
- int ret;
- FD_ZERO(&rset);
- FD_SET(s, &rset);
- tv.tv_sec = 0;
- tv.tv_usec = 100*1000;
- ret = select(s+1, &rset, NULL, NULL, &tv);
- if(ret < 0) {
- error("select(): %s\n", strerror(errno));
- }
- if(ret == 0) {
- /* timeout */
- break;
- }
- }
-
+ return;
}
+ if (read_n_bytes(s, inbuf, tcplen))
+ return;
+
+ handle_query(inbuf, (ssize_t) tcplen, entries, count, transport_tcp,
+ send_tcp, &userdata, do_verbose?logfile:0);
#ifndef USE_WINSOCK
close(s);
#else