really fix webif password access patch for busybox
[openwrt.git] / package / busybox / patches / 320-httpd_address_binding.patch
index b9503aa..68487b8 100644 (file)
@@ -1,28 +1,20 @@
-
-       Copyright (C) 2006 OpenWrt.org
-
---- busybox-1.1.1/networking/httpd.c   2006-03-22 22:16:19.000000000 +0100
-+++ busybox-1.1.1.new/networking/httpd.c       2006-04-01 19:41:42.150744624 +0200
-@@ -110,6 +110,7 @@
+# Copyright (C) 2006 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+diff -ruN busybox-1.2.0-old/networking/httpd.c busybox-1.2.0-new/networking/httpd.c
+--- busybox-1.2.0-old/networking/httpd.c       2006-07-01 00:42:02.000000000 +0200
++++ busybox-1.2.0-new/networking/httpd.c       2006-08-01 10:06:58.000000000 +0200
+@@ -99,6 +99,7 @@
  #include <sys/types.h>
  #include <sys/socket.h>    /* for connect and socket*/
  #include <netinet/in.h>    /* for sockaddr_in       */
 +#include <arpa/inet.h>
- #include <sys/time.h>
  #include <sys/stat.h>
  #include <sys/wait.h>
-@@ -204,8 +205,8 @@
- void bb_show_usage(void)
- {
--  fprintf(stderr, "Usage: %s [-p <port>] [-c configFile] [-d/-e <string>] "
--                "[-r realm] [-u user] [-h homedir]\n", bb_applet_name);
-+  fprintf(stderr, "Usage: %s [-p <port>] [-l <IP address>] [-c configFile]"
-+                "[-d/-e <string>] [-r realm] [-u user] [-h homedir]\n", bb_applet_name);
-   exit(1);
- }
- #endif
-@@ -255,6 +256,7 @@
+ #include <fcntl.h>         /* for open modes        */
+@@ -165,6 +166,7 @@
  #endif
    unsigned port;           /* server initial port and for
                              set env REMOTE_PORT */
@@ -30,7 +22,7 @@
    union HTTPD_FOUND {
        const char *found_mime_type;
        const char *found_moved_temporarily;
-@@ -958,7 +960,10 @@
+@@ -868,7 +870,10 @@
    /* inet_addr() returns a value that is already in network order */
    memset(&lsocket, 0, sizeof(lsocket));
    lsocket.sin_family = AF_INET;
 +        if (config->address != NULL) lsocket.sin_addr.s_addr = ((struct in_addr *) ((gethostbyname(config->address))->h_addr))->s_addr;
 +        else lsocket.sin_addr.s_addr = htons(INADDR_ANY);
 +  }
-   lsocket.sin_port = htons(config->port) ;
-   fd = socket(AF_INET, SOCK_STREAM, 0);
-   if (fd >= 0) {
-@@ -1996,6 +2001,7 @@
+   lsocket.sin_port = htons(config->port);
+   fd = bb_xsocket(AF_INET, SOCK_STREAM, 0);
+   /* tell the OS it's OK to reuse a previous address even though */
+@@ -1899,6 +1904,7 @@
        USE_FEATURE_HTTPD_AUTH_MD5(m_opt_md5,)
        USE_FEATURE_HTTPD_SETUID(u_opt_setuid,)
-       SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY(p_opt_port,)
-+      SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY(l_opt_addr,)
+       USE_FEATURE_HTTPD_WITHOUT_INETD(p_opt_port,)
++      USE_FEATURE_HTTPD_WITHOUT_INETD(l_opt_addr,)
  };
  
  static const char httpd_opts[]="c:d:h:"
-@@ -2003,7 +2009,7 @@
+@@ -1906,7 +1912,7 @@
        USE_FEATURE_HTTPD_BASIC_AUTH("r:")
        USE_FEATURE_HTTPD_AUTH_MD5("m:")
        USE_FEATURE_HTTPD_SETUID("u:")
--      SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY("p:");
-+      SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY("p:l:");
+-      USE_FEATURE_HTTPD_WITHOUT_INETD("p:");
++      USE_FEATURE_HTTPD_WITHOUT_INETD("p:l:");
  
  #define OPT_CONFIG_FILE (1<<c_opt_config_file)
  #define OPT_DECODE_URL  (1<<d_opt_decode_url)
-@@ -2024,6 +2030,8 @@
- #define OPT_PORT        SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY((1<<p_opt_port)) \
-                       USE_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY(0)
+@@ -1927,6 +1933,8 @@
+ #define OPT_PORT        USE_FEATURE_HTTPD_WITHOUT_INETD((1<<p_opt_port)) \
+                       SKIP_FEATURE_HTTPD_WITHOUT_INETD(0)
  
-+#define OPT_ADDRESS     SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY((1<<l_opt_addr)) \
-+                      USE_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY(0)
++#define OPT_ADDRESS     USE_FEATURE_HTTPD_WITHOUT_INETD((1<<l_opt_addr)) \
++                      SKIP_FEATURE_HTTPD_WITHOUT_INETD(0)
  
- #ifdef HTTPD_STANDALONE
- int main(int argc, char *argv[])
-@@ -2036,6 +2044,7 @@
+ int httpd_main(int argc, char *argv[])
+ {
+@@ -1935,6 +1943,7 @@
    char *url_for_decode;
    USE_FEATURE_HTTPD_ENCODE_URL_STR(const char *url_for_encode;)
-   SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY(const char *s_port;)
-+  SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY(const char *s_addr;)
-   SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY(int server;)
+   USE_FEATURE_HTTPD_WITHOUT_INETD(const char *s_port;)
++  USE_FEATURE_HTTPD_WITHOUT_INETD(const char *s_addr;)
+   USE_FEATURE_HTTPD_WITHOUT_INETD(int server;)
  
    USE_FEATURE_HTTPD_SETUID(const char *s_uid;)
-@@ -2050,6 +2059,7 @@
+@@ -1949,6 +1958,7 @@
  
- #ifndef CONFIG_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY
+ #ifdef CONFIG_FEATURE_HTTPD_WITHOUT_INETD
    config->port = 80;
 +  config->address = "";
  #endif
  
    config->ContentLength = -1;
-@@ -2061,6 +2071,7 @@
+@@ -1960,6 +1970,7 @@
                        USE_FEATURE_HTTPD_AUTH_MD5(, &pass)
                        USE_FEATURE_HTTPD_SETUID(, &s_uid)
-                       SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY(, &s_port)
-+                      SKIP_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY(, &s_addr)
+                       USE_FEATURE_HTTPD_WITHOUT_INETD(, &s_port)
++                      USE_FEATURE_HTTPD_WITHOUT_INETD(, &s_addr)
        );
  
    if(opt & OPT_DECODE_URL) {
-@@ -2082,6 +2093,8 @@
- #ifndef CONFIG_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY
+@@ -1981,6 +1992,8 @@
+ #ifdef CONFIG_FEATURE_HTTPD_WITHOUT_INETD
      if(opt & OPT_PORT)
        config->port = bb_xgetlarg(s_port, 10, 1, 0xffff);
 +    if (opt & OPT_ADDRESS)
This page took 0.0304 seconds and 4 git commands to generate.