2007-09-13 Dan Williams <dcbw@redhat.com>

* libnm-glib/nm-vpn-manager.h
	  libnm-glib/nm-vpn-manager.c
		- (nm_vpn_manager_connect): take routes as a GSList, not a char **



git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2803 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
Dan Williams
2007-09-13 18:10:46 +00:00
parent fbb6eec43d
commit b6d82bcc61
3 changed files with 24 additions and 3 deletions

View File

@@ -1,3 +1,9 @@
2007-09-13 Dan Williams <dcbw@redhat.com>
* libnm-glib/nm-vpn-manager.h
libnm-glib/nm-vpn-manager.c
- (nm_vpn_manager_connect): take routes as a GSList, not a char **
2007-09-13 Dan Williams <dcbw@redhat.com> 2007-09-13 Dan Williams <dcbw@redhat.com>
* src/nm-device-802-3-ethernet.c * src/nm-device-802-3-ethernet.c

View File

@@ -41,10 +41,13 @@ nm_vpn_manager_connect (NMVPNManager *manager,
const char *name, const char *name,
GHashTable *properties, GHashTable *properties,
NMDevice *device, NMDevice *device,
char **routes) GSList *routes)
{ {
char *connection_path = NULL; char *connection_path = NULL;
GError *err = NULL; GError *err = NULL;
char **routes_array = NULL;
GSList *elt;
int i, size;
g_return_val_if_fail (NM_IS_VPN_MANAGER (manager), NULL); g_return_val_if_fail (NM_IS_VPN_MANAGER (manager), NULL);
g_return_val_if_fail (type != NULL, NULL); g_return_val_if_fail (type != NULL, NULL);
@@ -52,18 +55,30 @@ nm_vpn_manager_connect (NMVPNManager *manager,
g_return_val_if_fail (properties != NULL, NULL); g_return_val_if_fail (properties != NULL, NULL);
g_return_val_if_fail (NM_IS_DEVICE (device), NULL); g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
size = sizeof (char *) * (g_slist_length (routes) + 1);
routes_array = g_slice_alloc0 (size);
if (!routes_array) {
g_warning ("Couldn't allocate string list.");
return NULL;
}
for (elt = routes, i = 0; elt; elt = g_slist_next (elt))
routes_array[i++] = elt->data;
if (!org_freedesktop_NetworkManager_VPN_Manager_connect (NM_VPN_MANAGER_GET_PRIVATE (manager)->manager_proxy, if (!org_freedesktop_NetworkManager_VPN_Manager_connect (NM_VPN_MANAGER_GET_PRIVATE (manager)->manager_proxy,
type, name, type, name,
properties, properties,
nm_object_get_path (NM_OBJECT (device)), nm_object_get_path (NM_OBJECT (device)),
routes, (const char **) routes_array,
&connection_path, &connection_path,
&err)) { &err)) {
g_warning ("Error in VPN Connect: %s", err->message); g_warning ("Error in VPN Connect: %s", err->message);
g_error_free (err); g_error_free (err);
g_slice_free1 (size, routes_array);
return NULL; return NULL;
} }
g_slice_free1 (size, routes_array);
return nm_vpn_connection_new (nm_object_get_connection (NM_OBJECT (manager)), connection_path); return nm_vpn_connection_new (nm_object_get_connection (NM_OBJECT (manager)), connection_path);
} }

View File

@@ -38,7 +38,7 @@ NMVPNConnection *nm_vpn_manager_connect (NMVPNManager *manager,
const char *name, const char *name,
GHashTable *properties, GHashTable *properties,
NMDevice *device, NMDevice *device,
char **routes); GSList *routes);
GSList *nm_vpn_manager_get_connections (NMVPNManager *manager); GSList *nm_vpn_manager_get_connections (NMVPNManager *manager);