NetworkManager r3868 - in trunk: . src
- From: dcbw svn gnome org
- To: svn-commits-list gnome org
- Subject: NetworkManager r3868 - in trunk: . src
- Date: Mon, 28 Jul 2008 14:38:34 +0000 (UTC)
Author: dcbw
Date: Mon Jul 28 14:38:34 2008
New Revision: 3868
URL: http://svn.gnome.org/viewvc/NetworkManager?rev=3868&view=rev
Log:
2008-07-28 Dan Williams <dcbw redhat com>
Patch from Fabrice Bellet <fabrice bellet info>
* src/NetworkManagerSystem.c
- (route_in_same_subnet): mask addresses and compare them so that the
function actually does what it says it's going to do (rh #456685)
Modified:
trunk/ChangeLog
trunk/src/NetworkManagerSystem.c
Modified: trunk/src/NetworkManagerSystem.c
==============================================================================
--- trunk/src/NetworkManagerSystem.c (original)
+++ trunk/src/NetworkManagerSystem.c Mon Jul 28 14:38:34 2008
@@ -62,7 +62,7 @@
#include <netlink/route/link.h>
static gboolean
-route_in_same_subnet (NMIP4Config *config, guint32 prefix)
+route_in_same_subnet (NMIP4Config *config, guint32 dest, guint32 prefix)
{
int num;
int i;
@@ -72,8 +72,13 @@
const NMSettingIP4Address *addr;
addr = nm_ip4_config_get_address (config, i);
- if (prefix == addr->prefix)
- return TRUE;
+ if (prefix == addr->prefix) {
+ guint32 masked_addr = addr->address >> (32 - addr->prefix);
+ guint32 masked_dest = dest >> (32 - prefix);
+
+ if (masked_addr == masked_dest)
+ return TRUE;
+ }
}
return FALSE;
@@ -110,7 +115,7 @@
struct nl_addr *gw_addr = NULL;
int err, iface_idx;
- if (iface_config && route_in_same_subnet (iface_config, ip4_prefix))
+ if (iface_config && route_in_same_subnet (iface_config, ip4_dest, ip4_prefix))
return;
nlh = nm_netlink_get_default_handle ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]