[Pidgin] #1452: networkmanager integration broken

Pidgin trac at pidgin.im
Thu May 31 02:56:15 EDT 2007


#1452: networkmanager integration broken
--------------------------+-------------------------------------------------
 Reporter:  PierreOssman  |       Type:  defect
   Status:  new           |   Priority:  minor 
Component:  libpurple     |    Version:  2.0.0 
 Keywords:                |    Pending:  0     
--------------------------+-------------------------------------------------
 This is copied from the sourceforge tracker. The issue still remains in
 2.0.0.

     I really like this new integration with NetworkManager. It makes using
 gaim on a laptop really fantastic.

     In beta 6 however, things stopped working. It communicates with NM (I
 see "waiting for network") but it doesn't really do anything. So it
 doesn't reconnect when I move from one connection to another, meaning I
 have to wait for a connection reset/timeout or manually disconnect and
 reconnect.

 Problem is for all protocols.

 Also:

     This broke in revision 17811, as backing out that change fixes the
 problem:

     http://gaim.svn.sourceforge.net/viewvc/gaim?view=rev&revision=17811

     I think the new code added in that revision is supposed to keep the
 connection alive in case network detection mistakenly detects a
 disconnect. However, it doesn't work for me under linux with
 networkmanager.

 And:

     Ok, I think I understand. The idea behind the new code was "If we get
 told that our network connection has been disconnected, we'll try to
 actually use the connection to make sure. If we've really been
 disconnected, we'll get an error. If not, it's a false alarm and we
 shouldn't do anything".

     Unfortunately this logic doesn't work under linux because send() on a
 TCP socket will succeed even if there's no network connection. So the
 error doesn't occur and gaim gets stuck thinking it has a connection when
 it actually doesn't. Even re-establishing the network connection does not
 fix this, so gaim stays in a zombie state until you reconnect manually.

     This code should be backed out or #ifdef'd out under linux.

-- 
Ticket URL: <http://developer.pidgin.im/ticket/1452>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list