X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/6f447d09dfa4c4ee2321f327c5b62e79db3f9173..2fbb0f0be3175485b7a37af4bdb070da9ff42f2d:/package/busybox/files/httpd?ds=sidebyside

diff --git a/package/busybox/files/httpd b/package/busybox/files/httpd
index e4f5f48e9..3714a02de 100755
--- a/package/busybox/files/httpd
+++ b/package/busybox/files/httpd
@@ -1,11 +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 args
+
+	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() {