From 815a0b18e1b97346b2f690412bd9e9d6d8d4f4a2 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Fri, 29 Jun 2012 15:34:12 -0500 Subject: [PATCH] vpn: restore VpnStateChanged D-Bus signal API The DNS change frequency reduction patches mistakenly changed the signature of the VpnStateChanged signal. Fix that, since we try really really hard not to break the D-Bus API in stable branches. My bad... --- src/vpn-manager/nm-vpn-connection.c | 14 ++++++++++++-- src/vpn-manager/nm-vpn-connection.h | 10 ++++++++-- src/vpn-manager/nm-vpn-manager.c | 2 +- src/vpn-manager/nm-vpn-service.c | 2 +- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/vpn-manager/nm-vpn-connection.c b/src/vpn-manager/nm-vpn-connection.c index 5f64153b28..1820ede3f6 100644 --- a/src/vpn-manager/nm-vpn-connection.c +++ b/src/vpn-manager/nm-vpn-connection.c @@ -104,6 +104,7 @@ typedef struct { enum { PROPERTIES_CHANGED, VPN_STATE_CHANGED, + INTERNAL_STATE_CHANGED, LAST_SIGNAL }; @@ -223,7 +224,8 @@ nm_vpn_connection_set_vpn_state (NMVPNConnection *connection, */ g_object_ref (connection); - g_signal_emit (connection, signals[VPN_STATE_CHANGED], 0, vpn_state, old_vpn_state, reason); + g_signal_emit (connection, signals[VPN_STATE_CHANGED], 0, vpn_state, reason); + g_signal_emit (connection, signals[INTERNAL_STATE_CHANGED], 0, vpn_state, old_vpn_state, reason); g_object_notify (G_OBJECT (connection), NM_VPN_CONNECTION_VPN_STATE); switch (vpn_state) { @@ -1600,7 +1602,15 @@ nm_vpn_connection_class_init (NMVPNConnectionClass *connection_class) /* signals */ signals[VPN_STATE_CHANGED] = - g_signal_new (NM_VPN_CONNECTION_VPN_STATE_CHANGED, + g_signal_new ("vpn-state-changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, NULL, NULL, + _nm_marshal_VOID__UINT_UINT, + G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT); + + signals[INTERNAL_STATE_CHANGED] = + g_signal_new (NM_VPN_CONNECTION_INTERNAL_STATE_CHANGED, G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, 0, NULL, NULL, diff --git a/src/vpn-manager/nm-vpn-connection.h b/src/vpn-manager/nm-vpn-connection.h index 0e4f1a0498..1faf5d5a50 100644 --- a/src/vpn-manager/nm-vpn-connection.h +++ b/src/vpn-manager/nm-vpn-connection.h @@ -39,7 +39,8 @@ #define NM_VPN_CONNECTION_BANNER "banner" /* Signals */ -#define NM_VPN_CONNECTION_VPN_STATE_CHANGED "vpn-state-changed" +/* not exported: includes old reason code */ +#define NM_VPN_CONNECTION_INTERNAL_STATE_CHANGED "internal-state-changed" typedef struct { @@ -52,8 +53,13 @@ typedef struct { /* Signals */ void (*vpn_state_changed) (NMVPNConnection *connection, NMVPNConnectionState new_state, - NMVPNConnectionState old_state, NMVPNConnectionStateReason reason); + + /* not exported over D-Bus */ + void (*internal_state_changed) (NMVPNConnection *connection, + NMVPNConnectionState new_state, + NMVPNConnectionState old_state, + NMVPNConnectionStateReason reason); } NMVPNConnectionClass; GType nm_vpn_connection_get_type (void); diff --git a/src/vpn-manager/nm-vpn-manager.c b/src/vpn-manager/nm-vpn-manager.c index a462f54735..8bfa82aed9 100644 --- a/src/vpn-manager/nm-vpn-manager.c +++ b/src/vpn-manager/nm-vpn-manager.c @@ -189,7 +189,7 @@ nm_vpn_manager_activate_connection (NMVPNManager *manager, vpn = nm_vpn_service_activate (service, connection, device, specific_object, user_requested, user_uid, error); if (vpn) { - g_signal_connect (vpn, NM_VPN_CONNECTION_VPN_STATE_CHANGED, + g_signal_connect (vpn, NM_VPN_CONNECTION_INTERNAL_STATE_CHANGED, G_CALLBACK (connection_vpn_state_changed), manager); } diff --git a/src/vpn-manager/nm-vpn-service.c b/src/vpn-manager/nm-vpn-service.c index a2c8b10069..8fdf6c161f 100644 --- a/src/vpn-manager/nm-vpn-service.c +++ b/src/vpn-manager/nm-vpn-service.c @@ -351,7 +351,7 @@ nm_vpn_service_activate (NMVPNService *service, clear_quit_timeout (service); vpn = nm_vpn_connection_new (connection, device, specific_object, user_requested, user_uid); - g_signal_connect (vpn, NM_VPN_CONNECTION_VPN_STATE_CHANGED, + g_signal_connect (vpn, NM_VPN_CONNECTION_INTERNAL_STATE_CHANGED, G_CALLBACK (connection_vpn_state_changed), service);