$NetBSD: patch-ab,v 1.3 2021/10/09 10:59:21 wiz Exp $

Improve NetBSD support.
https://github.com/notroj/neon/pull/68

--- src/ne_socket.c.orig	2009-08-18 14:16:07.000000000 +0100
+++ src/ne_socket.c	2009-09-14 13:40:37.000000000 +0100
@@ -1192,6 +1192,9 @@
         in6.sin6_port = htons(port);
         /* fill in the _family field for AIX 4.3, which forgets to do so. */
         in6.sin6_family = AF_INET6;
+#ifdef __NetBSD__
+	in6.sin6_len = sizeof in6;
+#endif
 
         return bind(fd, (struct sockaddr *)&in6, sizeof in6);
     } else
@@ -1210,6 +1213,9 @@
         }
         in.sin_port = htons(port);
         in.sin_family = AF_INET;
+#ifdef __NetBSD__
+	in.sin_len = sizeof in;
+#endif
 
         return bind(fd, (struct sockaddr *)&in, sizeof in);
     }
@@ -1329,7 +1335,7 @@
 
     ia = ne_calloc(sizeof *ia);
 #ifdef USE_GETADDRINFO
-    ia->ai_addr = ne_malloc(sizeof *ia);
+    ia->ai_addr = ne_malloc(len);
     ia->ai_addrlen = len;
     memcpy(ia->ai_addr, sad, len);
     ia->ai_family = saun.sa.sa_family;
@@ -1365,6 +1371,9 @@
 	ia->ai_addr = (struct sockaddr *)in4;
 	ia->ai_addrlen = sizeof *in4;
 	in4->sin_family = AF_INET;
+#ifdef __NetBSD__
+	in4->sin_len = sizeof *in4;
+#endif
 	memcpy(&in4->sin_addr.s_addr, raw, sizeof in4->sin_addr.s_addr);
     }
 #ifdef AF_INET6
@@ -1374,6 +1383,9 @@
 	ia->ai_addr = (struct sockaddr *)in6;
 	ia->ai_addrlen = sizeof *in6;
 	in6->sin6_family = AF_INET6;
+#ifdef __NetBSD__
+	in6->sin6_len = sizeof *in6;
+#endif
 	memcpy(&in6->sin6_addr, raw, sizeof in6->sin6_addr.s6_addr);
     }
 #endif
