Spelling error.
[openssl.git] / apps / s_socket.c
index c261abb3612430c6ae5f34d895fe90d633548812..9a696d5f93970a0fd03b2064eeda589c6c7fd2f2 100644 (file)
@@ -79,11 +79,19 @@ typedef unsigned int u_int;
 #include "s_apps.h"
 #include <openssl/ssl.h>
 
+#ifdef FLAT_INC
+#include "e_os.h"
+#else
+#include "../e_os.h"
+#endif
+
+#ifndef OPENSSL_NO_SOCK
+
 static struct hostent *GetHostByName(char *name);
 #ifdef OPENSSL_SYS_WINDOWS
-static void sock_cleanup(void);
+static void ssl_sock_cleanup(void);
 #endif
-static int sock_init(void);
+static int ssl_sock_init(void);
 static int init_client_ip(int *sock,unsigned char ip[4], int port);
 static int init_server(int *sock, int port);
 static int init_server_long(int *sock, int port,char *ip);
@@ -116,7 +124,7 @@ static LONG FAR PASCAL topHookProc(HWND hwnd, UINT message, WPARAM wParam,
                case WM_DESTROY:
                case WM_CLOSE:
                        SetWindowLong(topWnd,GWL_WNDPROC,(LONG)lpTopWndProc);
-                       sock_cleanup();
+                       ssl_sock_cleanup();
                        break;
                        }
                }
@@ -133,26 +141,34 @@ static BOOL CALLBACK enumproc(HWND hwnd,LPARAM lParam)
 #endif /* OPENSSL_SYS_WINDOWS */
 
 #ifdef OPENSSL_SYS_WINDOWS
-static void sock_cleanup(void)
+static void ssl_sock_cleanup(void)
        {
        if (wsa_init_done)
                {
                wsa_init_done=0;
+#ifndef OPENSSL_SYS_WINCE
                WSACancelBlockingCall();
+#endif
                WSACleanup();
                }
        }
 #endif
 
-static int sock_init(void)
+static int ssl_sock_init(void)
        {
-#ifdef OPENSSL_SYS_WINDOWS
+#ifdef WATT32
+       extern int _watt_do_exit;
+       _watt_do_exit = 0;
+       dbug_init();
+       if (sock_init())
+               return (0);
+#elif defined(OPENSSL_SYS_WINDOWS)
        if (!wsa_init_done)
                {
                int err;
          
 #ifdef SIGINT
-               signal(SIGINT,(void (*)(int))sock_cleanup);
+               signal(SIGINT,(void (*)(int))ssl_sock_cleanup);
 #endif
                wsa_init_done=1;
                memset(&wsa_state,0,sizeof(wsa_state));
@@ -194,7 +210,7 @@ static int init_client_ip(int *sock, unsigned char ip[4], int port)
        struct sockaddr_in them;
        int s,i;
 
-       if (!sock_init()) return(0);
+       if (!ssl_sock_init()) return(0);
 
        memset((char *)&them,0,sizeof(them));
        them.sin_family=AF_INET;
@@ -259,7 +275,7 @@ static int init_server_long(int *sock, int port, char *ip)
        struct sockaddr_in server;
        int s= -1,i;
 
-       if (!sock_init()) return(0);
+       if (!ssl_sock_init()) return(0);
 
        memset((char *)&server,0,sizeof(server));
        server.sin_family=AF_INET;
@@ -316,7 +332,7 @@ static int do_accept(int acc_sock, int *sock, char **host)
        int len;
 /*     struct linger ling; */
 
-       if (!sock_init()) return(0);
+       if (!ssl_sock_init()) return(0);
 
 #ifndef OPENSSL_SYS_WINDOWS
 redoit:
@@ -446,7 +462,7 @@ static int host_ip(char *str, unsigned char ip[4])
                { /* do a gethostbyname */
                struct hostent *he;
 
-               if (!sock_init()) return(0);
+               if (!ssl_sock_init()) return(0);
 
                he=GetHostByName(str);
                if (he == NULL)
@@ -527,9 +543,12 @@ static struct hostent *GetHostByName(char *name)
                ret=gethostbyname(name);
                if (ret == NULL) return(NULL);
                /* else add to cache */
-               strncpy(ghbn_cache[lowi].name,name,128);
-               memcpy((char *)&(ghbn_cache[lowi].ent),ret,sizeof(struct hostent));
-               ghbn_cache[lowi].order=ghbn_miss+ghbn_hits;
+               if(strlen(name) < sizeof ghbn_cache[0].name)
+                       {
+                       strcpy(ghbn_cache[lowi].name,name);
+                       memcpy((char *)&(ghbn_cache[lowi].ent),ret,sizeof(struct hostent));
+                       ghbn_cache[lowi].order=ghbn_miss+ghbn_hits;
+                       }
                return(ret);
                }
        else
@@ -540,3 +559,5 @@ static struct hostent *GetHostByName(char *name)
                return(ret);
                }
        }
+
+#endif