diff --git a/feeds/facebook/fbwifi/README.md b/feeds/facebook/fbwifi/README.md index 621b217b0..4b4ba933f 100644 --- a/feeds/facebook/fbwifi/README.md +++ b/feeds/facebook/fbwifi/README.md @@ -26,8 +26,6 @@ files/ │   │   └── 50-fbwifi │   ├── init.d │   │   └── fbwifi -│ └── uci-defaults -│ └── fbwifi ├── usr │   ├── lib │   │   └── lua @@ -38,13 +36,15 @@ files/ │   │   └── view │   │   └── fbwifi.htm │   ├── sbin +│   │ ├── fbwifi │   │ ├── fbwifi_debug_dump │   │ ├── fbwifi_gateway_info_update │   │ ├── fbwifi_get_config │   │ └── fbwifi_validate_token_db │ └── share -│ ├── firewall.include -│ └── uhttpd.include +│ └── fbwifi +│ ├── firewall.include +│ └── uhttpd.json └── www └── cgi-bin └── fbwifi diff --git a/feeds/facebook/fbwifi/files/etc/init.d/fbwifi b/feeds/facebook/fbwifi/files/etc/init.d/fbwifi index e0dce9e41..0b519a785 100755 --- a/feeds/facebook/fbwifi/files/etc/init.d/fbwifi +++ b/feeds/facebook/fbwifi/files/etc/init.d/fbwifi @@ -4,20 +4,20 @@ START=90 USE_PROCD=1 -service_triggers() { - procd_add_reload_trigger fbwifi -} - reload_service() { restart } +service_triggers() { + procd_add_reload_trigger fbwifi +} + start_service() { + config_load fbwifi config_get_bool enabled 'main' 'enabled' '0' [ "$enabled" -eq 0 ] && return - config_get http_port main http_port [ -z "$http_port" ] && { logger -t fbwifi "required option http_port not set" @@ -33,8 +33,8 @@ start_service() { logger "[fbwifi] Enabled; starting" mkdir -p /tmp/fbwifi - - fbwifi reload + + /usr/sbin/fbwifi reload procd_open_instance procd_set_param command /usr/sbin/fbwifi_validate_token_db diff --git a/feeds/facebook/fbwifi/files/usr/sbin/fbwifi b/feeds/facebook/fbwifi/files/usr/sbin/fbwifi index 0db833fe8..207541579 100755 --- a/feeds/facebook/fbwifi/files/usr/sbin/fbwifi +++ b/feeds/facebook/fbwifi/files/usr/sbin/fbwifi @@ -1,14 +1,21 @@ #!/bin/sh case "$1" in +disable) + uci set fbwifi.main.enabled=0 + + uci delete firewall.fbwifi + + uci delete uhttpd.fbwifi_redirect + + uci delete uhttpd.main.json_script + uci set uhttpd.main.cert='/etc/uhttpd.crt' + uci set uhttpd.main.key='/etc/uhttpd.key' + uci set uhttpd.main.rfc1918_filter=1 + ;; enable) uci set fbwifi.main.enabled=1 - - uci set uhttpd.main.cert='/tmp/fbwifi/https_server_cert' - uci set uhttpd.main.key='/tmp/fbwifi/https_server_key' - uci set uhttpd.main.json_script='/usr/share/fbwifi/uhttpd.json' - uci set uhttpd.main.rfc1918_filter=0 - + uci set firewall.fbwifi=include uci set firewall.fbwifi.enabled=1 uci set firewall.fbwifi.family=ipv4 @@ -18,39 +25,29 @@ enable) uci set uhttpd.fbwifi_redirect=uhttpd uci set uhttpd.fbwifi_redirect.enabled=1 + uci set uhttpd.fbwifi_redirect.cert='/tmp/fbwifi/https_server_cert' + uci set uhttpd.fbwifi_redirect.json_script='/tmp/fbwifi/uhttpd-redirect.json' + uci set uhttpd.fbwifi_redirect.key='/tmp/fbwifi/https_server_key' uci set uhttpd.fbwifi_redirect.listen_http='0.0.0.0:2060' uci set uhttpd.fbwifi_redirect.listen_https='0.0.0.0:2061' - uci set uhttpd.fbwifi_redirect.cert='/tmp/fbwifi/https_server_cert' - uci set uhttpd.fbwifi_redirect.key='/tmp/fbwifi/https_server_key' - uci set uhttpd.fbwifi_redirect.json_script='/tmp/fbwifi/uhttpd-redirect.json' - - uci add_list dhcp.@dnsmasq[0].rebind_domain=fbwifigateway.net + + uci set uhttpd.main.cert='/tmp/fbwifi/https_server_cert' + uci set uhttpd.main.json_script='/usr/share/fbwifi/uhttpd.json' + uci set uhttpd.main.key='/tmp/fbwifi/https_server_key' + uci set uhttpd.main.rfc1918_filter=0 ;; - -disable) - uci set fbwifi.main.enabled=0 - - uci delete uhttpd.main.cert - uci delete uhttpd.main.key - uci delete uhttpd.main.json_script - uci delete uhttpd.main.rfc1918_filter - - uci delete firewall.fbwifi - - uci delete uhttpd.fbwifi_redirect - - uci delete dhcp.@dnsmasq[0].rebind_domain - ;; - reload) /usr/sbin/fbwifi_get_config + login_url=$(uci -p /var/state get fbwifi.main.captive_portal_url) [ -z "$login_url" ] && { logger -t fbwifi "captive_portal_url not available yet" exit 1 } printf '{ "request": [ ["redirect", "%s", 302] ] }' "$login_url" > /tmp/fbwifi/uhttpd-redirect.json + /etc/init.d/uhttpd restart + exit 0 ;; esac diff --git a/feeds/facebook/fbwifi/files/usr/sbin/fbwifi_validate_token_db b/feeds/facebook/fbwifi/files/usr/sbin/fbwifi_validate_token_db index 6fa3c0ec9..b95e21d99 100755 --- a/feeds/facebook/fbwifi/files/usr/sbin/fbwifi_validate_token_db +++ b/feeds/facebook/fbwifi/files/usr/sbin/fbwifi_validate_token_db @@ -57,9 +57,9 @@ else log.syslog(log.LOG_WARNING, "[fbwifi] config is stale, refreshing config") local result = os.execute("/usr/sbin/fbwifi reload") if result == 0 then - log.syslog(log.LOG_INFO, "[fbwifi] init.d fbwifi restarted successfully to fetch and update fresh config ") + log.syslog(log.LOG_INFO, "[fbwifi] successfully fetched and loaded new config ") else - log.syslog(log.LOG_WARNING, "[fbwifi] init.d fbwifi failed to restart. Possible stale config") + log.syslog(log.LOG_WARNING, "[fbwifi] failed to fetch and load new config, possible stale config") end end