2006-10-24 Dan Williams <dcbw@redhat.com>

* src/vpn-daemons/nm-dbus-vpnc.c
		- (nm_dbus_vpn_update_one_connection_cb): unregister pending call in
			pending call tracker
		- (nm_dbus_vpn_connections_update_cb): unregister pending call in
			pending call tracker; register one-vpn-connection update pending
			call in pending call tracker
		- (nm_dbus_vpn_update_one_vpn_connection): register one-vpn-connection
			update pending call in pending call tracker
		- (nm_dbus_vpn_connections_update_from_nmi): register vpn-connections
			update pending call in pending call tracker; don't block waiting
			for call to return


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2082 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
Dan Williams 2006-10-25 02:42:18 +00:00
parent f28d6ffcf1
commit 76a78cba54
2 changed files with 45 additions and 33 deletions

View file

@ -1,3 +1,17 @@
2006-10-24 Dan Williams <dcbw@redhat.com>
* src/vpn-daemons/nm-dbus-vpnc.c
- (nm_dbus_vpn_update_one_connection_cb): unregister pending call in
pending call tracker
- (nm_dbus_vpn_connections_update_cb): unregister pending call in
pending call tracker; register one-vpn-connection update pending
call in pending call tracker
- (nm_dbus_vpn_update_one_vpn_connection): register one-vpn-connection
update pending call in pending call tracker
- (nm_dbus_vpn_connections_update_from_nmi): register vpn-connections
update pending call in pending call tracker; don't block waiting
for call to return
2006-10-19 Robert Love <rml@novell.com>
* src/backends/NetworkManagerSuSE.c: Don't ever restart nscd; just

View file

@ -406,6 +406,8 @@ nm_dbus_vpn_update_one_connection_cb (DBusPendingCall *pcall,
g_return_if_fail (cb_data->data != NULL);
g_return_if_fail (cb_data->data->vpn_manager != NULL);
nm_dbus_send_with_callback_replied (pcall, __func__);
dbus_pending_call_ref (pcall);
if (!dbus_pending_call_get_completed (pcall))
@ -502,6 +504,8 @@ nm_dbus_vpn_connections_update_cb (DBusPendingCall *pcall,
g_return_if_fail (pcall);
g_return_if_fail (data != NULL);
nm_dbus_send_with_callback_replied (pcall, __func__);
dbus_pending_call_ref (pcall);
if (!dbus_pending_call_get_completed (pcall))
@ -542,23 +546,21 @@ nm_dbus_vpn_connections_update_cb (DBusPendingCall *pcall,
NMI_DBUS_INTERFACE,
"getVPNConnectionProperties");
if (message) {
DBusPendingCall * vpn_pcall = NULL;
UpdateOneVPNCBData * vpn_cb_data = g_slice_new0 (UpdateOneVPNCBData);
dbus_message_append_args (message,
DBUS_TYPE_STRING, &con_name,
DBUS_TYPE_INVALID);
dbus_connection_send_with_reply (dbus_connection, message, &vpn_pcall, -1);
dbus_message_unref (message);
if (vpn_pcall) {
UpdateOneVPNCBData * vpn_cb_data = g_slice_new0 (UpdateOneVPNCBData);
vpn_cb_data->data = data;
vpn_cb_data->vpn = g_strdup (con_name);
dbus_pending_call_set_notify (vpn_pcall,
nm_dbus_vpn_update_one_connection_cb,
vpn_cb_data,
(DBusFreeFunction) free_update_one_vpn_cb_data);
}
vpn_cb_data->data = data;
vpn_cb_data->vpn = g_strdup (con_name);
nm_dbus_send_with_callback (dbus_connection,
message,
(DBusPendingCallNotifyFunction) nm_dbus_vpn_update_one_connection_cb,
vpn_cb_data,
(DBusFreeFunction) free_update_one_vpn_cb_data,
__func__);
dbus_message_unref (message);
}
dbus_message_iter_next (&array_iter);
}
@ -593,7 +595,7 @@ nm_dbus_vpn_update_one_vpn_connection (DBusConnection *connection,
NMData *data)
{
DBusMessage * message;
DBusPendingCall * pcall = NULL;
UpdateOneVPNCBData *cb_data;
g_return_if_fail (connection != NULL);
g_return_if_fail (vpn != NULL);
@ -609,18 +611,17 @@ nm_dbus_vpn_update_one_vpn_connection (DBusConnection *connection,
}
dbus_message_append_args (message, DBUS_TYPE_STRING, &vpn, DBUS_TYPE_INVALID);
dbus_connection_send_with_reply (connection, message, &pcall, -1);
dbus_message_unref (message);
if (pcall) {
UpdateOneVPNCBData * cb_data = g_slice_new0 (UpdateOneVPNCBData);
cb_data->data = data;
cb_data->vpn = g_strdup (vpn);
dbus_pending_call_set_notify (pcall,
nm_dbus_vpn_update_one_connection_cb,
cb_data,
(DBusFreeFunction) free_update_one_vpn_cb_data);
}
cb_data = g_slice_new0 (UpdateOneVPNCBData);
cb_data->data = data;
cb_data->vpn = g_strdup (vpn);
nm_dbus_send_with_callback (connection,
message,
(DBusPendingCallNotifyFunction) nm_dbus_vpn_update_one_connection_cb,
cb_data,
(DBusFreeFunction) free_update_one_vpn_cb_data,
__func__);
dbus_message_unref (message);
}
@ -634,7 +635,6 @@ static gboolean
nm_dbus_vpn_connections_update_from_nmi (NMData *data)
{
DBusMessage * message;
DBusPendingCall * pcall;
NMDBusManager * dbus_mgr;
DBusConnection * dbus_connection;
@ -656,15 +656,13 @@ nm_dbus_vpn_connections_update_from_nmi (NMData *data)
goto out;
}
dbus_connection_send_with_reply (dbus_connection, message, &pcall, -1);
nm_dbus_send_with_callback (dbus_connection,
message,
(DBusPendingCallNotifyFunction) nm_dbus_vpn_connections_update_cb,
data,
NULL,
__func__);
dbus_message_unref (message);
if (pcall) {
dbus_pending_call_set_notify (pcall,
nm_dbus_vpn_connections_update_cb,
data,
NULL);
dbus_pending_call_block (pcall);
}
out:
g_object_unref (dbus_mgr);