Remove apps cache for gethostbyname
authorRich Salz <rsalz@akamai.com>
Mon, 4 May 2015 22:05:26 +0000 (18:05 -0400)
committerRich Salz <rsalz@openssl.org>
Tue, 5 May 2015 13:25:29 +0000 (09:25 -0400)
Reviewed-by: Richard Levitte <levitte@openssl.org>
apps/s_socket.c

index 29240e846277f640212c504faf659b144fa1c2db..bba8e0808f5f12d47722b0a3ea8693b0ffd08be7 100644 (file)
@@ -139,7 +139,6 @@ typedef unsigned int u_int;
 #  include "netdb.h"
 # endif
 
-static struct hostent *GetHostByName(const char *name);
 # if defined(OPENSSL_SYS_WINDOWS) || (defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK))
 static void ssl_sock_cleanup(void);
 # endif
@@ -564,7 +563,7 @@ static int do_accept(int acc_sock, int *sock, char **host)
         *host = app_malloc(strlen(h1->h_name) + 1, "copy hostname");
         BUF_strlcpy(*host, h1->h_name, strlen(h1->h_name) + 1);
 
-        h2 = GetHostByName(*host);
+        h2 = gethostbyname(*host);
         if (h2 == NULL) {
             BIO_printf(bio_err, "gethostbyname failure\n");
             closesocket(ret);
@@ -655,7 +654,7 @@ static int host_ip(const char *str, unsigned char ip[4])
         if (!ssl_sock_init())
             return (0);
 
-        he = GetHostByName(str);
+        he = gethostbyname(str);
         if (he == NULL) {
             BIO_printf(bio_err, "gethostbyname failure\n");
             goto err;
@@ -693,51 +692,4 @@ int extract_port(const char *str, unsigned short *port_ptr)
     return (1);
 }
 
-# define GHBN_NUM        4
-static struct ghbn_cache_st {
-    char name[128];
-    struct hostent ent;
-    unsigned long order;
-} ghbn_cache[GHBN_NUM];
-
-static unsigned long ghbn_hits = 0L;
-static unsigned long ghbn_miss = 0L;
-
-static struct hostent *GetHostByName(const char *name)
-{
-    struct hostent *ret;
-    int i, lowi = 0;
-    unsigned long low = (unsigned long)-1;
-
-    for (i = 0; i < GHBN_NUM; i++) {
-        if (low > ghbn_cache[i].order) {
-            low = ghbn_cache[i].order;
-            lowi = i;
-        }
-        if (ghbn_cache[i].order > 0) {
-            if (strncmp(name, ghbn_cache[i].name, 128) == 0)
-                break;
-        }
-    }
-    if (i == GHBN_NUM) {        /* no hit */
-        ghbn_miss++;
-        ret = gethostbyname(name);
-        if (ret == NULL)
-            return (NULL);
-        /* else add to cache */
-        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 {
-        ghbn_hits++;
-        ret = &(ghbn_cache[i].ent);
-        ghbn_cache[i].order = ghbn_miss + ghbn_hits;
-        return (ret);
-    }
-}
-
 #endif