about summary refs log tree commit diff
path: root/src/backends/NetworkManagerGeneric.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2011-10-28 23:04:16 +0200
committerMichael Biebl <biebl@debian.org>2011-10-28 23:04:16 +0200
commit485d149fe80915d94ed49ea6c2c0552cf7a3e79a (patch)
tree6a48492b46b8c1e3df1c58626c28f05a978c61f7 /src/backends/NetworkManagerGeneric.c
parent263bf4c0c89bb88dc995acd9a6a2de9095fbd461 (diff)
Imported Upstream version 0.9.1.95 upstream/0.9.1.95
Diffstat (limited to 'src/backends/NetworkManagerGeneric.c')
-rw-r--r--src/backends/NetworkManagerGeneric.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/backends/NetworkManagerGeneric.c b/src/backends/NetworkManagerGeneric.c
index 8f16066f..89b8a46d 100644
--- a/src/backends/NetworkManagerGeneric.c
+++ b/src/backends/NetworkManagerGeneric.c
@@ -34,7 +34,9 @@
 #include "nm-system.h"
 #include "NetworkManagerUtils.h"
 #include "nm-logging.h"
+#include "nm-netlink-compat.h"
 #include "nm-netlink-monitor.h"
+#include "nm-netlink-utils.h"
 
 /* Because of a bug in libnl, rtnl.h should be included before route.h */
 #include <netlink/route/rtnl.h>
@@ -50,15 +52,13 @@
  */
 void nm_generic_enable_loopback (void)
 {
-	struct nl_handle *	nlh = NULL;
+	struct nl_sock *	nlh = NULL;
 	struct rtnl_addr *	addr = NULL;
 	struct nl_addr *	nl_addr = NULL;
 	guint32			binaddr = 0;
 	int			iface_idx = -1;
 	int			err;
 
-	nm_system_device_set_up_down_with_iface ("lo", TRUE, NULL);
-
 	nlh = nm_netlink_get_default_handle ();
 	if (!nlh)
 		return;
@@ -67,6 +67,8 @@ void nm_generic_enable_loopback (void)
 	if (iface_idx < 0)
 		return;
 
+	nm_system_iface_set_up (iface_idx, TRUE, NULL);
+
 	addr = rtnl_addr_alloc ();
 	if (!addr)
 		return;
@@ -90,10 +92,10 @@ void nm_generic_enable_loopback (void)
 	rtnl_addr_set_scope (addr, RT_SCOPE_HOST);
 	rtnl_addr_set_label (addr, "lo");
 
-	if ((err = rtnl_addr_add (nlh, addr, 0)) < 0) {
-		if (err != -EEXIST) {
-			nm_log_warn (LOGD_CORE, "error %d returned from rtnl_addr_add():\n%s", err, nl_geterror());
-		}
+	err = rtnl_addr_add (nlh, addr, 0);
+	if (err && (err != -NLE_EXIST)) {
+		nm_log_warn (LOGD_CORE, "error setting loopback address: (%d) %s",
+			         err, nl_geterror (err));
 	}
 out:
 	if (addr)