bpfcountd: remove incomplete/broken namespace feature
authorLinus Lüssing <linus.luessing@c0d3.blue>
Mon, 5 Dec 2022 15:03:02 +0000 (16:03 +0100)
committerTianling Shen <cnsztl@gmail.com>
Wed, 7 Dec 2022 09:43:03 +0000 (17:43 +0800)
The original idea of the extra namespace variable was to set up
bpfcountd from other daemons etc. independent of what a user configured
in /etc/config/bpfcountd for instance. Like:

 $ UCI_CONFIG_DIR=/var/run/bpfcountd/gluon-config \
   /etc/init.d/bpfcountd start "" gluon

However there are still issues with this approach:

1) Instance specific stop calls like:

 $ /etc/init.d/bpfcountd stop <instance-name> <namespace>"

will not  stop the according namespaced instance, as the stop() in
/etc/rc.common will call procd_kill() without the namespace prefix.
And we can't overwrite that behaviour. And asking a user to use
"... start <in> <ns>" and "... stop <ns>.<in>" is confusing.
(and currently "... stop <ns>.<in>" would not remove the correct
unix socket).

2) A stop call without an instance/config name would always stop all
instances. So the namespace variable would be ignored.
While start without an instance "works", but:

3) It would stop any process that is not in the currently selected
UCI_CONFIG_DIR.

As all this is not easily fixable without changing OpenWrt internals,
just remove the whole namespace idea for now.

Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
net/bpfcountd/files/etc/init.d/bpfcountd

index 1639da720c067e12d9f34bd812b5bd8f1708c254..2db2a4bac4e63f4b99f7f72d76c0398a2f632987 100755 (executable)
@@ -10,7 +10,6 @@ UNIXSOCKDIR=/var/run/bpfcountd
 
 bpfcountd_start() {
        local cfg="$1"
-       local namespace="$2"
        local disabled
 
        local ifname
@@ -37,14 +36,12 @@ bpfcountd_start() {
                return 0
        }
 
-       [ -z "$namespace" ] && namespace="bpfcountd"
-
-       procd_open_instance "$namespace.$cfg"
+       procd_open_instance "$cfg"
 
        procd_set_param command /usr/sbin/bpfcountd
        procd_append_param command -i "$ifname"
        procd_append_param command -f "$filterfile"
-       procd_append_param command -u $UNIXSOCKDIR/"$namespace.$cfg".sock
+       procd_append_param command -u $UNIXSOCKDIR/"$cfg".sock
        [ -n "$prefilter" ] && procd_append_param command -F "$prefilter"
        [ -n "$buffersize" ] && procd_append_param command -b "$buffersize"
 
@@ -56,7 +53,6 @@ bpfcountd_start() {
 
 start_service() {
        local cfg="$1"
-       local namespace="$2"
        local instance_found=0
 
        . /lib/functions/network.sh
@@ -75,22 +71,19 @@ start_service() {
 
        if [ -n "$cfg" ]; then
                [ "$instance_found" -gt 0 ] || return
-               bpfcountd_start "$cfg" "$namespace"
+               bpfcountd_start "$cfg"
        else
-               config_foreach bpfcountd_start bpfcountd "$namespace"
+               config_foreach bpfcountd_start bpfcountd
        fi
 }
 
 stop_service() {
        local cfg="$1"
-       local namespace="$2"
-
-       [ -z "$namespace" ] && namespace="bpfcountd"
 
        if [ -n "$cfg" ]; then
-               rm $UNIXSOCKDIR/$namespace.$cfg.sock
+               rm $UNIXSOCKDIR/$cfg.sock
        else
-               rm $UNIXSOCKDIR/$namespace.*.sock
+               rm $UNIXSOCKDIR/*.sock
        fi
 }