changeset 872:a3965185623f

socksvc: switch to the newly added xsockaddr Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
date Wed, 14 Feb 2024 10:01:04 -0500
parents de55ae9a8839
children 67a53cc79d23
files socksvc.c
diffstat 1 files changed, 7 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/socksvc.c	Wed Feb 14 09:54:10 2024 -0500
+++ b/socksvc.c	Wed Feb 14 10:01:04 2024 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015-2017 Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
+ * Copyright (c) 2015-2017,2024 Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -36,6 +36,7 @@
 #include <jeffpc/time.h>
 #include <jeffpc/io.h>
 #include <jeffpc/mem.h>
+#include <jeffpc/sock.h>
 #include <jeffpc/socksvc.h>
 
 /*
@@ -50,11 +51,6 @@
 #define MAX_SOCK_FDS		8
 #define CONN_BACKLOG		64
 
-union sockaddr_union {
-	struct sockaddr_in inet;
-	struct sockaddr_in6 inet6;
-};
-
 struct state {
 	void *private;
 	struct taskq *taskq;
@@ -162,32 +158,20 @@
 		return -EINVAL; /* XXX: this should likely be something else */
 
 	for (p = res; p; p = p->ai_next) {
-		struct sockaddr_in *ipv4;
-		struct sockaddr_in6 *ipv6;
-		char str[64];
-		void *addr;
+		char str[XSOCKADDR_STRLEN];
 		int ret;
 
 		switch (p->ai_family) {
 			case AF_INET:
-				ipv4 = (struct sockaddr_in *) p->ai_addr;
-				addr = &ipv4->sin_addr;
-				break;
 			case AF_INET6:
-				ipv6 = (struct sockaddr_in6 *) p->ai_addr;
-				addr = &ipv6->sin6_addr;
 				break;
 			default:
 				cmn_err(CE_INFO, "Unsupparted address family: %d",
 					p->ai_family);
-				addr = NULL;
-				break;
+				continue;
 		}
 
-		if (!addr)
-			continue;
-
-		inet_ntop(p->ai_family, addr, str, sizeof(str));
+		xsockaddr_ntop(p->ai_addr, str, sizeof(str));
 
 		ret = bind_sock(state, p->ai_family, p->ai_addr, p->ai_addrlen);
 		if (ret && ret != -EAFNOSUPPORT)
@@ -229,7 +213,7 @@
 	int i;
 
 	for (;;) {
-		union sockaddr_union addr;
+		union xsockaddr addr;
 		unsigned len;
 		uint64_t select_time;
 		uint64_t accept_time;
@@ -260,7 +244,7 @@
 				continue;
 
 			len = sizeof(addr);
-			fd = accept(state->fds[i], (struct sockaddr *) &addr, &len);
+			fd = accept(state->fds[i], &addr.sa, &len);
 			if (fd == -1) {
 				cmn_err(CE_INFO, "Failed to accept from fd %d: %s",
 					state->fds[i], strerror(errno));