diff options
Diffstat (limited to 'package/wprobe/files/wprobe.init')
-rwxr-xr-x | package/wprobe/files/wprobe.init | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/package/wprobe/files/wprobe.init b/package/wprobe/files/wprobe.init index cf0b162181..11a5bf6e14 100755 --- a/package/wprobe/files/wprobe.init +++ b/package/wprobe/files/wprobe.init @@ -1,24 +1,31 @@ #!/bin/sh /etc/rc.common START=90 EXPORTER=/usr/sbin/wprobe-ipfix +UTIL=/sbin/wprobe-util wprobe_ssd() { - local cfg="$1"; shift local cmd="$1"; shift - start-stop-daemon "$cmd" -p "/var/run/wprobe-$cfg.pid" -b -x "$EXPORTER" -m -- "$@" + local type="$1"; shift + local app="$1"; shift + start-stop-daemon "$cmd" -p "/var/run/wprobe-$type.pid" -b ${app:+-x "$app"} -m -- "$@" } stop_wprobe() { - local cfg="$1" - [ -f "/var/run/wprobe-$cfg.pid" ] && wprobe_ssd "$cfg" -K - rm -f "/var/run/wprobe-$cfg.pid" + local type="$1" + [ -f "/var/run/wprobe-$type.pid" ] && wprobe_ssd -K "$type" + rm -f "/var/run/wprobe-$type.pid" } config_wprobe() { config_get ifname "$cfg" ifname config_get interval "$cfg" interval [ -n "$interval" ] || interval=100 - wprobe-info "$ifname" -c -i "$interval" + $UTIL "$ifname" -i "$interval" 2>/dev/null >/dev/null +} + +start_proxy() { + config_get port "$cfg" port + wprobe_ssd -S proxy "$UTIL" -P -p "${port:-19770}" } start_ipfix() { @@ -38,13 +45,15 @@ start_ipfix() { return } config_wprobe "$cfg" - wprobe_ssd "$cfg" -S "$proto" -i "$ifname" -c "$host" -p "${port:-4739}" + wprobe_ssd -S "export-$cfg" "$EXPORTER" "$proto" -i "$ifname" -c "$host" -p "${port:-4739}" } start_export() { + local cfg="$1" config_get export_type "$cfg" type case "$export_type" in - ipfix) start_ipfix "$cfg";; + ipfix) [ -x "$EXPORTER" ] && start_ipfix "$cfg";; + wprobe) start_proxy "$cfg";; esac } @@ -59,5 +68,5 @@ stop() { start() { config_load wprobe config_foreach config_wprobe interface - [ -x "$EXPORTER" ] && config_foreach start_export export + config_foreach start_export export } |