nerves-networking/vintage_net_wifi

Exceptions raised when BSS information requests time out

fhunleth opened this issue · 0 comments

Here's an example:

22:01:05.499 [error] GenServer {VintageNet.Interface.Registry, {VintageNetWiFi.WPASupplicant, "wlan0"}} terminating
** (stop) exited in: GenServer.call(#PID<0.2483.0>, {:control_request, "BSS d4:b9:2f:12:9b:02"}, 5000)
    ** (EXIT) time out
    (elixir 1.10.4) lib/gen_server.ex:1023: GenServer.call/3
    (vintage_net_wifi 0.9.0) lib/vintage_net_wifi/wpa_supplicant.ex:486: VintageNetWiFi.WPASupplicant.get_access_point_info/2
    (vintage_net_wifi 0.9.0) lib/vintage_net_wifi/wpa_supplicant.ex:212: VintageNetWiFi.WPASupplicant.handle_notification/2
    (vintage_net_wifi 0.9.0) lib/vintage_net_wifi/wpa_supplicant.ex:197: VintageNetWiFi.WPASupplicant.handle_info/2
    (stdlib 3.13.2) gen_server.erl:680: :gen_server.try_dispatch/4
    (stdlib 3.13.2) gen_server.erl:756: :gen_server.handle_msg/6
    (stdlib 3.13.2) proc_lib.erl:226: :proc_lib.init_p_do_apply/3
Last message: {VintageNetWiFi.WPASupplicantLL, 3, "CTRL-EVENT-BSS-ADDED 0 d4:b9:2f:12:9b:02"}
State: %{access_points: %{}, ap_mode: false, clients: [], control_dir: "/tmp/vintage_net/wpa_supplicant", current_ap: nil, eap_status: %VintageNet.Interface.EAPStatus{method: nil, remote_certificate_verified?: false, status: nil, timestamp: nil}, ifname: "wlan0", keep_alive_interval: 60000, ll: #PID<0.2483.0>, peers: [], verbose: false, wpa_supplicant: "wpa_supplicant", wpa_supplicant_conf_path: "/tmp/vintage_net/wpa_supplicant.conf.wlan0"}

Apparently whatever device that was that announced itself left when the wpa_supplicant was asked for more information on it. It seems like there's got to be a better way of recording information about added BSS events rather than turning around and asking for more information and timing out.