[pkg-wpa-devel] Bug#838291: wpasupplicant: networking.service fails to bring up wlan interface, when VERBOSE set to yes

Dmitriy Matrosov sgf.dma at gmail.com
Thu Aug 10 13:10:06 UTC 2017


On August 10, 2017 3:02:03 PM GMT+03:00, Kilian Krause <kilian at debian.org> wrote:
>Hi Dmitriy,
>
>since your bug actually breaks non-VERBOSE mode, I'd suggest using as
>patch:
>--(snip)--
># diff -u /etc/wpa_supplicant/functions.sh /tmp/functions.sh 
>--- /etc/wpa_supplicant/functions.sh    2017-02-20 11:55:11.000000000
>+0100
>+++ /tmp/functions.sh   2017-08-10 13:58:58.532248148 +0200
>@@ -49,7 +49,7 @@
> 
> # verbosity variables
> if [ -n "$IF_WPA_VERBOSITY" ] || [ "$VERBOSITY" = "1" ]; then
>-       TO_NULL="/dev/stdout"
>+       TO_NULL="&1"
>        DAEMON_VERBOSITY="--verbose"
> else
>        TO_NULL="/dev/null"
>@@ -117,7 +117,7 @@
>                        ;;
>                "stderr")
>                        shift
>-                       echo "$WPA_SUP_PNAME: $@" >/dev/stderr
>+                       echo "$WPA_SUP_PNAME: $@" >&2
>                        ;;
>                *)
>                        ;;
># 
>--(snip)--
>
>That one works for me and does maintain the current feature set.
>
>Best,
>Kilian

Hi.

I don't understand your patch. Following constructs do not work for me:

$ sh -c '( v="&1"; echo abc >$v; )'
$ sh -c '( v="/dev/null"; echo abc >$v; )'
$ bash -c '( v="&1"; echo abc >$v; )'
$ bash -c '( v="/dev/null"; echo abc >$v; )'
$

Only this one does:

$ sh -c '( v="&1"; eval "echo abc >$v"; )'
abc
$ sh -c '( v="/dev/null"; eval "echo abc >$v"; )'
$

In other words, as far as i understand, your patch breaks verbose mode.

But mine seems breaking non-verbose mode, yes, i see that now. I'm not sure,
whether using `eval` is a good fix. If not, `echo` lines may be rewritten
to
use separate function, which will log appropriately. And `wpa_cli`.. also
may
be rewritten as function. E.g.

run_and_log wpa_cli $WPACLISET_VARIABLE "$WPACLISET_VALUE"

which will just treat its first argument as command, or (may be safer) as

wpa_cli_wlog $WPACLISET_VARIABLE "$WPACLISET_VALUE"

which will just handle verbosity as appropriate.

(i didn't test this, just speculating and may be wrong.)



More information about the Pkg-wpa-devel mailing list