diff --git a/sulu/sulu-base/Makefile b/sulu/sulu-base/Makefile index 9a9496f3c..9d902081c 100644 --- a/sulu/sulu-base/Makefile +++ b/sulu/sulu-base/Makefile @@ -5,11 +5,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=sulu-base -PKG_VERSION:=4.1.1 +PKG_VERSION:=4.1.2 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://dev.iopsys.eu/websdk/sulu.git -PKG_SOURCE_VERSION:=eedd3e8b065a235a47eaf7373ca78031c12e90bc +PKG_SOURCE_VERSION:=9b10b746c4bd2f6b1ccbf2d1f334a0977f2bb482 PKG_MIRROR_HASH:=skip SULU_MOD:=core diff --git a/sulu/sulu-builder/Makefile b/sulu/sulu-builder/Makefile index 3a6bc3c7e..498f6f33f 100644 --- a/sulu/sulu-builder/Makefile +++ b/sulu/sulu-builder/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=sulu-builder -PKG_VERSION:=4.1.1 +PKG_VERSION:=4.1.2 PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://dev.iopsys.eu/websdk/sulu-builder.git -PKG_SOURCE_VERSION:=cad1aed9791e916ac99ef34b2b8314a4e50d0e46 +PKG_SOURCE_VERSION:=958c6e85e770d1e3f7b394f16bdf8df47063e4d4 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION) PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz PKG_BUILD_DIR:=$(BUILD_DIR)/sulu-$(PKG_VERSION)/sulu-builder-$(PKG_SOURCE_VERSION) @@ -28,7 +28,7 @@ define Package/sulu/default CATEGORY:=Utilities SUBMENU:=SULU TITLE:=SULU-CE - DEPENDS:=+mosquitto-auth-shadow +usermngr +jq +userinterface +obuspa + DEPENDS:=+mosquitto-auth-shadow +usermngr +jq +userinterface +obuspa +qrencode EXTRA_DEPENDS:=nginx endef diff --git a/sulu/sulu-builder/files/etc/init.d/sulu b/sulu/sulu-builder/files/etc/init.d/sulu index ffda6f3b3..5854bdf2e 100755 --- a/sulu/sulu-builder/files/etc/init.d/sulu +++ b/sulu/sulu-builder/files/etc/init.d/sulu @@ -8,11 +8,10 @@ STOP=01 . /lib/functions.sh log() { - echo "${@}"|logger -t sulu.init -p debug + echo "${@}" | logger -t sulu.init -p debug } -validate_sulu_global_section() -{ +validate_sulu_global_section() { uci_validate_section sulu global global \ 'enabled:bool:1' } @@ -23,7 +22,7 @@ start_service() { config_load sulu procd_open_instance sulu - validate_sulu_global_section || return 0; + validate_sulu_global_section || return 0 # append sulu connection injection if [ "${enabled}" -eq "0" ]; then procd_close_instance @@ -34,6 +33,7 @@ start_service() { log "Reloading related services" /etc/sulu/sulu.sh -r fi + /etc/sulu/sulu.sh -q procd_close_instance } @@ -42,7 +42,7 @@ reload_service() { start update } -service_triggers() -{ +service_triggers() { procd_add_reload_trigger "sulu" "userinterface" "mosquitto" + procd_add_reload_trigger "config.change" "mapcontroller" /etc/sulu/sulu.sh -q } diff --git a/sulu/sulu-builder/files/etc/sulu/sulu.sh b/sulu/sulu-builder/files/etc/sulu/sulu.sh index 6011ad6cf..4c0606d04 100644 --- a/sulu/sulu-builder/files/etc/sulu/sulu.sh +++ b/sulu/sulu-builder/files/etc/sulu/sulu.sh @@ -4,6 +4,7 @@ . /lib/functions.sh . /usr/share/libubox/jshn.sh +. /lib/functions/iopsys-environment.sh RESTART_REQ=0 _RESTART_SERVICES="0" @@ -214,17 +215,69 @@ function update_obuspa_config() { fi } +generate_qr_code() { + local NA="UNKNOWN" + local TMP="/tmp/wifi_qr.svg" + local QR="/sulu/assets/QR.svg" + local SSID="" + local KEY="" + which qrencode || return + local PASS="$(get_user_password)" + if [ -z "$PASS" ]; then + PASS="$NA" + fi + get_ssid_and_key() { + local sec="$1" + local filter_vid="$2" + if [ "$SSID" != "" ]; then + return + fi + config_get type "$sec" type + if [ "$type" != "fronthaul" ]; then + return + fi + if [ "$filter_vid" = "1" ]; then + config_get vid "$sec" vid + if [ "$vid" != "1" ]; then + return + fi + fi + config_get ssid "$sec" ssid + config_get key "$sec" key + SSID="$ssid" + KEY="$key" + } + config_load mapcontroller + config_foreach get_ssid_and_key "ap" "0" + if [ "$SSID" == "" ]; then + config_foreach get_ssid_and_key "ap" "1" + fi + SSID=${SSID:-$NA} + KEY=${KEY:-$NA} + PASS=${PASS:-$NA} + qrencode -t svg -m 0 -o "$TMP" "WIFI:S:$SSID;T:WPA;P:$KEY;;GNX:U:user;Q:$PASS;;" + if [ "$(sha256sum "$TMP" | cut -d ' ' -f1)" != "$(sha256sum "$QR" | cut -d ' ' -f1)" ]; then + mv "$TMP" "$QR" + else + rm "$TMP" + fi +} + function configure_sulu() { _create_mosquitto_acl update_obuspa_config generate_sulu_conn_config } -while getopts ":r" opt; do +while getopts ":rq" opt; do case ${opt} in r) _RESTART_SERVICES="1" ;; + q) + generate_qr_code + exit 0 + ;; *) slog "Invalid option: ${OPTARG}" exit 1