From 69d4916a0f423771de1e8cb7489a84620fbc1597 Mon Sep 17 00:00:00 2001 From: Dima Pulkinen Date: Wed, 28 Feb 2024 09:38:54 +0200 Subject: [PATCH] final fixes for building for PSP without IPv6 support --- src/inet.c | 6 ++++++ src/makefile | 2 +- src/usocket.h | 6 ++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/inet.c b/src/inet.c index c6ef102..6d78e97 100755 --- a/src/inet.c +++ b/src/inet.c @@ -371,6 +371,7 @@ const char *inet_trydisconnect(p_socket ps, int family, p_timeout tm) return socket_strerror(socket_connect(ps, (SA *) &sin, sizeof(sin), tm)); } +#ifndef NOIPV6 case AF_INET6: { struct sockaddr_in6 sin6; struct in6_addr addrany = IN6ADDR_ANY_INIT; @@ -380,6 +381,7 @@ const char *inet_trydisconnect(p_socket ps, int family, p_timeout tm) return socket_strerror(socket_connect(ps, (SA *) &sin6, sizeof(sin6), tm)); } +#endif } return NULL; } @@ -438,7 +440,9 @@ const char *inet_tryaccept(p_socket server, int family, p_socket client, socklen_t len; t_sockaddr_storage addr; switch (family) { +#ifndef NOIPV6 case AF_INET6: len = sizeof(struct sockaddr_in6); break; +#endif case AF_INET: len = sizeof(struct sockaddr_in); break; default: len = sizeof(addr); break; } @@ -526,9 +530,11 @@ int inet_pton(int af, const char *src, void *dst) if (af == AF_INET) { struct sockaddr_in *in = (struct sockaddr_in *) res->ai_addr; memcpy(dst, &in->sin_addr, sizeof(in->sin_addr)); +#ifndef NOIPV6 } else if (af == AF_INET6) { struct sockaddr_in6 *in = (struct sockaddr_in6 *) res->ai_addr; memcpy(dst, &in->sin6_addr, sizeof(in->sin6_addr)); +#endif } else { ret = -1; } diff --git a/src/makefile b/src/makefile index f20ca98..40f207f 100755 --- a/src/makefile +++ b/src/makefile @@ -312,7 +312,7 @@ SOCKET=$(SOCKET_$(PLAT)) # CC=$(CC_$(PLAT)) DEF=$(DEF_$(PLAT)) -CFLAGS=$(MYCFLAGS) $(CFLAGS_$(PLAT)) -DHAVE_CONFIG_H +CFLAGS=$(MYCFLAGS) $(CFLAGS_$(PLAT)) -DHAVE_CONFIG_H -DSOCKET_SELECT -DNOIPV6 LDFLAGS=$(MYLDFLAGS) $(LDFLAGS_$(PLAT)) LD=$(LD_$(PLAT)) LUAINC= $(LUAINC_$(PLAT)) diff --git a/src/usocket.h b/src/usocket.h index ef7ace0..4d36454 100644 --- a/src/usocket.h +++ b/src/usocket.h @@ -36,6 +36,10 @@ #include "getaddrinfo.h" #endif +#ifndef INET6_ADDRSTRLEN +#define INET6_ADDRSTRLEN INET_ADDRSTRLEN +#endif + /* Replacement for sockaddr storage that we can use internally on platforms * that lack it. It is not space-efficient, but neither is sockaddr_storage. */ @@ -43,7 +47,9 @@ struct sockaddr_storage { union { struct sockaddr ss_sa; struct sockaddr_in ss_sin; +#ifndef NOIPV6 struct sockaddr_in6 ss_sin6; +#endif char ss_padding[128]; } ss_union; };