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 | |||
} |