Add package shadowsocks-client

Signed-off-by: Zhao, Gang <gang.zhao.42@gmail.com>
This commit is contained in:
Zhao, Gang 2014-07-14 15:31:22 +08:00
parent d49fd62acd
commit e294483b40
3 changed files with 98 additions and 0 deletions

View File

@ -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))

View File

@ -0,0 +1,7 @@
config sslocal
option server_addr ''
option server_port ''
option local_addr ''
option local_port ''
option password ''
option method ''

View File

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