Mercurial > pidgin
changeset 32513:5a9c9789e755
*** Plucked rev 10ead4688e3af4132d454fa3bc241480500651c9 (dcbw@redhat.com):
Support new connection states and signals for NetworkManager 0.9+.
Fixes #13859.
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Wed, 15 Feb 2012 09:39:56 +0000 |
parents | a3e32be01b16 |
children | d4d647e6cb66 |
files | ChangeLog libpurple/network.c |
diffstat | 2 files changed, 24 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Mon Feb 13 03:57:10 2012 +0000 +++ b/ChangeLog Wed Feb 15 09:39:56 2012 +0000 @@ -4,6 +4,10 @@ General: * Fix compilation when using binutils 2.22 and new GDK pixbuf. (#14799) + libpurple: + * Support new connection states and signals for NetworkManager 0.9+. + (Dan Williams) (#13859) + AIM and ICQ: * Allow signing on with usernames containing periods and underscores. (#13500)
--- a/libpurple/network.c Mon Feb 13 03:57:10 2012 +0000 +++ b/libpurple/network.c Wed Feb 15 09:39:56 2012 +0000 @@ -833,8 +833,20 @@ purple_debug_warning("network", "NetworkManager not active. Assuming connection exists.\n"); } - if (nm_state == NM_STATE_UNKNOWN || nm_state == NM_STATE_CONNECTED) - return TRUE; + switch (nm_state) + { + case NM_STATE_UNKNOWN: +#if NM_CHECK_VERSION(0,8,992) + case NM_STATE_CONNECTED_LOCAL: + case NM_STATE_CONNECTED_SITE: + case NM_STATE_CONNECTED_GLOBAL: +#else + case NM_STATE_CONNECTED: +#endif + return TRUE; + default: + break; + } return FALSE; @@ -1171,9 +1183,14 @@ NM_DBUS_SERVICE, NM_DBUS_PATH, NM_DBUS_INTERFACE); + /* NM 0.6 signal */ dbus_g_proxy_add_signal(nm_proxy, "StateChange", G_TYPE_UINT, G_TYPE_INVALID); dbus_g_proxy_connect_signal(nm_proxy, "StateChange", G_CALLBACK(nm_state_change_cb), NULL, NULL); + /* NM 0.7 and later signal */ + dbus_g_proxy_add_signal(nm_proxy, "StateChanged", G_TYPE_UINT, G_TYPE_INVALID); + dbus_g_proxy_connect_signal(nm_proxy, "StateChanged", + G_CALLBACK(nm_state_change_cb), NULL, NULL); dbus_proxy = dbus_g_proxy_new_for_name(nm_conn, DBUS_SERVICE_DBUS, @@ -1208,6 +1225,7 @@ #ifdef HAVE_NETWORKMANAGER if (nm_proxy) { dbus_g_proxy_disconnect_signal(nm_proxy, "StateChange", G_CALLBACK(nm_state_change_cb), NULL); + dbus_g_proxy_disconnect_signal(nm_proxy, "StateChanged", G_CALLBACK(nm_state_change_cb), NULL); g_object_unref(G_OBJECT(nm_proxy)); } if (dbus_proxy) {