Modify verify code to handle self signed certificates.
[openssl.git] / apps / s_socket.c
index 1d8587f1f5c11853684ca5e952d1997ad5180c1a..888b66df18ea1d9e8a7ed05fb11f94abe6a67877 100644 (file)
  * [including the GNU Public Licence.]
  */
 
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+#include <signal.h>
+
 /* With IPv6, it looks like Digital has mixed up the proper order of
    recursive header file inclusion, resulting in the compiler complaining
    that u_int isn't defined, but only if _POSIX_C_SOURCE is defined, which
    is needed to have fileno() declared correctly...  So let's define u_int */
-#if defined(__DECC) && !defined(__U_INT)
+#if defined(VMS) && defined(__DECC) && !defined(__U_INT)
 #define __U_INT
 typedef unsigned int u_int;
 #endif
 
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <signal.h>
 #define USE_SOCKETS
 #define NON_MAIN
 #include "apps.h"
@@ -78,12 +79,12 @@ typedef unsigned int u_int;
 #include "s_apps.h"
 #include <openssl/ssl.h>
 
+#ifdef VMS
 #if (__VMS_VER < 70000000) /* FIONBIO used as a switch to enable ioctl,
                              and that isn't in VMS < 7.0 */
 #undef FIONBIO
 #endif
-#ifdef VMS /* for vfork() */
-#include <processes.h>
+#include <processes.h> /* for vfork() */
 #endif
 
 static struct hostent *GetHostByName(char *name);
@@ -255,7 +256,9 @@ int nbio_init_client_ip(int *sock, unsigned char ip[4], int port)
 
        if (*sock <= 0)
                {
+#ifdef FIONBIO
                unsigned long l=1;
+#endif
 
                s=socket(AF_INET,SOCK_STREAM,SOCKET_PROTOCOL);
                if (s == INVALID_SOCKET) { perror("socket"); return(0); }
@@ -387,7 +390,7 @@ redoit:
 
        memset((char *)&from,0,sizeof(from));
        len=sizeof(from);
-       /* Note: under VMS with SOCKETSHR the third parameter is currently
+       /* Note: under VMS with SOCKETSHR the fourth parameter is currently
         * of type (int *) whereas under other systems it is (void *) if
         * you don't have a cast it will choke the compiler: if you do
         * have a cast then you can either go for (int *) or (void *).
@@ -492,7 +495,7 @@ int host_ip(char *str, unsigned char ip[4])
        unsigned int in[4]; 
        int i;
 
-       if (sscanf(str,"%d.%d.%d.%d",&(in[0]),&(in[1]),&(in[2]),&(in[3])) == 4)
+       if (sscanf(str,"%u.%u.%u.%u",&(in[0]),&(in[1]),&(in[2]),&(in[3])) == 4)
                {
                for (i=0; i<4; i++)
                        if (in[i] > 255)