Signed-off-by: Zhao, Gang <gang.zhao.42@gmail.com>lilik-openwrt-22.03
@ -0,0 +1,39 @@ | |||||
include $(TOPDIR)/rules.mk | |||||
PKG_NAME:=shadowsocks-client | |||||
PKG_VERSION:=0.5 | |||||
PKG_RELEASE=$(PKG_SOURCE_VERSION) | |||||
PKG_SOURCE_PROTO:=git | |||||
PKG_SOURCE_URL:=http://github.com/zhao-gang/shadowsocks-tiny.git | |||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) | |||||
PKG_SOURCE_VERSION:=d8ef02715f40de0fb7ba0f7267d3f8260f38ba80 | |||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz | |||||
PKG_MAINTAINER:=Zhao, Gang <gang.zhao.42@gmail.com> | |||||
PKG_LICENSE:=MIT | |||||
PKG_LICENSE_FILES:=COPYING | |||||
PKG_BUILD_PARALLEL:=1 | |||||
include $(INCLUDE_DIR)/package.mk | |||||
define Package/shadowsocks-client | |||||
SECTION:=net | |||||
CATEGORY:=Network | |||||
SUBMENU:=Web Servers/Proxies | |||||
TITLE:=shadowsocks client for router | |||||
URL:=https://github.com/zhao-gang/shadowsocks-tiny | |||||
DEPENDS:=+libopenssl | |||||
endef | |||||
define Package/shadowsocks-client/install | |||||
$(INSTALL_DIR) $(1)/usr/bin | |||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/sslocal $(1)/usr/bin/ | |||||
$(INSTALL_DIR) $(1)/etc/config | |||||
$(INSTALL_DATA) ./files/sslocal.config $(1)/etc/config/sslocal | |||||
$(INSTALL_DIR) $(1)/etc/init.d | |||||
$(INSTALL_BIN) ./files/sslocal.init $(1)/etc/init.d/sslocal | |||||
endef | |||||
$(eval $(call BuildPackage,shadowsocks-client)) |
@ -0,0 +1,7 @@ | |||||
config sslocal | |||||
option server_addr '' | |||||
option server_port '' | |||||
option local_addr '' | |||||
option local_port '' | |||||
option password '' | |||||
option method '' |
@ -0,0 +1,52 @@ | |||||
#!/bin/sh /etc/rc.common | |||||
# Copyright (C) 2006-2012 OpenWrt.org | |||||
# Copyright (C) 2014 Zhao, Gang <gang.zhao.42@gmail.com> | |||||
START=99 | |||||
USE_PROCD=1 | |||||
PROG=/usr/bin/sslocal | |||||
validate_section_sslocal() { | |||||
uci_validate_section sslocal sslocal "${1}" \ | |||||
'server_addr:host' \ | |||||
'server_port:port' \ | |||||
'local_addr:host' \ | |||||
'local_port:port' \ | |||||
'password:string' \ | |||||
'method:string' \ | |||||
'log_level:range(0,7):5' | |||||
return $? | |||||
} | |||||
sslocal_instance() { | |||||
local server_addr server_port local_addr local_port | |||||
local password method log_level | |||||
validate_section_sslocal "${1}" || { | |||||
echo "validation failed" | |||||
return 1 | |||||
} | |||||
procd_open_instance | |||||
procd_set_param command "$PROG" | |||||
procd_append_param command -s "${server_addr}" -p "${server_port}" | |||||
procd_append_param command -u "${local_addr}" -b "${local_port}" | |||||
procd_append_param command -k "${password}" -m "${method}" | |||||
procd_append_param command -l "${log_level}" | |||||
procd_set_param respawn | |||||
procd_close_instance | |||||
} | |||||
start_service() { | |||||
config_load sslocal | |||||
config_foreach sslocal_instance sslocal | |||||
} | |||||
service_triggers() | |||||
{ | |||||
procd_add_reload_trigger "sslocal" | |||||
procd_add_validation validate_section_sslocal | |||||
} |