Jelajahi Sumber

Fix a wrong variable names (ifname, wan) and enhance httpd's init script by more configurable options. Signed-off-by: Lubos Stanek (lubek) <[email protected]>

SVN-Revision: 10536
Travis Kemen 18 tahun lalu
induk
melakukan
603f612d83
1 mengubah file dengan 44 tambahan dan 4 penghapusan
  1. 44 4
      package/busybox/files/httpd

+ 44 - 4
package/busybox/files/httpd

@@ -1,12 +1,52 @@
 #!/bin/sh /etc/rc.common
 # Copyright (C) 2006 OpenWrt.org
+
 START=50
+HTTPD_BIN="/usr/sbin/httpd"
+
+system_config() {
+	local cfg="$1"
+
+	config_get hostname "$cfg" hostname
+}
+
+httpd_config() {
+	local cfg="$1"
+	local c_file port realm home
+
+	config_get c_file "$cfg" c_file
+	[ -n "$c_file" -a -f "$c_file" ] && append args "-c \"$c_file\""
+	config_get port "$cfg" port
+	append args "-p ${port:-80}"
+	config_get home "$cfg" home
+	home="${home:-/www}"
+	[ -d "$home" ] || return 1
+	append args "-h \"$home\""
+	config_get realm "$cfg" realm
+	realm="${realm:-$hostname}"
+	append args "-r \"$realm\""
+	eval "$HTTPD_BIN $args"
+}
 
 start() {
-	include /lib/network
-	scan_interfaces
-        config_get ifname wan hostname
-	[ -d /www ] && httpd -p 80 -h /www -r ${hostname:-OpenWrt}
+	[ -x "$HTTPD_BIN" ] || return 1
+
+	unset hostname
+	config_load system
+	config_foreach system_config system
+	hostname="${hostname:-OpenWrt}"
+
+	unset args
+	config_load httpd
+	[ "$?" != "0" ] && {
+		uci_set_default httpd <<EOF
+config 'httpd'
+	option 'port' '80'
+	option 'home' '/www'
+EOF
+		config_load httpd
+	}
+	config_foreach httpd_config httpd
 }
 
 stop() {