Re: [Evolution] Evolution and VPNs revisited.



On Tue, 2014-05-06 at 21:58 +0100, Pete Biggs wrote:
Presumably because Evo holds open the TCP socket connection and when you
start the VPN it all gets confused.  I suppose the correct thing that
Evo should do is listen for DBUS (or whatever) network events and drop
and reform the connection when necessary.

Pete's right.  The problem was prior to 3.12, Evolution had no concept
of VPNs.  There was either a network available or there wasn't, and it
applied that globally.

GLib these days provides network monitoring functionality driven by a
Netlink socket [1], and can inform applications of whether a route is
(potentially) available for a particular host name.

Evolution 3.12 utilizes this feature in such a way that each account
reacts independently to network state changes.  If the host name for an
account is found to be unreachable after a network state change, the
account automatically closes its TCP socket (if connected) and remains
in an "offline" state until a route to the remote host is (potentially)
available again.

This should help Evolution behave better for accounts behind VPNs and
also recover more gracefully from suspend/resume events.

Matthew Barnes


[1] http://en.wikipedia.org/wiki/Netlink



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]