]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Use sa_setport and sa_getport where appropriate
authorGreg Hudson <ghudson@mit.edu>
Sat, 7 Jun 2014 20:25:35 +0000 (16:25 -0400)
committerGreg Hudson <ghudson@mit.edu>
Fri, 27 Jun 2014 23:36:39 +0000 (19:36 -0400)
Use sa_setport and sa_getport in place of existing static helpers or
open-coded switch statements in net-server.c, fake-addrinfo.c, and
svc_tcp.c.

src/lib/apputils/net-server.c
src/lib/rpc/svc_tcp.c
src/util/support/fake-addrinfo.c

index d19d45a330cdd500ad4a9bca5172cf0788da1f7a..02b10586561789ae17ed24824ea642a014af32d9 100644 (file)
 static int tcp_or_rpc_data_counter;
 static int max_tcp_or_rpc_data_connections = 45;
 
-/* Misc utility routines.  */
-static void
-set_sa_port(struct sockaddr *addr, int port)
-{
-    switch (addr->sa_family) {
-    case AF_INET:
-        sa2sin(addr)->sin_port = port;
-        break;
-    case AF_INET6:
-        sa2sin6(addr)->sin6_port = port;
-        break;
-    default:
-        break;
-    }
-}
-
 static int
 ipv6_enabled()
 {
@@ -740,7 +724,7 @@ setup_tcp_listener_ports(struct socksetup *data)
     FOREACH_ELT (tcp_port_data, i, port) {
         int s4, s6;
 
-        set_sa_port((struct sockaddr *)&sin4, htons(port));
+        sa_setport((struct sockaddr *)&sin4, port);
         if (!ipv6_enabled()) {
             s4 = setup_a_tcp_listener(data, (struct sockaddr *)&sin4);
             if (s4 < 0)
@@ -749,7 +733,7 @@ setup_tcp_listener_ports(struct socksetup *data)
         } else {
             s4 = s6 = -1;
 
-            set_sa_port((struct sockaddr *)&sin6, htons(port));
+            sa_setport((struct sockaddr *)&sin6, port);
 
             s6 = setup_a_tcp_listener(data, (struct sockaddr *)&sin6);
             if (s6 < 0)
@@ -809,7 +793,7 @@ setup_rpc_listener_ports(struct socksetup *data)
         int s4;
         int s6;
 
-        set_sa_port((struct sockaddr *)&sin4, htons(svc.port));
+        sa_setport((struct sockaddr *)&sin4, svc.port);
         s4 = create_server_socket(data, (struct sockaddr *)&sin4, SOCK_STREAM);
         if (s4 < 0)
             return -1;
@@ -821,7 +805,7 @@ setup_rpc_listener_ports(struct socksetup *data)
                              s4, paddr((struct sockaddr *)&sin4));
 
         if (ipv6_enabled()) {
-            set_sa_port((struct sockaddr *)&sin6, htons(svc.port));
+            sa_setport((struct sockaddr *)&sin6, svc.port);
             s6 = create_server_socket(data, (struct sockaddr *)&sin6,
                                       SOCK_STREAM);
             if (s6 < 0)
@@ -903,7 +887,7 @@ setup_udp_port_1(struct socksetup *data, struct sockaddr *addr,
     u_short port;
 
     FOREACH_ELT (udp_port_data, i, port) {
-        set_sa_port(addr, htons(port));
+        sa_setport(addr, port);
         sock = create_server_socket(data, addr, SOCK_DGRAM);
         if (sock == -1)
             return 1;
index 581ab3c1a12ae9ac231fd46266149dbd7380be56..bbafc1d636841de1cff322f7ab2b1a8c161d51cb 100644 (file)
@@ -53,6 +53,7 @@ static char sccsid[] = "@(#)svc_tcp.c 1.21 87/08/11 Copyr 1984 Sun Micro";
 #include "autoconf.h"
 #include "k5-platform.h"       /* set_cloexec_fd */
 #include <port-sockets.h>
+#include <socket-utils.h>
 /*extern bool_t abort();
 extern errno;
 */
@@ -118,17 +119,6 @@ struct tcp_conn {  /* kept in xprt->xp_p1 */
        char verf_body[MAX_AUTH_BYTES];
 };
 
-static u_short
-getport(struct sockaddr *addr)
-{
-    if (addr->sa_family == AF_INET)
-       return ntohs(((struct sockaddr_in *) addr)->sin_port);
-    else if (addr->sa_family == AF_INET6)
-       return ntohs(((struct sockaddr_in6 *) addr)->sin6_port);
-    else
-       return 0;
-}
-
 /*
  * Usage:
  *     xprt = svctcp_create(sock, send_buf_size, recv_buf_size);
@@ -208,7 +198,7 @@ svctcp_create(
        xprt->xp_auth = NULL;
        xprt->xp_verf = gssrpc__null_auth;
        xprt->xp_ops = &svctcp_rendezvous_op;
-       xprt->xp_port = getport((struct sockaddr *) &addr);
+       xprt->xp_port = sa_getport((struct sockaddr *) &addr);
        xprt->xp_sock = sock;
        xprt->xp_laddrlen = 0;
        xprt_register(xprt);
index 2129758c07a6a66db768009bc45cd111bf6288d4..6ddf8593f069de64521cf037d2cd580cedc7b8d6 100644 (file)
@@ -1145,7 +1145,7 @@ getaddrinfo (const char *name, const char *serv, const struct addrinfo *hint,
             if (lport > 65535)
                 return EAI_SOCKTYPE;
             service_is_numeric = 1;
-            service_port = htons(lport);
+            service_port = lport;
 #ifdef AI_NUMERICSERV
             if (hint && hint->ai_flags & AI_NUMERICSERV)
                 serv = "9";
@@ -1281,14 +1281,7 @@ getaddrinfo (const char *name, const char *serv, const struct addrinfo *hint,
             if (socket_type != 0 && ai->ai_socktype == 0)
                 /* Is this check actually needed?  */
                 ai->ai_socktype = socket_type;
-            switch (ai->ai_family) {
-            case AF_INET:
-                ((struct sockaddr_in *)ai->ai_addr)->sin_port = service_port;
-                break;
-            case AF_INET6:
-                ((struct sockaddr_in6 *)ai->ai_addr)->sin6_port = service_port;
-                break;
-            }
+            sa_setport(ai->ai_addr, service_port);
         }
     }
 #endif