If we include winsock2.h then FD_SET wants an unsigned type for an fd.
authorDr. Stephen Henson <steve@openssl.org>
Mon, 17 Apr 2006 12:22:13 +0000 (12:22 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Mon, 17 Apr 2006 12:22:13 +0000 (12:22 +0000)
apps/apps.h
apps/s_client.c
apps/s_server.c
apps/s_time.c

index 0052234..3b5feba 100644 (file)
@@ -193,6 +193,13 @@ extern BIO *bio_err;
 #  endif
 #endif
 
+#ifdef OPENSSL_SYSNAME_WIN32
+#  define openssl_fdset(a,b) FD_SET((unsigned int)a, b)
+#else
+#  define openssl_fdset(a,b) FD_SET(a, b)
+#endif
+
+
 typedef struct args_st
        {
        char **data;
index 93e640c..8eeb726 100644 (file)
@@ -959,19 +959,19 @@ re_start:
 #if !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_NETWARE) && !defined (OPENSSL_SYS_BEOS_R5)
                        if (tty_on)
                                {
-                               if (read_tty)  FD_SET(fileno(stdin),&readfds);
-                               if (write_tty) FD_SET(fileno(stdout),&writefds);
+                               if (read_tty)  openssl_fdset(fileno(stdin),&readfds);
+                               if (write_tty) openssl_fdset(fileno(stdout),&writefds);
                                }
                        if (read_ssl)
-                               FD_SET(SSL_get_fd(con),&readfds);
+                               openssl_fdset(SSL_get_fd(con),&readfds);
                        if (write_ssl)
-                               FD_SET(SSL_get_fd(con),&writefds);
+                               openssl_fdset(SSL_get_fd(con),&writefds);
 #else
                        if(!tty_on || !write_tty) {
                                if (read_ssl)
-                                       FD_SET(SSL_get_fd(con),&readfds);
+                                       openssl_fdset(SSL_get_fd(con),&readfds);
                                if (write_ssl)
-                                       FD_SET(SSL_get_fd(con),&writefds);
+                                       openssl_fdset(SSL_get_fd(con),&writefds);
                        }
 #endif
 /*                     printf("mode tty(%d %d%d) ssl(%d%d)\n",
index 69a2f6c..a294ed3 100644 (file)
@@ -1621,9 +1621,9 @@ static int sv_body(char *hostname, int s, unsigned char *context)
                        {
                        FD_ZERO(&readfds);
 #if !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_NETWARE) && !defined(OPENSSL_SYS_BEOS_R5)
-                       FD_SET(fileno(stdin),&readfds);
+                       openssl_fdset(fileno(stdin),&readfds);
 #endif
-                       FD_SET(s,&readfds);
+                       openssl_fdset(s,&readfds);
                        /* Note: under VMS with SOCKETSHR the second parameter is
                         * currently of type (int *) whereas under other systems
                         * it is (void *) if you don't have a cast it will choke
index 33e312b..b823c33 100644 (file)
@@ -601,7 +601,7 @@ static SSL *doConnection(SSL *scon)
                        i=SSL_get_fd(serverCon);
                        width=i+1;
                        FD_ZERO(&readfds);
-                       FD_SET(i,&readfds);
+                       openssl_fdset(i,&readfds);
                        /* Note: under VMS with SOCKETSHR the 2nd parameter
                         * is currently of type (int *) whereas under other
                         * systems it is (void *) if you don't have a cast it