Fixes
==19665== Thread 23:
==19665== Syscall param socketcall.recvfrom(fromlen_in) points to uninitialised byte(s)
==19665== at 0x5CB7B03: ??? (in /usr/lib64/libpthread-2.17.so)
==19665== by 0x447762: NetworkDiscovery::discover(lua_State*, unsigned int) (NetworkDiscovery.cpp:598)
==19665== by 0x492E1D: ntop_discover_iface_hosts(lua_State*) (Lua.cpp:2472)
==19665== by 0x555B66: lj_BC_FUNCC (in /home/simone/ntopng/ntopng)
==19665== by 0x54501C: lua_pcall (in /home/simone/ntopng/ntopng)
==19665== by 0x4E5024: LuaHandler::luaL_dofileM(bool) (LuaHandler.cpp:34)
==19665== by 0x4A0367: __ntop_lua_handlefile(lua_State*, char*, bool) (Lua.cpp:6959)
==19665== by 0x4A11ED: Lua::run_script(char*, NetworkInterface*) (Lua.cpp:7638)
==19665== by 0x4A8050: ThreadedActivity::runScript(char*, NetworkInterface*) (ThreadedActivity.cpp:162)
==19665== by 0x4A7F5B: ThreadedActivity::runScript() (ThreadedActivity.cpp:130)
==19665== by 0x4A81BD: ThreadedActivity::uSecDiffPeriodicActivityBody() (ThreadedActivity.cpp:190)
==19665== by 0x4A7E7A: ThreadedActivity::activityBody() (ThreadedActivity.cpp:107)
==19665== Address 0x26c617ac is on thread 23's stack
==19665== in frame #1, created by NetworkDiscovery::discover(lua_State*, unsigned int) (NetworkDiscovery.cpp:518)
==19665== Uninitialised value was created by a stack allocation
==19665== at 0x4474EE: NetworkDiscovery::discover(lua_State*, unsigned int) (NetworkDiscovery.cpp:518)
==19665==
==19665== Syscall param socketcall.recvfrom(fromlen_out) points to uninitialised byte(s)
==19665== at 0x5CB7B03: ??? (in /usr/lib64/libpthread-2.17.so)
==19665== by 0x447762: NetworkDiscovery::discover(lua_State*, unsigned int) (NetworkDiscovery.cpp:598)
==19665== by 0x492E1D: ntop_discover_iface_hosts(lua_State*) (Lua.cpp:2472)
==19665== by 0x555B66: lj_BC_FUNCC (in /home/simone/ntopng/ntopng)
==19665== by 0x54501C: lua_pcall (in /home/simone/ntopng/ntopng)
==19665== by 0x4E5024: LuaHandler::luaL_dofileM(bool) (LuaHandler.cpp:34)
==19665== by 0x4A0367: __ntop_lua_handlefile(lua_State*, char*, bool) (Lua.cpp:6959)
==19665== by 0x4A11ED: Lua::run_script(char*, NetworkInterface*) (Lua.cpp:7638)
==19665== by 0x4A8050: ThreadedActivity::runScript(char*, NetworkInterface*) (ThreadedActivity.cpp:162)
==19665== by 0x4A7F5B: ThreadedActivity::runScript() (ThreadedActivity.cpp:130)
==19665== by 0x4A81BD: ThreadedActivity::uSecDiffPeriodicActivityBody() (ThreadedActivity.cpp:190)
==19665== by 0x4A7E7A: ThreadedActivity::activityBody() (ThreadedActivity.cpp:107)
==19665== Address 0x26c617ac is on thread 23's stack
==19665== in frame #1, created by NetworkDiscovery::discover(lua_State*, unsigned int) (NetworkDiscovery.cpp:518)
==19665== Uninitialised value was created by a stack allocation
==19665== at 0x4474EE: NetworkDiscovery::discover(lua_State*, unsigned int) (NetworkDiscovery.cpp:518)
We set the pcap immediate mode to avoid blocking on the pcap_next calls.
In fact, by default pcap packet buffering is enabled so timeouts are not honored and we may end up waiting several seconds before receiving a packet.