"Kai Blin" <[EMAIL PROTECTED]> wrote:

+static void test_extendedSocketOptions()
+{
+    WSADATA wsa;
+    SOCKET sock;
+    struct sockaddr_in sa;
+    int sa_len = sizeof(struct sockaddr_in);
+    ULONG optval, optlen = sizeof(ULONG);

Why to use ULONG if what you later cast it to is 'int *', and according to
the docs (and your implementation) SO_MAX_MSG_SIZE expects sizeof(int) for
the optval?

...
+    if(bind(sock, (struct sockaddr *) &sa, (int)sa_len) < 0){

There is not need for a cast, sa_len has the type 'int'.

+        trace("Failed to bind socket: 0x%08x\n", WSAGetLastError());
+        closesocket(sock);
+        WSACleanup();
+        exit(1);

This kills the whole process instead of terminating gracefully just this
particular test.

+    }
+
+    ret = getsockopt(sock, SOL_SOCKET, SO_MAX_MSG_SIZE, (char *)&optval, (int 
*)&optlen);

--
Dmitry.


Reply via email to