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;
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;
}
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;
}