[PATCH 1/5] Cygwin: resolver: Debug to output both IP and port # in native b.o.

Anton Lavrentiev lavr@ncbi.nlm.nih.gov
Mon Jan 17 18:03:10 GMT 2022


Also, change a few other debug output spots for consitency
---
 winsup/cygwin/libc/minires.c | 36 ++++++++++++++++++++++--------------
 1 file changed, 22 insertions(+), 14 deletions(-)

diff --git a/winsup/cygwin/libc/minires.c b/winsup/cygwin/libc/minires.c
index 0979daae3..0cf9efd9b 100644
--- a/winsup/cygwin/libc/minires.c
+++ b/winsup/cygwin/libc/minires.c
@@ -73,7 +73,7 @@ void minires_get_search(char * string, res_state statp)
       statp->dnsrch[j] = strcpy(ptr, words[j]);
       statp->dnsrch[j+1] = NULL;
       ptr += sizes[j];
-      DPRINTF(debug, "search \"%s\"\n", words[j]);
+      DPRINTF(debug, "registry search \"%s\"\n", words[j]);
     }
     else if (j < MAXDNSRCH + 1)
       DPRINTF(debug, "no space for \"%s\"\n", words[j]);
@@ -170,7 +170,7 @@ static void get_resolv(res_state statp)
   have_address = (statp->nscount != 0);
 
   while ( fgets(line, sizeof(line), fd) != 0) {
-    DPRINTF(debug, "resolv.conf %s", line);
+    DPRINTF(debug, _PATH_RESCONF " line: %s", line);
     if ((i = scanline(line, words, sizes, DIM(words))) > 0) {
       if (!have_address
 	  && !strncasecmp("nameserver", words[0], sizes[0])) {
@@ -186,7 +186,7 @@ static void get_resolv(res_state statp)
 	  else {
 	    statp->nsaddr_list[ns++].sin_addr.s_addr = address;
 	    statp->nscount++;
-	    DPRINTF(debug, "server \"%s\"\n", words[j]);
+	    DPRINTF(debug, "nameserver \"%s\"\n", words[j]);
 	  }
 	}
       }
@@ -254,6 +254,8 @@ static int open_sock(struct sockaddr_in *CliAddr, int debug)
     DPRINTF(debug, "bind: %s\n", strerror(errno));
     return -1;
   }
+
+  DPRINTF(debug, "UDP socket sockfd %d\n", fd);
   return fd;
 }
 
@@ -352,10 +354,10 @@ static int get_tcp_buf(int fd, unsigned char *buf, int size, int debug)
   int res;
   while (size > 0) {
     if ((res = read(fd, buf, size)) < 0) {
-      DPRINTF(debug, "read: %s\n", strerror(errno));
+      DPRINTF(debug, "read(TCP): %s\n", strerror(errno));
       return -1;
     }
-    DPRINTF(debug, "read %d out of %d\n", res, size);
+    DPRINTF(debug, "read(TCP) %d out of %d\n", res, size);
     size -= res;
     buf += res;
   }
@@ -384,7 +386,7 @@ static int get_tcp(struct sockaddr_in *CliAddr,
   }
 
   if (cygwin_connect(fd, (struct sockaddr *)  CliAddr, sizeof(* CliAddr)) < 0) {
-    DPRINTF(debug, "connect: %s\n", strerror(errno));
+    DPRINTF(debug, "connect(TCP): %s\n", strerror(errno));
     goto done;
   }
 
@@ -392,7 +394,7 @@ static int get_tcp(struct sockaddr_in *CliAddr,
   len_buf.len = htons(MsgLength);
   if (write(fd, len_buf.buf, sizeof(len_buf)) != sizeof(len_buf)
       || write(fd, MsgPtr, MsgLength) != MsgLength) {
-    DPRINTF(debug, "write: %s\n", strerror(errno));
+    DPRINTF(debug, "write(TCP): %s\n", strerror(errno));
     goto done;
   }
 
@@ -503,8 +505,9 @@ int res_nsend( res_state statp, const unsigned char * MsgPtr,
     rslt = cygwin_sendto(statp->sockfd, MsgPtr, MsgLength, 0,
 			 (struct sockaddr *) &statp->nsaddr_list[wServ],
 			 sizeof(struct sockaddr_in));
-    DPRINTF(debug, "sendto: server %08x sockfd %d %s\n",
-	    statp->nsaddr_list[wServ].sin_addr.s_addr,
+    DPRINTF(debug, "sendto: server %08X:%hu sockfd %d %s\n",
+	    ntohl(statp->nsaddr_list[wServ].sin_addr.s_addr),
+	    ntohs(statp->nsaddr_list[wServ].sin_port),
 	    statp->sockfd, (rslt == MsgLength)?"OK":strerror(errno));
     if (rslt != MsgLength) {
       statp->res_h_errno = NETDB_INTERNAL;
@@ -519,12 +522,14 @@ int res_nsend( res_state statp, const unsigned char * MsgPtr,
     timeOut.tv_usec = 0;
     rslt = cygwin_select(statp->sockfd + 1, &fdset_read, NULL, NULL, &timeOut);
     if ( rslt == 0 ) { /* Timeout */
-      DPRINTF(statp->options & RES_DEBUG, "timeout for server %08x\n",
-	      statp->nsaddr_list[wServ].sin_addr.s_addr);
+      DPRINTF(statp->options & RES_DEBUG, "timeout for server %08X:%hu sockfd %d\n",
+	      ntohl(statp->nsaddr_list[wServ].sin_addr.s_addr),
+	      ntohs(statp->nsaddr_list[wServ].sin_port),
+	      statp->sockfd);
       continue;
     }
     else if ((rslt != 1) || (FD_ISSET(statp->sockfd, &fdset_read) == 0)) {
-      DPRINTF(debug, "select: %s\n", strerror(errno));
+      DPRINTF(debug, "select sockfd %d: %s\n", statp->sockfd, strerror(errno));
       statp->res_h_errno = NETDB_INTERNAL;
       return -1;
     }
@@ -533,11 +538,14 @@ int res_nsend( res_state statp, const unsigned char * MsgPtr,
     rslt = cygwin_recvfrom(statp->sockfd, AnsPtr, AnsLength, 0,
 			   (struct sockaddr *) & dnsSockAddr, & addrLen);
     if (rslt <= 0) {
-      DPRINTF(debug, "recvfrom: %s\n", strerror(errno));
+      DPRINTF(debug, "recvfrom sockfd %d: %s\n", statp->sockfd, strerror(errno));
       statp->res_h_errno = NETDB_INTERNAL;
       return -1;
     }
-    DPRINTF(debug, "recvfrom: %d bytes from %08x\n", rslt, dnsSockAddr.sin_addr.s_addr);
+    DPRINTF(debug, "recvfrom: %d bytes from %08X:%hu sockfd %d\n", rslt,
+            ntohl(dnsSockAddr.sin_addr.s_addr),
+            ntohs(dnsSockAddr.sin_port),
+            statp->sockfd);
     /*
        Prepare to retry with tcp
     */
-- 
2.33.0



More information about the Cygwin-patches mailing list