]> git.meshlink.io Git - catta/blobdiff - src/compat/windows/wincompat.c
for posterity: some debug output in sendmsg/recvmsg
[catta] / src / compat / windows / wincompat.c
index 4e3145e6e672c73bee5d40d9af5bdaf4c6f4f86b..9aecac44340b1f204b8488e333c33f869581a7f8 100644 (file)
@@ -46,6 +46,16 @@ void winsock_exit(void)
         catta_log_warn("WSACleanup() failed: %d", WSAGetLastError());
 }
 
+char *errnostrsocket(void)
+{
+    static char buf[256];
+
+    FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
+                  NULL, WSAGetLastError(), 0, buf, sizeof(buf), NULL);
+
+    return buf;
+}
+
 ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags)
 {
     LPFN_WSARECVMSG WSARecvMsg = NULL;
@@ -128,6 +138,7 @@ ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags)
     msg->msg_flags = (int)wsamsg.dwFlags;
         // all flags that fit into dwFlags also fit into msg_flags (see above)
 
+    catta_log_debug("recvmsg: %u bytes received", (unsigned int)bytesrcvd);
     return bytesrcvd;
 }
 
@@ -204,6 +215,17 @@ ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags)
         return -1;
     }
 
+    // XXX debug, remove
+    {
+        char where[64];
+        struct sockaddr *sa = msg->msg_name;
+
+        if(sa->sa_family == AF_INET)
+            inet_ntop(sa->sa_family, &((struct sockaddr_in *)sa)->sin_addr, where, sizeof(where));
+        else
+            inet_ntop(sa->sa_family, &((struct sockaddr_in6 *)sa)->sin6_addr, where, sizeof(where));
+        catta_log_debug("sendmsg: %u bytes to %s", (unsigned int)bytessent, where);
+    }
     return bytessent;
 }