packages/socat: add init script
authorHenning Schild <redacted>
Tue, 12 Aug 2014 20:17:57 +0000 (22:17 +0200)
committerHenning Schild <redacted>
Tue, 12 Aug 2014 21:35:56 +0000 (23:35 +0200)
Init script to start instances of socat for port-forwarding etc.

Signed-off-by: Henning Schild <redacted>
net/socat/Makefile
net/socat/files/socat.config [new file with mode: 0644]
net/socat/files/socat.init [new file with mode: 0644]

index a0d1e51a6751d248f5a56ba07a8cf5d0f14366d3..91a86a32aabe09af218689c8daa242bd1cf3103d 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=socat
 PKG_VERSION:=1.7.2.4
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://www.dest-unreach.org/socat/download
@@ -50,6 +50,10 @@ config SOCAT_SSL
           Implements SSL support in socat (using libopenssl).
 endef
 
+define Package/socat/conffiles
+/etc/config/socat
+endef
+
 CONFIGURE_ARGS += \
        --disable-libwrap \
        --disable-readline \
@@ -68,6 +72,10 @@ CONFIGURE_VARS += \
 define Package/socat/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/socat $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_CONF) ./files/socat.config $(1)/etc/config/socat
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/socat.init $(1)/etc/init.d/socat
 endef
 
 $(eval $(call BuildPackage,socat))
diff --git a/net/socat/files/socat.config b/net/socat/files/socat.config
new file mode 100644 (file)
index 0000000..7df6358
--- /dev/null
@@ -0,0 +1,5 @@
+# forward port 8000 on IPv6 to IPv4 host port 80
+# change enable to '1' to use this example
+config socat 'http'
+       option enable '0'
+       option SocatOptions '-d -d TCP6-LISTEN:8000,fork TCP4:192.168.1.20:80'
diff --git a/net/socat/files/socat.init b/net/socat/files/socat.init
new file mode 100644 (file)
index 0000000..379dc07
--- /dev/null
@@ -0,0 +1,39 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2008-2014 OpenWrt.org
+
+START=99
+STOP=99
+
+USE_PROCD=1
+PROG=/usr/bin/socat
+NAME=socat
+
+validate_section_socat()
+{
+       uci_validate_section socat socat "${1}" \
+               'enable:bool:1' \
+               'SocatOptions:string'
+       return $?
+}
+
+socat_instance()
+{
+       local SocatOptions enable
+
+       validate_section_socat "${1}" || {
+               echo "validation failed"
+               return 1
+       }
+
+       [ "${enable}" = "0" ] && return 1
+
+       procd_open_instance
+       procd_set_param command "$PROG"
+       procd_append_param command ${SocatOptions}
+       procd_close_instance
+}
+
+start_service () {
+       config_load "${NAME}"
+       config_foreach socat_instance socat
+}
git clone https://git.99rst.org/PROJECT