|
|
@ -24,6 +24,7 @@ |
|
|
|
# rrqnet_options <options> |
|
|
|
# rrqnet_log <level> <pathname> |
|
|
|
# rrqnet_bridge <bridge> |
|
|
|
# rrqnet_dhcp <options> |
|
|
|
|
|
|
|
: ${RRQDAEMON:=/usr/local/sbin/rrqnet} |
|
|
|
: ${NAME:=rrqnet-${IFACE}} |
|
|
@ -41,6 +42,29 @@ configure_tap_up() { |
|
|
|
grep -q "state UP" || ip link set dev $IFACE up |
|
|
|
} |
|
|
|
|
|
|
|
############################################################ |
|
|
|
## DHCP support |
|
|
|
: ${LEASES:=/var/lib/dhcp/dhclient.$IFACE.leases} |
|
|
|
: ${DHCPARGS:="-4 -cf /dev/null"} |
|
|
|
: ${PIDFILE:=/var/run/dhclient.$IFACE} |
|
|
|
|
|
|
|
#function |
|
|
|
start_dhclient() { |
|
|
|
shift 1 |
|
|
|
[ -z "$*" ] || DHCPARGS="$*" |
|
|
|
/sbin/dhclient -pf $PIDFILE $DHCPARGS -lf $LEASES $IFACE |
|
|
|
} |
|
|
|
|
|
|
|
#function |
|
|
|
stop_dhclient() { |
|
|
|
shift 1 |
|
|
|
[ -z "$*" ] || DHCPARGS="$*" |
|
|
|
/sbin/dhclient -x -pf $PIDFILE $DHCPARGS -lf $LEASES $IFACE 2>/dev/null |
|
|
|
} |
|
|
|
|
|
|
|
############################################################ |
|
|
|
## The action functions |
|
|
|
|
|
|
|
#function |
|
|
|
start_cable_pre_up() { |
|
|
|
configure_tap_up || return 1 |
|
|
@ -48,26 +72,49 @@ start_cable_pre_up() { |
|
|
|
[ -z "$IF_RRQNET_NICE" ] || \ |
|
|
|
RRQDAEMON="/usr/bin/nice -n $IF_RRQNET_NICE $RRQDAEMON" |
|
|
|
if [ -z "$IF_RRQNET_LOG" ] ; then |
|
|
|
daemon -U -r -n $NAME -- \ |
|
|
|
daemon -U -r -a 10 -n $NAME -- \ |
|
|
|
$RRQDAEMON $IF_RRQNET_OPTIONS \ |
|
|
|
-t $IFACE $IF_RRQNET_PORT $IF_RRQNET_REMOTE |
|
|
|
else |
|
|
|
daemon -U -r -n $NAME -E "${IF_RRQNET_LOG#* }" -- \ |
|
|
|
daemon -U -r -a 10 -n $NAME -E "${IF_RRQNET_LOG#* }" -- \ |
|
|
|
$RRQDAEMON ${IF_RRQNET_LOG%% *} $IF_RRQNET_OPTIONS \ |
|
|
|
-t $IFACE $IF_RRQNET_PORT $IF_RRQNET_REMOTE |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
#function |
|
|
|
start_cable_post_up() { |
|
|
|
case "$IF_RRQNET_DHCP" in |
|
|
|
dhclient*) |
|
|
|
start_dhclient IF_RRQNET_DHCP |
|
|
|
;; |
|
|
|
*) |
|
|
|
: # no or unkown dhcp option |
|
|
|
;; |
|
|
|
esac |
|
|
|
} |
|
|
|
|
|
|
|
#function |
|
|
|
stop_cable_pre_down() { |
|
|
|
case "$IF_RRQNET_DHCP" in |
|
|
|
dhclient*) |
|
|
|
stop_dhclient $IF_RRQNET_DHCP |
|
|
|
;; |
|
|
|
*) |
|
|
|
: # no or unkown dhcp option |
|
|
|
;; |
|
|
|
esac |
|
|
|
} |
|
|
|
|
|
|
|
#function |
|
|
|
stop_cable_post_down() { |
|
|
|
daemon -n $NAME --stop |
|
|
|
} |
|
|
|
|
|
|
|
# main script body |
|
|
|
|
|
|
|
case "$MODE-$PHASE" in |
|
|
|
start-pre-up) start_cable_pre_up ;; |
|
|
|
start-post-up) : ;; |
|
|
|
stop-pre-down) : ;; |
|
|
|
start-post-up) start_cable_post_up ;; |
|
|
|
stop-pre-down) stop_cable_pre_down ;; |
|
|
|
stop-post-down) stop_cable_post_down ;; |
|
|
|
esac |
|
|
|