Init script to start instances of socat for port-forwarding etc.
Signed-off-by: Henning Schild <redacted>
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
Implements SSL support in socat (using libopenssl).
endef
+define Package/socat/conffiles
+/etc/config/socat
+endef
+
CONFIGURE_ARGS += \
--disable-libwrap \
--disable-readline \
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))
--- /dev/null
+# 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'
--- /dev/null
+#!/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
+}