[Bugs] #2187 UNSP: Sugar Ad-hoc network: reconnect after suspend
Sugar Labs Bugs
bugtracker-noreply at sugarlabs.org
Wed Sep 15 04:15:51 EDT 2010
#2187: Sugar Ad-hoc network: reconnect after suspend
------------------------------------------+---------------------------------
Reporter: erikos | Owner: erikos
Type: enhancement | Status: new
Priority: Unspecified by Maintainer | Milestone: 0.90
Component: sugar | Version: Unspecified
Severity: Major | Keywords: r?
Distribution: Unspecified | Status_field: Assigned
------------------------------------------+---------------------------------
Changes (by erikos):
* keywords: => r?
Comment:
When we came out from suspend the method autoconnect was called [1]. Which
is invoked when the wireless device is being announced by NM. However, our
state was still set to NM_DEVICE_STATE_UNMANAGED [2]. Hence we returned
from the autoconnect method without doing anything [3]. The state does
change a few seconds after this, either to NM_DEVICE_STATE_DISCONNECTED
when there is no predefined connection or when connecting was successful
to NM_DEVICE_STATE_ACTIVATED.
So my first fix included to have a timer that waits a few seconds, then
checks if the state is disconnected and if not connects to an Ad-hoc
network. Dealing with the moment the device is announced and when it gets
out of the unmanaged state was rather complicated so I decided to just go
for the timer.
So the timer would handle the cases where the device is still unmanaged or
when we have an connection we were previously connected to. Left is the
case where we want to directly connect. This has the issue that we might
not wait for other Sugar Ad-hoc networks that are in the area (here is our
logic [4]). If there is another learner around that uses channel 11 we
want to connect to channel eleven too. So in this case we want to wait a
moment to check whether we have other Sugar Ad-hoc networks around.
Result: the patch above. That always waits for 30 seconds, then checks if
we are in the state disconnected and if yes applies the autoconnect logic.
Simple, but handle all the cases :)
[1]
http://git.sugarlabs.org/projects/sugar/repos/mainline/blobs/master/src/jarabe/model/adhoc.py#line141
[2] http://projects.gnome.org/NetworkManager/developers/spec-07.html#type-
NM_DEVICE_STATE
[3]
http://git.sugarlabs.org/projects/sugar/repos/mainline/blobs/master/src/jarabe/model/adhoc.py#line142
[4]
http://git.sugarlabs.org/projects/sugar/repos/mainline/blobs/master/src/jarabe/model/adhoc.py#line165
--
Ticket URL: <http://bugs.sugarlabs.org/ticket/2187#comment:1>
Sugar Labs <http://sugarlabs.org/>
Sugar Labs bug tracking system
More information about the Bugs
mailing list