Drop webuci (obsolete)
[project/luci.git] / libs / sgi-webuci / boa-patches / 220-ipv6-vs-ipv4.patch
diff --git a/libs/sgi-webuci/boa-patches/220-ipv6-vs-ipv4.patch b/libs/sgi-webuci/boa-patches/220-ipv6-vs-ipv4.patch
deleted file mode 100644 (file)
index 5d0eb6a..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-diff -urN boa-0.94.13.orig/src/boa.c boa-0.94.13/src/boa.c
---- boa-0.94.13.orig/src/boa.c 2008-10-28 16:15:45.000000000 +0100
-+++ boa-0.94.13/src/boa.c      2008-10-28 15:56:27.000000000 +0100
-@@ -27,6 +27,12 @@
- #include <sys/resource.h>
- /* globals */
-+
-+#ifdef INET6
-+int server_addr_family;
-+socklen_t server_addr_len;
-+#endif
-+
- int backlog = SO_MAXCONN;
- time_t start_time;
-@@ -164,14 +170,36 @@
-     return 0;
- }
-+#ifdef INET6
-+sa_family_t *get_addr_family(struct sockaddr *address)
-+{
-+    if(server_addr_family == AF_INET6) {
-+        return &(((struct sockaddr_in6 *) address)->sin6_family);
-+    }
-+
-+    return &(((struct sockaddr_in *) address)->sin_family);
-+}
-+#endif
-+
- static int create_server_socket(void)
- {
-     int server_s;
--    server_s = socket(SERVER_AF, SOCK_STREAM, IPPROTO_TCP);
-+#ifdef INET6
-+    server_addr_family = AF_INET6;
-+    server_addr_len = sizeof(struct sockaddr_in6);
-+    server_s = socket(server_addr_family, SOCK_STREAM, IPPROTO_TCP);
-     if (server_s == -1) {
--        DIE("unable to create socket");
-+        server_addr_family = AF_INET;
-+        server_addr_len = sizeof(struct sockaddr_in);
-+#endif
-+        server_s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
-+        if (server_s == -1) {
-+            DIE("unable to create socket");
-+        }
-+#ifdef INET6
-     }
-+#endif
-     /* server socket is nonblocking */
-     if (set_nonblock_fd(server_s) == -1) {
-diff -urN boa-0.94.13.orig/src/boa.h boa-0.94.13/src/boa.h
---- boa-0.94.13.orig/src/boa.h 2008-10-28 16:15:58.000000000 +0100
-+++ boa-0.94.13/src/boa.h      2008-10-28 14:45:52.000000000 +0100
-@@ -199,4 +199,12 @@
- int plugin_handle(request * req);
- struct httpd_plugin *plugin_lookup(request *req);
-+/* IPv6 */
-+
-+#ifdef INET6
-+extern int server_addr_family;
-+extern socklen_t server_addr_len;
-+sa_family_t *get_addr_family(struct sockaddr *address);
-+#endif
-+
- #endif
-diff -urN boa-0.94.13.orig/src/compat.h boa-0.94.13/src/compat.h
---- boa-0.94.13.orig/src/compat.h      2002-06-06 07:02:28.000000000 +0200
-+++ boa-0.94.13/src/compat.h   2008-10-28 15:31:16.000000000 +0100
-@@ -71,11 +71,13 @@
- #ifdef INET6
- #define SOCKADDR sockaddr_storage
--#define S_FAMILY __s_family
--#define SERVER_AF AF_INET6
-+#define SOCKADDR_LEN server_addr_len
-+#define S_FAMILY(address) (*get_addr_family((struct sockaddr *) (address)))
-+#define SERVER_AF server_addr_family
- #else
- #define SOCKADDR sockaddr_in
--#define S_FAMILY sin_family
-+#define SOCKADDR_LEN sizeof(struct sockaddr_in)
-+#define S_FAMILY(address) ((*address).sin_family)
- #define SERVER_AF AF_INET
- #endif
-diff -urN boa-0.94.13.orig/src/ip.c boa-0.94.13/src/ip.c
---- boa-0.94.13.orig/src/ip.c  2002-01-21 03:19:16.000000000 +0100
-+++ boa-0.94.13/src/ip.c       2008-10-28 15:52:05.000000000 +0100
-@@ -44,52 +44,64 @@
- #include "boa.h"
- #include <arpa/inet.h>          /* inet_ntoa */
-+#include <netinet/in.h>
- /* Binds to the existing server_s, based on the configuration string
-    in server_ip.  IPv6 version doesn't pay attention to server_ip yet.  */
- int bind_server(int server_s, char *server_ip)
- {
-+      struct sockaddr *server_sockaddr;
-+    struct sockaddr_in server_sockaddr4;
-+
- #ifdef INET6
--    struct sockaddr_in6 server_sockaddr;
--    server_sockaddr.sin6_family = AF_INET6;
--    memcpy(&server_sockaddr.sin6_addr, &in6addr_any, sizeof (in6addr_any));
--    server_sockaddr.sin6_port = htons(server_port);
--#else
--    struct sockaddr_in server_sockaddr;
--    memset(&server_sockaddr, 0, sizeof server_sockaddr);
-+    struct sockaddr_in6 server_sockaddr6;
-+    if(SERVER_AF == AF_INET6) {
-+        server_sockaddr6.sin6_family = AF_INET6;
-+        memcpy(&server_sockaddr6.sin6_addr, &in6addr_any, sizeof (in6addr_any));
-+        server_sockaddr6.sin6_port = htons(server_port);
-+        server_sockaddr = (struct sockaddr *) &server_sockaddr6;
-+    } else {
-+#endif
-+        memset(&server_sockaddr4, 0, SOCKADDR_LEN);
- #ifdef HAVE_SIN_LEN             /* uncomment for BSDs */
--    server_sockaddr.sin_len = sizeof server_sockaddr;
-+        server_sockaddr4.sin_len = SOCKADDR_LEN;
- #endif
--    server_sockaddr.sin_family = AF_INET;
--    if (server_ip != NULL) {
--        inet_aton(server_ip, &server_sockaddr.sin_addr);
--    } else {
--        server_sockaddr.sin_addr.s_addr = htonl(INADDR_ANY);
-+        server_sockaddr4.sin_family = AF_INET;
-+        if (server_ip != NULL) {
-+            inet_aton(server_ip, &server_sockaddr4.sin_addr);
-+        } else {
-+            server_sockaddr4.sin_addr.s_addr = htonl(INADDR_ANY);
-+        }
-+        server_sockaddr4.sin_port = htons(server_port);
-+        server_sockaddr = (struct sockaddr *) &server_sockaddr4;
-+#ifdef INET6
-     }
--    server_sockaddr.sin_port = htons(server_port);
- #endif
--    return bind(server_s, (struct sockaddr *) &server_sockaddr,
--                sizeof (server_sockaddr));
-+    return bind(server_s, server_sockaddr, SOCKADDR_LEN);
- }
- char *ascii_sockaddr(struct SOCKADDR *s, char *dest, int len)
- {
- #ifdef INET6
--    if (getnameinfo((struct sockaddr *) s,
--                    sizeof(struct SOCKADDR),
--                    dest, len, NULL, 0, NI_NUMERICHOST)) {
--        fprintf(stderr, "[IPv6] getnameinfo failed\n");
--        *dest = '\0';
--    }
-+    if(SERVER_AF == AF_INET6) {
-+        if (getnameinfo((struct sockaddr *) s,
-+                        SOCKADDR_LEN,
-+                        dest, len, NULL, 0, NI_NUMERICHOST)) {
-+            fprintf(stderr, "[IPv6] getnameinfo failed\n");
-+            *dest = '\0';
-+        }
- #ifdef WHEN_DOES_THIS_APPLY
--    if ((s->__ss_family == AF_INET6) &&
--        IN6_IS_ADDR_V4MAPPED(&(((struct sockaddr_in6 *) s)->sin6_addr))) {
--        memmove(dest, dest+7, NI_MAXHOST);
--    }
-+        if (((((struct sockaddr_in6 *) s)->sin6_family) == AF_INET6) &&
-+            IN6_IS_ADDR_V4MAPPED(&(((struct sockaddr_in6 *) s)->sin6_addr))) {
-+            memmove(dest, dest+7, NI_MAXHOST);
-+        }
- #endif
--#else
--    memmove(dest, inet_ntoa(s->sin_addr), len);
-+    } else {
-+#endif
-+        memmove(dest, inet_ntoa(((struct sockaddr_in *) s)->sin_addr), len);
-+#ifdef INET6
-+    }
- #endif
-     return dest;
- }
-@@ -98,17 +110,21 @@
- {
-     int p = -1;
- #ifdef INET6
--    char serv[NI_MAXSERV];
-+    if(SERVER_AF == AF_INET6) {
-+       char serv[NI_MAXSERV];
--    if (getnameinfo((struct sockaddr *) s,
--                    sizeof(struct SOCKADDR),
--                    NULL, 0, serv, sizeof(serv), NI_NUMERICSERV)) {
--        fprintf(stderr, "[IPv6] getnameinfo failed\n");
-+        if (getnameinfo((struct sockaddr *) s,
-+                        SOCKADDR_LEN,
-+                        NULL, 0, serv, sizeof(serv), NI_NUMERICSERV)) {
-+            fprintf(stderr, "[IPv6] getnameinfo failed\n");
-+        } else {
-+            p = atoi(serv);
-+        }
-     } else {
--        p = atoi(serv);
-+#endif
-+        p = ntohs(((struct sockaddr_in *) s)->sin_port);
-+#ifdef INET6
-     }
--#else
--    p = ntohs(s->sin_port);
- #endif
-     return p;
- }
-diff -urN boa-0.94.13.orig/src/mmap_cache.c boa-0.94.13/src/mmap_cache.c
---- boa-0.94.13.orig/src/mmap_cache.c  2002-03-24 23:35:34.000000000 +0100
-+++ boa-0.94.13/src/mmap_cache.c       2008-10-28 14:55:16.000000000 +0100
-@@ -67,7 +67,7 @@
-     m = mmap(0, s->st_size, PROT_READ, MAP_OPTIONS, data_fd, 0);
--    if ((int) m == -1) {
-+    if ((ssize_t) m == -1) {
-         /* boa_perror(req,"mmap"); */
-         return NULL;
-     }
-diff -urN boa-0.94.13.orig/src/request.c boa-0.94.13/src/request.c
---- boa-0.94.13.orig/src/request.c     2008-10-28 16:16:03.000000000 +0100
-+++ boa-0.94.13/src/request.c  2008-10-28 15:17:20.000000000 +0100
-@@ -75,12 +75,12 @@
-     int fd;                     /* socket */
-     struct SOCKADDR remote_addr; /* address */
-     struct SOCKADDR salocal;
--    int remote_addrlen = sizeof (struct SOCKADDR);
-+    int remote_addrlen = SOCKADDR_LEN;
-     request *conn;              /* connection */
--    size_t len;
-+    socklen_t len;
-     static int system_bufsize = 0; /* Default size of SNDBUF given by system */
--    remote_addr.S_FAMILY = 0xdead;
-+    S_FAMILY(&remote_addr) = 0xdead;
-     fd = accept(server_s, (struct sockaddr *) &remote_addr,
-                 &remote_addrlen);
-@@ -133,7 +133,7 @@
-     }
- #endif
--    len = sizeof(salocal);
-+    len = SOCKADDR_LEN;
-     if (getsockname(fd, (struct sockaddr *) &salocal, &len) != 0) {
-         WARN("getsockname");