aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlibs/libuwsc/Makefile82
-rwxr-xr-xutils/rtty/Makefile93
-rwxr-xr-xutils/rtty/files/rtty.config12
-rw-r--r--utils/rtty/files/rtty.init58
4 files changed, 245 insertions, 0 deletions
diff --git a/libs/libuwsc/Makefile b/libs/libuwsc/Makefile
new file mode 100755
index 000000000..981887db0
--- /dev/null
+++ b/libs/libuwsc/Makefile
@@ -0,0 +1,82 @@
+#
+# Copyright (C) 2018 Jianhui Zhao
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libuwsc
+PKG_VERSION:=1.1.0
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=v$(PKG_VERSION)
+PKG_SOURCE_URL=https://github.com/zhaojh329/libuwsc.git
+PKG_MIRROR_HASH:=4aada7e2941fb9f099869c9dc10ef6411f1c355c3b2f570011b91e42feffbfdd
+CMAKE_INSTALL:=1
+
+PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_SOURCE_SUBDIR)
+
+PKG_LICENSE:=GPL-3.0
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_MAINTAINER:=Jianhui Zhao <jianhuizhao329@gmail.com>
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/libuwsc/default
+ SECTION:=libs
+ CATEGORY:=Libraries
+ SUBMENU:=Networking
+ TITLE:=Lightweight WebSocket client library
+ DEPENDS:=+libubox
+endef
+
+define Package/libuwsc-nossl
+ $(Package/libuwsc/default)
+ TITLE += (NO SSL)
+ VARIANT:=nossl
+endef
+
+define Package/libuwsc-openssl
+ $(Package/libuwsc/default)
+ TITLE += (openssl)
+ DEPENDS += +libustream-openssl
+ VARIANT:=openssl
+endef
+
+define Package/libuwsc-wolfssl
+ $(Package/libuwsc/default)
+ TITLE += (wolfssl)
+ DEPENDS += +libustream-wolfssl
+ VARIANT:=wolfssl
+endef
+
+define Package/libuwsc-mbedtls
+ $(Package/libuwsc/default)
+ TITLE += (mbedtls)
+ DEPENDS += +libustream-mbedtls
+ VARIANT:=mbedtls
+endef
+
+ifeq ($(BUILD_VARIANT),nossl)
+ CMAKE_OPTIONS += -DUWSC_SSL_SUPPORT=off
+endif
+
+define Package/libuwsc/default/install
+ $(INSTALL_DIR) $(1)/usr/lib/
+ $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libuwsc.so* $(1)/usr/lib/
+endef
+
+Package/libuwsc-nossl/install = $(Package/libuwsc/default/install)
+Package/libuwsc-openssl/install = $(Package/libuwsc/default/install)
+Package/libuwsc-wolfssl/install = $(Package/libuwsc/default/install)
+Package/libuwsc-mbedtls/install = $(Package/libuwsc/default/install)
+
+$(eval $(call BuildPackage,libuwsc-nossl))
+$(eval $(call BuildPackage,libuwsc-mbedtls))
+$(eval $(call BuildPackage,libuwsc-wolfssl))
+$(eval $(call BuildPackage,libuwsc-openssl))
diff --git a/utils/rtty/Makefile b/utils/rtty/Makefile
new file mode 100755
index 000000000..a04f584b0
--- /dev/null
+++ b/utils/rtty/Makefile
@@ -0,0 +1,93 @@
+#
+# Copyright (C) 2018 Jianhui Zhao
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=rtty
+PKG_VERSION:=2.2.0
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=v$(PKG_VERSION)
+PKG_SOURCE_URL=https://github.com/zhaojh329/rtty.git
+PKG_MIRROR_HASH:=23a203351fdd47acfd16d3c3b3e3d51dd65a5d9e8ca89d4b1521d40c40616102
+
+PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_SOURCE_SUBDIR)
+
+PKG_LICENSE:=GPL-3.0
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_MAINTAINER:=Jianhui Zhao <jianhuizhao329@gmail.com>
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/rtty/default
+ SECTION:=utils
+ CATEGORY:=Utilities
+ SUBMENU:=Terminal
+ TITLE:=A reverse proxy WebTTY
+ DEPENDS:=+libblobmsg-json
+endef
+
+define Package/rtty/default/description
+A reverse proxy WebTTY. This is the client part running on devices to be managed.
+endef
+
+define Package/rtty-nossl
+ $(Package/rtty/default)
+ TITLE += (NO SSL)
+ DEPENDS += +libuwsc-nossl
+ VARIANT:=nossl
+ CONFLICTS:=rtty-openssl rtty-wolfssl rtty-mbedtls
+endef
+
+define Package/rtty-openssl
+ $(Package/rtty/default)
+ TITLE += (openssl)
+ DEPENDS += +libuwsc-openssl
+ VARIANT:=openssl
+ CONFLICTS:=rtty-wolfssl rtty-mbedtls
+endef
+
+define Package/rtty-wolfssl
+ $(Package/rtty/default)
+ TITLE += (wolfssl)
+ DEPENDS += +libuwsc-wolfssl
+ VARIANT:=wolfssl
+ CONFLICTS:=rtty-mbedtls
+endef
+
+define Package/rtty-mbedtls
+ $(Package/rtty/default)
+ TITLE += (mbedtls)
+ DEPENDS += +libuwsc-mbedtls
+ VARIANT:=mbedtls
+endef
+
+Package/rtty-nossl/description = $(Package/rtty/default/description)
+Package/rtty-openssl/description = $(Package/rtty/default/description)
+Package/rtty-wolfssl/description = $(Package/rtty/default/description)
+Package/rtty-mbedtls/description = $(Package/rtty/default/description)
+
+define Package/rtty/default/install
+ $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/rtty $(1)/usr/sbin
+ $(INSTALL_BIN) ./files/rtty.init $(1)/etc/init.d/rtty
+ $(INSTALL_CONF) ./files/rtty.config $(1)/etc/config/rtty
+endef
+
+Package/rtty-nossl/install = $(Package/rtty/default/install)
+Package/rtty-openssl/install = $(Package/rtty/default/install)
+Package/rtty-wolfssl/install = $(Package/rtty/default/install)
+Package/rtty-mbedtls/install = $(Package/rtty/default/install)
+
+$(eval $(call BuildPackage,rtty-nossl))
+$(eval $(call BuildPackage,rtty-mbedtls))
+$(eval $(call BuildPackage,rtty-wolfssl))
+$(eval $(call BuildPackage,rtty-openssl))
+
diff --git a/utils/rtty/files/rtty.config b/utils/rtty/files/rtty.config
new file mode 100755
index 000000000..8e7123a9b
--- /dev/null
+++ b/utils/rtty/files/rtty.config
@@ -0,0 +1,12 @@
+# You must specify an interface or id,
+# If the id is not specified, RTTY will uses the MAC address
+# of the interface you specify as its ID, otherwise the id
+# you specify is used as its ID
+
+#config rtty
+# option interface 'lan'
+# option id 'My-Device'
+# option description 'Description of my device'
+# option host 'your-server-host' # Server host
+# option port '5912' # Server Port
+# option ssl 1 # Whether to use ssl
diff --git a/utils/rtty/files/rtty.init b/utils/rtty/files/rtty.init
new file mode 100644
index 000000000..ab3ba131d
--- /dev/null
+++ b/utils/rtty/files/rtty.init
@@ -0,0 +1,58 @@
+#!/bin/sh /etc/rc.common
+
+. /lib/functions/network.sh
+
+USE_PROCD=1
+START=99
+
+BIN=/usr/sbin/rtty
+
+start_rtty() {
+ local cfg="$1"
+ local interface ifname id description host port ssl
+
+ uci_validate_section rtty rtty "${1}" \
+ 'interface:uci("network", "@interface"):lan' \
+ 'id:maxlength(63)' \
+ 'description:maxlength(126)' \
+ 'host:host' \
+ 'port:port' \
+ 'ssl:bool:0'
+
+ [ $? -eq 1 ] && {
+ echo "validation failed" >&2
+ return 1
+ }
+
+ [ -n "$interface" ] && network_get_device ifname "$interface"
+
+ [ -z "$ifname" -a -z "$id" ] && {
+ echo "You must specify an interface or ID" >&2
+ return 1
+ }
+
+ [ -z "$host" ] && {
+ echo "host required" >&2
+ return 1
+ }
+
+ [ -z "$port" ] && {
+ echo "port required" >&2
+ return 1
+ }
+
+ procd_open_instance
+ procd_set_param command $BIN -h $host -p $port -a
+ [ -n "$ifname" ] && procd_append_param command -i "$ifname"
+ [ -n "$id" ] && procd_append_param command -I "$id"
+ [ -n "$description" ] && procd_append_param command -d "$description"
+ [ "$ssl" = "1" ] && procd_append_param command -s
+ procd_set_param respawn
+ procd_close_instance
+}
+
+start_service() {
+ config_load rtty
+ config_foreach start_rtty rtty
+}
+