From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Luke <luke.wilde@live.co.uk>
Date: Sat, 30 Apr 2022 10:58:10 +0000
Subject: [PATCH] Remove inet_aton() redefinition

Co-Authored-By: Patrick Meyer <git@the-space.agency>
---
 openbsd-compat/inet_aton.c      | 172 ++++++++++++++++----------------
 openbsd-compat/openbsd-compat.h |   2 +-
 2 files changed, 87 insertions(+), 87 deletions(-)

diff --git a/openbsd-compat/inet_aton.c b/openbsd-compat/inet_aton.c
index 5efcc5f..14aa47b 100644
--- a/openbsd-compat/inet_aton.c
+++ b/openbsd-compat/inet_aton.c
@@ -53,7 +53,7 @@
 
 #include "includes.h"
 
-#if !defined(HAVE_INET_ATON)
+#if !defined(__minerva__)
 
 #include <sys/types.h>
 #include <netinet/in.h>
@@ -83,96 +83,96 @@ inet_addr(const char *cp)
  * This replaces inet_addr, the return value from which
  * cannot distinguish between failure and a local broadcast address.
  */
-int
-inet_aton(const char *cp, struct in_addr *addr)
-{
-	u_int32_t val;
-	int base, n;
-	char c;
-	u_int parts[4];
-	u_int *pp = parts;
+// int
+// inet_aton(const char *cp, struct in_addr *addr)
+// {
+// 	u_int32_t val;
+// 	int base, n;
+// 	char c;
+// 	u_int parts[4];
+// 	u_int *pp = parts;
 
-	c = *cp;
-	for (;;) {
-		/*
-		 * Collect number up to ``.''.
-		 * Values are specified as for C:
-		 * 0x=hex, 0=octal, isdigit=decimal.
-		 */
-		if (!isdigit(c))
-			return (0);
-		val = 0; base = 10;
-		if (c == '0') {
-			c = *++cp;
-			if (c == 'x' || c == 'X')
-				base = 16, c = *++cp;
-			else
-				base = 8;
-		}
-		for (;;) {
-			if (isascii(c) && isdigit(c)) {
-				val = (val * base) + (c - '0');
-				c = *++cp;
-			} else if (base == 16 && isascii(c) && isxdigit(c)) {
-				val = (val << 4) |
-					(c + 10 - (islower(c) ? 'a' : 'A'));
-				c = *++cp;
-			} else
-				break;
-		}
-		if (c == '.') {
-			/*
-			 * Internet format:
-			 *	a.b.c.d
-			 *	a.b.c	(with c treated as 16 bits)
-			 *	a.b	(with b treated as 24 bits)
-			 */
-			if (pp >= parts + 3)
-				return (0);
-			*pp++ = val;
-			c = *++cp;
-		} else
-			break;
-	}
-	/*
-	 * Check for trailing characters.
-	 */
-	if (c != '\0' && (!isascii(c) || !isspace(c)))
-		return (0);
-	/*
-	 * Concoct the address according to
-	 * the number of parts specified.
-	 */
-	n = pp - parts + 1;
-	switch (n) {
+// 	c = *cp;
+// 	for (;;) {
+// 		/*
+// 		 * Collect number up to ``.''.
+// 		 * Values are specified as for C:
+// 		 * 0x=hex, 0=octal, isdigit=decimal.
+// 		 */
+// 		if (!isdigit(c))
+// 			return (0);
+// 		val = 0; base = 10;
+// 		if (c == '0') {
+// 			c = *++cp;
+// 			if (c == 'x' || c == 'X')
+// 				base = 16, c = *++cp;
+// 			else
+// 				base = 8;
+// 		}
+// 		for (;;) {
+// 			if (isascii(c) && isdigit(c)) {
+// 				val = (val * base) + (c - '0');
+// 				c = *++cp;
+// 			} else if (base == 16 && isascii(c) && isxdigit(c)) {
+// 				val = (val << 4) |
+// 					(c + 10 - (islower(c) ? 'a' : 'A'));
+// 				c = *++cp;
+// 			} else
+// 				break;
+// 		}
+// 		if (c == '.') {
+// 			/*
+// 			 * Internet format:
+// 			 *	a.b.c.d
+// 			 *	a.b.c	(with c treated as 16 bits)
+// 			 *	a.b	(with b treated as 24 bits)
+// 			 */
+// 			if (pp >= parts + 3)
+// 				return (0);
+// 			*pp++ = val;
+// 			c = *++cp;
+// 		} else
+// 			break;
+// 	}
+// 	/*
+// 	 * Check for trailing characters.
+// 	 */
+// 	if (c != '\0' && (!isascii(c) || !isspace(c)))
+// 		return (0);
+// 	/*
+// 	 * Concoct the address according to
+// 	 * the number of parts specified.
+// 	 */
+// 	n = pp - parts + 1;
+// 	switch (n) {
 
-	case 0:
-		return (0);		/* initial nondigit */
+// 	case 0:
+// 		return (0);		/* initial nondigit */
 
-	case 1:				/* a -- 32 bits */
-		break;
+// 	case 1:				/* a -- 32 bits */
+// 		break;
 
-	case 2:				/* a.b -- 8.24 bits */
-		if ((val > 0xffffff) || (parts[0] > 0xff))
-			return (0);
-		val |= parts[0] << 24;
-		break;
+// 	case 2:				/* a.b -- 8.24 bits */
+// 		if ((val > 0xffffff) || (parts[0] > 0xff))
+// 			return (0);
+// 		val |= parts[0] << 24;
+// 		break;
 
-	case 3:				/* a.b.c -- 8.8.16 bits */
-		if ((val > 0xffff) || (parts[0] > 0xff) || (parts[1] > 0xff))
-			return (0);
-		val |= (parts[0] << 24) | (parts[1] << 16);
-		break;
+// 	case 3:				/* a.b.c -- 8.8.16 bits */
+// 		if ((val > 0xffff) || (parts[0] > 0xff) || (parts[1] > 0xff))
+// 			return (0);
+// 		val |= (parts[0] << 24) | (parts[1] << 16);
+// 		break;
 
-	case 4:				/* a.b.c.d -- 8.8.8.8 bits */
-		if ((val > 0xff) || (parts[0] > 0xff) || (parts[1] > 0xff) || (parts[2] > 0xff))
-			return (0);
-		val |= (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8);
-		break;
-	}
-	if (addr)
-		addr->s_addr = htonl(val);
-	return (1);
-}
+// 	case 4:				/* a.b.c.d -- 8.8.8.8 bits */
+// 		if ((val > 0xff) || (parts[0] > 0xff) || (parts[1] > 0xff) || (parts[2] > 0xff))
+// 			return (0);
+// 		val |= (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8);
+// 		break;
+// 	}
+// 	if (addr)
+// 		addr->s_addr = htonl(val);
+// 	return (1);
+// }
 
 #endif /* !defined(HAVE_INET_ATON) */
diff --git a/openbsd-compat/openbsd-compat.h b/openbsd-compat/openbsd-compat.h
index 4316ab8..1c5c338 100644
--- a/openbsd-compat/openbsd-compat.h
+++ b/openbsd-compat/openbsd-compat.h
@@ -166,7 +166,7 @@ char *inet_ntoa(struct in_addr in);
 const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);
 #endif
 
-#ifndef HAVE_INET_ATON
+#if !defined(HAVE_INET_ATON) && !defined(__minerva__)
 int inet_aton(const char *cp, struct in_addr *addr);
 #endif
 
