Discussion:
[OpenWrt-Devel] [PATCH] [udpxy] Add config file and use procd.
Álvaro Fernández Rojas
2014-05-02 17:12:59 UTC
Permalink
Add config file and use procd.

Signed-off-by: Álvaro Fernández Rojas <***@gmail.com>
---
diff --git a/net/udpxy/Makefile b/net/udpxy/Makefile
index f9ac4fc..97a5618 100644
--- a/net/udpxy/Makefile
+++ b/net/udpxy/Makefile
@@ -11,7 +11,7 @@ PKG_NAME:=udpxy
PKG_REV:=1.0.23
PKG_TAG:=9
PKG_VERSION:=$(PKG_REV)-$(PKG_TAG)
-PKG_RELEASE:=2
+PKG_RELEASE:=3

PKG_SOURCE:=$(PKG_NAME).$(PKG_REV)-$(patsubst %,%-prod,$(PKG_TAG)).tar.gz
PKG_SOURCE_URL:=http://www.udpxy.com/download/1_23
@@ -24,18 +24,22 @@ include $(INCLUDE_DIR)/package.mk
define Package/udpxy
SECTION:=net
CATEGORY:=Network
- TITLE:=convert UDP IPTV streams into http stream
+ TITLE:=Convert UDP IPTV streams into HTTP streams
URL:=http://www.udpxy.com/index-en.html
endef

define Package/udpxy/description
- udproxy makes it possible to convert UDP IPTV streams into http
- streams which can be viewed even over wlans. http streams do
+ udproxy makes it possible to convert UDP IPTV streams into HTTP
+ streams which can be viewed even over WLANs. HTTP streams do
not generate huge amounts of multicast traffic, so a sd stream
- only takes about 300k. interesting for peoply who have IPTV at
+ only takes about 300k. Interesting for peoply who have IPTV at
home and do not want to rent multiple decoders from their
- provider but just use their own streaming client for example
- popcornhour/mediatomb/vlc/etc.
+ provider but just use their own streaming client (for example
+ popcornhour/mediatomb/vlc).
+endef
+
+define Package/udpxy/conffiles
+/etc/config/udpxy
endef

MAKE_FLAGS += \
@@ -43,7 +47,8 @@ MAKE_FLAGS += \
ALL_CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)"

define Package/udpxy/install
- $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_DIR) $(1)/etc/init.d $(1)/etc/config
+ $(INSTALL_CONF) ./files/udpxy.conf $(1)/etc/config/udpxy
$(INSTALL_BIN) ./files/udpxy.init $(1)/etc/init.d/udpxy
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/udpxy $(1)/usr/bin/
diff --git a/net/udpxy/files/udpxy.conf b/net/udpxy/files/udpxy.conf
new file mode 100644
index 0000000..5ef2e27
--- /dev/null
+++ b/net/udpxy/files/udpxy.conf
@@ -0,0 +1,13 @@
+config udpxy
+ option verbose '0'
+ option status '1'
+ option bind '0.0.0.0'
+ option port '4022'
+ option source '0.0.0.0'
+ option max_clients '3'
+ option log_file '/var/log/udpxy'
+ option buffer_size '2048'
+ option buffer_messages '1'
+ option buffer_time '1'
+ option nice_increment '0'
+ option mcsub_renew '0'
diff --git a/net/udpxy/files/udpxy.init b/net/udpxy/files/udpxy.init
index 41d7481..183a200 100644
--- a/net/udpxy/files/udpxy.init
+++ b/net/udpxy/files/udpxy.init
@@ -1,27 +1,61 @@
#!/bin/sh /etc/rc.common
+# Copyright (C) 2006-2014 OpenWrt.org

-# To open multicast traffic, add the following rule at the end of
-# /etc/config/firewall file:
-#
-# config 'rule'
-# option 'target' 'ACCEPT'
-# option '_name' 'multicast'
-# option 'src' 'wan'
-# option 'proto' 'all'
-# option 'dest_ip' '224.0.0.0/4'
+START=50
+USE_PROCD=1

-START=99
-STOP=10
+udpxy_parse() {
+ local cfg="$1"

-SERVICE_DAEMONIZE=1
-SERVICE_WRITE_PID=1
+ local cfg_verbose
+ local cfg_status
+ local cfg_mcsub_renew
+ local cfg_bind
+ local cfg_port
+ local cfg_source
+ local cfg_max_clients
+ local cfg_log_file
+ local cfg_buffer_size
+ local cfg_buffer_messages
+ local cfg_buffer_time
+ local cfg_nice_increment
+ local cfg_mcsub_renew

-OPTIONS="-T -S -p 4022"
+ config_get_bool cfg_verbose $cfg 'verbose' 0
+ config_get_bool cfg_status $cfg 'status' 1
+ config_get cfg_bind $cfg 'bind' '0.0.0.0'
+ config_get cfg_port $cfg 'port' '4022'
+ config_get cfg_source $cfg 'source' '0.0.0.0'
+ config_get cfg_max_clients $cfg 'max_clients' '3'
+ config_get cfg_log_file $cfg 'log_file' '/var/log/udpxy'
+ config_get cfg_buffer_size $cfg 'buffer_size' '2048'
+ config_get cfg_buffer_messages $cfg 'buffer_messages' '1'
+ config_get cfg_buffer_time $cfg 'buffer_time' '1'
+ config_get cfg_nice_increment $cfg 'nice_increment' '0'
+ config_get cfg_mcsub_renew $cfg 'mcsub_renew' 0

-start() {
- service_start /usr/bin/udpxy $OPTIONS
+ procd_open_instance
+
+ procd_set_param command /usr/bin/udpxy
+ procd_append_param command -T
+ [ "$cfg_verbose" -eq 1 ] && procd_append_param command -v
+ [ "$cfg_status" -eq 1 ] && procd_append_param command -S
+ procd_append_param command -a $cfg_bind
+ procd_append_param command -p $cfg_port
+ procd_append_param command -m $cfg_source
+ procd_append_param command -c $cfg_max_clients
+ procd_append_param command -l $cfg_log_file
+ [ "$cfg_nice_increment" -ge 4096 ] && procd_append_param command -B $cfg_buffer_size
+ procd_append_param command -R $cfg_buffer_messages
+ procd_append_param command -H $cfg_buffer_time
+ [ "$cfg_nice_increment" -ne 0 ] && procd_append_param command -n $cfg_nice_increment
+ procd_append_param command -M $cfg_mcsub_renew
+
+ procd_set_param respawn
+ procd_close_instance
}

-stop() {
- service_stop /usr/bin/udpxy
+start_service() {
+ config_load udpxy
+ config_foreach udpxy_parse udpxy
}

Loading...