Initial KNF.
authorjsing <jsing@openbsd.org>
Thu, 17 Apr 2014 14:24:41 +0000 (14:24 +0000)
committerjsing <jsing@openbsd.org>
Thu, 17 Apr 2014 14:24:41 +0000 (14:24 +0000)
lib/libssl/src/apps/s_socket.c

index cc02b51..07c3b9a 100644 (file)
@@ -5,21 +5,21 @@
  * This package is an SSL implementation written
  * by Eric Young (eay@cryptsoft.com).
  * The implementation was written so as to conform with Netscapes SSL.
- * 
+ *
  * This library is free for commercial and non-commercial use as long as
  * the following conditions are aheared to.  The following conditions
  * apply to all code found in this distribution, be it the RC4, RSA,
  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
  * included with this distribution is covered by the same copyright terms
  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- * 
+ *
  * Copyright remains Eric Young's, and as such any Copyright notices in
  * the code are not to be removed.
  * If this package is used in a product, Eric Young should be given attribution
  * as the author of the parts of the library used.
  * This can be in the form of a textual message at program startup or
  * in documentation (online or textual) provided with the package.
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
  *     Eric Young (eay@cryptsoft.com)"
  *    The word 'cryptographic' can be left out if the rouines from the library
  *    being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from 
+ * 4. If you include any Windows specific code (or a derivative thereof) from
  *    the apps directory (application code) you must include an acknowledgement:
  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- * 
+ *
  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -49,7 +49,7 @@
  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
- * 
+ *
  * The licence and distribution terms for any publically available version or
  * derivative of this code cannot be changed.  i.e. this code cannot simply be
  * copied and put under another distribution licence
 static struct hostent *GetHostByName(char *name);
 static int ssl_sock_init(void);
 static int init_server(int *sock, int port, int type);
-static int init_server_long(int *sock, int port,char *ip, int type);
+static int init_server_long(int *sock, int port, char *ip, int type);
 static int do_accept(int acc_sock, int *sock, char **host);
 
 #define SOCKET_PROTOCOL        IPPROTO_TCP
 
 
+static int
+ssl_sock_init(void)
+{
+       return (1);
+}
 
-
-static int ssl_sock_init(void)
-       {
-       return(1);
-       }
-
-int init_client(int *sock, char *host, char *port, int type, int af)
-       {
+int
+init_client(int *sock, char *host, char *port, int type, int af)
+{
        struct addrinfo hints, *ai_top, *ai;
        int i, s;
 
-       if (!ssl_sock_init()) return(0);
+       if (!ssl_sock_init())
+               return (0);
 
        memset(&hints, '\0', sizeof(hints));
        hints.ai_family = af;
        hints.ai_socktype = type;
 
-       if ((i = getaddrinfo(host, port, &hints, &ai_top)) != 0)
-               {
-               BIO_printf(bio_err,"getaddrinfo: %s\n", gai_strerror(i));
+       if ((i = getaddrinfo(host, port, &hints, &ai_top)) != 0) {
+               BIO_printf(bio_err, "getaddrinfo: %s\n", gai_strerror(i));
                return (0);
+       }
+       if (ai_top == NULL || ai_top->ai_addr == NULL) {
+               BIO_printf(bio_err, "getaddrinfo returned no addresses\n");
+               if (ai_top != NULL) {
+                       freeaddrinfo(ai_top);
                }
-       if (ai_top == NULL || ai_top->ai_addr == NULL)
-               {
-               BIO_printf(bio_err,"getaddrinfo returned no addresses\n");
-               if (ai_top != NULL) { freeaddrinfo(ai_top); }
                return (0);
-               }
+       }
 
-       for (ai = ai_top; ai != NULL; ai = ai->ai_next)
-               {
-               s=socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
-               if (s == -1) { continue; }
-       if (type == SOCK_STREAM)
-               {
-               i=0;
-               i=setsockopt(s,SOL_SOCKET,SO_KEEPALIVE,(char *)&i,sizeof(i));
-               if (i < 0) { perror("keepalive"); return(0); }
+       for (ai = ai_top; ai != NULL; ai = ai->ai_next) {
+               s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
+               if (s == -1) {
+                       continue;
+               }
+               if (type == SOCK_STREAM) {
+                       i = 0;
+                       i = setsockopt(s, SOL_SOCKET, SO_KEEPALIVE,
+                           (char *)&i, sizeof(i));
+                       if (i < 0) {
+                               perror("keepalive");
+                               return (0);
+                       }
+               }
+               if ((i = connect(s, ai->ai_addr, ai->ai_addrlen)) == 0) {
+                       *sock = s;
+                       freeaddrinfo(ai_top);
+                       return (1);
                }
-               if ((i = connect(s, ai->ai_addr, ai->ai_addrlen)) == 0)
-                       { *sock=s; freeaddrinfo(ai_top); return (1); }
 
                close(s);
-               }
+       }
 
        perror("connect");
        close(s);
        freeaddrinfo(ai_top);
-       return(0);
-       }
-
-int do_server(int port, int type, int *ret, int (*cb)(char *hostname, int s, unsigned char *context), unsigned char *context)
-       {
+       return (0);
+}
+
+int
+do_server(int port, int type, int *ret,
+    int (*cb)(char *hostname, int s, unsigned char *context),
+    unsigned char *context)
+{
        int sock;
        char *name = NULL;
        int accept_socket = 0;
        int i;
 
-       if (!init_server(&accept_socket,port,type)) return(0);
+       if (!init_server(&accept_socket, port, type))
+               return (0);
 
-       if (ret != NULL)
-               {
-               *ret=accept_socket;
+       if (ret != NULL) {
+               *ret = accept_socket;
                /* return(1);*/
-               }
-       for (;;)
-               {
-               if (type==SOCK_STREAM)
-                       {
-                       if (do_accept(accept_socket,&sock,&name) == 0)
-                               {
+       }
+       for (;;) {
+               if (type == SOCK_STREAM) {
+                       if (do_accept(accept_socket, &sock, &name) == 0) {
                                shutdown(accept_socket, SHUT_RD);
                                close(accept_socket);
-                               return(0);
-                               }
+                               return (0);
                        }
-               else
+               else
                        sock = accept_socket;
-               i=(*cb)(name,sock, context);
-               if (name != NULL) free(name);
-               if (type==SOCK_STREAM) {
+               i = (*cb)(name, sock, context);
+               if (name != NULL)
+                       free(name);
+               if (type == SOCK_STREAM) {
                        shutdown(sock, SHUT_RDWR);
                        close(sock);
                }
-               if (i < 0)
-                       {
+               if (i < 0) {
                        shutdown(accept_socket, SHUT_RDWR);
                        close(accept_socket);
-                       return(i);
-                       }
+                       return (i);
                }
        }
+}
 
-static int init_server_long(int *sock, int port, char *ip, int type)
-       {
-       int ret=0;
+static int
+init_server_long(int *sock, int port, char *ip, int type)
+{
+       int ret = 0;
        struct sockaddr_in server;
-       int s= -1;
+       int s = -1;
 
-       if (!ssl_sock_init()) return(0);
+       if (!ssl_sock_init())
+               return (0);
 
-       memset((char *)&server,0,sizeof(server));
-       server.sin_family=AF_INET;
-       server.sin_port=htons((unsigned short)port);
+       memset((char *)&server, 0,sizeof(server));
+       server.sin_family = AF_INET;
+       server.sin_port = htons((unsigned short)port);
        if (ip == NULL)
-               server.sin_addr.s_addr=INADDR_ANY;
+               server.sin_addr.s_addr = INADDR_ANY;
        else
 /* Added for T3E, address-of fails on bit field (beckman@acl.lanl.gov) */
 #ifndef BIT_FIELD_LIMITS
-               memcpy(&server.sin_addr.s_addr,ip,4);
+       memcpy(&server.sin_addr.s_addr, ip, 4);
 #else
-               memcpy(&server.sin_addr,ip,4);
+       memcpy(&server.sin_addr, ip, 4);
 #endif
-       
-               if (type == SOCK_STREAM)
-                       s=socket(AF_INET,SOCK_STREAM,SOCKET_PROTOCOL);
-               else /* type == SOCK_DGRAM */
-                       s=socket(AF_INET, SOCK_DGRAM,IPPROTO_UDP);
 
-       if (s == -1) goto err;
+       if (type == SOCK_STREAM)
+               s = socket(AF_INET, SOCK_STREAM, SOCKET_PROTOCOL);
+       else /* type == SOCK_DGRAM */
+               s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
+
+       if (s == -1)
+               goto err;
 #if defined SOL_SOCKET && defined SO_REUSEADDR
-               {
+       {
                int j = 1;
                setsockopt(s, SOL_SOCKET, SO_REUSEADDR,
-                          (void *) &j, sizeof j);
-               }
+                   (void *) &j, sizeof j);
+       }
 #endif
-       if (bind(s,(struct sockaddr *)&server,sizeof(server)) == -1)
-               {
+       if (bind(s, (struct sockaddr *)&server, sizeof(server)) == -1) {
                perror("bind");
                goto err;
-               }
+       }
        /* Make it 128 for linux */
-       if (type==SOCK_STREAM && listen(s,128) == -1) goto err;
-       *sock=s;
-       ret=1;
+       if (type == SOCK_STREAM && listen(s, 128) == -1)
+               goto err;
+       *sock = s;
+       ret = 1;
 err:
-       if ((ret == 0) && (s != -1))
-               {
+       if ((ret == 0) && (s != -1)) {
                shutdown(s, SHUT_RD);
                close(s);
-               }
-       return(ret);
        }
-
-static int init_server(int *sock, int port, int type)
-       {
-       return(init_server_long(sock, port, NULL, type));
-       }
-
-static int do_accept(int acc_sock, int *sock, char **host)
-       {
+       return (ret);
+}
+
+static int
+init_server(int *sock, int port, int type)
+{
+       return (init_server_long(sock, port, NULL, type));
+}
+
+static int
+do_accept(int acc_sock, int *sock, char **host)
+{
        int ret;
-       struct hostent *h1,*h2;
+       struct hostent *h1, *h2;
        static struct sockaddr_in from;
        int len;
 /*     struct linger ling; */
 
-       if (!ssl_sock_init()) return(0);
+       if (!ssl_sock_init())
+               return (0);
 
 redoit:
 
-       memset((char *)&from,0,sizeof(from));
-       len=sizeof(from);
+       memset((char *)&from, 0, sizeof(from));
+       len = sizeof(from);
        /* 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 *).
         */
-       ret=accept(acc_sock,(struct sockaddr *)&from,(void *)&len);
-       if (ret == -1)
-               {
-               if (errno == EINTR)
-                       {
+       ret = accept(acc_sock, (struct sockaddr *)&from, (void *)&len);
+       if (ret == -1) {
+               if (errno == EINTR) {
                        /*check_timeout(); */
                        goto redoit;
-                       }
+               }
                fprintf(stderr,"errno=%d ",errno);
                perror("accept");
-               return(0);
-               }
+               return (0);
+       }
 
 /*
        ling.l_onoff=1;
@@ -287,144 +297,136 @@ redoit:
        if (i < 0) { perror("keepalive"); return(0); }
 */
 
-       if (host == NULL) goto end;
+       if (host == NULL)
+               goto end;
 #ifndef BIT_FIELD_LIMITS
        /* I should use WSAAsyncGetHostByName() under windows */
-       h1=gethostbyaddr((char *)&from.sin_addr.s_addr,
-               sizeof(from.sin_addr.s_addr),AF_INET);
+       h1 = gethostbyaddr((char *)&from.sin_addr.s_addr,
+           sizeof(from.sin_addr.s_addr), AF_INET);
 #else
-       h1=gethostbyaddr((char *)&from.sin_addr,
-               sizeof(struct in_addr),AF_INET);
+       h1 = gethostbyaddr((char *)&from.sin_addr,
+           sizeof(struct in_addr), AF_INET);
 #endif
-       if (h1 == NULL)
-               {
-               BIO_printf(bio_err,"bad gethostbyaddr\n");
-               *host=NULL;
+       if (h1 == NULL) {
+               BIO_printf(bio_err, "bad gethostbyaddr\n");
+               *host = NULL;
                /* return(0); */
-               }
-       else
-               {
-               if ((*host=(char *)malloc(strlen(h1->h_name)+1)) == NULL)
-                       {
+       } else {
+               if ((*host = (char *)malloc(strlen(h1->h_name) + 1)) == NULL) {
                        perror("malloc");
-                       return(0);
-                       }
-               BUF_strlcpy(*host,h1->h_name,strlen(h1->h_name)+1);
+                       return (0);
+               }
+               BUF_strlcpy(*host, h1->h_name, strlen(h1->h_name) + 1);
 
-               h2=GetHostByName(*host);
-               if (h2 == NULL)
-                       {
-                       BIO_printf(bio_err,"gethostbyname failure\n");
-                       return(0);
-                       }
-               if (h2->h_addrtype != AF_INET)
-                       {
-                       BIO_printf(bio_err,"gethostbyname addr is not AF_INET\n");
-                       return(0);
-                       }
+               h2 = GetHostByName(*host);
+               if (h2 == NULL) {
+                       BIO_printf(bio_err, "gethostbyname failure\n");
+                       return (0);
+               }
+               if (h2->h_addrtype != AF_INET) {
+                       BIO_printf(bio_err, "gethostbyname addr is not AF_INET\n");
+                       return (0);
                }
-end:
-       *sock=ret;
-       return(1);
        }
 
-int extract_host_port(char *str, char **host_ptr, unsigned char *ip,
-            char **port_ptr)
-       {
-       char *h,*p;
-
-       h=str;
-       p=strrchr(str,'/'); /* IPv6 host/port */
-       if (p == NULL) { p=strrchr(str,':'); }
-       if (p == NULL)
-               {
-               BIO_printf(bio_err,"no port defined\n");
-               return(0);
-               }
-       *(p++)='\0';
+end:
+       *sock = ret;
+       return (1);
+}
+
+int
+extract_host_port(char *str, char **host_ptr, unsigned char *ip,
+    char **port_ptr)
+{
+       char *h, *p;
+
+       h = str;
+       p = strrchr(str, '/'); /* IPv6 host/port */
+       if (p == NULL) {
+               p = strrchr(str, ':');
+       }
+       if (p == NULL) {
+               BIO_printf(bio_err, "no port defined\n");
+               return (0);
+       }
+       *(p++) = '\0';
 
-       if (host_ptr != NULL) *host_ptr=h;
+       if (host_ptr != NULL)
+               *host_ptr = h;
 
        if (port_ptr != NULL && p != NULL && *p != '\0')
                *port_ptr = p;
 
-       return(1);
+       return (1);
 err:
-       return(0);
-       }
+       return (0);
+}
 
-int extract_port(char *str, short *port_ptr)
-       {
+int
+extract_port(char *str, short *port_ptr)
+{
        int i;
        struct servent *s;
 
-       i=atoi(str);
+       i = atoi(str);
        if (i != 0)
-               *port_ptr=(unsigned short)i;
-       else
-               {
-               s=getservbyname(str,"tcp");
-               if (s == NULL)
-                       {
-                       BIO_printf(bio_err,"getservbyname failure for %s\n",str);
-                       return(0);
-                       }
-               *port_ptr=ntohs((unsigned short)s->s_port);
+               *port_ptr = (unsigned short)i;
+       else {
+               s = getservbyname(str, "tcp");
+               if (s == NULL) {
+                       BIO_printf(bio_err, "getservbyname failure for %s\n", str);
+                       return (0);
                }
-       return(1);
+               *port_ptr = ntohs((unsigned short)s->s_port);
        }
+       return (1);
+}
 
 #define GHBN_NUM       4
-static struct ghbn_cache_st
-       {
+static struct ghbn_cache_st {
        char name[128];
        struct hostent ent;
        unsigned long order;
-       } ghbn_cache[GHBN_NUM];
+} ghbn_cache[GHBN_NUM];
 
-static unsigned long ghbn_hits=0L;
-static unsigned long ghbn_miss=0L;
+static unsigned long ghbn_hits = 0L;
+static unsigned long ghbn_miss = 0L;
 
-static struct hostent *GetHostByName(char *name)
-       {
+static struct hostent *
+GetHostByName(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)
+       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);
+               ret = gethostbyname(name);
+               if (ret == NULL)
+                       return (NULL);
                /* else add to cache */
-               if(strlen(name) < sizeof ghbn_cache[0].name)
-                       {
-                       strlcpy(ghbn_cache[lowi].name,name, sizeof(ghbn_cache[0].name));
-                       memcpy((char *)&(ghbn_cache[lowi].ent),ret,sizeof(struct hostent));
-                       ghbn_cache[lowi].order=ghbn_miss+ghbn_hits;
-                       }
-               return(ret);
+               if (strlen(name) < sizeof ghbn_cache[0].name) {
+                       strlcpy(ghbn_cache[lowi].name, name, sizeof(ghbn_cache[0].name));
+                       memcpy((char *)&(ghbn_cache[lowi].ent), ret, sizeof(struct hostent));
+                       ghbn_cache[lowi].order = ghbn_miss + ghbn_hits;
                }
-       else
-               {
+               return (ret);
+       } else {
                ghbn_hits++;
-               ret= &(ghbn_cache[i].ent);
-               ghbn_cache[i].order=ghbn_miss+ghbn_hits;
-               return(ret);
-               }
+               ret = &(ghbn_cache[i].ent);
+               ghbn_cache[i].order = ghbn_miss + ghbn_hits;
+               return (ret);
        }
+}
 
 #endif