2005-05-15 Dan Williams <dcbw@redhat.com>
* src/NetworkManagerDevice.[ch] src/NetworkManagerPolicy.c src/NetworkManager.c src/nm-dbus-nm.c - Remove the "just_added" parameter from nm_device_deactivate(). We no longer send the DeviceNoLongerActive signal unconditionally, but only when the device is actually active. * dispatcher-daemon/NetworkManagerDispatcher.c - (nmd_execute_scripts): convert to GLib directory functions from opendir(), and simplify the logic - (nmd_get_device_name): copy value from dbus reply so we don't segfault when we free it later on * initscript/RedHat/Makefile.am initscript/RedHat/NetworkManagerDispatcher - Add initscript for NetworkManagerDispatcher Patch from Bill Moss: * dispatcher-daemon/NetworkManagerDispatcher.c - Remove IP4AddressChange signal code including nmd_get_device_ip4_address() * src/NetworkManagerDbus.c - (nm_dbus_signal_device_ip4_address_change): remove. If the device goes up, and DeviceNowActive gets signaled, then the device has a new IP address anyway. There's no need for a separate signal. * src/NetworkManagerDevice.c - (nm_device_update_ip4_address): Don't send IP4AddressChange signal * src/NetworkManagerPolicy.c - (nm_policy_activation_finish): Send DeviceNowActive signal when the device activates successfully. This kind of went missing when I reworked the activation code. git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@634 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
38
ChangeLog
38
ChangeLog
@@ -1,3 +1,41 @@
|
||||
2005-05-15 Dan Williams <dcbw@redhat.com>
|
||||
|
||||
* src/NetworkManagerDevice.[ch]
|
||||
src/NetworkManagerPolicy.c
|
||||
src/NetworkManager.c
|
||||
src/nm-dbus-nm.c
|
||||
- Remove the "just_added" parameter from nm_device_deactivate(). We no
|
||||
longer send the DeviceNoLongerActive signal unconditionally, but only
|
||||
when the device is actually active.
|
||||
|
||||
* dispatcher-daemon/NetworkManagerDispatcher.c
|
||||
- (nmd_execute_scripts): convert to GLib directory functions from opendir(),
|
||||
and simplify the logic
|
||||
- (nmd_get_device_name): copy value from dbus reply so we don't segfault when
|
||||
we free it later on
|
||||
|
||||
* initscript/RedHat/Makefile.am
|
||||
initscript/RedHat/NetworkManagerDispatcher
|
||||
- Add initscript for NetworkManagerDispatcher
|
||||
|
||||
|
||||
Patch from Bill Moss:
|
||||
* dispatcher-daemon/NetworkManagerDispatcher.c
|
||||
- Remove IP4AddressChange signal code including nmd_get_device_ip4_address()
|
||||
|
||||
* src/NetworkManagerDbus.c
|
||||
- (nm_dbus_signal_device_ip4_address_change): remove. If the device goes up,
|
||||
and DeviceNowActive gets signaled, then the device has a new IP address
|
||||
anyway. There's no need for a separate signal.
|
||||
|
||||
* src/NetworkManagerDevice.c
|
||||
- (nm_device_update_ip4_address): Don't send IP4AddressChange signal
|
||||
|
||||
* src/NetworkManagerPolicy.c
|
||||
- (nm_policy_activation_finish): Send DeviceNowActive signal when the device
|
||||
activates successfully. This kind of went missing when I reworked the
|
||||
activation code.
|
||||
|
||||
2005-05-15 Dan Williams <dcbw@redhat.com>
|
||||
|
||||
* configure.in
|
||||
|
@@ -35,27 +35,20 @@
|
||||
#include <dirent.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "NetworkManager.h"
|
||||
#include "nm-utils.h"
|
||||
|
||||
#define NM_DBUS_SERVICE "org.freedesktop.NetworkManager"
|
||||
|
||||
#define NM_DBUS_PATH "/org/freedesktop/NetworkManager"
|
||||
#define NM_DBUS_INTERFACE "org.freedesktop.NetworkManager"
|
||||
|
||||
|
||||
enum NMDAction
|
||||
{
|
||||
NMD_DEVICE_DONT_KNOW,
|
||||
NMD_DEVICE_NOW_INACTIVE,
|
||||
NMD_DEVICE_NOW_ACTIVE,
|
||||
NMD_DEVICE_IP4_ADDRESS_CHANGE
|
||||
};
|
||||
typedef enum NMDAction NMDAction;
|
||||
|
||||
#define NIPQUAD(addr) ((unsigned char)(addr)), \
|
||||
((unsigned char)(addr>>8)), \
|
||||
((unsigned char)(addr>>16)), \
|
||||
((unsigned char)(addr>>24))
|
||||
|
||||
#define NM_SCRIPT_DIR "/etc/NetworkManager/dispatcher.d"
|
||||
|
||||
/*
|
||||
* nmd_execute_scripts
|
||||
@@ -63,27 +56,31 @@ typedef enum NMDAction NMDAction;
|
||||
* Call scripts in /etc/NetworkManager.d when devices go down or up
|
||||
*
|
||||
*/
|
||||
void nmd_execute_scripts (NMDAction action, char *iface_name, guint32 new_ip4_address)
|
||||
void nmd_execute_scripts (NMDAction action, char *iface_name)
|
||||
{
|
||||
DIR *dir = opendir ("/etc/NetworkManager.d");
|
||||
struct dirent *ent;
|
||||
GDir * dir;
|
||||
const char * file_name;
|
||||
const char * char_act;
|
||||
|
||||
if (!dir)
|
||||
if (action == NMD_DEVICE_NOW_ACTIVE)
|
||||
char_act = "up";
|
||||
else if (action == NMD_DEVICE_NOW_INACTIVE)
|
||||
char_act = "down";
|
||||
else
|
||||
return;
|
||||
|
||||
if (!(dir = g_dir_open (NM_SCRIPT_DIR, 0, NULL)))
|
||||
{
|
||||
nm_warning ("nmd_execute_scripts(): opendir() could not open /etc/NetworkManager.d. errno = %d", errno);
|
||||
nm_warning ("nmd_execute_scripts(): opendir() could not open '" NM_SCRIPT_DIR "'. errno = %d", errno);
|
||||
return;
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
errno = 0;
|
||||
if ((ent = readdir (dir)) != NULL)
|
||||
while ((file_name = g_dir_read_name (dir)))
|
||||
{
|
||||
char * file_path = g_strdup_printf (NM_SCRIPT_DIR"/%s", file_name);
|
||||
struct stat s;
|
||||
char path[500];
|
||||
|
||||
snprintf (path, 499, "/etc/NetworkManager.d/%s", ent->d_name);
|
||||
if ((ent->d_name[0] != '.') && (stat (path, &s) == 0))
|
||||
if ((file_name[0] != '.') && (stat (file_path, &s) == 0))
|
||||
{
|
||||
/* FIXME
|
||||
* We should check the permissions and only execute files that
|
||||
@@ -92,25 +89,18 @@ void nmd_execute_scripts (NMDAction action, char *iface_name, guint32 new_ip4_ad
|
||||
if (S_ISREG (s.st_mode) && !S_ISLNK (s.st_mode) && (s.st_uid == 0))
|
||||
{
|
||||
int x;
|
||||
char cmd[500];
|
||||
char *cmd;
|
||||
|
||||
if ((action == NMD_DEVICE_NOW_INACTIVE) || (action == NMD_DEVICE_NOW_ACTIVE))
|
||||
{
|
||||
snprintf (cmd, 499, "%s %s %s", path, iface_name,
|
||||
(action == NMD_DEVICE_NOW_INACTIVE ? "down" :
|
||||
(action == NMD_DEVICE_NOW_ACTIVE ? "up" : "error")));
|
||||
}
|
||||
else if (action == NMD_DEVICE_IP4_ADDRESS_CHANGE)
|
||||
{
|
||||
snprintf (cmd, 499, "%s %s %u.%u.%u.%u", path, iface_name, NIPQUAD (new_ip4_address));
|
||||
}
|
||||
cmd = g_strdup_printf ("%s %s %s", file_path, iface_name, char_act);
|
||||
x = system (cmd);
|
||||
g_free (cmd);
|
||||
}
|
||||
}
|
||||
}
|
||||
} while (ent);
|
||||
|
||||
closedir (dir);
|
||||
g_free (file_path);
|
||||
}
|
||||
|
||||
g_dir_close (dir);
|
||||
}
|
||||
|
||||
|
||||
@@ -124,91 +114,37 @@ char * nmd_get_device_name (DBusConnection *connection, char *path)
|
||||
DBusMessage * message;
|
||||
DBusMessage * reply;
|
||||
DBusError error;
|
||||
char * dbus_dev_name = NULL;
|
||||
char * dev_name = NULL;
|
||||
|
||||
if (!(message = dbus_message_new_method_call (NM_DBUS_SERVICE, path, NM_DBUS_INTERFACE, "getName")))
|
||||
{
|
||||
nm_warning ("Couldn't allocate the dbus message");
|
||||
return (NULL);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
dbus_error_init (&error);
|
||||
reply = dbus_connection_send_with_reply_and_block (connection, message, -1, &error);
|
||||
dbus_message_unref (message);
|
||||
if (dbus_error_is_set (&error))
|
||||
{
|
||||
nm_warning ("%s raised: %s", error.name, error.message);
|
||||
dbus_message_unref (message);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
if (reply == NULL)
|
||||
{
|
||||
nm_warning ("dbus reply message was NULL" );
|
||||
dbus_message_unref (message);
|
||||
return (NULL);
|
||||
dbus_error_free (&error);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* now analyze reply */
|
||||
dbus_error_init (&error);
|
||||
if (!dbus_message_get_args (reply, &error, DBUS_TYPE_STRING, &dev_name, DBUS_TYPE_INVALID))
|
||||
if (!dbus_message_get_args (reply, NULL, DBUS_TYPE_STRING, &dbus_dev_name, DBUS_TYPE_INVALID))
|
||||
{
|
||||
nm_warning ("There was an error getting the device name from NetworkManager." );
|
||||
dev_name = NULL;
|
||||
}
|
||||
else
|
||||
dev_name = g_strdup (dbus_dev_name);
|
||||
|
||||
dbus_message_unref (reply);
|
||||
dbus_message_unref (message);
|
||||
|
||||
return (dev_name);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* nmd_get_device_ip4_address
|
||||
*
|
||||
* Queries NetworkManager for the IPv4 address of a device, specified by a device path
|
||||
*/
|
||||
guint32 nmd_get_device_ip4_address (DBusConnection *connection, char *path)
|
||||
{
|
||||
DBusMessage *message;
|
||||
DBusMessage *reply;
|
||||
DBusError error;
|
||||
guint32 address;
|
||||
|
||||
if (!(message = dbus_message_new_method_call (NM_DBUS_SERVICE, path, NM_DBUS_INTERFACE, "getIP4Address")))
|
||||
{
|
||||
nm_warning ("Couldn't allocate the dbus message");
|
||||
return (0);
|
||||
}
|
||||
|
||||
dbus_error_init (&error);
|
||||
reply = dbus_connection_send_with_reply_and_block (connection, message, -1, &error);
|
||||
if (dbus_error_is_set (&error))
|
||||
{
|
||||
nm_warning ("%s raised: %s", error.name, error.message);
|
||||
dbus_message_unref (message);
|
||||
return (0);
|
||||
}
|
||||
|
||||
if (reply == NULL)
|
||||
{
|
||||
nm_warning ("dbus reply message was NULL" );
|
||||
dbus_message_unref (message);
|
||||
return (0);
|
||||
}
|
||||
|
||||
/* now analyze reply */
|
||||
dbus_error_init (&error);
|
||||
if (!dbus_message_get_args (reply, &error, DBUS_TYPE_UINT32, &address, DBUS_TYPE_INVALID))
|
||||
{
|
||||
nm_warning ("There was an error getting the device's IPv4 address from NetworkManager." );
|
||||
address = 0;
|
||||
}
|
||||
|
||||
dbus_message_unref (reply);
|
||||
dbus_message_unref (message);
|
||||
|
||||
return (address);
|
||||
return dev_name;
|
||||
}
|
||||
|
||||
|
||||
@@ -228,9 +164,7 @@ static DBusHandlerResult nmd_dbus_filter (DBusConnection *connection, DBusMessag
|
||||
dbus_error_init (&error);
|
||||
object_path = dbus_message_get_path (message);
|
||||
|
||||
if (dbus_message_is_signal (message, NM_DBUS_INTERFACE, "DeviceIP4AddressChange"))
|
||||
action = NMD_DEVICE_IP4_ADDRESS_CHANGE;
|
||||
else if (dbus_message_is_signal (message, NM_DBUS_INTERFACE, "DeviceNoLongerActive"))
|
||||
if (dbus_message_is_signal (message, NM_DBUS_INTERFACE, "DeviceNoLongerActive"))
|
||||
action = NMD_DEVICE_NOW_INACTIVE;
|
||||
else if (dbus_message_is_signal (message, NM_DBUS_INTERFACE, "DeviceNowActive"))
|
||||
action = NMD_DEVICE_NOW_ACTIVE;
|
||||
@@ -239,30 +173,23 @@ static DBusHandlerResult nmd_dbus_filter (DBusConnection *connection, DBusMessag
|
||||
{
|
||||
if (dbus_message_get_args (message, &error, DBUS_TYPE_OBJECT_PATH, &dev_object_path, DBUS_TYPE_INVALID))
|
||||
{
|
||||
char * dev_iface_name;
|
||||
guint32 dev_ip4_address;
|
||||
char * dev_iface_name = NULL;
|
||||
|
||||
dev_object_path = nm_dbus_unescape_object_path (dev_object_path);
|
||||
|
||||
dev_ip4_address = nmd_get_device_ip4_address (connection, dev_object_path);
|
||||
if (dev_object_path)
|
||||
dev_iface_name = nmd_get_device_name (connection, dev_object_path);
|
||||
|
||||
if (action == NMD_DEVICE_NOW_ACTIVE || action == NMD_DEVICE_NOW_INACTIVE)
|
||||
if (dev_object_path && dev_iface_name)
|
||||
{
|
||||
nm_info ("Device %s (%s) is now %s.", dev_object_path, dev_iface_name,
|
||||
(action == NMD_DEVICE_NOW_INACTIVE ? "down" :
|
||||
(action == NMD_DEVICE_NOW_ACTIVE ? "up" : "error")));
|
||||
}
|
||||
else if (action == NMD_DEVICE_IP4_ADDRESS_CHANGE)
|
||||
{
|
||||
nm_info ("Device %s (%s) now has address %u.%u.%u.%u", dev_object_path, dev_iface_name,
|
||||
NIPQUAD(dev_ip4_address));
|
||||
|
||||
nmd_execute_scripts (action, dev_iface_name);
|
||||
}
|
||||
|
||||
nmd_execute_scripts (action, dev_iface_name, dev_ip4_address);
|
||||
|
||||
g_free (dev_iface_name);
|
||||
g_free (dev_object_path);
|
||||
g_free (dev_iface_name);
|
||||
|
||||
handled = TRUE;
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
EXTRA_DIST = NetworkManager
|
||||
EXTRA_DIST = NetworkManager NetworkManagerDispatcher
|
||||
|
||||
initddir = $(sysconfdir)/rc.d/init.d
|
||||
initd_SCRIPTS = NetworkManager
|
||||
initd_SCRIPTS = NetworkManager NetworkManagerDispatcher
|
||||
|
||||
|
74
initscript/RedHat/NetworkManagerDispatcher
Executable file
74
initscript/RedHat/NetworkManagerDispatcher
Executable file
@@ -0,0 +1,74 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# NetworkManager: NetworkManagerDispatcher daemon
|
||||
#
|
||||
# chkconfig: - 98 02
|
||||
# description: This daemon automatically runs scripts when NetworkManager \
|
||||
# changes the network state.
|
||||
#
|
||||
# processname: NetworkManagerDispatcher
|
||||
# pidfile: /var/run/NetworkManagerDispatcher.pid
|
||||
#
|
||||
|
||||
# Sanity checks.
|
||||
[ -x /usr/bin/NetworkManagerDispatcher ] || exit 1
|
||||
|
||||
# Source function library.
|
||||
. /etc/rc.d/init.d/functions
|
||||
|
||||
# so we can rearrange this easily
|
||||
processname=NetworkManagerDispatcher
|
||||
servicename=NetworkManagerDispatcher
|
||||
pidfile=/var/run/NetworkManagerDispatcher.pid
|
||||
|
||||
RETVAL=0
|
||||
|
||||
start()
|
||||
{
|
||||
echo -n $"Starting NetworkManagerDispatcher daemon: "
|
||||
daemon --check $servicename $processname
|
||||
RETVAL=$?
|
||||
echo
|
||||
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$servicename && echo `/sbin/pidof $processname` > $pidfile
|
||||
}
|
||||
|
||||
stop()
|
||||
{
|
||||
echo -n $"Stopping NetworkManagerDispatcher daemon: "
|
||||
|
||||
killproc $servicename -TERM
|
||||
RETVAL=$?
|
||||
echo
|
||||
if [ $RETVAL -eq 0 ]; then
|
||||
rm -f /var/lock/subsys/$servicename
|
||||
rm -f $pidfile
|
||||
fi
|
||||
}
|
||||
|
||||
# See how we were called.
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
status)
|
||||
status $processname
|
||||
RETVAL=$?
|
||||
;;
|
||||
restart)
|
||||
stop
|
||||
start
|
||||
;;
|
||||
condrestart)
|
||||
if [ -f /var/lock/subsys/$servicename ]; then
|
||||
stop
|
||||
start
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|status|restart|condrestart}"
|
||||
;;
|
||||
esac
|
||||
exit $RETVAL
|
@@ -131,7 +131,7 @@ NMDevice * nm_create_device_and_add_to_list (NMData *data, const char *udi, cons
|
||||
nm_device_is_wireless (dev) ? "wireless" : "wired", nm_device_get_iface (dev));
|
||||
|
||||
data->dev_list = g_slist_append (data->dev_list, dev);
|
||||
nm_device_deactivate (dev, TRUE);
|
||||
nm_device_deactivate (dev);
|
||||
|
||||
nm_unlock_mutex (data->dev_list_mutex, __FUNCTION__);
|
||||
|
||||
@@ -176,7 +176,7 @@ void nm_remove_device_from_list (NMData *data, const char *udi)
|
||||
if (dev && (nm_null_safe_strcmp (nm_device_get_udi (dev), udi) == 0))
|
||||
{
|
||||
nm_device_set_removed (dev, TRUE);
|
||||
nm_device_deactivate (dev, FALSE);
|
||||
nm_device_deactivate (dev);
|
||||
nm_device_worker_thread_stop (dev);
|
||||
nm_dbus_schedule_device_status_change_signal (data, dev, NULL, DEVICE_REMOVED);
|
||||
|
||||
@@ -451,7 +451,7 @@ static void device_stop_and_free (NMDevice *dev, gpointer user_data)
|
||||
g_return_if_fail (dev != NULL);
|
||||
|
||||
nm_device_set_removed (dev, TRUE);
|
||||
nm_device_deactivate (dev, FALSE);
|
||||
nm_device_deactivate (dev);
|
||||
nm_device_unref (dev);
|
||||
}
|
||||
|
||||
|
@@ -343,42 +343,6 @@ void nm_dbus_signal_state_change (DBusConnection *connection, NMData *data)
|
||||
dbus_message_unref (message);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* nm_dbus_signal_device_ip4_address_change
|
||||
*
|
||||
* Notifies the bus that a particular device's IPv4 address changed.
|
||||
*
|
||||
*/
|
||||
void nm_dbus_signal_device_ip4_address_change (DBusConnection *connection, NMDevice *dev)
|
||||
{
|
||||
DBusMessage *message;
|
||||
gchar *dev_path;
|
||||
|
||||
g_return_if_fail (connection != NULL);
|
||||
g_return_if_fail (dev != NULL);
|
||||
|
||||
if (!(dev_path = nm_dbus_get_object_path_for_device (dev)))
|
||||
return;
|
||||
|
||||
message = dbus_message_new_signal (NM_DBUS_PATH, NM_DBUS_INTERFACE, "DeviceIP4AddressChange");
|
||||
if (!message)
|
||||
{
|
||||
nm_warning ("nm_dbus_signal_device_ip4_address_change(): Not enough memory for new dbus message!");
|
||||
g_free (dev_path);
|
||||
return;
|
||||
}
|
||||
|
||||
dbus_message_append_args (message, DBUS_TYPE_OBJECT_PATH, &dev_path, DBUS_TYPE_INVALID);
|
||||
g_free (dev_path);
|
||||
|
||||
if (!dbus_connection_send (connection, message, NULL))
|
||||
nm_warning ("nm_dbus_signal_device_ip4_address_change(): Could not raise the IP4AddressChange signal!");
|
||||
|
||||
dbus_message_unref (message);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* nm_dbus_signal_wireless_network_change
|
||||
*
|
||||
|
@@ -64,8 +64,6 @@ void nm_dbus_schedule_device_status_change_signal (NMData *data, NMDevice *dev
|
||||
|
||||
void nm_dbus_signal_state_change (DBusConnection *connection, NMData *data);
|
||||
|
||||
void nm_dbus_signal_device_ip4_address_change(DBusConnection *connection, NMDevice *dev);
|
||||
|
||||
void nm_dbus_signal_wireless_network_change (DBusConnection *connection, NMDevice *dev, NMAccessPoint *ap, NMNetworkStatus status, gint8 strength);
|
||||
|
||||
void nm_dbus_get_user_key_for_network (DBusConnection *connection, NMActRequest *req);
|
||||
|
@@ -676,7 +676,7 @@ void nm_device_set_link_active (NMDevice *dev, const gboolean link_active)
|
||||
/* Deactivate a currently active device */
|
||||
if (!link_active && nm_device_get_act_request (dev))
|
||||
{
|
||||
nm_device_deactivate (dev, FALSE);
|
||||
nm_device_deactivate (dev);
|
||||
nm_policy_schedule_device_change_check (dev->app_data);
|
||||
}
|
||||
else if (link_active && !nm_device_get_act_request (dev))
|
||||
@@ -1485,14 +1485,9 @@ void nm_device_update_ip4_address (NMDevice *dev)
|
||||
return;
|
||||
|
||||
new_address = ((struct sockaddr_in *)(&req.ifr_addr))->sin_addr.s_addr;
|
||||
|
||||
/* If the new address is different, send an IP4AddressChanged signal on the bus */
|
||||
if (new_address != nm_device_get_ip4_address (dev))
|
||||
{
|
||||
nm_dbus_signal_device_ip4_address_change (dev->app_data->dbus_connection, dev);
|
||||
dev->ip4_address = new_address;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
@@ -3121,7 +3116,7 @@ void nm_device_activation_cancel (NMDevice *dev)
|
||||
* Remove a device's routing table entries and IP address.
|
||||
*
|
||||
*/
|
||||
gboolean nm_device_deactivate (NMDevice *dev, gboolean just_added)
|
||||
gboolean nm_device_deactivate (NMDevice *dev)
|
||||
{
|
||||
NMIP4Config * config;
|
||||
|
||||
@@ -3130,6 +3125,12 @@ gboolean nm_device_deactivate (NMDevice *dev, gboolean just_added)
|
||||
|
||||
nm_info ("Deactivating device %s.", nm_device_get_iface (dev));
|
||||
|
||||
if (dev->act_request)
|
||||
{
|
||||
/* Only send if the device is actually active */
|
||||
nm_dbus_schedule_device_status_change_signal (dev->app_data, dev, NULL, DEVICE_NO_LONGER_ACTIVE);
|
||||
}
|
||||
|
||||
if (nm_device_is_activating (dev))
|
||||
nm_device_activation_cancel (dev);
|
||||
|
||||
@@ -3141,7 +3142,7 @@ gboolean nm_device_deactivate (NMDevice *dev, gboolean just_added)
|
||||
}
|
||||
|
||||
if (nm_device_get_driver_support_level (dev) == NM_DRIVER_UNSUPPORTED)
|
||||
return (TRUE);
|
||||
return TRUE;
|
||||
|
||||
nm_vpn_manager_deactivate_vpn_connection (dev->app_data->vpn_manager);
|
||||
|
||||
@@ -3158,9 +3159,6 @@ gboolean nm_device_deactivate (NMDevice *dev, gboolean just_added)
|
||||
nm_system_device_flush_addresses (dev);
|
||||
nm_device_update_ip4_address (dev);
|
||||
|
||||
if (!just_added)
|
||||
nm_dbus_schedule_device_status_change_signal (dev->app_data, dev, NULL, DEVICE_NO_LONGER_ACTIVE);
|
||||
|
||||
/* Clean up stuff, don't leave the card associated */
|
||||
if (nm_device_is_wireless (dev))
|
||||
{
|
||||
|
@@ -101,7 +101,7 @@ void nm_device_activate_schedule_stage4_ip_config_timeout (NMActRequest *req);
|
||||
void nm_device_activation_cancel (NMDevice *dev);
|
||||
gboolean nm_device_activation_should_cancel (NMDevice *dev);
|
||||
gboolean nm_device_is_activating (NMDevice *dev);
|
||||
gboolean nm_device_deactivate (NMDevice *dev, gboolean just_added);
|
||||
gboolean nm_device_deactivate (NMDevice *dev);
|
||||
|
||||
NMAccessPoint *nm_device_wireless_get_activation_ap (NMDevice *dev, const char *essid, const char *key, NMEncKeyType key_type);
|
||||
|
||||
|
@@ -74,6 +74,7 @@ gboolean nm_policy_activation_finish (NMActRequest *req)
|
||||
}
|
||||
|
||||
nm_info ("Activation (%s) successful, device activated.", nm_device_get_iface (dev));
|
||||
nm_dbus_schedule_device_status_change_signal (data, dev, NULL, DEVICE_NOW_ACTIVE);
|
||||
nm_schedule_state_change_signal_broadcast (data);
|
||||
|
||||
out:
|
||||
@@ -154,7 +155,7 @@ static gboolean nm_policy_activation_failed (NMActRequest *req)
|
||||
nm_dbus_schedule_device_status_change_signal (data, dev, NULL, DEVICE_ACTIVATION_FAILED);
|
||||
}
|
||||
|
||||
nm_device_deactivate (dev, FALSE);
|
||||
nm_device_deactivate (dev);
|
||||
nm_schedule_state_change_signal_broadcast (data);
|
||||
nm_policy_schedule_device_change_check (data);
|
||||
|
||||
@@ -372,7 +373,7 @@ static gboolean nm_policy_device_change_check (NMData *data)
|
||||
{
|
||||
/* Terminate current connection */
|
||||
nm_info ("SWITCH: terminating current connection '%s' because it's no longer valid.", nm_device_get_iface (old_dev));
|
||||
nm_device_deactivate (old_dev, FALSE);
|
||||
nm_device_deactivate (old_dev);
|
||||
do_switch = TRUE;
|
||||
}
|
||||
else if (old_dev && new_dev)
|
||||
@@ -466,7 +467,7 @@ static gboolean nm_policy_device_activation (NMActRequest *req)
|
||||
g_assert (data);
|
||||
|
||||
if ((old_dev = nm_get_active_device (data)))
|
||||
nm_device_deactivate (old_dev, FALSE);
|
||||
nm_device_deactivate (old_dev);
|
||||
|
||||
new_dev = nm_act_request_get_dev (req);
|
||||
if (nm_device_is_activating (new_dev))
|
||||
|
@@ -162,7 +162,7 @@ static DBusMessage *nm_dbus_nm_set_active_device (DBusConnection *connection, DB
|
||||
goto out;
|
||||
}
|
||||
|
||||
nm_device_deactivate (dev, FALSE);
|
||||
nm_device_deactivate (dev);
|
||||
|
||||
nm_schedule_state_change_signal_broadcast (data->data);
|
||||
|
||||
@@ -378,7 +378,7 @@ static DBusMessage *nm_dbus_nm_set_wireless_enabled (DBusConnection *connection,
|
||||
NMDevice *dev = (NMDevice *)(elt->data);
|
||||
if (nm_device_is_wireless (dev))
|
||||
{
|
||||
nm_device_deactivate (dev, FALSE);
|
||||
nm_device_deactivate (dev);
|
||||
nm_device_bring_down (dev);
|
||||
}
|
||||
}
|
||||
@@ -419,7 +419,7 @@ static DBusMessage *nm_dbus_nm_sleep (DBusConnection *connection, DBusMessage *m
|
||||
{
|
||||
NMDevice *dev = (NMDevice *)(elt->data);
|
||||
|
||||
nm_device_deactivate (dev, FALSE);
|
||||
nm_device_deactivate (dev);
|
||||
nm_device_bring_down (dev);
|
||||
}
|
||||
nm_unlock_mutex (app_data->dev_list_mutex, __FUNCTION__);
|
||||
|
Reference in New Issue
Block a user