Changeset 13742


Ignore:
Timestamp:
2008-12-25T04:25:13+01:00 (7 years ago)
Author:
jow
Message:

miniupnpd:

  • better integration with uci firewall
  • add options to configure external and internal interface
  • trigger add/remove of upnp rules with hotplug
  • use start-stop-daemon in initscript
  • drop miniupnpd iptables heler scripts
Location:
packages/net/miniupnpd
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • packages/net/miniupnpd/Makefile

    r12677 r13742  
    1111PKG_NAME:=miniupnpd 
    1212PKG_VERSION:=1.1 
    13 PKG_RELEASE:=2 
     13PKG_RELEASE:=3 
    1414PKG_MD5SUM:=a0f6651476721db9b554668c8c83b151 
    1515 
     
    3737 
    3838define Package/miniupnpd/install 
    39         $(INSTALL_DIR) $(1)/usr/bin $(1)/etc/init.d $(1)/etc/config $(1)/etc/hotplug.d/iface 
     39        $(INSTALL_DIR) $(1)/usr/bin $(1)/etc/init.d $(1)/etc/config $(1)/etc/hotplug.d/iface $(1)/lib/miniupnpd 
    4040        $(INSTALL_BIN) $(PKG_BUILD_DIR)/miniupnpd $(1)/usr/bin/ 
    41         $(INSTALL_BIN) $(PKG_BUILD_DIR)/netfilter/*.sh $(1)/usr/bin/ 
    4241        $(INSTALL_BIN) ./files/miniupnpd.init $(1)/etc/init.d/miniupnpd 
    4342        $(INSTALL_DATA) ./files/upnpd.config $(1)/etc/config/upnpd 
    4443        $(INSTALL_DATA) ./files/miniupnpd.hotplug $(1)/etc/hotplug.d/iface/20-miniupnpd 
     44        $(INSTALL_DATA) ./files/miniupnpd.firewall $(1)/lib/miniupnpd/firewall.sh 
    4545endef 
    4646 
  • packages/net/miniupnpd/files/miniupnpd.hotplug

    r6500 r13742  
    11#!/bin/sh 
    2 [ "$ACTION" = "ifup" -a "$INTERFACE" = "wan" ] && /etc/init.d/miniupnpd enabled && /etc/init.d/miniupnpd restart 
     2 
     3/etc/init.d/miniupnpd enabled && killall -0 miniupnpd 2>/dev/null && { 
     4        . /lib/miniupnpd/firewall.sh 
     5 
     6        [ "$ACTION" = "ifup" ] && { 
     7                upnp_firewall_delif 
     8                upnp_firewall_addif 
     9        } 
     10 
     11        [ "$ACTION" = "ifdown" ] && { 
     12                upnp_firewall_delif 
     13        } 
     14} 
  • packages/net/miniupnpd/files/miniupnpd.init

    r12677 r13742  
    11#!/bin/sh /etc/rc.common 
    22START=95 
     3 
     4include /lib/miniupnpd 
     5 
    36start() { 
     7        local extif 
     8        local intif 
     9        local upload 
     10        local download 
     11        local logging 
     12 
    413        config_load "upnpd" 
    5         include /lib/network 
     14        config_get extif    config external_iface 
     15        config_get intif    config internal_iface 
     16        config_get upload   config upload 
     17        config_get download config download 
     18        config_get_bool logging config log_output 0 
     19 
    620        scan_interfaces 
    7         config_get ifname wan ifname 
    8         config_get ipaddr lan ipaddr 
     21        config_get extif ${extif:-wan} ifname 
    922         
    10         echo "miniupnpd starting ..." 
    11         stop 
    12         iptables_init.sh 
    13         # get bitspeed information, if provided 
    14         config_get upnp_up_bitspeed config upload 
    15         config_get upnp_down_bitspeed config download 
    16         bitspeed_str="" 
    17         [ -n "$upnpd_up_bitspeed" ] && [ -n "$upnpd_down_bitspeed" ] && { 
    18                 # covert to bytespeed 
    19                 upnpd_up_bytespeed=$(($upnpd_up_bitspeed * 1024 / 8)) 
    20                 upnpd_down_bytespeed=$(($upnpd_down_bitspeed * 1024 / 8)) 
    21                 bitspeed_str="-B $upnpd_down_bytespeed $upnpd_up_bytespeed" 
    22         } 
    23         config_get log_output config log_output 
    24         if [ "$log_output" = "1" ]; then 
    25                 miniupnpd -i "$ifname" -a "$ipaddr" -p 5000 -U $bitspeed_str -d | logger -t miniupnpd & 
     23        if [ -n "$extif" ]; then 
     24                logger -t "upnp daemon" "starting ..." 
     25 
     26                upnp_firewall_start 
     27 
     28                local args="-i $extif" 
     29 
     30                for iface in ${intif:-lan}; do 
     31                        local ipaddr 
     32                        config_get ipaddr "$iface" ipaddr 
     33                        [ -n "$ipaddr" ] && append args "-a $ipaddr" 
     34                done 
     35 
     36                append args "-p 5000 -U" 
     37 
     38                [ -n "$upload" -a -n "$download" ] && \ 
     39                        append args "-B $(($upload * 1024 / 8)) $(($download * 1024 / 8))" 
     40 
     41                if [ "$logging" = "1" ]; then 
     42                        eval start-stop-daemon -S -x miniupnpd -- $args -d | logger -t miniupnpd & 
     43                else 
     44                        eval start-stop-daemon -S -x miniupnpd -- $args 
     45                fi 
    2646        else 
    27                 miniupnpd -i "$ifname" -a "$ipaddr" -p 5000 -U $bitspeed_str 
     47                logger -t "upnp daemon" "external interface not found, not starting" 
    2848        fi 
    2949} 
    3050 
    3151stop() { 
    32         pnpd_pid=$(cat /var/run/miniupnpd.pid) 2>&- >&- 
    33         iptables_flush.sh 2>&- >&- 
    34         kill $pnpd_pid 2>&- 
    35         iptables_removeall.sh 2>&- >&- 
     52        logger -t "upnp daemon" "stopping ..." 
     53        start-stop-daemon -K -q -x miniupnpd -p /var/run/miniupnpd.pid 
     54        upnp_firewall_stop 
    3655} 
  • packages/net/miniupnpd/files/upnpd.config

    r10250 r13742  
    33        option download         1024 
    44        option upload           512 
     5        option external_iface   wan 
     6        option internal_iface   lan 
Note: See TracChangeset for help on using the changeset viewer.