This patch adds udpxy -- multicast video streams retranslator

---

Index: net/udpxy/files/udpxy.hotplug
===================================================================
--- net/udpxy/files/udpxy.hotplug       (revision 0)
+++ net/udpxy/files/udpxy.hotplug       (revision 0)
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+/etc/init.d/udpxy enabled && {
+       local extif
+       config_load udpxy
+       config_get extif config external_iface
+
+       if [ "$ACTION" = add ] && [ "$INTERFACE" = "$extif" ]; then
+               local active
+               config_get active "$INTERFACE" ifname
+
+               [ -z "$active" ] && {
+                       logger -t udpxy "adding $INTERFACE ($DEVICE) to 
firewall"
+
+                       iptables -A input_rule -i $DEVICE -p igmp -j ACCEPT
+                       iptables -A input_rule -i $DEVICE -d 224.0.0.0/4 -p udp 
-j ACCEPT
+
+                       uci_set_state udpxy "$INTERFACE" "" firewall
+                       uci_set_state udpxy "$INTERFACE" ifname "$DEVICE"
+               }
+       elif [ "$ACTION" = remove ] && [ "$INTERFACE" = "$extif" ]; then
+               local ifname
+               config_get ifname "$INTERFACE" ifname
+
+               [ -n "$ifname" ] && {
+                       logger -t udpxy "removing $INTERFACE ($ifname) from 
firewall"
+
+                       iptables -D input_rule -i $ifname -p igmp -j ACCEPT
+                       iptables -D input_rule -i $ifname -d 224.0.0.0/4 -p udp 
-j ACCEPT
+                       uci_revert_state udpxy "$INTERFACE"
+               }
+       fi
+}
Index: net/udpxy/files/udpxy.init
===================================================================
--- net/udpxy/files/udpxy.init  (revision 0)
+++ net/udpxy/files/udpxy.init  (revision 0)
@@ -0,0 +1,57 @@
+#!/bin/sh /etc/rc.common
+START=95
+
+start() {
+       config_load "udpxy"
+       local extiface port max_clients logging enabled
+
+       config_get extiface config external_iface wan
+       config_get port config web_port 8881
+       config_get max_clients config max_clients 3
+       config_get_bool logging config log_output 0
+       config_get_bool enabled config enabled 0 
+       
+       include /lib/network
+       scan_interfaces
+
+       config_get extifname $extiface ifname
+
+       local args="-p $port"
+
+       if [ "$max_clients" -ne 0 ]; then
+               if [ "$max_clients" -lt 3 -o "$max_clients" -gt 16 ]; then
+                       logger -t "udpxy" "max_clients is not in [3,16] range, 
not starting"
+                       return
+               fi
+               append args "-c $max_clients"
+       fi
+       
+       if [ "$logging" = "1" ]; then
+               [ "$enabled" -gt 0 ] && eval start-stop-daemon -S -x udpxy -- 
$args -v -S -T 2>&1 | logger -t udpxy &
+       else
+               [ "$enabled" -gt 0 ] && eval start-stop-daemon -S -x udpxy -- 
$args 2>/dev/null
+       fi
+
+       local zone
+       config_load firewall
+       config_get zone core "${extiface}_zone"
+
+       [ -n "$zone" ] && \
+               ACTION=add INTERFACE="$extiface" DEVICE="$extifname" \
+               . /etc/hotplug.d/firewall/50-udpxy
+}
+
+clear_fw_rule() {
+       ACTION=remove INTERFACE="$1" . /etc/hotplug.d/firewall/50-udpxy
+}
+
+stop() {
+       config_load udpxy
+       local port
+       config_get port config web_port 8881
+
+       start-stop-daemon -K -q -x udpxy -p /var/run/udpxy"$port".pid
+       rm -f /var/run/udpxy"$port".pid
+
+       config_foreach clear_fw_rule firewall
+}

Property changes on: net/udpxy/files/udpxy.init
___________________________________________________________________
Added: svn:executable
   + *

Index: net/udpxy/files/udpxy.config
===================================================================
--- net/udpxy/files/udpxy.config        (revision 0)
+++ net/udpxy/files/udpxy.config        (revision 0)
@@ -0,0 +1,6 @@
+config udpxy config
+       option enabled 1
+       option external_iface wan
+       option web_port 8881
+       option max_clients 3
+       option log_output 0
Index: net/udpxy/Makefile
===================================================================
--- net/udpxy/Makefile  (revision 0)
+++ net/udpxy/Makefile  (revision 0)
@@ -0,0 +1,50 @@
+#
+# Copyright (C) 2010 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=udpxy
+PKG_VERSION:=1.0-Chipmunk-16
+PKG_RELEASE:=1
+
+PKG_SOURCE_URL:=...@sf/udpxy
+PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz
+PKG_MD5SUM:=0bba6fd3e0b0065424b198abdf0acb7d
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/udpxy
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=multimedia
+  TITLE:=Multicast video streams retranslator
+  URL:=http://udpxy.sourceforge.net/
+  MAINTAINER:=Mikhail Gusarov <dotted...@dottedmag.net>
+endef
+
+define Package/udpxy/conffiles
+  /etc/config/udpxy
+endef
+
+define Build/Configure
+endef
+
+define Build/Compile
+  $(MAKE) -C $(PKG_BUILD_DIR) "CC=$(TARGET_CC)" "CFLAGS=$(TARGET_CFLAGS)"
+endef
+
+define Package/udpxy/install
+  $(INSTALL_DIR) $(1)/usr/bin $(1)/etc/init.d $(1)/etc/config 
+  $(INSTALL_DIR) $(1)/etc/hotplug.d/firewall
+  $(INSTALL_BIN) $(PKG_BUILD_DIR)/udpxy $(1)/usr/bin/udpxy
+  $(LN) udpxy $(1)/usr/bin/udpxrec
+  $(INSTALL_BIN) ./files/udpxy.init $(1)/etc/init.d/udpxy
+  $(INSTALL_CONF) ./files/udpxy.config $(1)/etc/config/udpxy
+  $(INSTALL_DATA) ./files/udpxy.hotplug $(1)/etc/hotplug.d/firewall/50-udpxy
+endef
+
+$(eval $(call BuildPackage,udpxy))
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to