2005-03-14 Ray Strode <rstrode@redhat.com>

Fourth (probably working) cut at porting to
	dbus 0.30 api and new hal. This cut adds
	some new logging macros to make debugging
	easier.

	* dispatcher-daemon/NetworkManagerDispatcher.c:
	* info-daemon/NetworkmanagerInfo.c:
	* info-daemon/NetworkManagerInfoPassphraseDialog.c:
	* info-daemon/NetworkManagerInfoVPN.c:
	* src/NetworkManager.c:
	* src/NetworkManagerAP.c:
	* src/NetworkManagerAPList.c:
	* src/NetworkManagerDHCP.c:
	* src/NetworkManagerDbus.c:
	* src/NetworkManagerDevice.c:
	* src/NetworkManagerPolicy.c:
	* src/NetworkManagerSystem.c:
	* src/NetworkManagerUtils.c:
	* src/NetworkManagerWireless.c:
	* src/autoip.c:
	* src/nm-dbus-nm.c:
	* src/backends/NetworkManagerDebian.c:
	* src/backends/NetworkManagerGentoo.c:
	* src/backends/NetworkManagerRedHat.c:
	* src/backends/NetworkManagerSlackware.c:
	use new logging macros.

	* dispatcher-daemon/NetworkManagerDispatcher.c:
	(nmd_dbus_filter): s/dbus_free/g_free/

	* info-daemon/Makefile.am: link in utils library.
	* info-daemon/NetworkmanagerInfo.c: use new logging
	macros.
	(nmi_dbus_get_network): don't assume enumerations
	are 32-bit.
	(nmi_dbus_nmi_message_handler): don't free what
	doesn't belong to us.

	* libnm_glib/libnm_glib.c:
	(libnm_glib_get_nm_status):
	(libnm_glib_init): don't free what doesn't
	belong to us.
	(libnm_glib_dbus): strdup result, so it doesn't get
	lost when message is unref'd.

	* panel-applet/NMWirelessAppletDbus.c:
	(nmwa_dbus_update_devices): s/dbus_free/g_free/

	* src/NetworkManager.c:
	(nm_monitor_wired_link_state): request initial status
	dump of all cards when we start up, instead of relying
	on /sys/.../carrier.
	(nm_info_handler), (nm_set_up_log_handlers):
	log handlers to specify what syslog priorites
	the logging macros default to.

	* src/NetworkManagerAPList.c:
	(nm_ap_list_populate_from_nmi):
	s/dbus_free_string_array/g_strfreev/

	* src/NetworkManagerDbus.c:
	(nm_dbus_get_network_object):
	validate d-bus message argument types.
	Advance message iterator after reading argument,
	prepend instead of append to GSList.

	* src/NetworkManagerDevice.c:
	(nm_device_probe_wired_link_status):
	remove redundant /sys in /sys path. remove wrong
	contents == NULL means has carrier assumption.

	* src/nm-netlink-monitor.c
	(nm_netlink_monitor_request_status): implement
	function to ask kernel to dump interface link
	status over netlink socket.

	* test/*.c: s/dbus_free/g_free/

	* utils/nm-utils.h:
	(nm_print_backtrace): new macro to print backtrace.
	(nm_get_timestamp): new macro to get sub-second precise
	unix timestamp.
	(nm_info), (nm_debug), (nm_warning), (nm_error):
	new logging functions. nm_info just prints,
	nm_debug includes timestamp and function,
	nm_warning includes function, nm_error includes
	backtrace and sigtrap.


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@497 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
Ray Strode
2005-03-15 05:30:15 +00:00
parent 0790d2fc3e
commit 278e500f99
32 changed files with 831 additions and 305 deletions

View File

@@ -1,3 +1,93 @@
2005-03-14 Ray Strode <rstrode@redhat.com>
Fourth (probably working) cut at porting to
dbus 0.30 api and new hal. This cut adds
some new logging macros to make debugging
easier.
* dispatcher-daemon/NetworkManagerDispatcher.c:
* info-daemon/NetworkmanagerInfo.c:
* info-daemon/NetworkManagerInfoPassphraseDialog.c:
* info-daemon/NetworkManagerInfoVPN.c:
* src/NetworkManager.c:
* src/NetworkManagerAP.c:
* src/NetworkManagerAPList.c:
* src/NetworkManagerDHCP.c:
* src/NetworkManagerDbus.c:
* src/NetworkManagerDevice.c:
* src/NetworkManagerPolicy.c:
* src/NetworkManagerSystem.c:
* src/NetworkManagerUtils.c:
* src/NetworkManagerWireless.c:
* src/autoip.c:
* src/nm-dbus-nm.c:
* src/backends/NetworkManagerDebian.c:
* src/backends/NetworkManagerGentoo.c:
* src/backends/NetworkManagerRedHat.c:
* src/backends/NetworkManagerSlackware.c:
use new logging macros.
* dispatcher-daemon/NetworkManagerDispatcher.c:
(nmd_dbus_filter): s/dbus_free/g_free/
* info-daemon/Makefile.am: link in utils library.
* info-daemon/NetworkmanagerInfo.c: use new logging
macros.
(nmi_dbus_get_network): don't assume enumerations
are 32-bit.
(nmi_dbus_nmi_message_handler): don't free what
doesn't belong to us.
* libnm_glib/libnm_glib.c:
(libnm_glib_get_nm_status):
(libnm_glib_init): don't free what doesn't
belong to us.
(libnm_glib_dbus): strdup result, so it doesn't get
lost when message is unref'd.
* panel-applet/NMWirelessAppletDbus.c:
(nmwa_dbus_update_devices): s/dbus_free/g_free/
* src/NetworkManager.c:
(nm_monitor_wired_link_state): request initial status
dump of all cards when we start up, instead of relying
on /sys/.../carrier.
(nm_info_handler), (nm_set_up_log_handlers):
log handlers to specify what syslog priorites
the logging macros default to.
* src/NetworkManagerAPList.c:
(nm_ap_list_populate_from_nmi):
s/dbus_free_string_array/g_strfreev/
* src/NetworkManagerDbus.c:
(nm_dbus_get_network_object):
validate d-bus message argument types.
Advance message iterator after reading argument,
prepend instead of append to GSList.
* src/NetworkManagerDevice.c:
(nm_device_probe_wired_link_status):
remove redundant /sys in /sys path. remove wrong
contents == NULL means has carrier assumption.
* src/nm-netlink-monitor.c
(nm_netlink_monitor_request_status): implement
function to ask kernel to dump interface link
status over netlink socket.
* test/*.c: s/dbus_free/g_free/
* utils/nm-utils.h:
(nm_print_backtrace): new macro to print backtrace.
(nm_get_timestamp): new macro to get sub-second precise
unix timestamp.
(nm_info), (nm_debug), (nm_warning), (nm_error):
new logging functions. nm_info just prints,
nm_debug includes timestamp and function,
nm_warning includes function, nm_error includes
backtrace and sigtrap.
2005-03-11 Ray Strode <rstrode@redhat.com>
Third (unfinished, partially working) cut at porting to

View File

@@ -70,7 +70,7 @@ void nmd_execute_scripts (NMDAction action, char *iface_name, guint32 new_ip4_ad
if (!dir)
{
syslog (LOG_ERR, "nmd_execute_scripts(): opendir() could not open /etc/NetworkManager.d. errno = %d", errno);
nm_warning ("nmd_execute_scripts(): opendir() could not open /etc/NetworkManager.d. errno = %d", errno);
return;
}
@@ -127,7 +127,7 @@ char * nmd_get_device_name (DBusConnection *connection, char *path)
if (!(message = dbus_message_new_method_call (NM_DBUS_SERVICE, path, NM_DBUS_INTERFACE, "getName")))
{
syslog (LOG_ERR, "Couldn't allocate the dbus message");
nm_warning ("Couldn't allocate the dbus message");
return (NULL);
}
@@ -135,14 +135,14 @@ char * nmd_get_device_name (DBusConnection *connection, char *path)
reply = dbus_connection_send_with_reply_and_block (connection, message, -1, &error);
if (dbus_error_is_set (&error))
{
syslog (LOG_ERR, "%s raised: %s", error.name, error.message);
nm_warning ("%s raised: %s", error.name, error.message);
dbus_message_unref (message);
return (NULL);
}
if (reply == NULL)
{
syslog( LOG_ERR, "dbus reply message was NULL" );
nm_warning ("dbus reply message was NULL" );
dbus_message_unref (message);
return (NULL);
}
@@ -151,7 +151,7 @@ char * nmd_get_device_name (DBusConnection *connection, char *path)
dbus_error_init (&error);
if (!dbus_message_get_args (reply, &error, DBUS_TYPE_STRING, &dev_name, DBUS_TYPE_INVALID))
{
syslog (LOG_ERR, "There was an error getting the device name from NetworkManager." );
nm_warning ("There was an error getting the device name from NetworkManager." );
dev_name = NULL;
}
@@ -176,7 +176,7 @@ guint32 nmd_get_device_ip4_address (DBusConnection *connection, char *path)
if (!(message = dbus_message_new_method_call (NM_DBUS_SERVICE, path, NM_DBUS_INTERFACE, "getIP4Address")))
{
syslog (LOG_ERR, "Couldn't allocate the dbus message");
nm_warning ("Couldn't allocate the dbus message");
return (0);
}
@@ -184,14 +184,14 @@ guint32 nmd_get_device_ip4_address (DBusConnection *connection, char *path)
reply = dbus_connection_send_with_reply_and_block (connection, message, -1, &error);
if (dbus_error_is_set (&error))
{
syslog (LOG_ERR, "%s raised: %s", error.name, error.message);
nm_warning ("%s raised: %s", error.name, error.message);
dbus_message_unref (message);
return (0);
}
if (reply == NULL)
{
syslog( LOG_ERR, "dbus reply message was NULL" );
nm_warning ("dbus reply message was NULL" );
dbus_message_unref (message);
return (0);
}
@@ -200,7 +200,7 @@ guint32 nmd_get_device_ip4_address (DBusConnection *connection, char *path)
dbus_error_init (&error);
if (!dbus_message_get_args (reply, &error, DBUS_TYPE_UINT32, &address, DBUS_TYPE_INVALID))
{
syslog (LOG_ERR, "There was an error getting the device's IPv4 address from NetworkManager." );
nm_warning ("There was an error getting the device's IPv4 address from NetworkManager." );
address = 0;
}
@@ -248,20 +248,20 @@ static DBusHandlerResult nmd_dbus_filter (DBusConnection *connection, DBusMessag
if (action == NMD_DEVICE_NOW_ACTIVE || action == NMD_DEVICE_NOW_INACTIVE)
{
syslog (LOG_NOTICE, "Device %s (%s) is now %s.", 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)
{
syslog (LOG_NOTICE, "Device %s (%s) now has address %u.%u.%u.%u", dev_object_path, dev_iface_name,
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, dev_ip4_address);
dbus_free (dev_iface_name);
dbus_free (dev_object_path);
g_free (dev_iface_name);
g_free (dev_object_path);
handled = TRUE;
}
@@ -286,7 +286,7 @@ static DBusConnection *nmd_dbus_init (void)
connection = dbus_bus_get (DBUS_BUS_SYSTEM, &error);
if (connection == NULL)
{
syslog (LOG_ERR, "nmd_dbus_init(): could not connect to the message bus. dbus says: '%s'", error.message);
nm_warning ("nmd_dbus_init(): could not connect to the message bus. dbus says: '%s'", error.message);
dbus_error_free (&error);
return (NULL);
}
@@ -388,7 +388,7 @@ int main( int argc, char *argv[] )
if (become_daemon && daemon (FALSE, FALSE) < 0)
{
syslog( LOG_ERR, "NetworkManagerDispatcher could not daemonize. errno = %d", errno );
nm_warning ("NetworkManagerDispatcher could not daemonize. errno = %d", errno );
exit (1);
}

View File

@@ -1,4 +1,4 @@
INCLUDES = -I${top_srcdir}
INCLUDES = -I${top_srcdir} -I${top_srcdir}/utils
AM_CPPFLAGS = \
$(DBUS_CFLAGS) \
@@ -43,7 +43,8 @@ NetworkManagerInfo_LDADD = \
$(GTK_LIBS) \
$(GDK_PIXBUF_LIBS) \
$(GNOME_KEYRING_LIBS) \
$(LIBGNOMEUI_LIBS)
$(LIBGNOMEUI_LIBS) \
$(top_builddir)/utils/libnmutils.la
gladedir = $(datadir)/NetworkManagerInfo/glade

View File

@@ -43,6 +43,7 @@
#include "NetworkManagerInfoDbus.h"
#include "NetworkManagerInfo.h"
#include "NetworkManagerInfoPassphraseDialog.h"
#include "nm-utils.h"
static void nmi_spawn_notification_icon (NMIAppInfo *info);
@@ -203,14 +204,14 @@ int main( int argc, char *argv[] )
if (!no_daemon && daemon (FALSE, FALSE) < 0)
{
syslog( LOG_ERR, "NetworkManagerInfo could not daemonize. errno = %d", errno );
nm_warning ("NetworkManagerInfo could not daemonize. errno = %d", errno );
exit (1);
}
app_info = g_new0 (NMIAppInfo, 1);
if (!app_info)
{
syslog (LOG_CRIT, "Not enough memory for application data.");
nm_error ("Not enough memory for application data.");
exit (1);
}
@@ -223,7 +224,7 @@ int main( int argc, char *argv[] )
dbus_connection = dbus_bus_get (DBUS_BUS_SYSTEM, &dbus_error);
if (dbus_connection == NULL)
{
syslog (LOG_CRIT, "NetworkManagerInfo could not get the system bus. Make sure the message bus daemon is running?");
nm_error ("NetworkManagerInfo could not get the system bus. Make sure the message bus daemon is running?");
exit (1);
}
dbus_connection_set_change_sigpipe (TRUE);

View File

@@ -33,6 +33,7 @@
#include "NetworkManagerInfoDbus.h"
#include "NetworkManagerInfoPassphraseDialog.h"
#include "NetworkManagerInfoVPN.h"
#include "nm-utils.h"
/*
@@ -168,7 +169,7 @@ void nmi_dbus_return_user_key (DBusConnection *connection, const char *device,
if (!(message = dbus_message_new_method_call (NM_DBUS_SERVICE, NM_DBUS_PATH, NM_DBUS_INTERFACE, "setKeyForNetwork")))
{
syslog (LOG_ERR, "nmi_dbus_return_user_key(): Couldn't allocate the dbus message");
nm_warning ("nmi_dbus_return_user_key(): Couldn't allocate the dbus message");
return;
}
@@ -180,7 +181,7 @@ void nmi_dbus_return_user_key (DBusConnection *connection, const char *device,
DBUS_TYPE_INVALID))
{
if (!dbus_connection_send (connection, message, NULL))
syslog (LOG_ERR, "nmi_dbus_return_user_key(): dbus could not send the message");
nm_warning ("nmi_dbus_return_user_key(): dbus could not send the message");
}
dbus_message_unref (message);
@@ -236,13 +237,13 @@ void nmi_dbus_signal_update_network (DBusConnection *connection, const char *net
message = dbus_message_new_signal (NMI_DBUS_PATH, NMI_DBUS_INTERFACE, "WirelessNetworkUpdate");
if (!message)
{
syslog (LOG_ERR, "nmi_dbus_signal_update_network(): Not enough memory for new dbus message!");
nm_warning ("nmi_dbus_signal_update_network(): Not enough memory for new dbus message!");
return;
}
dbus_message_append_args (message, DBUS_TYPE_STRING, &network, DBUS_TYPE_INVALID);
if (!dbus_connection_send (connection, message, NULL))
syslog (LOG_WARNING, "nmi_dbus_signal_update_network(): Could not raise the 'WirelessNetworkUpdate' signal!");
nm_warning ("nmi_dbus_signal_update_network(): Could not raise the 'WirelessNetworkUpdate' signal!");
dbus_message_unref (message);
}
@@ -349,6 +350,7 @@ static DBusMessage *nmi_dbus_get_network_properties (NMIAppInfo *info, DBusMessa
char *essid = NULL;
gint timestamp = -1;
gint32 i;
char *key = NULL;
NMEncKeyType key_type = -1;
gboolean trusted = FALSE;
@@ -456,10 +458,13 @@ static DBusMessage *nmi_dbus_get_network_properties (NMIAppInfo *info, DBusMessa
dbus_message_iter_init_append (reply, &iter);
dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &essid);
dbus_message_iter_append_basic (&iter, DBUS_TYPE_INT32, &timestamp);
i = (gint32) timestamp;
dbus_message_iter_append_basic (&iter, DBUS_TYPE_INT32, &i);
dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &key);
dbus_message_iter_append_basic (&iter, DBUS_TYPE_INT32, &key_type);
dbus_message_iter_append_basic (&iter, DBUS_TYPE_INT32, &auth_method);
i = (gint32) key_type;
dbus_message_iter_append_basic (&iter, DBUS_TYPE_INT32, &i);
i = (gint32) auth_method;
dbus_message_iter_append_basic (&iter, DBUS_TYPE_INT32, &i);
dbus_message_iter_append_basic (&iter, DBUS_TYPE_BOOLEAN, &trusted);
dbus_message_iter_open_container (&iter, DBUS_TYPE_ARRAY, DBUS_TYPE_STRING_AS_STRING, &array_iter);
@@ -654,7 +659,7 @@ static DBusHandlerResult nmi_dbus_nmi_message_handler (DBusConnection *connectio
method = dbus_message_get_member (message);
path = dbus_message_get_path (message);
/* syslog (LOG_WARNING, "nmi_dbus_nmi_message_handler() got method %s for path %s", method, path);*/
/* nm_warning ("nmi_dbus_nmi_message_handler() got method %s for path %s", method, path);*/
if (strcmp ("getKeyForNetwork", method) == 0)
{
@@ -674,7 +679,7 @@ static DBusHandlerResult nmi_dbus_nmi_message_handler (DBusConnection *connectio
}
else if (strcmp ("networkNotFound", method) == 0)
{
char *network;
const char *network;
DBusError error;
dbus_error_init (&error);
@@ -686,7 +691,6 @@ static DBusHandlerResult nmi_dbus_nmi_message_handler (DBusConnection *connectio
dbus_error_free (&error);
text = g_strdup_printf ( "The requested wireless network '%s' does not appear to be in range. "
"A different wireless network will be used if any are available.", network);
dbus_free (network);
dialog = GTK_DIALOG (gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, text, NULL));
gtk_dialog_run (dialog);
@@ -816,7 +820,7 @@ int nmi_dbus_service_init (DBusConnection *dbus_connection, NMIAppInfo *info)
&dbus_error);
if (dbus_error_is_set (&dbus_error))
{
syslog (LOG_ERR, "nmi_dbus_service_init() could not acquire its service. dbus_bus_acquire_service() says: '%s'", dbus_error.message);
nm_warning ("nmi_dbus_service_init() could not acquire its service. dbus_bus_acquire_service() says: '%s'", dbus_error.message);
dbus_error_free (&dbus_error);
return (-1);
}
@@ -831,7 +835,7 @@ int nmi_dbus_service_init (DBusConnection *dbus_connection, NMIAppInfo *info)
if (!dbus_connection_register_object_path (dbus_connection, NMI_DBUS_PATH, &nmi_vtable, info))
{
syslog (LOG_ERR, "nmi_dbus_service_init() could not register a handler for NetworkManagerInfo. Not enough memory?");
nm_warning ("nmi_dbus_service_init() could not register a handler for NetworkManagerInfo. Not enough memory?");
return (-1);
}

View File

@@ -38,6 +38,7 @@
#include "NetworkManagerInfoDbus.h"
#include "NetworkManagerInfoPassphraseDialog.h"
#include "nm-utils.h"
enum NMIPassphraseDialogKeyTypes
{
@@ -318,7 +319,7 @@ int nmi_passphrase_dialog_init (NMIAppInfo *info)
info->passphrase_dialog = glade_xml_new(GLADEDIR"/passphrase.glade", NULL, NULL);
if (!info->passphrase_dialog)
{
syslog (LOG_ERR, "Could not open the passphrase dialog glade file!");
nm_warning ("Could not open the passphrase dialog glade file!");
return (-1);
}

View File

@@ -40,6 +40,7 @@
#include "NetworkManagerInfoDbus.h"
#include "NetworkManagerInfoVPN.h"
#include "nm-utils.h"
int nmi_vpn_init (NMIAppInfo *info)
{
@@ -90,7 +91,7 @@ static void save_vpn_password (const char *vpn, const char *keyring, const char
if (keyring_result != GNOME_KEYRING_RESULT_OK)
{
syslog (LOG_ERR, "Couldn't store password in keyring, code %d",
nm_warning ("Couldn't store password in keyring, code %d",
(int) keyring_result);
}
}
@@ -120,7 +121,7 @@ static void response_cb (GtkWidget *dialog, int response, gpointer user_data)
username = g_object_get_data (G_OBJECT (passwd_dialog), "NetworkManagerInfoVPN-username");
vpn = g_object_get_data (G_OBJECT (passwd_dialog), "NetworkManagerInfoVPN-vpn");
password = gnome_password_dialog_get_password (passwd_dialog);
syslog (LOG_ERR, "returning VPN vpn_password for %s@%s: %s", username, vpn, password);
nm_warning ("returning VPN vpn_password for %s@%s: %s", username, vpn, password);
nmi_dbus_return_vpn_password (info->connection, info->vpn_password_message, password);
switch (gnome_password_dialog_get_remember (passwd_dialog))
{

View File

@@ -105,9 +105,8 @@ static char *libnm_glib_get_nm_status (DBusConnection *con)
dbus_message_unref (reply);
return g_strdup ("error");
}
dbus_message_unref (reply);
ret = g_strdup (status);
dbus_free (status);
dbus_message_unref (reply);
return ret;
}
@@ -298,6 +297,8 @@ static DBusHandlerResult libnm_glib_dbus_filter (DBusConnection *connection, DBu
if (!(dbus_message_get_args (message, &error, DBUS_TYPE_STRING, &status_string, DBUS_TYPE_INVALID)))
status_string = g_strdup ("error");
else
status_string = g_strdup (status_string);
libnm_glib_update_status (ctx, status_string);
g_free (status_string);
@@ -518,7 +519,7 @@ libnm_glib_ctx *libnm_glib_init (void)
{
char *status_string = libnm_glib_get_nm_status (ctx->dbus_con);
libnm_glib_update_status (ctx, status_string);
dbus_free (status_string);
g_free (status_string);
}
if (!g_thread_create (libnm_glib_dbus_worker, ctx, FALSE, &error))

View File

@@ -1433,7 +1433,7 @@ static void nmwa_dbus_update_devices (NMWirelessApplet *applet)
if (!devices)
{
dbus_free (nm_status);
g_free (nm_status);
return;
}
@@ -1479,7 +1479,7 @@ static void nmwa_dbus_update_devices (NMWirelessApplet *applet)
}
}
}
dbus_free (name);
g_free (name);
}
g_free (nm_act_dev);
g_strfreev (devices);

View File

@@ -34,6 +34,7 @@
#include <sys/types.h>
#include "NetworkManager.h"
#include "nm-utils.h"
#include "NetworkManagerUtils.h"
#include "NetworkManagerDevice.h"
#include "NetworkManagerPolicy.h"
@@ -107,8 +108,9 @@ NMDevice * nm_create_device_and_add_to_list (NMData *data, const char *udi, cons
*/
if (!data->enable_test_devices && test_device)
{
syslog (LOG_ERR, "nm_create_device_and_add_to_list(): attempt to create a test device,"
" but test devices were not enabled on the command line. Will not create the device.\n");
nm_warning ("attempted to create a test device, "
"but test devices were not enabled "
"on the command line.");
return (NULL);
}
@@ -123,7 +125,7 @@ NMDevice * nm_create_device_and_add_to_list (NMData *data, const char *udi, cons
*/
if (nm_try_acquire_mutex (data->dev_list_mutex, __FUNCTION__))
{
syslog (LOG_INFO, "Now managing %s device '%s'.",
nm_info ("Now managing %s device '%s'.",
nm_device_is_wireless (dev) ? "wireless" : "wired", nm_device_get_iface (dev));
data->dev_list = g_slist_append (data->dev_list, dev);
@@ -139,11 +141,11 @@ NMDevice * nm_create_device_and_add_to_list (NMData *data, const char *udi, cons
else
{
/* If we couldn't add the device to our list, free its data. */
syslog ( LOG_ERR, "nm_create_device_and_add_to_list() could not acquire device list mutex." );
nm_warning ("could not acquire device list mutex." );
nm_device_unref (dev);
dev = NULL;
}
} else syslog ( LOG_ERR, "nm_create_device_and_add_to_list() could not allocate device data." );
} else nm_warning ("could not allocate device data." );
return (dev);
}
@@ -194,7 +196,7 @@ void nm_remove_device_from_list (NMData *data, const char *udi)
}
}
nm_unlock_mutex (data->dev_list_mutex, __FUNCTION__);
} else syslog ( LOG_ERR, "nm_remove_device_from_list() could not acquire device list mutex." );
} else nm_warning ("could not acquire device list mutex." );
}
/* Hal doesn't really give us any way to pass a GMainContext to our
@@ -223,7 +225,7 @@ static void nm_hal_device_added (LibHalContext *ctx, const char *udi)
g_return_if_fail (data != NULL);
syslog ( LOG_DEBUG, "New device added (hal udi is '%s').", udi );
nm_debug ("New device added (hal udi is '%s').", udi );
/* Sometimes the device's properties (like net.interface) are not set up yet,
* so this call will fail, and it will actually be added when hal sets the device's
@@ -247,7 +249,7 @@ static void nm_hal_device_removed (LibHalContext *ctx, const char *udi)
g_return_if_fail (data != NULL);
syslog ( LOG_DEBUG, "Device removed (hal udi is '%s').", udi );
nm_debug ("Device removed (hal udi is '%s').", udi );
nm_remove_device_from_list (data, udi);
}
@@ -263,7 +265,7 @@ static void nm_hal_device_new_capability (LibHalContext *ctx, const char *udi, c
g_return_if_fail (data != NULL);
/*syslog ( LOG_DEBUG, "nm_hal_device_new_capability() called with udi = %s, capability = %s", udi, capability );*/
/*nm_debug ("nm_hal_device_new_capability() called with udi = %s, capability = %s", udi, capability );*/
if (capability && ((strcmp (capability, "net.80203") == 0) || (strcmp (capability, "net.80211") == 0)))
{
@@ -284,7 +286,7 @@ static void nm_hal_device_new_capability (LibHalContext *ctx, const char *udi, c
*/
static void nm_hal_device_lost_capability (LibHalContext *ctx, const char *udi, const char *capability)
{
/* syslog ( LOG_DEBUG, "nm_hal_device_lost_capability() called with udi = %s, capability = %s", udi, capability );*/
/* nm_debug ("nm_hal_device_lost_capability() called with udi = %s, capability = %s", udi, capability );*/
}
/*
@@ -308,8 +310,8 @@ static void nm_add_initial_devices (NMData *data)
net_devices = libhal_find_device_by_capability (data->hal_ctx, "net", &num_net_devices, &error);
if (dbus_error_is_set (&error))
{
syslog (LOG_ERR, "nm_add_initial_devices() could not find existing"
"networking devices: %s", error.message);
nm_warning ("could not find existing networking devices: %s",
error.message);
dbus_error_free (&error);
}
@@ -404,7 +406,7 @@ gboolean nm_poll_and_update_wireless_link_state (NMData *data)
}
nm_unlock_mutex (data->dev_list_mutex, __FUNCTION__);
} else syslog ( LOG_ERR, "nm_poll_and_update_wireless_link_state() could not acquire device list mutex." );
} else nm_warning ("could not acquire device list mutex." );
return (TRUE);
}
@@ -429,7 +431,7 @@ static NMData *nm_data_new (gboolean enable_test_devices)
if (pipe(data->sigterm_pipe) < 0)
{
syslog (LOG_CRIT, "Couldn't create pipe: %s", g_strerror (errno));
nm_error ("Couldn't create pipe: %s", g_strerror (errno));
exit (EXIT_FAILURE);
}
@@ -453,7 +455,7 @@ static NMData *nm_data_new (gboolean enable_test_devices)
if (!data->dev_list_mutex)
{
nm_data_free (data);
syslog (LOG_ERR, "Could not initialize data structure locks.");
nm_warning ("could not initialize data structure locks.");
return (NULL);
}
nm_register_mutex_desc (data->dev_list_mutex, "Device List Mutex");
@@ -464,7 +466,7 @@ static NMData *nm_data_new (gboolean enable_test_devices)
if (!data->allowed_ap_list || !data->invalid_ap_list)
{
nm_data_free (data);
syslog (LOG_ERR, "Could not create access point lists. Whacky stuff going on?");
nm_warning ("could not create access point lists.");
return (NULL);
}
@@ -508,19 +510,29 @@ static void nm_data_free (NMData *data)
memset (data, 0, sizeof (NMData));
}
static void sigterm_handler (int signum)
{
int ignore;
syslog (LOG_NOTICE, "Caught SIGINT/SIGTERM");
/* FIXME: This line is probably not a great
* thing to have in a signal handler
*/
nm_info ("Caught SIGINT/SIGTERM");
ignore = write (nm_data->sigterm_pipe[1], "X", 1);
}
static gboolean sigterm_pipe_handler (GIOChannel *src, GIOCondition condition, gpointer user_data)
{
NMData *data = user_data;
syslog (LOG_NOTICE, "Caught terminiation signal");
/* FIXME: These lines are definitely not great
* things to have in a signal handler
*
* The fix is to have a pipe that non-signal handling
* code can watch and respond to.
*/
nm_info ("Caught terminiation signal");
if (data->active_device)
nm_device_deactivate (data->active_device, FALSE);
g_main_loop_quit (data->main_loop);
@@ -586,8 +598,8 @@ nm_wired_link_activated (NmNetlinkMonitor *monitor,
}
}
else
syslog (LOG_ERR, "unknown wired ethernet interface '%s' activated\n",
interface_name);
nm_info ("unknown wired ethernet interface '%s' "
"activated\n", interface_name);
nm_unlock_mutex (data->dev_list_mutex, __FUNCTION__);
}
}
@@ -606,8 +618,8 @@ nm_wired_link_deactivated (NmNetlinkMonitor *monitor,
if (device != NULL)
nm_device_set_link_active (device, FALSE);
else
syslog (LOG_ERR, "unknown wired ethernet interface '%s' "
"deactivated\n", interface_name);
nm_info ("unknown wired ethernet interface '%s' "
"deactivated\n", interface_name);
nm_unlock_mutex (data->dev_list_mutex, __FUNCTION__);
}
}
@@ -619,8 +631,8 @@ nm_error_monitoring_wired_link_state (NmNetlinkMonitor *monitor,
{
/* FIXME: Try to handle the error instead of just printing it.
*/
syslog (LOG_ERR, "error monitoring wired ethernet link state: %s\n",
error->message);
nm_warning ("error monitoring wired ethernet link state: %s\n",
error->message);
}
static void
@@ -636,8 +648,8 @@ nm_monitor_wired_link_state (NMData *data)
if (error != NULL)
{
syslog (LOG_ERR, "could not monitor wired ethernet devices: %s",
error->message);
nm_warning ("could not monitor wired ethernet devices: %s",
error->message);
g_error_free (error);
g_object_unref (monitor);
return;
@@ -655,9 +667,65 @@ nm_monitor_wired_link_state (NMData *data)
nm_netlink_monitor_attach (monitor, data->main_context);
/* Request initial status of cards
*/
nm_netlink_monitor_request_status (monitor, NULL);
data->netlink_monitor = monitor;
}
static void
nm_info_handler (const gchar *log_domain,
GLogLevelFlags log_level,
const gchar *message,
gboolean is_daemon)
{
int syslog_priority;
switch (log_level)
{
case G_LOG_LEVEL_ERROR:
syslog_priority = LOG_CRIT;
break;
case G_LOG_LEVEL_CRITICAL:
syslog_priority = LOG_ERR;
break;
case G_LOG_LEVEL_WARNING:
syslog_priority = LOG_WARNING;
break;
case G_LOG_LEVEL_MESSAGE:
syslog_priority = LOG_NOTICE;
case G_LOG_LEVEL_DEBUG:
syslog_priority = LOG_DEBUG;
break;
case G_LOG_LEVEL_INFO:
default:
syslog_priority = LOG_INFO;
break;
}
syslog (syslog_priority, message);
}
static void
nm_set_up_log_handlers (gboolean become_daemon)
{
if (become_daemon)
openlog (G_LOG_DOMAIN, LOG_CONS, LOG_DAEMON);
else
openlog (G_LOG_DOMAIN, LOG_CONS | LOG_PERROR, LOG_USER);
g_log_set_handler (G_LOG_DOMAIN,
G_LOG_LEVEL_MASK,
(GLogFunc) nm_info_handler,
GINT_TO_POINTER (become_daemon));
}
/*
* main
*
@@ -675,7 +743,7 @@ int main( int argc, char *argv[] )
if ((int)getuid() != 0)
{
printf( "You must be root to run NetworkManager!\n");
g_printerr ("You must be root to run NetworkManager!\n");
return (EXIT_FAILURE);
}
@@ -721,8 +789,12 @@ int main( int argc, char *argv[] )
if (become_daemon && daemon (0, 0) < 0)
{
syslog (LOG_ERR, "NetworkManager could not daemonize. errno = %d", errno);
exit (EXIT_FAILURE);
int saved_errno;
saved_errno = errno;
nm_error ("NetworkManager could not daemonize: %s [error %u]",
g_strerror (saved_errno), saved_errno);
exit (EXIT_FAILURE);
}
g_type_init ();
@@ -730,8 +802,8 @@ int main( int argc, char *argv[] )
g_thread_init (NULL);
dbus_g_thread_init ();
openlog ("NetworkManager", (become_daemon) ? LOG_CONS : LOG_CONS | LOG_PERROR, (become_daemon) ? LOG_DAEMON : LOG_USER);
syslog (LOG_NOTICE, "starting...");
nm_set_up_log_handlers (become_daemon);
nm_info ("starting...");
nm_system_init();
@@ -747,7 +819,7 @@ int main( int argc, char *argv[] )
nm_data = nm_data_new (enable_test_devices);
if (!nm_data)
{
syslog (LOG_CRIT, "nm_data_new() failed... Not enough memory?");
nm_error ("nm_data_new() failed... Not enough memory?");
exit (EXIT_FAILURE);
}
@@ -755,25 +827,30 @@ int main( int argc, char *argv[] )
nm_data->dbus_connection = nm_dbus_init (nm_data);
if (!nm_data->dbus_connection)
{
syslog (LOG_CRIT, "nm_dbus_init() failed, exiting. Either dbus is not running, or the NetworkManager dbus security policy was not loaded.");
nm_error ("nm_dbus_init() failed, exiting. "
"Either dbus is not running, or the "
"NetworkManager dbus security policy "
"was not loaded.");
nm_data_free (nm_data);
exit (EXIT_FAILURE);
}
/* If NMI is running, grab allowed wireless network lists from it ASAP */
/* If NMI is running, grab allowed wireless network lists from it ASAP
*/
if (nm_dbus_is_info_daemon_running (nm_data->dbus_connection))
nm_policy_schedule_allowed_ap_list_update (nm_data);
/* Right before we init hal, we have to make sure our mainloop integration function
* knows about our GMainContext. HAL doesn't give us any way to pass that into its
* mainloop integration callback, so its got to be a global.
/* Right before we init hal, we have to make sure our mainloop
* integration function knows about our GMainContext. HAL doesn't give
* us any way to pass that into its mainloop integration callback, so
* its got to be a global.
*/
main_context = nm_data->main_context;
/* Initialize libhal. We get a connection to the hal daemon here. */
if ((ctx = libhal_ctx_new()) == NULL)
{
syslog (LOG_CRIT, "libhal_ctx_new() failed, exiting...");
nm_error ("libhal_ctx_new() failed, exiting...");
exit (EXIT_FAILURE);
}
@@ -783,7 +860,9 @@ int main( int argc, char *argv[] )
dbus_error_init (&dbus_error);
if(!libhal_ctx_init (ctx, &dbus_error)) {
syslog (LOG_CRIT, "libhal_ctx_init() failed, exiting... Make sure the hal daemon is running? - %s", dbus_error.message);
nm_error ("libhal_ctx_init() failed: %s\n"
"Make sure the hal daemon is running?",
dbus_error.message);
dbus_error_free (&dbus_error);
exit (EXIT_FAILURE);
@@ -805,12 +884,14 @@ int main( int argc, char *argv[] )
if (dbus_error_is_set (&dbus_error))
{
syslog (LOG_CRIT, "libhal_device_property_watch_all(): %s", dbus_error.message);
nm_error ("libhal_device_property_watch_all(): %s",
dbus_error.message);
dbus_error_free (&dbus_error);
exit (EXIT_FAILURE);
}
/* Grab network devices that are already present and add them to our list */
/* Grab network devices that are already present and add them to our
* list */
nm_add_initial_devices (nm_data);
/* We run dhclient when we need to, and we don't want any stray ones
@@ -827,7 +908,8 @@ int main( int argc, char *argv[] )
if (!nm_named_manager_start (nm_data->named, &error))
{
syslog (LOG_CRIT, "Couldn't initialize nameserver: %s", error->message);
nm_error ("couldn't initialize nameserver: %s",
error->message);
exit (EXIT_FAILURE);
}
@@ -835,12 +917,13 @@ int main( int argc, char *argv[] )
g_main_loop_run (nm_data->main_loop);
/* Cleanup */
if (libhal_ctx_shutdown (nm_data->hal_ctx, &dbus_error) != 0) {
syslog (LOG_NOTICE, "Error: libhal shutdown failed - %s", dbus_error.message);
libhal_ctx_shutdown (nm_data->hal_ctx, &dbus_error);
if (dbus_error_is_set (&dbus_error)) {
nm_warning ("libhal shutdown failed - %s",
dbus_error.message);
dbus_error_free (&dbus_error);
}
libhal_ctx_free (nm_data->hal_ctx);
nm_data_free (nm_data);

View File

@@ -21,6 +21,7 @@
#include "NetworkManagerAP.h"
#include "NetworkManagerUtils.h"
#include "nm-utils.h"
#include "NetworkManagerWireless.h"
@@ -67,7 +68,7 @@ NMAccessPoint * nm_ap_new (void)
ap = g_new0 (NMAccessPoint, 1);
if (!ap)
{
syslog (LOG_ERR, "nm_ap_new() could not allocate a new user access point info structure. Not enough memory?");
nm_warning ("nm_ap_new() could not allocate a new user access point info structure. Not enough memory?");
return (NULL);
}
@@ -98,7 +99,7 @@ NMAccessPoint * nm_ap_new_from_ap (NMAccessPoint *src_ap)
new_ap = nm_ap_new();
if (!new_ap)
{
syslog (LOG_ERR, "nm_ap_new_from_uap() could not allocate a new user access point structure. Not enough memory?");
nm_warning ("nm_ap_new_from_uap() could not allocate a new user access point structure. Not enough memory?");
return (NULL);
}

View File

@@ -26,6 +26,7 @@
#include "NetworkManagerAPList.h"
#include "NetworkManagerUtils.h"
#include "NetworkManagerDbus.h"
#include "nm-utils.h"
struct NMAccessPointList
@@ -55,7 +56,7 @@ NMAccessPointList *nm_ap_list_new (NMNetworkType type)
if (!list->mutex)
{
g_free (list);
syslog (LOG_ERR, "nm_ap_list_new() could not create list mutex");
nm_warning ("nm_ap_list_new() could not create list mutex");
return (NULL);
}
nm_register_mutex_desc (list->mutex, "AP List Mutex");
@@ -145,7 +146,7 @@ void nm_ap_list_append_ap (NMAccessPointList *list, NMAccessPoint *ap)
if (!nm_ap_list_lock (list))
{
syslog( LOG_ERR, "nm_ap_list_append_ap() could not acquire AP list mutex." );
nm_warning ("nm_ap_list_append_ap() could not acquire AP list mutex." );
return;
}
@@ -171,7 +172,7 @@ void nm_ap_list_remove_ap (NMAccessPointList *list, NMAccessPoint *ap)
if (!nm_ap_list_lock (list))
{
syslog( LOG_ERR, "nm_ap_list_append_ap() could not acquire AP list mutex." );
nm_warning ("nm_ap_list_append_ap() could not acquire AP list mutex." );
return;
}
@@ -360,7 +361,7 @@ void nm_ap_list_populate_from_nmi (NMAccessPointList *list, NMData *data)
nm_ap_list_update_network_from_nmi (list, networks[i], data);
}
dbus_free_string_array (networks);
g_strfreev (networks);
}
}
@@ -696,16 +697,16 @@ void nm_ap_list_print_members (NMAccessPointList *list, const char *name)
if (!(iter = nm_ap_list_iter_new (list)))
return;
syslog (LOG_ERR, "AP_LIST_PRINT: printing members of '%s'", name);
nm_warning ("AP_LIST_PRINT: printing members of '%s'", name);
while ((ap = nm_ap_list_iter_next (iter)))
{
const GTimeVal *timestamp = nm_ap_get_timestamp (ap);
syslog (LOG_ERR, "\t%d)\tobj=%p, essid='%s', timestamp=%ld, key='%s', enc=%d, addr=%p, strength=%d, %s=%f, rate=%d, inval=%d, mode=%d",
nm_warning ("\t%d)\tobj=%p, essid='%s', timestamp=%ld, key='%s', enc=%d, addr=%p, strength=%d, %s=%f, rate=%d, inval=%d, mode=%d",
i, ap, nm_ap_get_essid (ap), timestamp->tv_sec, nm_ap_get_enc_key_source (ap), nm_ap_get_encrypted (ap),
nm_ap_get_address (ap), nm_ap_get_strength (ap), (nm_ap_get_freq (ap) < 20) ? "channel" : "freq", nm_ap_get_freq (ap), nm_ap_get_rate (ap),
nm_ap_get_invalid (ap), nm_ap_get_mode (ap));
i++;
}
syslog (LOG_ERR, "AP_LIST_PRINT: done");
nm_warning ("AP_LIST_PRINT: done");
nm_ap_list_iter_free (iter);
}

View File

@@ -33,6 +33,7 @@
#include "NetworkManagerPolicy.h"
#include "nm-named-manager.h"
#include "../dhcpcd/client.h"
#include "nm-utils.h"
extern gboolean get_autoip (NMDevice *dev, struct in_addr *out_ip);
@@ -49,7 +50,7 @@ static void set_nameservers (NMDevice *dev, void *data, int len)
GPOINTER_TO_UINT (elt->data),
&error))
{
syslog (LOG_ERR, G_GNUC_PRETTY_FUNCTION ": Couldn't remove nameserver: %s\n", error->message);
nm_warning ("Couldn't remove nameserver: %s\n", error->message);
g_clear_error (&error);
}
}
@@ -65,7 +66,7 @@ static void set_nameservers (NMDevice *dev, void *data, int len)
((unsigned char *)data)[i+1],
((unsigned char *)data)[i+2],
((unsigned char *)data)[i+3]);
syslog (LOG_ERR, G_GNUC_PRETTY_FUNCTION ": Adding nameserver: %s\n", nameserver);
nm_warning ("Adding nameserver: %s\n", nameserver);
if ((id = nm_named_manager_add_nameserver_ipv4 (dev->app_data->named,
nameserver,
@@ -74,7 +75,7 @@ static void set_nameservers (NMDevice *dev, void *data, int len)
GUINT_TO_POINTER (id));
else
{
syslog (LOG_ERR, G_GNUC_PRETTY_FUNCTION ": Couldn't add nameserver: %s\n", error->message);
nm_warning ("Couldn't add nameserver: %s\n", error->message);
g_clear_error (&error);
}
g_free (nameserver);
@@ -94,7 +95,7 @@ static void set_domain_searches (NMDevice *dev, const char *searches_str)
GPOINTER_TO_UINT (elt->data),
&error))
{
syslog (LOG_ERR, G_GNUC_PRETTY_FUNCTION ": Couldn't remove domain search: %s\n", error->message);
nm_warning ("Couldn't remove domain search: %s\n", error->message);
g_clear_error (&error);
}
}
@@ -108,14 +109,14 @@ static void set_domain_searches (NMDevice *dev, const char *searches_str)
const char *search_elt = *s;
guint id;
syslog (LOG_ERR, G_GNUC_PRETTY_FUNCTION ": Adding domain search: %s\n", search_elt);
nm_warning ("Adding domain search: %s\n", search_elt);
if ((id = nm_named_manager_add_domain_search (dev->app_data->named,
search_elt,
&error)))
dev->app_data->domain_search_ids = g_list_append (dev->app_data->domain_search_ids, GUINT_TO_POINTER (id));
else
{
syslog (LOG_ERR, G_GNUC_PRETTY_FUNCTION ": Couldn't add domain search: %s\n", error->message);
nm_warning ("Couldn't add domain search: %s\n", error->message);
g_clear_error (&error);
}
}
@@ -217,7 +218,7 @@ int nm_device_dhcp_request (NMDevice *dev)
if (dev->dhcp_iface)
{
syslog (LOG_ERR, "nm_device_dhcp_request(): device DHCP info exists, but it should have been cleared already.\n");
nm_warning ("nm_device_dhcp_request(): device DHCP info exists, but it should have been cleared already.\n");
dhcp_interface_free (dev->dhcp_iface);
}
@@ -289,7 +290,7 @@ gboolean nm_device_dhcp_setup_timeouts (NMDevice *dev)
}
if (!t1 || !t2)
{
syslog (LOG_ERR, "DHCP renew/rebind values were 0! Won't renew lease.");
nm_warning ("DHCP renew/rebind values were 0! Won't renew lease.");
return (FALSE);
}

View File

@@ -165,13 +165,13 @@ static gboolean nm_dbus_send_network_not_found (gpointer user_data)
NMI_DBUS_INTERFACE, "networkNotFound");
if (message == NULL)
{
syslog (LOG_ERR, "nm_dbus_send_network_not_found(): Couldn't allocate the dbus message");
nm_warning ("nm_dbus_send_network_not_found(): Couldn't allocate the dbus message");
goto out;
}
dbus_message_append_args (message, DBUS_TYPE_STRING, &cb_data->net, DBUS_TYPE_INVALID);
if (!dbus_connection_send (cb_data->app_data->dbus_connection, message, NULL))
syslog (LOG_WARNING, "nm_dbus_send_network_not_found(): could not send dbus message");
nm_warning ("nm_dbus_send_network_not_found(): could not send dbus message");
dbus_message_unref (message);
@@ -294,13 +294,13 @@ void nm_dbus_signal_device_status_change (DBusConnection *connection, NMDevice *
signal = "DeviceActivationFailed";
break;
default:
syslog (LOG_ERR, "nm_dbus_signal_device_status_change(): got a bad signal name");
nm_warning ("nm_dbus_signal_device_status_change(): got a bad signal name");
return;
}
if (!(message = dbus_message_new_signal (NM_DBUS_PATH, NM_DBUS_INTERFACE, signal)))
{
syslog (LOG_ERR, "nm_dbus_signal_device_status_change(): Not enough memory for new dbus message!");
nm_warning ("nm_dbus_signal_device_status_change(): Not enough memory for new dbus message!");
g_free (dev_path);
return;
}
@@ -322,7 +322,7 @@ void nm_dbus_signal_device_status_change (DBusConnection *connection, NMDevice *
g_free (dev_path);
if (!dbus_connection_send (connection, message, NULL))
syslog (LOG_WARNING, "nm_dbus_signal_device_status_change(): Could not raise the signal!");
nm_warning ("nm_dbus_signal_device_status_change(): Could not raise the signal!");
dbus_message_unref (message);
}
@@ -376,7 +376,7 @@ void nm_dbus_signal_network_status_change (DBusConnection *connection, NMData *d
if (!(message = dbus_message_new_signal (NM_DBUS_PATH, NM_DBUS_INTERFACE, "NetworkStatusChange")))
{
syslog (LOG_ERR, "nm_dbus_signal_device_status_change(): Not enough memory for new dbus message!");
nm_warning ("nm_dbus_signal_device_status_change(): Not enough memory for new dbus message!");
return;
}
@@ -385,7 +385,7 @@ void nm_dbus_signal_network_status_change (DBusConnection *connection, NMData *d
dbus_message_append_args (message, DBUS_TYPE_STRING, &status, DBUS_TYPE_INVALID);
if (!dbus_connection_send (connection, message, NULL))
syslog (LOG_WARNING, "nm_dbus_signal_device_status_change(): Could not raise the signal!");
nm_warning ("nm_dbus_signal_device_status_change(): Could not raise the signal!");
g_free (status);
}
@@ -413,7 +413,7 @@ void nm_dbus_signal_device_ip4_address_change (DBusConnection *connection, NMDev
message = dbus_message_new_signal (NM_DBUS_PATH, NM_DBUS_INTERFACE, "DeviceIP4AddressChange");
if (!message)
{
syslog (LOG_ERR, "nm_dbus_signal_device_ip4_address_change(): Not enough memory for new dbus message!");
nm_warning ("nm_dbus_signal_device_ip4_address_change(): Not enough memory for new dbus message!");
g_free (dev_path);
return;
}
@@ -422,7 +422,7 @@ void nm_dbus_signal_device_ip4_address_change (DBusConnection *connection, NMDev
g_free (dev_path);
if (!dbus_connection_send (connection, message, NULL))
syslog (LOG_WARNING, "nm_dbus_signal_device_ip4_address_change(): Could not raise the IP4AddressChange signal!");
nm_warning ("nm_dbus_signal_device_ip4_address_change(): Could not raise the IP4AddressChange signal!");
dbus_message_unref (message);
}
@@ -457,7 +457,7 @@ void nm_dbus_signal_wireless_network_change (DBusConnection *connection, NMDevic
message = dbus_message_new_signal (NM_DBUS_PATH, NM_DBUS_INTERFACE, "WirelessNetworkUpdate");
if (!message)
{
syslog (LOG_ERR, "nm_dbus_signal_wireless_network_appeared(): Not enough memory for new dbus message!");
nm_warning ("nm_dbus_signal_wireless_network_appeared(): Not enough memory for new dbus message!");
g_free (dev_path);
g_free (ap_path);
return;
@@ -476,7 +476,7 @@ void nm_dbus_signal_wireless_network_change (DBusConnection *connection, NMDevic
dbus_message_append_args (message, DBUS_TYPE_INT32, &strength, DBUS_TYPE_INVALID);
if (!dbus_connection_send (connection, message, NULL))
syslog (LOG_WARNING, "nnm_dbus_signal_wireless_network_appeared(): Could not raise the WirelessNetworkAppeared signal!");
nm_warning ("nnm_dbus_signal_wireless_network_appeared(): Could not raise the WirelessNetworkAppeared signal!");
dbus_message_unref (message);
}
@@ -503,7 +503,7 @@ void nm_dbus_get_user_key_for_network (DBusConnection *connection, NMDevice *dev
NMI_DBUS_INTERFACE, "getKeyForNetwork");
if (message == NULL)
{
syslog (LOG_ERR, "nm_dbus_get_user_key_for_network(): Couldn't allocate the dbus message");
nm_warning ("nm_dbus_get_user_key_for_network(): Couldn't allocate the dbus message");
return;
}
@@ -515,7 +515,7 @@ void nm_dbus_get_user_key_for_network (DBusConnection *connection, NMDevice *dev
DBUS_TYPE_INVALID);
if (!dbus_connection_send (connection, message, NULL))
syslog (LOG_WARNING, "nm_dbus_get_user_key_for_network(): could not send dbus message");
nm_warning ("nm_dbus_get_user_key_for_network(): could not send dbus message");
dbus_message_unref (message);
}
@@ -537,12 +537,12 @@ void nm_dbus_cancel_get_user_key_for_network (DBusConnection *connection)
NMI_DBUS_INTERFACE, "cancelGetKeyForNetwork");
if (message == NULL)
{
syslog (LOG_ERR, "nm_dbus_cancel_get_user_key_for_network(): Couldn't allocate the dbus message");
nm_warning ("nm_dbus_cancel_get_user_key_for_network(): Couldn't allocate the dbus message");
return;
}
if (!dbus_connection_send (connection, message, NULL))
syslog (LOG_WARNING, "nm_dbus_cancel_get_user_key_for_network(): could not send dbus message");
nm_warning ("nm_dbus_cancel_get_user_key_for_network(): could not send dbus message");
dbus_message_unref (message);
}
@@ -563,6 +563,7 @@ NMAccessPoint *nm_dbus_get_network_object (DBusConnection *connection, NMNetwork
const char *essid = NULL;
gint timestamp_secs = -1;
gint32 i;
const char *key = NULL;
NMEncKeyType key_type = -1;
gboolean trusted = FALSE;
@@ -576,7 +577,7 @@ NMAccessPoint *nm_dbus_get_network_object (DBusConnection *connection, NMNetwork
if (!(message = dbus_message_new_method_call (NMI_DBUS_SERVICE, NMI_DBUS_PATH, NMI_DBUS_INTERFACE, "getNetworkProperties")))
{
syslog (LOG_ERR, "nm_dbus_get_network_object(): Couldn't allocate the dbus message");
nm_warning ("Couldn't allocate the dbus message");
return (NULL);
}
@@ -592,13 +593,13 @@ NMAccessPoint *nm_dbus_get_network_object (DBusConnection *connection, NMNetwork
if (dbus_error_is_set (&error))
{
syslog (LOG_ERR, "nm_dbus_get_network_object(): %s raised '%s'", error.name, error.message);
nm_warning ("%s raised '%s'", error.name, error.message);
goto out;
}
if (!reply)
{
syslog (LOG_NOTICE, "nm_dbus_get_network_object(): reply was NULL.");
nm_warning ("Reply was NULL.");
goto out;
}
@@ -606,13 +607,73 @@ NMAccessPoint *nm_dbus_get_network_object (DBusConnection *connection, NMNetwork
*/
dbus_message_iter_init (reply, &iter);
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_STRING)
{
nm_warning ("Reply had wrong arguments: "
"(expected %u, got %u)\n", DBUS_TYPE_STRING,
dbus_message_iter_get_arg_type (&iter));
goto out;
}
dbus_message_iter_get_basic (&iter, &essid);
dbus_message_iter_get_basic (&iter, &timestamp_secs);
dbus_message_iter_next (&iter);
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_INT32)
{
nm_warning ("Reply had wrong arguments: "
"(expected %u, got %u)\n", DBUS_TYPE_INT32,
dbus_message_iter_get_arg_type (&iter));
goto out;
}
dbus_message_iter_get_basic (&iter, &i);
timestamp_secs = (gint32) i;
dbus_message_iter_next (&iter);
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_STRING)
{
nm_warning ("Reply had wrong arguments: "
"(expected %u, got %u)\n", DBUS_TYPE_STRING,
dbus_message_iter_get_arg_type (&iter));
goto out;
}
dbus_message_iter_get_basic (&iter, &key);
dbus_message_iter_get_basic (&iter, &key_type);
dbus_message_iter_get_basic (&iter, &auth_method);
dbus_message_iter_next (&iter);
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_INT32)
{
nm_warning ("Reply had wrong arguments: "
"(expected %u, got %u)\n", DBUS_TYPE_INT32,
dbus_message_iter_get_arg_type (&iter));
goto out;
}
dbus_message_iter_get_basic (&iter, &i);
key_type = (NMEncKeyType) i;
dbus_message_iter_next (&iter);
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_INT32)
{
nm_warning ("Reply had wrong arguments: "
"(expected %u, got %u)\n", DBUS_TYPE_INT32,
dbus_message_iter_get_arg_type (&iter));
goto out;
}
dbus_message_iter_get_basic (&iter, &i);
auth_method = (NMDeviceAuthMethod) i;
dbus_message_iter_next (&iter);
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_BOOLEAN)
{
nm_warning ("Reply had wrong arguments: "
"(expected %u, got %u)\n", DBUS_TYPE_BOOLEAN,
dbus_message_iter_get_arg_type (&iter));
goto out;
}
dbus_message_iter_get_basic (&iter, &trusted);
dbus_message_iter_next (&iter);
if (timestamp_secs > 0)
{
GTimeVal *timestamp = g_new0 (GTimeVal, 1);
@@ -636,22 +697,43 @@ NMAccessPoint *nm_dbus_get_network_object (DBusConnection *connection, NMNetwork
/* Get user addresses, form into a GSList, and stuff into the AP */
if (dbus_message_iter_get_arg_type (&iter) == DBUS_TYPE_ARRAY)
{
GSList *addr_list = NULL;
GSList *addr_list;
DBusMessageIter array_iter;
dbus_message_iter_recurse (&iter, &array_iter);
addr_list = NULL;
while (dbus_message_iter_get_arg_type (&array_iter) == DBUS_TYPE_STRING)
{
gchar *addr;
const gchar *addr;
dbus_message_iter_get_basic (&array_iter, &addr);
if (addr && (strlen (addr) >= 11))
addr_list = g_slist_append (addr_list, g_strdup (addr));
if ((addr != NULL) && (strlen (addr) >= 11))
addr_list = g_slist_prepend (addr_list, g_strdup (addr));
else
nm_warning ("Expected hardware address, got '%s'",
addr);
dbus_message_iter_next (&array_iter);
}
if (dbus_message_iter_get_arg_type (&array_iter) != DBUS_TYPE_INVALID)
{
nm_warning ("Reply had wrong arguments: "
"(expected %u, got %u)", DBUS_TYPE_INVALID,
dbus_message_iter_get_arg_type (&array_iter));
g_slist_foreach (addr_list, (GFunc) g_free, NULL);
g_slist_free (addr_list);
goto out;
}
addr_list = g_slist_reverse (addr_list);
nm_ap_set_user_addresses (ap, addr_list);
g_slist_foreach (addr_list, (GFunc)g_free, NULL);
g_slist_foreach (addr_list, (GFunc) g_free, NULL);
g_slist_free (addr_list);
}
}
@@ -685,7 +767,7 @@ gboolean nm_dbus_update_network_auth_method (DBusConnection *connection, const c
message = dbus_message_new_method_call (NMI_DBUS_SERVICE, NMI_DBUS_PATH, NMI_DBUS_INTERFACE, "updateNetworkAuthMethod");
if (!message)
{
syslog (LOG_ERR, "nm_dbus_update_network_auth_method (): Couldn't allocate the dbus message");
nm_warning ("nm_dbus_update_network_auth_method (): Couldn't allocate the dbus message");
return (FALSE);
}
@@ -698,7 +780,7 @@ gboolean nm_dbus_update_network_auth_method (DBusConnection *connection, const c
dbus_error_init (&error);
if (!dbus_connection_send (connection, message, NULL))
{
syslog (LOG_ERR, "nm_dbus_update_network_auth_method (): failed to send dbus message.");
nm_warning ("nm_dbus_update_network_auth_method (): failed to send dbus message.");
dbus_error_free (&error);
}
else
@@ -735,7 +817,7 @@ gboolean nm_dbus_add_network_address (DBusConnection *connection, NMNetworkType
NMI_DBUS_INTERFACE, "addNetworkAddress");
if (!message)
{
syslog (LOG_ERR, "nm_dbus_add_network_ap_mac_address(): Couldn't allocate the dbus message");
nm_warning ("nm_dbus_add_network_ap_mac_address(): Couldn't allocate the dbus message");
return (FALSE);
}
@@ -753,7 +835,7 @@ gboolean nm_dbus_add_network_address (DBusConnection *connection, NMNetworkType
dbus_error_init (&error);
if (!dbus_connection_send (connection, message, NULL))
{
syslog (LOG_ERR, "nm_dbus_add_network_ap_mac_address(): failed to send dbus message.");
nm_warning ("nm_dbus_add_network_ap_mac_address(): failed to send dbus message.");
dbus_error_free (&error);
}
else
@@ -769,7 +851,7 @@ gboolean nm_dbus_add_network_address (DBusConnection *connection, NMNetworkType
*
* Get all networks of a specific type from NetworkManagerInfo
*
* NOTE: caller MUST free returned value using dbus_free_string_array()
* NOTE: caller MUST free returned value using g_strfreev()
*
*/
char ** nm_dbus_get_networks (DBusConnection *connection, NMNetworkType type, int *num_networks)
@@ -788,7 +870,7 @@ char ** nm_dbus_get_networks (DBusConnection *connection, NMNetworkType type, in
NMI_DBUS_INTERFACE, "getNetworks");
if (!message)
{
syslog (LOG_ERR, "nm_dbus_get_networks(): Couldn't allocate the dbus message");
nm_warning ("nm_dbus_get_networks(): Couldn't allocate the dbus message");
return (NULL);
}
@@ -800,9 +882,9 @@ char ** nm_dbus_get_networks (DBusConnection *connection, NMNetworkType type, in
reply = dbus_connection_send_with_reply_and_block (connection, message, -1, &error);
dbus_message_unref (message);
if (dbus_error_is_set (&error))
syslog (LOG_ERR, "nm_dbus_get_networks(): %s raised %s", error.name, error.message);
nm_warning ("nm_dbus_get_networks(): %s raised %s", error.name, error.message);
else if (!reply)
syslog (LOG_NOTICE, "nm_dbus_get_networks(): reply was NULL.");
nm_info ("nm_dbus_get_networks(): reply was NULL.");
else
{
DBusMessageIter iter, array_iter;
@@ -816,7 +898,8 @@ char ** nm_dbus_get_networks (DBusConnection *connection, NMNetworkType type, in
if (buffer == NULL)
return NULL;
while (dbus_message_iter_get_arg_type (&array_iter) == DBUS_TYPE_STRING) {
while (dbus_message_iter_get_arg_type (&array_iter) == DBUS_TYPE_STRING)
{
const char *value;
char *str;
@@ -824,7 +907,10 @@ char ** nm_dbus_get_networks (DBusConnection *connection, NMNetworkType type, in
str = g_strdup (value);
if (str == NULL)
{
g_array_free (buffer, TRUE);
return NULL;
}
g_array_append_val (buffer, str);
@@ -886,7 +972,7 @@ static DBusHandlerResult nm_dbus_nmi_filter (DBusConnection *connection, DBusMes
if (!(object_path = dbus_message_get_path (message)))
return (DBUS_HANDLER_RESULT_NOT_YET_HANDLED);
/* syslog (LOG_DEBUG, "nm_dbus_nmi_filter() got method %s for path %s", method, object_path); */
/* nm_debug ("nm_dbus_nmi_filter() got method %s for path %s", method, object_path); */
dbus_error_init (&error);
@@ -898,7 +984,7 @@ static DBusHandlerResult nm_dbus_nmi_filter (DBusConnection *connection, DBusMes
if (dbus_message_get_args (message, &error, DBUS_TYPE_STRING, &network, DBUS_TYPE_INVALID))
{
/* Update a single wireless network's data */
syslog (LOG_DEBUG, "NetworkManagerInfo triggered update of wireless network '%s'", network);
nm_debug ("NetworkManagerInfo triggered update of wireless network '%s'", network);
nm_ap_list_update_network_from_nmi (data->allowed_ap_list, network, data);
handled = TRUE;
}
@@ -1094,7 +1180,7 @@ DBusConnection *nm_dbus_init (NMData *data)
connection = dbus_bus_get (DBUS_BUS_SYSTEM, &error);
if ((connection == NULL) || dbus_error_is_set (&error))
{
syslog (LOG_ERR, "nm_dbus_init() could not get the system bus. Make sure the message bus daemon is running?");
nm_warning ("nm_dbus_init() could not get the system bus. Make sure the message bus daemon is running?");
connection = NULL;
goto out;
}
@@ -1111,14 +1197,14 @@ DBusConnection *nm_dbus_init (NMData *data)
|| !dbus_connection_register_fallback (connection, NM_DBUS_PATH_DEVICES, &devices_vtable, data)
|| !dbus_connection_register_object_path (connection, NM_DBUS_PATH_DHCP, &dhcp_vtable, data))
{
syslog (LOG_CRIT, "nm_dbus_init() could not register D-BUS handlers. Cannot continue.");
nm_error ("nm_dbus_init() could not register D-BUS handlers. Cannot continue.");
connection = NULL;
goto out;
}
if (!dbus_connection_add_filter (connection, nm_dbus_nmi_filter, data, NULL))
{
syslog (LOG_CRIT, "nm_dbus_init() could not attach a dbus message filter. The NetworkManager dbus security policy may not be loaded. Restart dbus?");
nm_error ("nm_dbus_init() could not attach a dbus message filter. The NetworkManager dbus security policy may not be loaded. Restart dbus?");
connection = NULL;
goto out;
}
@@ -1140,7 +1226,7 @@ DBusConnection *nm_dbus_init (NMData *data)
dbus_bus_request_name (connection, NM_DBUS_SERVICE, 0, &error);
if (dbus_error_is_set (&error))
{
syslog (LOG_ERR, "nm_dbus_init() could not acquire its service. dbus_bus_acquire_service() says: '%s'", error.message);
nm_warning ("nm_dbus_init() could not acquire its service. dbus_bus_acquire_service() says: '%s'", error.message);
connection = NULL;
goto out;
}

View File

@@ -217,15 +217,15 @@ NMDevice *nm_device_new (const char *iface, const char *udi, gboolean test_dev,
*/
if (!app_data->enable_test_devices && test_dev)
{
syslog (LOG_ERR, "nm_device_new(): attempt to create a test device, but test devices were not enabled"
" on the command line. Will not create the device.\n");
nm_warning ("attempt to create a test device, but test devices were not enabled "
"on the command line. Will not create the device.\n");
return (NULL);
}
dev = g_malloc0 (sizeof (NMDevice));
if (!dev)
{
syslog (LOG_ERR, "nm_device_new() could not allocate a new device... Not enough memory?");
nm_warning ("could not allocate a new device... Not enough memory?");
return (NULL);
}
@@ -324,16 +324,16 @@ NMDevice *nm_device_new (const char *iface, const char *udi, gboolean test_dev,
if (!g_thread_create (nm_device_worker, dev, FALSE, &error))
{
syslog (LOG_CRIT, "nm_device_new (): could not create device worker thread. (glib said: '%s')", error->message);
nm_error ("could not create device worker thread. (glib said: '%s')", error->message);
g_error_free (error);
goto err;
}
/* Block until our device thread has actually had a chance to start. */
syslog (LOG_ERR, "nm_device_new(): waiting for device's worker thread to start.\n");
nm_info ("waiting for device's worker thread to start.\n");
while (dev->worker_started == FALSE)
g_usleep (G_USEC_PER_SEC / 2);
syslog (LOG_ERR, "nm_device_new(): device's worker thread started, continuing.\n");
nm_info ("device's worker thread started, continuing.\n");
return (dev);
@@ -420,7 +420,7 @@ static gpointer nm_device_worker (gpointer user_data)
if (!dev)
{
syslog (LOG_CRIT, "nm_device_worker(): received NULL device object, NetworkManager cannot continue.\n");
nm_error ("received NULL device object, NetworkManager cannot continue.\n");
exit (1);
}
@@ -517,7 +517,7 @@ int nm_device_open_sock (void)
if (fd >= 0)
return (fd);
syslog (LOG_ERR, "nm_device_open_sock () could not get network control socket.");
nm_warning ("could not get network control socket.");
return (-1);
}
@@ -799,19 +799,17 @@ static gboolean nm_device_probe_wired_link_state (NMDevice *dev)
if (dev->removed)
return FALSE;
carrier_path = g_strdup_printf ("/sys/sys/class/net/%s/carrier", dev->iface);
carrier_path = g_strdup_printf ("/sys/class/net/%s/carrier", dev->iface);
if (g_file_get_contents (carrier_path, &contents, &length, NULL)) {
link = (gboolean) atoi (contents);
g_free (contents);
} else {
contents = NULL;
}
}
/* We say that non-carrier-detect devices always have a link, because
* they never get auto-selected by NM. User has to force them on us,
* so we just hope the user knows whether or not the cable's plugged in.
*/
if ((dev->options.wired.has_carrier_detect != TRUE) || (contents == NULL))
if (dev->options.wired.has_carrier_detect != TRUE)
link = TRUE;
return (link);
@@ -893,7 +891,7 @@ char * nm_device_get_essid (NMDevice *dev)
dev->options.wireless.cur_essid = g_strdup (info.essid);
}
else
syslog (LOG_ERR, "nm_device_get_essid(): error getting ESSID for device %s. errno = %d", nm_device_get_iface (dev), errno);
nm_warning ("nm_device_get_essid(): error getting ESSID for device %s. errno = %d", nm_device_get_iface (dev), errno);
close (sk);
}
@@ -944,7 +942,7 @@ void nm_device_set_essid (NMDevice *dev, const char *essid)
err = iw_set_ext (sk, nm_device_get_iface (dev), SIOCSIWESSID, &wreq);
if (err == -1)
syslog (LOG_ERR, "nm_device_set_essid(): error setting ESSID '%s' for device %s. errno = %d", safe_essid, nm_device_get_iface (dev), errno);
nm_warning ("nm_device_set_essid(): error setting ESSID '%s' for device %s. errno = %d", safe_essid, nm_device_get_iface (dev), errno);
close (sk);
}
@@ -979,7 +977,7 @@ double nm_device_get_frequency (NMDevice *dev)
if (err >= 0)
freq = iw_freq2float (&wrq.u.freq);
if (err == -1)
syslog (LOG_ERR, "nm_device_get_frequency(): error getting frequency for device %s. errno = %d", nm_device_get_iface (dev), errno);
nm_warning ("nm_device_get_frequency(): error getting frequency for device %s. errno = %d", nm_device_get_iface (dev), errno);
close (sk);
}
@@ -1258,11 +1256,11 @@ void nm_device_set_enc_key (NMDevice *dev, const char *key, NMDeviceAuthMethod a
{
err = iw_set_ext (sk, nm_device_get_iface (dev), SIOCSIWENCODE, &wreq);
if (err == -1)
syslog (LOG_ERR, "nm_device_set_enc_key(): error setting key for device %s. errno = %d", nm_device_get_iface (dev), errno);
nm_warning ("nm_device_set_enc_key(): error setting key for device %s. errno = %d", nm_device_get_iface (dev), errno);
}
close (sk);
} else syslog (LOG_ERR, "nm_device_set_enc_key(): could not get wireless control socket.");
} else nm_warning ("nm_device_set_enc_key(): could not get wireless control socket.");
}
@@ -1501,7 +1499,7 @@ static void nm_device_set_up_down (NMDevice *dev, gboolean up)
ifr.ifr_flags &= ~IFF_UP;
ifr.ifr_flags |= IFF_UP & flags;
if ((err = ioctl (sk, SIOCSIFFLAGS, &ifr)))
syslog (LOG_ERR, "nm_device_set_up_down() could not bring device %s %s. errno = %d", nm_device_get_iface (dev), (up ? "up" : "down"), errno );
nm_warning ("nm_device_set_up_down() could not bring device %s %s. errno = %d", nm_device_get_iface (dev), (up ? "up" : "down"), errno );
}
/* Make sure we have a valid MAC address, some cards reload firmware when they
* are brought up.
@@ -1510,7 +1508,7 @@ static void nm_device_set_up_down (NMDevice *dev, gboolean up)
nm_device_update_hw_address(dev);
}
else
syslog (LOG_ERR, "nm_device_set_up_down() could not get flags for device %s. errno = %d", nm_device_get_iface (dev), errno );
nm_warning ("nm_device_set_up_down() could not get flags for device %s. errno = %d", nm_device_get_iface (dev), errno );
close (sk);
}
@@ -1556,7 +1554,7 @@ gboolean nm_device_is_up (NMDevice *dev)
if (!err)
return (!((ifr.ifr_flags^IFF_UP) & IFF_UP));
syslog (LOG_ERR, "nm_device_is_up() could not get flags for device %s. errno = %d", nm_device_get_iface (dev), errno );
nm_warning ("nm_device_is_up() could not get flags for device %s. errno = %d", nm_device_get_iface (dev), errno );
return (FALSE);
}
@@ -1598,7 +1596,7 @@ NMNetworkMode nm_device_get_mode (NMDevice *dev)
}
}
else
syslog (LOG_ERR, "nm_device_get_mode (%s): error setting card to Infrastructure mode. errno = %d", nm_device_get_iface (dev), errno);
nm_warning ("nm_device_get_mode (%s): error setting card to Infrastructure mode. errno = %d", nm_device_get_iface (dev), errno);
close (sk);
}
@@ -1652,7 +1650,7 @@ gboolean nm_device_set_mode (NMDevice *dev, const NMNetworkMode mode)
if (err == 0)
success = TRUE;
else
syslog (LOG_ERR, "nm_device_set_mode (%s): error setting card to Infrastructure mode. errno = %d", nm_device_get_iface (dev), errno);
nm_warning ("nm_device_set_mode (%s): error setting card to Infrastructure mode. errno = %d", nm_device_get_iface (dev), errno);
}
close (sk);
}
@@ -1747,7 +1745,7 @@ static gboolean nm_device_activation_handle_cancel (NMDevice *dev)
/* If we were told to quit activation, stop the thread and return */
if (dev->quit_activation)
{
syslog (LOG_DEBUG, "nm_device_activation_worker(%s): activation canceled.", nm_device_get_iface (dev));
nm_debug ("activation of device '%s' canceled.", nm_device_get_iface (dev));
if (nm_device_is_wireless (dev))
nm_device_set_now_scanning (dev, FALSE);
return (TRUE);
@@ -1867,7 +1865,7 @@ static gboolean nm_device_set_wireless_config (NMDevice *dev, NMAccessPoint *ap)
if (auth == NM_DEVICE_AUTH_METHOD_NONE)
{
nm_ap_set_auth_method (ap, NM_DEVICE_AUTH_METHOD_OPEN_SYSTEM);
syslog (LOG_ERR, "Activation (%s/wireless): AP '%s' said it was encrypted, but had "
nm_warning ("Activation (%s/wireless): AP '%s' said it was encrypted, but had "
"'none' for authentication method. Using Open System authentication method.",
nm_device_get_iface (dev), nm_ap_get_essid (ap));
}
@@ -1879,7 +1877,7 @@ static gboolean nm_device_set_wireless_config (NMDevice *dev, NMAccessPoint *ap)
nm_device_set_essid (dev, essid);
syslog (LOG_INFO, "Activation (%s/wireless): using essid '%s', with %s authentication.",
nm_info ("Activation (%s/wireless): using essid '%s', with %s authentication.",
nm_device_get_iface (dev), essid, (auth == NM_DEVICE_AUTH_METHOD_NONE) ? "no" :
((auth == NM_DEVICE_AUTH_METHOD_OPEN_SYSTEM) ? "Open System" :
((auth == NM_DEVICE_AUTH_METHOD_SHARED_KEY) ? "Shared Key" : "unknown")));
@@ -1983,7 +1981,7 @@ static gboolean nm_device_activate_wireless_adhoc (NMDevice *dev, NMAccessPoint
{
nm_ap_set_freq (ap, freq_to_use);
syslog (LOG_INFO, "Will create network '%s' with frequency %f.\n", nm_ap_get_essid (ap), nm_ap_get_freq (ap));
nm_info ("Will create network '%s' with frequency %f.\n", nm_ap_get_essid (ap), nm_ap_get_freq (ap));
if ((success = nm_device_set_wireless_config (dev, ap)))
success = nm_device_activation_configure_ip (dev, TRUE);
}
@@ -2003,20 +2001,24 @@ static gboolean AP_NEED_KEY (NMDevice *dev, NMAccessPoint *ap)
if (!nm_ap_get_encrypted (ap))
{
syslog (LOG_NOTICE, "Activation (%s/wireless): access point '%s' is unencrypted, no key needed.",
nm_device_get_iface (dev), essid ? essid : "(null)");
nm_info ("Activation (%s/wireless): access point '%s' is "
"unencrypted, no key needed.",
nm_device_get_iface (dev), essid ? essid : "(null)");
}
else
{
if (nm_ap_is_enc_key_valid (ap))
{
syslog (LOG_NOTICE, "Activation (%s/wireless): access point '%s' is encrypted, and a key exists. No new key needed.",
nm_device_get_iface (dev), essid ? essid : "(null)");
nm_info ("Activation (%s/wireless): access point '%s' "
"is encrypted, and a key exists. No new key needed.",
nm_device_get_iface (dev), essid ? essid : "(null)");
}
else
{
syslog (LOG_NOTICE, "Activation (%s/wireless): access point '%s' is encrypted, but NO valid key exists. New key needed.",
nm_device_get_iface (dev), essid ? essid : "(null)");
nm_info ("Activation (%s/wireless): access point '%s' "
"is encrypted, but NO valid key exists. New key needed.",
nm_device_get_iface (dev),
essid ? essid : "(null)");
need_key = TRUE;
}
}
@@ -2119,7 +2121,7 @@ get_ap:
{
nm_device_set_now_scanning (dev, TRUE);
if (!found_ap)
syslog (LOG_ERR, "Activation (%s/wireless): waiting for an access point.", nm_device_get_iface (dev));
nm_warning ("Activation (%s/wireless): waiting for an access point.", nm_device_get_iface (dev));
g_usleep (G_USEC_PER_SEC * 2);
/* If we were told to quit activation, stop the thread and return */
@@ -2132,7 +2134,7 @@ get_ap:
found_ap = TRUE;
}
if (found_ap)
syslog (LOG_ERR, "Activation (%s/wireless): found access point '%s' to use.", nm_device_get_iface (dev), nm_ap_get_essid (best_ap));
nm_warning ("Activation (%s/wireless): found access point '%s' to use.", nm_device_get_iface (dev), nm_ap_get_essid (best_ap));
/* Set ESSID early so that when we send out the DeviceStatusChanged signal below,
* we are able to respond correctly to queries for "getActiveNetwork" against
@@ -2179,11 +2181,11 @@ need_key:
need_key = FALSE;
/* Wait for the key to come back */
syslog (LOG_DEBUG, "Activation (%s/wireless): asking for user key.", nm_device_get_iface (dev));
nm_debug ("Activation (%s/wireless): asking for user key.", nm_device_get_iface (dev));
while (!dev->options.wireless.user_key_received && !dev->quit_activation)
g_usleep (G_USEC_PER_SEC / 2);
syslog (LOG_DEBUG, "Activation (%s/wireless): user key received.", nm_device_get_iface (dev));
nm_debug ("Activation (%s/wireless): user key received.", nm_device_get_iface (dev));
/* Done waiting, grab lock again */
nm_lock_mutex (dev->options.wireless.scan_mutex, __FUNCTION__);
@@ -2229,7 +2231,7 @@ try_connect:
{
if (nm_ap_get_auth_method (best_ap) == NM_DEVICE_AUTH_METHOD_OPEN_SYSTEM)
{
syslog (LOG_DEBUG, "Activation (%s/wireless): no hardware link to '%s' in Open System mode, trying Shared Key.",
nm_debug ("Activation (%s/wireless): no hardware link to '%s' in Open System mode, trying Shared Key.",
nm_device_get_iface (dev), nm_ap_get_essid (best_ap) ? nm_ap_get_essid (best_ap) : "(none)");
/* Back down to Shared Key mode */
nm_ap_set_auth_method (best_ap, NM_DEVICE_AUTH_METHOD_SHARED_KEY);
@@ -2239,12 +2241,12 @@ try_connect:
{
/* Must be in Open System mode and it still didn't work, so
* we'll invalidate the current "best" ap and get another one */
syslog (LOG_DEBUG, "Activation (%s/wireless): no hardware link to '%s' in Shared Key mode, trying another access point.",
nm_debug ("Activation (%s/wireless): no hardware link to '%s' in Shared Key mode, trying another access point.",
nm_device_get_iface (dev), nm_ap_get_essid (best_ap) ? nm_ap_get_essid (best_ap) : "(none)");
}
else
{
syslog (LOG_DEBUG, "Activation (%s/wireless): no hardware link to '%s' in non-encrypted mode.",
nm_debug ("Activation (%s/wireless): no hardware link to '%s' in non-encrypted mode.",
nm_device_get_iface (dev), nm_ap_get_essid (best_ap) ? nm_ap_get_essid (best_ap) : "(none)");
}
@@ -2273,7 +2275,7 @@ try_connect:
if ((nm_ap_get_auth_method (best_ap) == NM_DEVICE_AUTH_METHOD_OPEN_SYSTEM) && !adhoc)
{
/* Back down to Shared Key mode */
syslog (LOG_DEBUG, "Activation (%s/wireless): could not get IP configuration info for '%s' in Open System mode, trying Shared Key.",
nm_debug ("Activation (%s/wireless): could not get IP configuration info for '%s' in Open System mode, trying Shared Key.",
nm_device_get_iface (dev), nm_ap_get_essid (best_ap) ? nm_ap_get_essid (best_ap) : "(none)");
nm_ap_set_auth_method (best_ap, NM_DEVICE_AUTH_METHOD_SHARED_KEY);
continue;
@@ -2281,7 +2283,7 @@ try_connect:
else if ((nm_ap_get_auth_method (best_ap) == NM_DEVICE_AUTH_METHOD_SHARED_KEY) && !adhoc)
{
/* Shared Key mode failed, we must have bad WEP key */
syslog (LOG_DEBUG, "Activation (%s/wireless): could not get IP configuration info for '%s' in Shared Key mode, asking for new key.",
nm_debug ("Activation (%s/wireless): could not get IP configuration info for '%s' in Shared Key mode, asking for new key.",
nm_device_get_iface (dev), nm_ap_get_essid (best_ap) ? nm_ap_get_essid (best_ap) : "(none)");
need_key = TRUE;
goto need_key;
@@ -2302,7 +2304,7 @@ connect_done:
if (success)
{
syslog (LOG_DEBUG, "Activation (%s/wireless): Success! Connected to access point '%s' and got an IP address.",
nm_debug ("Activation (%s/wireless): Success! Connected to access point '%s' and got an IP address.",
nm_device_get_iface (dev), nm_ap_get_essid (best_ap) ? nm_ap_get_essid (best_ap) : "(none)");
nm_ap_unref (best_ap);
}
@@ -2386,7 +2388,7 @@ static gboolean nm_device_activate (gpointer user_data)
g_return_val_if_fail (dev != NULL, FALSE);
g_return_val_if_fail (dev->app_data != NULL, FALSE);
syslog (LOG_ERR, "Activation (%s) started...", nm_device_get_iface (dev));
nm_warning ("Activation (%s) started...", nm_device_get_iface (dev));
/* Bring the device up */
if (!nm_device_is_up (dev));
@@ -2402,9 +2404,9 @@ static gboolean nm_device_activate (gpointer user_data)
if (nm_ap_get_user_created (best_ap))
{
create_network = TRUE;
syslog (LOG_INFO, "Creating wireless network '%s'.\n", nm_ap_get_essid (best_ap));
nm_info ("Creating wireless network '%s'.\n", nm_ap_get_essid (best_ap));
success = nm_device_activate_wireless_adhoc (dev, best_ap);
syslog (LOG_INFO, "Wireless network creation for '%s' was %s.\n", nm_ap_get_essid (best_ap), success ? "successful" : "unsuccessful");
nm_info ("Wireless network creation for '%s' was %s.\n", nm_ap_get_essid (best_ap), success ? "successful" : "unsuccessful");
}
nm_ap_unref (best_ap);
}
@@ -2420,14 +2422,15 @@ static gboolean nm_device_activate (gpointer user_data)
goto out;
if (success)
syslog (LOG_DEBUG, "Activation (%s) IP configuration/DHCP successful!\n", nm_device_get_iface (dev));
nm_info ("Activation (%s) IP configuration/DHCP successful!\n", nm_device_get_iface (dev));
else
syslog (LOG_DEBUG, "Activation (%s) IP configuration/DHCP unsuccessful! Ending activation...\n", nm_device_get_iface (dev));
nm_info ("Activation (%s) IP configuration/DHCP unsuccessful! Ending activation...\n",
nm_device_get_iface (dev));
finished = TRUE;
out:
syslog (LOG_DEBUG, "Activation (%s) ended.\n", nm_device_get_iface (dev));
nm_debug ("Activation (%s) ended.\n", nm_device_get_iface (dev));
dev->activating = FALSE;
dev->quit_activation = FALSE;
if (finished)
@@ -2477,7 +2480,7 @@ void nm_device_activation_cancel (NMDevice *dev)
if (nm_device_is_activating (dev))
{
syslog (LOG_DEBUG, "nm_device_activation_cancel(%s): cancelling...", nm_device_get_iface (dev));
nm_debug ("nm_device_activation_cancel(%s): cancelling...", nm_device_get_iface (dev));
dev->quit_activation = TRUE;
/* Spin until cancelled. Possible race conditions or deadlocks here.
@@ -2496,7 +2499,7 @@ void nm_device_activation_cancel (NMDevice *dev)
g_usleep (G_USEC_PER_SEC / 2);
}
syslog (LOG_DEBUG, "nm_device_activation_cancel(%s): cancelled.", nm_device_get_iface (dev));
nm_debug ("nm_device_activation_cancel(%s): cancelled.", nm_device_get_iface (dev));
}
}
@@ -2966,7 +2969,7 @@ static gboolean nm_device_wireless_force_use (NMDevice *dev, const char *essid,
if (!essid)
return FALSE;
syslog (LOG_DEBUG, "Forcing AP '%s'", essid);
nm_debug ("Forcing AP '%s'", essid);
if ( key
&& strlen (key)
@@ -3142,7 +3145,7 @@ static void nm_device_do_pseudo_scan (NMDevice *dev)
if (valid)
{
syslog(LOG_INFO, "%s: setting AP '%s' best", nm_device_get_iface (dev), nm_ap_get_essid (ap));
nm_info ("%s: setting AP '%s' best", nm_device_get_iface (dev), nm_ap_get_essid (ap));
nm_device_set_best_ap (dev, ap);
nm_policy_schedule_state_update (dev->app_data);
@@ -3502,7 +3505,8 @@ static gboolean nm_device_wireless_scan (gpointer user_data)
scan_results->scan_head.result = NULL;
}
else if ((err == -1) && (errno == ETIME))
syslog (LOG_ERR, "Warning: the wireless card (%s) requires too much time for scans. Its driver needs to be fixed.", nm_device_get_iface (dev));
nm_warning ("The wireless card (%s) requires too much time for scans. "
"Its driver needs to be fixed.", nm_device_get_iface (dev));
nm_device_set_mode (dev, orig_mode);
/* Only set frequency if ad-hoc mode */
@@ -3636,7 +3640,7 @@ static gboolean supports_ethtool_carrier_detect (NMDevice *dev)
if ((sk = socket (AF_INET, SOCK_DGRAM, 0)) < 0)
{
syslog (LOG_ERR, "cannot open socket on interface %s for MII detect; errno=%d", nm_device_get_iface (dev), errno);
nm_warning ("cannot open socket on interface %s for MII detect; errno=%d", nm_device_get_iface (dev), errno);
return (FALSE);
}
@@ -3687,7 +3691,7 @@ static gboolean supports_mii_carrier_detect (NMDevice *dev)
if ((sk = socket (AF_INET, SOCK_DGRAM, 0)) < 0)
{
syslog (LOG_ERR, "cannot open socket on interface %s for MII detect; errno=%d", nm_device_get_iface (dev), errno);
nm_warning ("cannot open socket on interface %s for MII detect; errno=%d", nm_device_get_iface (dev), errno);
return (FALSE);
}

View File

@@ -33,6 +33,7 @@
#include "NetworkManagerAP.h"
#include "NetworkManagerAPList.h"
#include "NetworkManagerDbus.h"
#include "nm-utils.h"
/*
@@ -128,7 +129,7 @@ static NMDevice * nm_policy_auto_get_best_device (NMData *data)
}
#if 0
syslog (LOG_NOTICE, "AUTO: Best wired device = %s, best wireless device = %s (%s)", best_wired_dev ? nm_device_get_iface (best_wired_dev) : "(null)",
nm_info ("AUTO: Best wired device = %s, best wireless device = %s (%s)", best_wired_dev ? nm_device_get_iface (best_wired_dev) : "(null)",
best_wireless_dev ? nm_device_get_iface (best_wireless_dev) : "(null)", best_wireless_dev ? nm_device_get_essid (best_wireless_dev) : "null" );
#endif
@@ -208,7 +209,7 @@ static NMDevice * nm_policy_get_best_device (NMDevice *switch_to_dev, NMData *da
/* Ensure we support this driver */
if (best_dev && (nm_device_get_driver_support_level (best_dev) == NM_DRIVER_UNSUPPORTED))
{
syslog (LOG_ERR, "nm_policy_get_best_device(): tried to switch to unsupported device '%s'!\n", nm_device_get_iface (best_dev));
nm_warning ("nm_policy_get_best_device(): tried to switch to unsupported device '%s'!\n", nm_device_get_iface (best_dev));
best_dev = NULL;
}
@@ -261,7 +262,7 @@ gboolean nm_policy_activation_finish (gpointer user_data)
nm_ap_unref (ap);
}
}
syslog (LOG_INFO, "Activation (%s) successful, device activated.", nm_device_get_iface (data->active_device));
nm_info ("Activation (%s) successful, device activated.", nm_device_get_iface (data->active_device));
break;
case DEVICE_ACTIVATION_FAILED:
@@ -278,10 +279,10 @@ gboolean nm_policy_activation_finish (gpointer user_data)
/* Unref because nm_device_get_best_ap() refs it before returning. */
nm_ap_unref (ap);
}
syslog (LOG_INFO, "Activation (%s) failed for access point (%s)", nm_device_get_iface (dev), ap ? nm_ap_get_essid (ap) : "(none)");
nm_info ("Activation (%s) failed for access point (%s)", nm_device_get_iface (dev), ap ? nm_ap_get_essid (ap) : "(none)");
}
else
syslog (LOG_INFO, "Activation (%s) failed.", nm_device_get_iface (dev));
nm_info ("Activation (%s) failed.", nm_device_get_iface (dev));
if (data->active_device == dev)
data->active_device = NULL;
nm_device_deactivate (dev, FALSE);
@@ -352,21 +353,21 @@ static gboolean nm_policy_state_update (gpointer user_data)
if (best_dev != app_data->active_device)
{
if (best_dev)
syslog (LOG_INFO, " SWITCH: best device changed");
nm_info (" SWITCH: best device changed");
else
syslog (LOG_INFO, " SWITCH: old device no longer good, but no better device was available");
nm_info (" SWITCH: old device no longer good, but no better device was available");
do_switch = TRUE; /* Device changed */
}
else if (best_dev)
{
if (nm_device_is_wireless (best_dev) && !nm_device_is_activating (best_dev) && nm_device_need_ap_switch (best_dev))
{
syslog (LOG_INFO, " SWITCH: need to associate with new access point or create a wireless network.");
nm_info (" SWITCH: need to associate with new access point or create a wireless network.");
do_switch = TRUE;
}
else if (!nm_device_is_activating (best_dev) && !nm_device_get_ip4_address (best_dev))
{
syslog (LOG_INFO, " SWITCH: need to get an IP address.");
nm_info (" SWITCH: need to get an IP address.");
do_switch = TRUE;
}
}
@@ -472,7 +473,7 @@ static gboolean nm_policy_allowed_ap_list_update (gpointer user_data)
g_return_val_if_fail (data != NULL, FALSE);
syslog (LOG_INFO, "Updating allowed wireless network lists.");
nm_info ("Updating allowed wireless network lists.");
/* Query info daemon for network lists if its now running */
if (data->allowed_ap_list)

View File

@@ -41,6 +41,7 @@
#include <glib.h>
#include "NetworkManagerSystem.h"
#include "NetworkManagerDevice.h"
#include "nm-utils.h"
static int nm_system_open_sock (void)
{
@@ -51,7 +52,7 @@ static int nm_system_open_sock (void)
if (fd >= 0)
return (fd);
syslog (LOG_ERR, "nm_system_open_sock() could not get network control socket.");
nm_warning ("nm_system_open_sock() could not get network control socket.");
return (-1);
}
@@ -76,11 +77,11 @@ gboolean nm_system_device_set_ip4_address (NMDevice *dev, int ip4_address)
p->sin_family = AF_INET;
p->sin_addr.s_addr = ip4_address;
if (ioctl (sk, SIOCSIFADDR, &ifr) == -1)
syslog (LOG_ERR,"nm_system_device_set_ip4_address (%s): failed to set IPv4 address!", iface);
nm_warning ("nm_system_device_set_ip4_address (%s): failed to set IPv4 address!", iface);
else
{
success = TRUE;
syslog (LOG_INFO, "Your IP address = %u.%u.%u.%u\n",
nm_info ("Your IP address = %u.%u.%u.%u\n",
((unsigned char *)&ip4_address)[0], ((unsigned char *)&ip4_address)[1],
((unsigned char *)&ip4_address)[2], ((unsigned char *)&ip4_address)[3]);
}
@@ -110,7 +111,7 @@ gboolean nm_system_device_set_ip4_netmask (NMDevice *dev, int ip4_netmask)
p->sin_family = AF_INET;
p->sin_addr.s_addr = ip4_netmask;
if (ioctl (sk, SIOCSIFNETMASK, &ifr) == -1)
syslog (LOG_ERR,"nm_system_device_set_ip4_netmask (%s): failed to set IPv4 netmask! errno = %s", iface, strerror (errno));
nm_warning ("nm_system_device_set_ip4_netmask (%s): failed to set IPv4 netmask! errno = %s", iface, strerror (errno));
else
success = TRUE;
@@ -139,7 +140,7 @@ gboolean nm_system_device_set_ip4_broadcast (NMDevice *dev, int ip4_broadcast)
p->sin_family = AF_INET;
p->sin_addr.s_addr = ip4_broadcast;
if (ioctl (sk, SIOCSIFBRDADDR, &ifr) == -1)
syslog (LOG_ERR,"nm_system_device_set_ip4_netmask (%s): failed to set IPv4 netmask!", iface);
nm_warning ("nm_system_device_set_ip4_netmask (%s): failed to set IPv4 netmask!", iface);
else
success = TRUE;
@@ -202,11 +203,11 @@ gboolean nm_system_device_set_ip4_default_route (NMDevice *dev, int ip4_def_rout
if ( ioctl (sk, SIOCADDRT, &rtent) == 0 )
success = TRUE;
else
syslog (LOG_ERR,"nm_system_device_set_ip4_default_route (%s): failed to set IPv4 default route! errno = %d", iface, errno);
nm_warning ("nm_system_device_set_ip4_default_route (%s): failed to set IPv4 default route! errno = %d", iface, errno);
}
}
else
syslog (LOG_ERR,"nm_system_device_set_ip4_default_route (%s): failed to set IPv4 default route! errno = %d", iface, errno);
nm_warning ("nm_system_device_set_ip4_default_route (%s): failed to set IPv4 default route! errno = %d", iface, errno);
}
else
success = TRUE;

View File

@@ -28,6 +28,7 @@
#include "NetworkManager.h"
#include "NetworkManagerUtils.h"
#include "nm-utils.h"
typedef struct MutexDesc
@@ -92,7 +93,7 @@ gboolean nm_try_acquire_mutex (GMutex *mutex, const char *func)
if (func)
{
MutexDesc *desc = nm_find_mutex_desc (mutex);
syslog (LOG_DEBUG, "MUTEX: <%s %p> acquired by %s", desc ? desc->desc : "(none)", mutex, func);
nm_debug ("MUTEX: <%s %p> acquired by %s", desc ? desc->desc : "(none)", mutex, func);
}
#endif
return (TRUE);
@@ -102,7 +103,7 @@ gboolean nm_try_acquire_mutex (GMutex *mutex, const char *func)
if (func)
{
MutexDesc *desc = nm_find_mutex_desc (mutex);
syslog (LOG_DEBUG, "MUTEX: <%s %p> FAILED to be acquired by %s", desc ? desc->desc : "(none)", mutex, func);
nm_debug ("MUTEX: <%s %p> FAILED to be acquired by %s", desc ? desc->desc : "(none)", mutex, func);
}
#endif
return (FALSE);
@@ -121,7 +122,7 @@ void nm_lock_mutex (GMutex *mutex, const char *func)
if (func)
{
MutexDesc *desc = nm_find_mutex_desc (mutex);
syslog (LOG_DEBUG, "MUTEX: <%s %p> being acquired by %s", desc ? desc->desc : "(none)", mutex, func);
nm_debug ("MUTEX: <%s %p> being acquired by %s", desc ? desc->desc : "(none)", mutex, func);
}
#endif
g_mutex_lock (mutex);
@@ -142,7 +143,7 @@ void nm_unlock_mutex (GMutex *mutex, const char *func)
if (func)
{
MutexDesc *desc = nm_find_mutex_desc (mutex);
syslog (LOG_DEBUG, "MUTEX: <%s %p> released by %s", desc ? desc->desc : "(none)", mutex, func);
nm_debug ("MUTEX: <%s %p> released by %s", desc ? desc->desc : "(none)", mutex, func);
}
#endif
@@ -240,13 +241,13 @@ int nm_spawn_process (char *args)
GError *error2 = NULL;
if (!g_spawn_sync ("/", argv, NULL, 0, NULL, NULL, &so, &se, &exit_status, &error2))
syslog (LOG_ERR, "nm_spawn_process('%s'): could not spawn process. (%s)\n", args, error2->message);
nm_warning ("nm_spawn_process('%s'): could not spawn process. (%s)\n", args, error2->message);
if (so) g_free(so);
if (se) g_free(se);
if (argv) g_strfreev (argv);
if (error2) g_error_free (error2);
} else syslog (LOG_ERR, "nm_spawn_process('%s'): could not parse arguments (%s)\n", args, error->message);
} else nm_warning ("nm_spawn_process('%s'): could not parse arguments (%s)\n", args, error->message);
if (error) g_error_free (error);
@@ -407,15 +408,15 @@ NMDriverSupportLevel nm_get_driver_support_level (LibHalContext *ctx, NMDevice *
switch (level)
{
case NM_DRIVER_SEMI_SUPPORTED:
syslog (LOG_INFO, "%s: Driver support level for '%s' is semi-supported",
nm_info ("%s: Driver support level for '%s' is semi-supported",
nm_device_get_iface (dev), driver);
break;
case NM_DRIVER_FULLY_SUPPORTED:
syslog (LOG_INFO, "%s: Driver support level for '%s' is fully-supported",
nm_info ("%s: Driver support level for '%s' is fully-supported",
nm_device_get_iface (dev), driver);
break;
default:
syslog (LOG_INFO, "%s: Driver support level for '%s' is unsupported",
nm_info ("%s: Driver support level for '%s' is unsupported",
nm_device_get_iface (dev), driver);
break;
}

View File

@@ -140,7 +140,7 @@ int nm_wireless_qual_to_percent (const struct iw_quality *qual, const struct iw_
g_return_val_if_fail (avg_qual != NULL, -1);
#if IW_QUAL_DEBUG
syslog (LOG_DEBUG, "QL: qual %d/%u/0x%X, level %d/%u/0x%X, noise %d/%u/0x%X ** MAX: qual %d/%u/0x%X, level %d/%u/0x%X, noise %d/%u/0x%X",
nm_debug ("QL: qual %d/%u/0x%X, level %d/%u/0x%X, noise %d/%u/0x%X ** MAX: qual %d/%u/0x%X, level %d/%u/0x%X, noise %d/%u/0x%X",
(__s8)qual->qual, qual->qual, qual->qual, (__s8)qual->level, qual->level, qual->level, (__s8)qual->noise, qual->noise, qual->noise,
(__s8)max_qual->qual, max_qual->qual, max_qual->qual, (__s8)max_qual->level, max_qual->level, max_qual->level, (__s8)max_qual->noise, max_qual->noise, max_qual->noise);
#endif
@@ -192,7 +192,7 @@ syslog (LOG_DEBUG, "QL: qual %d/%u/0x%X, level %d/%u/0x%X, noise %d/%u/0x%X **
((double)max_level - (double)level) /
((double)max_level - (double)noise)));
#if IW_QUAL_DEBUG
syslog (LOG_DEBUG, "QL1: level_percent is %d. max_level %d, level %d, noise_floor %d.", level_percent, max_level, level, noise);
nm_debug ("QL1: level_percent is %d. max_level %d, level %d, noise_floor %d.", level_percent, max_level, level, noise);
#endif
}
else if ((max_qual->level != 0) && !(max_qual->updated & IW_QUAL_LEVEL_INVALID) /* Valid max_qual->level as upper bound */
@@ -206,7 +206,7 @@ syslog (LOG_DEBUG, "QL: qual %d/%u/0x%X, level %d/%u/0x%X, noise %d/%u/0x%X **
level = CLAMP (level, 0, max_qual->level);
level_percent = (int)(100 * ((double)level / (double)max_qual->level));
#if IW_QUAL_DEBUG
syslog (LOG_DEBUG, "QL2: level_percent is %d. max_level %d, level %d.", level_percent, max_qual->level, level);
nm_debug ("QL2: level_percent is %d. max_level %d, level %d.", level_percent, max_qual->level, level);
#endif
}
@@ -215,7 +215,7 @@ syslog (LOG_DEBUG, "QL: qual %d/%u/0x%X, level %d/%u/0x%X, noise %d/%u/0x%X **
percent = level_percent;
#if IW_QUAL_DEBUG
syslog (LOG_DEBUG, "QL: Final quality %% is %d (%d).", percent, CLAMP (percent, 0, 100));
nm_debug ("QL: Final quality %% is %d (%d).", percent, CLAMP (percent, 0, 100));
#endif
return (CLAMP (percent, 0, 100));
}

View File

@@ -33,6 +33,7 @@
#include "NetworkManager.h"
#include "NetworkManagerDevice.h"
#include "NetworkManagerMain.h"
#include "nm-utils.h"
// Times here are in seconds
#define LINKLOCAL_ADDR 0xa9fe0000
@@ -98,7 +99,7 @@ static gboolean arp(int fd, struct sockaddr *saddr, int op,
/* send it */
if (sendto (fd, &p, sizeof (p), 0, saddr, sizeof (*saddr)) < 0)
syslog (LOG_ERR, "autoip ARP sendto() failed.");
nm_warning ("autoip ARP sendto() failed.");
else
success = TRUE;
@@ -146,12 +147,12 @@ static int peekfd (NMDevice *dev, int sk, struct timeval *timeout)
* to stop with iface->cease and check our timeout.
*/
gettimeofday (&now, NULL);
// syslog (LOG_INFO, "autoip waiting for data, overall timeout = {%ds, %dus}\n", (int)timeout->tv_sec, (int)timeout->tv_usec);
// nm_info ("autoip waiting for data, overall timeout = {%ds, %dus}\n", (int)timeout->tv_sec, (int)timeout->tv_usec);
while (timeval_subtract (&diff, timeout, &now) == 0)
{
fd_set fs;
struct timeval wait = {1, 0};
// syslog (LOG_INFO, "autoip waiting for data, remaining timeout = {%ds, %dus}\n", (int)diff.tv_sec, (int)diff.tv_usec);
// nm_info ("autoip waiting for data, remaining timeout = {%ds, %dus}\n", (int)diff.tv_sec, (int)diff.tv_usec);
FD_ZERO (&fs);
FD_SET (sk, &fs);
@@ -191,14 +192,14 @@ gboolean get_autoip (NMDevice *dev, struct in_addr *out_ip)
/* open an ARP socket */
if ((fd = socket (PF_PACKET, SOCK_PACKET, htons (ETH_P_ARP))) < 0)
{
syslog (LOG_ERR, "%s: Couldn't open network control socket.", nm_device_get_iface (dev));
nm_warning ("%s: Couldn't open network control socket.", nm_device_get_iface (dev));
goto out;
}
/* bind to the ARP socket */
if (bind (fd, &saddr, sizeof (saddr)) < 0)
{
syslog (LOG_ERR, "%s: Couldn't bind to the device.", nm_device_get_iface (dev));
nm_warning ("%s: Couldn't bind to the device.", nm_device_get_iface (dev));
goto out;
}
@@ -225,7 +226,7 @@ gboolean get_autoip (NMDevice *dev, struct in_addr *out_ip)
if (nprobes < PROBE_NUM)
{
syslog (LOG_INFO, "autoip: Sending probe #%d for IP address %s.", nprobes, inet_ntoa (ip));
nm_info ("autoip: Sending probe #%d for IP address %s.", nprobes, inet_ntoa (ip));
arp (fd, &saddr, ARPOP_REQUEST, &addr, null_ip, &null_addr, ip);
nprobes++;
gettimeofday (&timeout, NULL);
@@ -245,7 +246,7 @@ gboolean get_autoip (NMDevice *dev, struct in_addr *out_ip)
}
else if (nannounce < ANNOUNCE_NUM)
{
syslog (LOG_INFO, "autoip: Sending announce #%d for IP address %s.", nannounce, inet_ntoa (ip));
nm_info ("autoip: Sending announce #%d for IP address %s.", nannounce, inet_ntoa (ip));
arp (fd, &saddr, ARPOP_REQUEST, &addr, ip, &addr, ip);
nannounce++;
gettimeofday (&timeout, NULL);
@@ -260,7 +261,7 @@ gboolean get_autoip (NMDevice *dev, struct in_addr *out_ip)
goto out;
}
syslog (LOG_INFO, "autoip: Waiting for reply...");
nm_info ("autoip: Waiting for reply...");
err = peekfd (dev, fd, &timeout);
if ((err == RET_DHCP_ERROR) || (err == RET_DHCP_CEASED))
goto out;
@@ -268,24 +269,24 @@ gboolean get_autoip (NMDevice *dev, struct in_addr *out_ip)
/* There's some data waiting for us */
if (err == RET_DHCP_SUCCESS)
{
syslog (LOG_INFO, "autoip: Got some data to check for reply packet.");
nm_info ("autoip: Got some data to check for reply packet.");
/* read ARP packet */
if (recv (fd, &p, sizeof (p), 0) < 0)
{
syslog (LOG_ERR, "autoip: packet receive failure, ignoring it.");
nm_warning ("autoip: packet receive failure, ignoring it.");
continue;
}
#ifdef ARP_DEBUG
syslog (LOG_ERR, "autoip: (%s) recv arp type=%d, op=%d, ", nm_device_get_iface (dev), ntohs(p.ethhdr.ether_type), ntohs(p.operation));
nm_warning ("autoip: (%s) recv arp type=%d, op=%d, ", nm_device_get_iface (dev), ntohs(p.ethhdr.ether_type), ntohs(p.operation));
{
struct in_addr a;
memcpy (&(a.s_addr), &(p.sInaddr), sizeof (a.s_addr));
syslog (LOG_ERR, " source = %s %02X:%02X:%02X:%02X:%02X:%02X, ", inet_ntoa (a),
nm_warning (" source = %s %02X:%02X:%02X:%02X:%02X:%02X, ", inet_ntoa (a),
p.sHaddr[0], p.sHaddr[1], p.sHaddr[2], p.sHaddr[3], p.sHaddr[4], p.sHaddr[5]);
memcpy (&(a.s_addr), &(p.tInaddr), sizeof (a.s_addr));
syslog (LOG_ERR, " target = %s %02X:%02X:%02X:%02X:%02X:%02X\n", inet_ntoa (a),
nm_warning (" target = %s %02X:%02X:%02X:%02X:%02X:%02X\n", inet_ntoa (a),
p.tHaddr[0], p.tHaddr[1], p.tHaddr[2], p.tHaddr[3], p.tHaddr[4], p.tHaddr[5]);
}
#endif
@@ -296,7 +297,7 @@ gboolean get_autoip (NMDevice *dev, struct in_addr *out_ip)
&& (memcmp (&addr, &p.tHaddr, ETH_ALEN) != 0))
{
#ifdef ARP_DEBUG
syslog(LOG_ERR, "autoip: (%s) ARP conflict for IP address %s.\n", nm_device_get_iface (dev), inet_ntoa(ip));
nm_warning ("autoip: (%s) ARP conflict for IP address %s.\n", nm_device_get_iface (dev), inet_ntoa(ip));
#endif
/* Ok, start all over again */

View File

@@ -168,7 +168,7 @@ gboolean nm_system_device_setup_static_ip4_config (NMDevice *dev)
iface, inet_ntoa (temp_addr));
if ((err = nm_spawn_process (buf)))
{
syslog (LOG_ERR, "Error: Duplicate address '%s' detected for "
nm_warning ("Error: Duplicate address '%s' detected for "
"device '%s' \n", iface, inet_ntoa (temp_addr));
goto error;
}
@@ -185,7 +185,7 @@ gboolean nm_system_device_setup_static_ip4_config (NMDevice *dev)
g_free (s_tmp2);
if ((err = nm_spawn_process (buf)))
{
syslog (LOG_ERR, "Error: could not set network configuration for "
nm_warning ("Error: could not set network configuration for "
"device '%s' using command:\n '%s'",
iface, buf);
goto error;
@@ -210,7 +210,7 @@ gboolean nm_system_device_setup_static_ip4_config (NMDevice *dev)
inet_ntoa (temp_addr), iface);
if ((err = nm_spawn_process (buf)))
{
syslog (LOG_ERR, "Error: could not set default route using "
nm_warning ("Error: could not set default route using "
"command:\n '%s'", buf);
goto error;
}
@@ -426,7 +426,7 @@ void nm_system_device_update_config_info (NMDevice *dev)
if (!use_dhcp && (!ip4_address || !ip4_gateway || !ip4_netmask))
{
syslog (LOG_ERR, "Error: network configuration for device '%s' was invalid (non-DHCP configuration,"
nm_warning ("Error: network configuration for device '%s' was invalid (non-DHCP configuration,"
" but no address/gateway specificed). Will use DHCP instead.\n", nm_device_get_iface (dev));
use_dhcp = TRUE;
}
@@ -443,12 +443,12 @@ void nm_system_device_update_config_info (NMDevice *dev)
nm_device_config_set_ip4_broadcast (dev, ip4_broadcast);
#if 0
syslog (LOG_DEBUG, "------ Config (%s)", nm_device_get_iface (dev));
syslog (LOG_DEBUG, " DHCP=%d\n", use_dhcp);
syslog (LOG_DEBUG, " ADDR=%d\n", ip4_address);
syslog (LOG_DEBUG, " GW=%d\n", ip4_gateway);
syslog (LOG_DEBUG, " NM=%d\n", ip4_netmask);
syslog (LOG_DEBUG, "---------------------\n");
nm_debug ("------ Config (%s)", nm_device_get_iface (dev));
nm_debug (" DHCP=%d\n", use_dhcp);
nm_debug (" ADDR=%d\n", ip4_address);
nm_debug (" GW=%d\n", ip4_gateway);
nm_debug (" NM=%d\n", ip4_netmask);
nm_debug ("---------------------\n");
#endif
out:

View File

@@ -108,7 +108,7 @@ gboolean nm_system_device_setup_static_ip4_config (NMDevice *dev)
char *buf;
char *addr, *netmask, *broadcast, *gateway;
syslog (LOG_WARNING, "nm_system_device_setup_static_ip4_config() is not implemented yet for this distribution.\n");
nm_warning ("nm_system_device_setup_static_ip4_config() is not implemented yet for this distribution.\n");
/* Extract the addresses back into strings */
@@ -129,16 +129,16 @@ gboolean nm_system_device_setup_static_ip4_config (NMDevice *dev)
/* Set the IP/broadcast */
buf = g_strdup_printf("/sbin/ip addr add local %s dev %s broadcast %s %s", addr, iface, broadcast, iface);
syslog (LOG_WARNING, "Running: %s", buf);
nm_warning ("Running: %s", buf);
/* Set the gateway */
buf = g_strdup_printf("/sbin/ip route replace default dev %s via %s", iface, gateway);
syslog (LOG_WARNING, "Running: %s", buf);
nm_warning ("Running: %s", buf);
/* Inform other computers the we are on network */
buf = g_strdup_printf ("/sbin/arping -q -A -c 1 -I %s %s", iface, addr);
syslog (LOG_WARNING, "Running: %s", buf);
nm_warning ("Running: %s", buf);
buf = g_strdup_printf ("/sbin/arping -q -U -c 1 -I %s %s", iface, addr);
syslog (LOG_WARNING, "Running: %s", buf);
nm_warning ("Running: %s", buf);
return(TRUE);
@@ -289,7 +289,7 @@ void nm_system_device_update_config_info (NMDevice *dev)
if (strncmp (&buffer[strlen(confline) - strlen(nm_device_get_iface (dev))],
nm_device_get_iface (dev), strlen(nm_device_get_iface (dev))) != 0)
{
syslog (LOG_WARNING, "System config file '%s' does not define device '%s'\n",
nm_warning ("System config file '%s' does not define device '%s'\n",
cfg_file_path, nm_device_get_iface (dev));
break;
}

View File

@@ -26,6 +26,7 @@
#include "NetworkManagerSystem.h"
#include "NetworkManagerUtils.h"
#include "NetworkManagerDevice.h"
#include "nm-utils.h"
#include "shvar.h"
/*
@@ -183,7 +184,7 @@ gboolean nm_system_device_setup_static_ip4_config (NMDevice *dev)
g_free (s_tmp2);
if ((err = nm_spawn_process (buf)))
{
syslog (LOG_ERR, "Error: could not set network configuration for device '%s' using command:\n '%s'", iface, buf);
nm_warning ("Error: could not set network configuration for device '%s' using command:\n '%s'", iface, buf);
goto error;
}
g_free (buf);
@@ -203,7 +204,7 @@ gboolean nm_system_device_setup_static_ip4_config (NMDevice *dev)
buf = g_strdup_printf ("/sbin/ip route replace default via %s dev %s", inet_ntoa (temp_addr), iface);
if ((err = nm_spawn_process (buf)))
{
syslog (LOG_ERR, "Error: could not set default route using command\n '%s'", buf);
nm_warning ("Error: could not set default route using command\n '%s'", buf);
goto error;
}
g_free (buf);
@@ -293,7 +294,7 @@ void nm_system_update_dns (void)
if (nm_spawn_process ("/etc/init.d/nscd status") != 0)
nm_spawn_process ("/etc/init.d/nscd restart");
syslog (LOG_ERR, "Clearing nscd hosts cache.");
nm_warning ("Clearing nscd hosts cache.");
nm_spawn_process ("/usr/sbin/nscd -i hosts");
#else
nm_spawn_process ("/usr/bin/killall -q nscd");
@@ -332,7 +333,7 @@ void nm_system_restart_mdns_responder (void)
fclose (fp);
if (res == 1)
{
syslog (LOG_INFO, "Restarting mDNSResponder.\n");
nm_info ("Restarting mDNSResponder.\n");
kill (pid, SIGUSR1);
}
}
@@ -469,7 +470,7 @@ void nm_system_device_update_config_info (NMDevice *dev)
if (!use_dhcp && (!ip4_address || !ip4_gateway || !ip4_netmask))
{
syslog (LOG_ERR, "Error: network configuration for device '%s' was invalid (non-DCHP configuration,"
nm_warning ("Error: network configuration for device '%s' was invalid (non-DCHP configuration,"
" but no address/gateway specificed). Will use DHCP instead.\n", nm_device_get_iface (dev));
use_dhcp = TRUE;
}
@@ -486,12 +487,12 @@ void nm_system_device_update_config_info (NMDevice *dev)
nm_device_config_set_ip4_broadcast (dev, ip4_broadcast);
#if 0
syslog (LOG_DEBUG, "------ Config (%s)", nm_device_get_iface (dev));
syslog (LOG_DEBUG, " DHCP=%d\n", use_dhcp);
syslog (LOG_DEBUG, " ADDR=%d\n", ip4_address);
syslog (LOG_DEBUG, " GW=%d\n", ip4_gateway);
syslog (LOG_DEBUG, " NM=%d\n", ip4_netmask);
syslog (LOG_DEBUG, "---------------------\n");
nm_debug ("------ Config (%s)", nm_device_get_iface (dev));
nm_debug (" DHCP=%d\n", use_dhcp);
nm_debug (" ADDR=%d\n", ip4_address);
nm_debug (" GW=%d\n", ip4_gateway);
nm_debug (" NM=%d\n", ip4_netmask);
nm_debug ("---------------------\n");
#endif
out:

View File

@@ -96,7 +96,7 @@ void nm_system_device_flush_addresses (NMDevice *dev)
*/
gboolean nm_system_device_setup_static_ip4_config (NMDevice *dev)
{
syslog (LOG_WARNING, "nm_system_device_setup_static_ip4_config() is not implemented yet for this distribution.\n");
nm_warning ("nm_system_device_setup_static_ip4_config() is not implemented yet for this distribution.\n");
}

View File

@@ -74,7 +74,7 @@ void ifparser_init()
int ret = 0;
if (inp == NULL)
{
syslog (LOG_ERR, "Error: Can't open %s\n",INTERFACES);
nm_warning ("Error: Can't open %s\n",INTERFACES);
return;
}
first = last = NULL;
@@ -93,7 +93,7 @@ void ifparser_init()
SPACE_OR_TAB(line,space)
if (space == NULL)
{
syslog (LOG_ERR, "Error: Can't parse interface line '%s'\n",line);
nm_warning ("Error: Can't parse interface line '%s'\n",line);
continue;
}
space[0] = '\0';
@@ -104,7 +104,7 @@ void ifparser_init()
char *space2 = strchr(space+1,' ');
if (space2 == NULL)
{
syslog (LOG_ERR, "Error: Can't parse iface line '%s'\n",space+1);
nm_warning ("Error: Can't parse iface line '%s'\n",space+1);
continue;
}
space2[0]='\0';
@@ -115,7 +115,7 @@ void ifparser_init()
space = strchr(space2+1,' ');
if (space == NULL)
{
syslog (LOG_ERR, "Error: Can't parse data '%s'\n",space2+1);
nm_warning ("Error: Can't parse data '%s'\n",space2+1);
continue;
}
space[0] = '\0';

View File

@@ -190,8 +190,8 @@ static DBusMessage *nm_dbus_nm_set_active_device (DBusConnection *connection, DB
reply = nm_dbus_create_error_message (message, NM_DBUS_INTERFACE, "InvalidArguments",
"NetworkManager::setActiveDevice called with invalid arguments.");
goto out;
} else syslog (LOG_INFO, "FORCE: device '%s'", dev_path);
} else syslog (LOG_INFO, "FORCE: device '%s', network '%s'", dev_path, network);
} else nm_info ("FORCE: device '%s'", dev_path);
} else nm_info ("FORCE: device '%s', network '%s'", dev_path, network);
dev_path = nm_dbus_unescape_object_path (dev_path);
@@ -224,7 +224,6 @@ out:
return (reply);
}
/*
* nm_dbus_nm_create_wireless_network
*
@@ -256,7 +255,7 @@ static DBusMessage *nm_dbus_nm_create_wireless_network (DBusConnection *connecti
reply = nm_dbus_create_error_message (message, NM_DBUS_INTERFACE, "InvalidArguments",
"NetworkManager::createWirelessNetwork called with invalid arguments.");
return (reply);
} else syslog (LOG_INFO, "Creating network '%s' on device '%s'.", network, dev_path);
} else nm_info ("Creating network '%s' on device '%s'.", network, dev_path);
dev_path = nm_dbus_unescape_object_path (dev_path);
dev = nm_dbus_get_device_from_object_path (data->data, dev_path);

View File

@@ -37,6 +37,7 @@
#include <glib/gi18n.h>
#include "nm-netlink-monitor.h"
#include "nm-utils.h"
#define NM_NETLINK_MONITOR_EVENT_CONDITIONS \
((GIOCondition) (G_IO_IN | G_IO_PRI))
@@ -225,7 +226,6 @@ nm_netlink_monitor_init (NmNetlinkMonitor *monitor)
monitor->priv = G_TYPE_INSTANCE_GET_PRIVATE (monitor,
NM_TYPE_NETLINK_MONITOR,
NmNetlinkMonitorPrivate);
monitor->priv->context = NULL;
monitor->priv->io_channel = NULL;
monitor->priv->event_source = NULL;
@@ -313,10 +313,113 @@ nm_netlink_monitor_detach (NmNetlinkMonitor *monitor)
monitor->priv->context = NULL;
}
void
nm_netlink_monitor_request_status (NmNetlinkMonitor *monitor)
gboolean
nm_netlink_monitor_request_status (NmNetlinkMonitor *monitor,
GError **error)
{
typedef struct
{
struct nlmsghdr header;
struct rtgenmsg request;
} NmNetlinkMonitorStatusPacket;
NmNetlinkMonitorStatusPacket packet = { { 0 } };
struct sockaddr_nl recipient = { 0 };
static guint32 sequence_number;
int fd, saved_errno;
ssize_t num_bytes_sent;
size_t num_bytes_to_send, total_bytes_sent;
gdouble max_wait_period, now;
const gchar *buffer;
GError *socket_error;
fd = g_io_channel_unix_get_fd (monitor->priv->io_channel);
recipient.nl_family = AF_NETLINK;
recipient.nl_pid = 0; /* going to kernel */
recipient.nl_groups = RTMGRP_LINK;
packet.header.nlmsg_len = NLMSG_LENGTH (sizeof (struct rtgenmsg));
packet.header.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST;
packet.header.nlmsg_type = RTM_GETLINK;
packet.header.nlmsg_pid = getpid ();
/* Might be good to generate a unique sequence number and track
the response */
packet.header.nlmsg_seq = sequence_number << 16;
sequence_number++;
packet.request.rtgen_family = AF_UNSPEC;
nm_get_timestamp (&now);
/* only block for around 1.5 seconds
* FIXME: maybe too long? */
max_wait_period = now + 1.5;
num_bytes_sent = 0;
buffer = (const gchar *) &packet;
num_bytes_to_send = sizeof (packet);
total_bytes_sent = 0;
socket_error = NULL;
do
{
num_bytes_sent = sendto (fd,
buffer + total_bytes_sent,
num_bytes_to_send,
MSG_DONTWAIT,
(struct sockaddr *) &recipient,
sizeof (recipient));
if (num_bytes_sent < 0)
{
saved_errno = errno;
if ((saved_errno == EAGAIN) ||
(saved_errno == EWOULDBLOCK))
{
nm_get_timestamp (&now);
if ((max_wait_period - now) > G_MINDOUBLE)
{
saved_errno = 0;
continue;
}
}
socket_error =
g_error_new (NM_NETLINK_MONITOR_ERROR,
NM_NETLINK_MONITOR_ERROR_SENDING_TO_SOCKET,
"%s", g_strerror (saved_errno));
break;
}
total_bytes_sent += num_bytes_sent;
num_bytes_to_send -= num_bytes_sent;
nm_get_timestamp (&now);
if ((max_wait_period - now) < G_MINDOUBLE)
{
socket_error =
g_error_new (NM_NETLINK_MONITOR_ERROR,
NM_NETLINK_MONITOR_ERROR_SENDING_TO_SOCKET,
_("operation took too long"));
break;
}
} while (num_bytes_to_send > 0);
if (socket_error != NULL)
{
if (error != NULL)
g_propagate_error (error, socket_error);
else
{
g_signal_emit (G_OBJECT (monitor),
nm_netlink_monitor_signals[ERROR],
0, socket_error);
g_error_free (socket_error);
}
return FALSE;
}
return TRUE;
}
static gboolean
@@ -427,7 +530,7 @@ receive_pending_bytes (GIOChannel *channel,
if (saved_errno != 0)
{
g_set_error (error, NM_NETLINK_MONITOR_ERROR,
NM_NETLINK_MONITOR_ERROR_READING_SOCKET,
NM_NETLINK_MONITOR_ERROR_READING_FROM_SOCKET,
_("%s"), g_strerror (saved_errno));
succeeded = FALSE;
goto out;

View File

@@ -68,7 +68,8 @@ enum _NmNetlinkMonitorError
NM_NETLINK_MONITOR_ERROR_BINDING_TO_SOCKET,
NM_NETLINK_MONITOR_ERROR_BAD_SENDER,
NM_NETLINK_MONITOR_ERROR_BAD_SOCKET_DATA,
NM_NETLINK_MONITOR_ERROR_READING_SOCKET
NM_NETLINK_MONITOR_ERROR_READING_FROM_SOCKET,
NM_NETLINK_MONITOR_ERROR_SENDING_TO_SOCKET
};
GType nm_netlink_monitor_get_type (void) G_GNUC_CONST;
@@ -84,6 +85,7 @@ void nm_netlink_monitor_attach (NmNetlinkMonitor *monitor,
GMainContext *context);
void nm_netlink_monitor_detach (NmNetlinkMonitor *monitor);
void nm_netlink_monitor_request_status (NmNetlinkMonitor *monitor);
gboolean nm_netlink_monitor_request_status (NmNetlinkMonitor *monitor,
GError **error);
G_END_DECLS
#endif /* NM_NETLINK_MONITOR_H */

View File

@@ -66,7 +66,6 @@ char * get_network_string_property (DBusConnection *connection, char *network, c
if (dbus_message_get_args (reply, &error, DBUS_TYPE_STRING, &string, DBUS_TYPE_INVALID) && string)
{
ret_string = g_strdup (string);
dbus_free (string);
}
dbus_message_unref (reply);
@@ -193,7 +192,7 @@ void get_networks_of_type (DBusConnection *connection, NMNetworkType type)
}
}
dbus_free_string_array (networks);
g_strfreev (networks);
}
void get_user_key_for_network (DBusConnection *connection)
@@ -223,10 +222,10 @@ void get_user_key_for_network (DBusConnection *connection)
void set_user_key_for_network (DBusConnection *connection, DBusMessage *message, GMainLoop *loop)
{
DBusError error;
char *device;
char *network;
char *passphrase;
char *key_type_string;
const char *device;
const char *network;
const char *passphrase;
const char *key_type_string;
g_return_if_fail (connection != NULL);
g_return_if_fail (message != NULL);
@@ -241,10 +240,6 @@ void set_user_key_for_network (DBusConnection *connection, DBusMessage *message,
{
fprintf( stderr, "Device was '%s'\nNetwork was '%s'\nPassphrase was '%s'\nKey type was '%s'\n", device, network, passphrase, key_type_string);
dbus_free (device);
dbus_free (network);
dbus_free (passphrase);
dbus_free (key_type_string);
g_main_loop_quit (loop);
}

76
test/nmnetlinktest.c Normal file
View File

@@ -0,0 +1,76 @@
#include <sys/types.h>
#include <sys/socket.h>
#include <asm/types.h>
#include <linux/types.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
#include <linux/if.h>
#include <errno.h>
#include <glib.h>
#include <nm-netlink-monitor.h>
static void
device_added (NmNetlinkMonitor *monitor,
const gchar *device_name)
{
g_print ("interface '%s' connected\n", device_name);
}
static void
device_removed (NmNetlinkMonitor *monitor,
const gchar *device_name)
{
g_print ("interface '%s' disconnected\n", device_name);
}
int
main (void)
{
NmNetlinkMonitor *monitor;
GMainLoop *loop;
GError *error;
g_type_init ();
monitor = nm_netlink_monitor_new ();
error = NULL;
nm_netlink_monitor_open_connection (monitor, &error);
if (error != NULL)
{
g_printerr ("could not open connection: %s\n",
error->message);
g_error_free (error);
return 1;
}
loop = g_main_loop_new (NULL, FALSE);
g_signal_connect (G_OBJECT (monitor),
"interface-connected",
G_CALLBACK (device_added), NULL);
g_signal_connect (G_OBJECT (monitor),
"interface-disconnected",
G_CALLBACK (device_removed), NULL);
nm_netlink_monitor_attach (monitor, NULL);
nm_netlink_monitor_request_status (monitor, &error);
if (error != NULL)
{
g_printerr ("could not request status of interfaces: %s\n",
error->message);
g_error_free (error);
return 2;
}
g_main_loop_run (loop);
return 0;
}

View File

@@ -296,10 +296,10 @@ void print_device_networks (DBusConnection *connection, const char *path)
fprintf( stderr, " %s (%s) Strength: %d%%\n", networks[i], name,
get_object_signal_strength (connection, networks[i]) );
dbus_free (name);
g_free (name);
}
dbus_free_string_array (networks);
g_strfreev (networks);
}
@@ -327,7 +327,7 @@ void print_devices (DBusConnection *connection)
fprintf (stderr, " Device type: wireless\n");
fprintf (stderr, " Strength: %d%%\n", get_object_signal_strength (connection, devices[i]));
fprintf (stderr, " Active Network: '%s'\n", active_network);
dbus_free (active_network);
g_free (active_network);
print_device_networks (connection, devices[i]);
fprintf (stderr, "\n");
@@ -338,7 +338,7 @@ void print_devices (DBusConnection *connection)
fprintf (stderr, " Device type: unknown\n");
fprintf (stderr, "\n");
}
dbus_free_string_array (devices);
g_strfreev (devices);
}
@@ -400,7 +400,7 @@ int main( int argc, char *argv[] )
return (1);
}
fprintf (stderr, "NM Status: '%s'\n", status);
dbus_free (status);
g_free (status);
path = get_active_device (connection);
fprintf (stderr, "Active device: '%s'\n", path ? path : "(none)");
@@ -408,7 +408,7 @@ int main( int argc, char *argv[] )
{
char *name = get_object_name (connection, path);
fprintf (stderr, "Active device name: '%s'\n", name ? name : "(none)");
dbus_free (name);
g_free (name);
}
print_devices (connection);
@@ -419,7 +419,7 @@ int main( int argc, char *argv[] )
set_device_network (connection, path, argv[1]);
}
dbus_free (path);
g_free (path);
return 0;
}

View File

@@ -22,7 +22,78 @@
#ifndef NM_UTILS_H
#define NM_UTILS_H
#include <glib.h>
#include <execinfo.h>
#define nm_print_backtrace() \
G_STMT_START \
{ \
void *_call_stack[512]; \
int _call_stack_size; \
char **_symbols; \
_call_stack_size = backtrace (_call_stack, \
G_N_ELEMENTS (_call_stack)); \
_symbols = backtrace_symbols (_call_stack, _call_stack_size); \
if (_symbols != NULL) \
{ \
int _i; \
_i = 0; \
g_critical ("traceback:\n"); \
while (_i < _call_stack_size) \
{ \
g_critical ("\t%s\n", _symbols[_i]); \
_i++; \
} \
free (_symbols); \
} \
} \
G_STMT_END
#define nm_get_timestamp(timestamp) \
G_STMT_START \
{ \
GTimeVal _tv; \
g_get_current_time (&_tv); \
*timestamp = (_tv.tv_sec * (1.0 * G_USEC_PER_SEC) + \
_tv.tv_usec) / G_USEC_PER_SEC; \
} \
G_STMT_END
#define nm_info(fmt, args...) \
G_STMT_START \
{ \
g_message ("<information>\t" fmt "\n", ##args); \
} G_STMT_END
#define nm_debug(fmt, args...) \
G_STMT_START \
{ \
gdouble _timestamp; \
nm_get_timestamp (&_timestamp); \
g_debug ("<debug info>\t[%f] %s (): " fmt "\n", _timestamp, \
G_GNUC_PRETTY_FUNCTION, ##args); \
} G_STMT_END
#define nm_warning(fmt, args...) \
G_STMT_START \
{ \
g_warning ("<WARNING>\t %s (): " fmt "\n", \
G_GNUC_PRETTY_FUNCTION, ##args); \
} G_STMT_END
#define nm_error(fmt, args...) \
G_STMT_START \
{ \
gdouble _timestamp; \
nm_get_timestamp (&_timestamp); \
g_critical ("<ERROR>\t[%f] %s (): " fmt "\n", _timestamp, \
G_GNUC_PRETTY_FUNCTION, ##args); \
nm_print_backtrace (); \
G_BREAKPOINT (); \
} G_STMT_END
gchar *nm_dbus_escape_object_path (const gchar *utf8_string);
gchar *nm_dbus_unescape_object_path (const gchar *object_path);
#endif
#endif /* NM_UTILS_H */