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()
{
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)
} 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)
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;
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)
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;
#include "autoconf.h"
#include "k5-platform.h" /* set_cloexec_fd */
#include <port-sockets.h>
+#include <socket-utils.h>
/*extern bool_t abort();
extern errno;
*/
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);
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);
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";
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