2006-01-06 Robert Love <rml@novell.com>
Patch by Timo Hoenig <thoenig@suse.de>: * src/NetworkManagerSystem.h, src/nm-dbus-nm.c: Add interfaces to hangup specific dialup devices. * src/backends/NetworkManagerDebian.c, src/backends/NetworkManagerGentoo.c, src/backends/NetworkManagerRedHat.c, src/backends/NetworkManagerSlackware.c: Add stub backend. * src/backends/NetworkManagerRedHat.c, src/backends/NetworkManagerSuSE.c: Add specific backend interface to hangup specific dialup devices. git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1272 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
13
ChangeLog
13
ChangeLog
@@ -1,3 +1,16 @@
|
||||
2006-01-06 Robert Love <rml@novell.com>
|
||||
|
||||
Patch by Timo Hoenig <thoenig@suse.de>:
|
||||
* src/NetworkManagerSystem.h, src/nm-dbus-nm.c: Add interfaces to
|
||||
hangup specific dialup devices.
|
||||
* src/backends/NetworkManagerDebian.c,
|
||||
src/backends/NetworkManagerGentoo.c,
|
||||
src/backends/NetworkManagerRedHat.c,
|
||||
src/backends/NetworkManagerSlackware.c: Add stub backend.
|
||||
* src/backends/NetworkManagerRedHat.c,
|
||||
src/backends/NetworkManagerSuSE.c: Add specific backend interface to
|
||||
hangup specific dialup devices.
|
||||
|
||||
2006-01-04 Robert Love <rml@novell.com>
|
||||
|
||||
* gnome/applet/applet-dbus-devices.c,
|
||||
|
@@ -74,6 +74,7 @@ gboolean nm_system_device_update_resolv_conf (void *data, int len, const char
|
||||
GSList * nm_system_get_dialup_config (void);
|
||||
void nm_system_deactivate_all_dialup (GSList *list);
|
||||
gboolean nm_system_activate_dialup (GSList *list, const char *dialup);
|
||||
gboolean nm_system_deactivate_dialup (GSList *list, const char *dialup);
|
||||
|
||||
void nm_system_activate_nis (NMIP4Config *config);
|
||||
void nm_system_shutdown_nis (void);
|
||||
|
@@ -653,6 +653,30 @@ void nm_system_deactivate_all_dialup (GSList *list)
|
||||
}
|
||||
}
|
||||
|
||||
gboolean nm_system_deactivate_dialup (GSList *list, const char *dialup)
|
||||
{
|
||||
GSList *elt;
|
||||
gboolean ret = FALSE;
|
||||
|
||||
for (elt = list; elt; elt = g_slist_next (elt))
|
||||
{
|
||||
NMDialUpConfig *config = (NMDialUpConfig *) elt->data;
|
||||
if (strcmp (dialup, config->name) == 0)
|
||||
{
|
||||
char *cmd;
|
||||
|
||||
nm_info ("Deactivating dialup device %s (%s) ...", dialup, (char *) config->data);
|
||||
cmd = g_strdup_printf ("/sbin/ifdown %s", (char *) config->data);
|
||||
nm_spawn_process (cmd);
|
||||
g_free (cmd);
|
||||
ret = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
gboolean nm_system_activate_dialup (GSList *list, const char *dialup)
|
||||
{
|
||||
GSList *elt;
|
||||
|
@@ -510,6 +510,11 @@ void nm_system_deactivate_all_dialup (GSList *list)
|
||||
{
|
||||
}
|
||||
|
||||
gboolean nm_system_deactivate_dialup (GSList *list, const char *dialup)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
gboolean nm_system_activate_dialup (GSList *list, const char *dialup)
|
||||
{
|
||||
return FALSE;
|
||||
|
@@ -666,6 +666,38 @@ void nm_system_deactivate_all_dialup (GSList *list)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
gboolean nm_system_deactivate_dialup (GSList *list, const char *dialup)
|
||||
{
|
||||
GSList *l;
|
||||
gboolean ret = FALSE;
|
||||
|
||||
for (l = list; l; l = g_slist_next (l))
|
||||
{
|
||||
NMDialUpConfig *config = (NMDialUpConfig *) l->data;
|
||||
if (strcmp (dialup, config->name) == 0)
|
||||
{
|
||||
char *cmd;
|
||||
int status;
|
||||
|
||||
nm_info ("Dectivating dialup device %s (%s) ...", dialup, (char *) config->data);
|
||||
cmd = g_strdup_printf ("/sbin/ifdown %s", (char *) config->data);
|
||||
status = nm_spawn_process (cmd);
|
||||
g_free (cmd);
|
||||
if (status == 0) {
|
||||
ret = TRUE;
|
||||
} else {
|
||||
/* FIXME: Decode errors into something sensible */
|
||||
nm_warning ("Couldn't deactivate dialup device %s (%s) - %d", dialup, (char *) config->data, status);
|
||||
ret = FALSE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
gboolean nm_system_activate_dialup (GSList *list, const char *dialup)
|
||||
{
|
||||
GSList *l;
|
||||
|
@@ -334,6 +334,11 @@ void nm_system_deactivate_all_dialup (GSList *list)
|
||||
{
|
||||
}
|
||||
|
||||
gboolean nm_system_deactivate_dialup (GSList *list, const char *dialup)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
gboolean nm_system_activate_dialup (GSList *list, const char *dialup)
|
||||
{
|
||||
return FALSE;
|
||||
|
@@ -699,6 +699,39 @@ void nm_system_deactivate_all_dialup (GSList *list)
|
||||
}
|
||||
|
||||
|
||||
gboolean nm_system_deactivate_dialup (GSList *list, const char *dialup)
|
||||
{
|
||||
GSList *elt;
|
||||
gboolean ret = FALSE;
|
||||
|
||||
for (elt = list; elt; elt = g_slist_next (elt))
|
||||
{
|
||||
NMDialUpConfig *config = (NMDialUpConfig *) elt->data;
|
||||
if (strcmp (dialup, config->name) == 0)
|
||||
{
|
||||
char *cmd;
|
||||
|
||||
nm_info ("Deactivating dialup device %s (%s) ...", dialup, (char *) config->data);
|
||||
|
||||
cmd = g_strdup_printf ("/sbin/ifdown %s", (char *) config->data);
|
||||
nm_spawn_process (cmd);
|
||||
g_free (cmd);
|
||||
|
||||
if (config->type == NM_DIALUP_TYPE_ISDN) {
|
||||
cmd = g_strdup_printf ("/sbin/isdnctrl hangup %s", (char *) config->data);
|
||||
nm_spawn_process (cmd);
|
||||
g_free (cmd);
|
||||
}
|
||||
|
||||
ret = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
gboolean nm_system_activate_dialup (GSList *list, const char *dialup)
|
||||
{
|
||||
GSList *elt;
|
||||
|
@@ -177,6 +177,39 @@ out:
|
||||
}
|
||||
|
||||
|
||||
static DBusMessage *nm_dbus_nm_deactivate_dialup (DBusConnection *connection, DBusMessage *message, NMDbusCBData *data)
|
||||
{
|
||||
DBusMessage *reply = NULL;
|
||||
NMData *nm_data = (NMData *) data->data;
|
||||
const char *dialup;
|
||||
|
||||
g_return_val_if_fail (data != NULL, NULL);
|
||||
g_return_val_if_fail (data->data != NULL, NULL);
|
||||
g_return_val_if_fail (connection != NULL, NULL);
|
||||
g_return_val_if_fail (message != NULL, NULL);
|
||||
|
||||
reply = dbus_message_new_method_return (message);
|
||||
if (!reply)
|
||||
return NULL;
|
||||
|
||||
if (!dbus_message_get_args (message, NULL, DBUS_TYPE_STRING, &dialup, DBUS_TYPE_INVALID))
|
||||
{
|
||||
reply = nm_dbus_create_error_message (message, NM_DBUS_INTERFACE, "InvalidArguments",
|
||||
"NetworkManager::deactivateDialup called with invalid arguments.");
|
||||
goto out;
|
||||
}
|
||||
|
||||
nm_lock_mutex (nm_data->dialup_list_mutex, __FUNCTION__);
|
||||
if (!nm_system_deactivate_dialup (nm_data->dialup_list, dialup))
|
||||
reply = nm_dbus_create_error_message (message, NM_DBUS_INTERFACE, "DeactivationFailed",
|
||||
"Failed to deactivate the dialup device.");
|
||||
nm_unlock_mutex (nm_data->dialup_list_mutex, __FUNCTION__);
|
||||
|
||||
out:
|
||||
return reply;
|
||||
}
|
||||
|
||||
|
||||
static DBusMessage *nm_dbus_nm_hangup_dialup (DBusConnection *connection, DBusMessage *message, NMDbusCBData *data)
|
||||
{
|
||||
DBusMessage *reply = NULL;
|
||||
@@ -611,6 +644,7 @@ NMDbusMethodList *nm_dbus_nm_methods_setup (void)
|
||||
nm_dbus_method_list_add_method (list, "getDevices", nm_dbus_nm_get_devices);
|
||||
nm_dbus_method_list_add_method (list, "getDialup", nm_dbus_nm_get_dialup);
|
||||
nm_dbus_method_list_add_method (list, "activateDialup", nm_dbus_nm_activate_dialup);
|
||||
nm_dbus_method_list_add_method (list, "deactivateDialup", nm_dbus_nm_deactivate_dialup);
|
||||
nm_dbus_method_list_add_method (list, "hangupDialup", nm_dbus_nm_hangup_dialup);
|
||||
nm_dbus_method_list_add_method (list, "setActiveDevice", nm_dbus_nm_set_active_device);
|
||||
nm_dbus_method_list_add_method (list, "createWirelessNetwork", nm_dbus_nm_create_wireless_network);
|
||||
|
@@ -328,7 +328,9 @@ out:
|
||||
/**************************************/
|
||||
/* MII capability detection */
|
||||
/**************************************/
|
||||
#define _LINUX_IF_H
|
||||
#include <linux/mii.h>
|
||||
#undef _LINUX_IF_H
|
||||
|
||||
static int
|
||||
mdio_read (NMDevice8023Ethernet *self, NMSock *sk, struct ifreq *ifr, int location)
|
||||
|
@@ -29,6 +29,12 @@
|
||||
|
||||
#include "nm-device.h"
|
||||
|
||||
/* define the kernel types until mii.h and ethtool.h are fixed */
|
||||
#define u64 __u64
|
||||
#define u32 __u32
|
||||
#define u16 __u16
|
||||
#define u8 __u8
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define NM_TYPE_DEVICE_802_3_ETHERNET (nm_device_802_3_ethernet_get_type ())
|
||||
|
@@ -30,7 +30,7 @@
|
||||
#include <linux/types.h>
|
||||
#include <linux/netlink.h>
|
||||
#include <linux/rtnetlink.h>
|
||||
#include <linux/if.h>
|
||||
#include <net/if.h>
|
||||
#include <linux/unistd.h>
|
||||
#include <unistd.h>
|
||||
|
||||
|
Reference in New Issue
Block a user