Hi Patrik,
On Mon, Feb 27, 2017 at 6:55 AM, Patrik Flykt
<Patrik.Flykt(a)linux.intel.com> wrote:
Seems to work much better for the connected case. I used to see
disconnects followed by reconnects quite a few times a day, they are
now gone - or then the WiFi network got fixed this year, but is of a
much lesser probability than ConnMan gettign fixed.
That said, waking up from suspend makes wpa_supplicant disconnect every
connection attempt after resuming with:
connmand[6925]: plugins/wifi.c:disconnect_callback() result -5 supplicant interface
0x557a82af5bd0 wifi 0x557a82aeb840
This goes away if wpa_supplicant is restarted. Some other "feature" of
wpa_supplicant got exposed as a result?
Sorry for the delay to reply, I was out-of-office. This is my
analysis, I hope I correctly got what you mean.
Well, we do not allow to suspend our devices thus we have never tried
it before and this is indeed another case of reconnection after a
disconnection notified from wpa_s. However, this does not trigger this
path set because AP does not actually "disappear".
In any case, I tried to reproduce your problem and I found that when
the system is suspended, I immediately can see on the AP the
disconnection of such STA. Then, on the STA side, right after wpa_s
wakes up from "System suspend notification", it receives the
deauthenticate event. At this point, wpa_suuplicant is aware of the
actual link state and it correctly notifies disconnection to ConnMan
which starts auto-connect procedure. Now, ConnMan is ready for the
incoming reconnection and the full-chain get updated successfully in
my system.
Therefore, I could not reproduce your problem, I am not sure how
ConnMan fell on disconnect_callback() in this use case. Looking
briefly at the code, you could only fall there if is ConnMan itself
who asks for disconnection and this should not be the case. I have a
question, is this a regression after this patch set or is this
something that already happens in the past?
In addition, as you know, that -5 in your log is the mapping ConnMan
does to wpa_s errors, I think ConnMan should at least print the actual
wpa_s error in order to find it into the logs later for the analysis.
For instance, that would be very useful in cases like this, do you
agree?
diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c
index 36c4dd5..0862e45 100644
--- a/gsupplicant/supplicant.c
+++ b/gsupplicant/supplicant.c
@@ -4987,7 +4987,9 @@ static void interface_disconnect_result(const char *error,
SUPPLICANT_DBG("");
if (error) {
+ SUPPLICANT_DBG("error %s");
result = -EIO;
+
if (g_strcmp0("org.freedesktop.DBus.Error.UnknownMethod",
error) == 0)
result = -ECONNABORTED;
Regards,
Jose Blanquicet