From: Rafał Miłecki <ra...@milecki.pl> It can be used as an alternative for uhttpd-mod-ubus. It allows accessing ubus using WebSocket API standardized by the W3C.
Signed-off-by: Rafał Miłecki <ra...@milecki.pl> --- Hi, I don't know if there is any interest in this package (and if it should go to base or external repo), but I gave it a try and so I'm sharing my code. --- package/system/owsd/Makefile | 33 ++++++++++++++++++++++++++++++ package/system/owsd/files/owsd.config | 7 +++++++ package/system/owsd/files/owsd.init | 38 +++++++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 package/system/owsd/Makefile create mode 100644 package/system/owsd/files/owsd.config create mode 100644 package/system/owsd/files/owsd.init diff --git a/package/system/owsd/Makefile b/package/system/owsd/Makefile new file mode 100644 index 0000000000..808911f7a4 --- /dev/null +++ b/package/system/owsd/Makefile @@ -0,0 +1,33 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=owsd +PKG_RELEASE:=1 + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL=http://public.inteno.se/owsd.git +PKG_SOURCE_DATE:=2017-02-17 +PKG_SOURCE_VERSION:=8f62b44c37861dcacb201bbb79fa27d83ada4b48 +CMAKE_INSTALL:=1 + +PKG_LICENSE:=GPL-2.0 + +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/cmake.mk + +define Package/owsd + SECTION:=base + CATEGORY:=Base system + TITLE:=OpenWrt WebSocket Daemon + DEPENDS:=+libwebsockets +libubox +libubus +libblobmsg-json +libopenssl +endef + +define Package/owsd/install + $(INSTALL_DIR) $(1)/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/owsd $(1)/bin/ + $(INSTALL_DIR) $(1)/etc/config + $(INSTALL_DATA) ./files/owsd.config $(1)/etc/config/owsd + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/owsd.init $(1)/etc/init.d/owsd +endef + +$(eval $(call BuildPackage,owsd)) diff --git a/package/system/owsd/files/owsd.config b/package/system/owsd/files/owsd.config new file mode 100644 index 0000000000..4a9556ea43 --- /dev/null +++ b/package/system/owsd/files/owsd.config @@ -0,0 +1,7 @@ +config global global + option enabled 0 + +config port + option port 80 + list origin http://127.0.0.1 + list origin http://192.168.1.1 diff --git a/package/system/owsd/files/owsd.init b/package/system/owsd/files/owsd.init new file mode 100644 index 0000000000..b129f39abb --- /dev/null +++ b/package/system/owsd/files/owsd.init @@ -0,0 +1,38 @@ +#!/bin/sh /etc/rc.common + +START=95 +STOP=10 + +USE_PROCD=1 +PROG=/bin/owsd + +handle_port() { + local config="$1" + local __resultvar="$2" + local _args="" + local port interface origin + + config_get port $config port + [ -n "$port" ] && _args="$_args -p $port" + config_get interface $config interface + [ -n "$interface" ] && _args="$_args -i $interface" + config_get origin $config origin + [ -n "$origin" ] && _args="$_args -o ${origin/ / -o }" + + args="$args$_args" +} + +start_service() { + local enabled + + config_load owsd + + config_get_bool enabled global enabled 0 + [ $enabled -eq 0 ] && return + + config_foreach handle_port port + + procd_open_instance + procd_set_param command "$PROG" $args + procd_close_instance +} -- 2.11.0 _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev