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>
|
2006-01-04 Robert Love <rml@novell.com>
|
||||||
|
|
||||||
* gnome/applet/applet-dbus-devices.c,
|
* 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);
|
GSList * nm_system_get_dialup_config (void);
|
||||||
void nm_system_deactivate_all_dialup (GSList *list);
|
void nm_system_deactivate_all_dialup (GSList *list);
|
||||||
gboolean nm_system_activate_dialup (GSList *list, const char *dialup);
|
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_activate_nis (NMIP4Config *config);
|
||||||
void nm_system_shutdown_nis (void);
|
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)
|
gboolean nm_system_activate_dialup (GSList *list, const char *dialup)
|
||||||
{
|
{
|
||||||
GSList *elt;
|
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)
|
gboolean nm_system_activate_dialup (GSList *list, const char *dialup)
|
||||||
{
|
{
|
||||||
return FALSE;
|
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)
|
gboolean nm_system_activate_dialup (GSList *list, const char *dialup)
|
||||||
{
|
{
|
||||||
GSList *l;
|
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)
|
gboolean nm_system_activate_dialup (GSList *list, const char *dialup)
|
||||||
{
|
{
|
||||||
return FALSE;
|
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)
|
gboolean nm_system_activate_dialup (GSList *list, const char *dialup)
|
||||||
{
|
{
|
||||||
GSList *elt;
|
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)
|
static DBusMessage *nm_dbus_nm_hangup_dialup (DBusConnection *connection, DBusMessage *message, NMDbusCBData *data)
|
||||||
{
|
{
|
||||||
DBusMessage *reply = NULL;
|
DBusMessage *reply = NULL;
|
||||||
@@ -611,7 +644,8 @@ 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, "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, "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, "activateDialup", nm_dbus_nm_activate_dialup);
|
||||||
nm_dbus_method_list_add_method (list, "hangupDialup", nm_dbus_nm_hangup_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, "setActiveDevice", nm_dbus_nm_set_active_device);
|
||||||
nm_dbus_method_list_add_method (list, "createWirelessNetwork", nm_dbus_nm_create_wireless_network);
|
nm_dbus_method_list_add_method (list, "createWirelessNetwork", nm_dbus_nm_create_wireless_network);
|
||||||
nm_dbus_method_list_add_method (list, "setWirelessEnabled", nm_dbus_nm_set_wireless_enabled);
|
nm_dbus_method_list_add_method (list, "setWirelessEnabled", nm_dbus_nm_set_wireless_enabled);
|
||||||
|
@@ -328,7 +328,9 @@ out:
|
|||||||
/**************************************/
|
/**************************************/
|
||||||
/* MII capability detection */
|
/* MII capability detection */
|
||||||
/**************************************/
|
/**************************************/
|
||||||
|
#define _LINUX_IF_H
|
||||||
#include <linux/mii.h>
|
#include <linux/mii.h>
|
||||||
|
#undef _LINUX_IF_H
|
||||||
|
|
||||||
static int
|
static int
|
||||||
mdio_read (NMDevice8023Ethernet *self, NMSock *sk, struct ifreq *ifr, int location)
|
mdio_read (NMDevice8023Ethernet *self, NMSock *sk, struct ifreq *ifr, int location)
|
||||||
|
@@ -29,6 +29,12 @@
|
|||||||
|
|
||||||
#include "nm-device.h"
|
#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
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define NM_TYPE_DEVICE_802_3_ETHERNET (nm_device_802_3_ethernet_get_type ())
|
#define NM_TYPE_DEVICE_802_3_ETHERNET (nm_device_802_3_ethernet_get_type ())
|
||||||
|
@@ -30,7 +30,7 @@
|
|||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <linux/netlink.h>
|
#include <linux/netlink.h>
|
||||||
#include <linux/rtnetlink.h>
|
#include <linux/rtnetlink.h>
|
||||||
#include <linux/if.h>
|
#include <net/if.h>
|
||||||
#include <linux/unistd.h>
|
#include <linux/unistd.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user