luci-app-bmx6: Avoid race condition in bmx6json.lua get() 437/head
authorRoger Pueyo Centelles <roger.pueyo@guifi.net>
Sun, 9 Dec 2018 19:55:05 +0000 (20:55 +0100)
committerRoger Pueyo Centelles <roger.pueyo@guifi.net>
Sun, 9 Dec 2018 20:06:18 +0000 (21:06 +0100)
The network topology of a BMX6 mesh can be obtained by asking all the nodes
about their links via the bmx6-info script. The wget() function in the
bmx6json.lua file is part of the process, but it often returns nil, even if
the remote data can actually be fetched, in what seems to be a race condition.
By calling the sys.exec("") function empty, the race condition disappears.

Dirty fix to https://github.com/openwrt-routing/packages/issues/436.

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
luci-app-bmx6/bmx6/usr/lib/lua/luci/model/bmx6json.lua

index a4a8e438ef5d63acafb2458f18ffc1afbdee8f8e..a61362b97b3db69820fa1c7b73402e27ee088eb0 100644 (file)
@@ -59,6 +59,7 @@ function get(field, host)
 
        if json_url[1] == "http"  then
                raw,err = wget(url..field,1000)
+               sys.exec("")
        else
 
                if json_url[1] == "exec" then