From 59749f4c33bf5cb37c759fb84cae1f6d63cb3162 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Thu, 26 Jul 2007 15:07:36 +0000 Subject: [PATCH] 2007-07-26 Dan Williams Patch from Bernhard Miklautz * src/NetworkManagerSystem.c - (nm_system_device_set_ip4_route): don't add the route if it's on the same subnet (#437396) git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2651 4912f4e0-d625-0410-9fb7-b9a5a253dbdc --- ChangeLog | 8 ++++++++ src/NetworkManagerSystem.c | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/ChangeLog b/ChangeLog index 2bcfe68cc7..150491a8ad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-07-26 Dan Williams + + Patch from Bernhard Miklautz + + * src/NetworkManagerSystem.c + - (nm_system_device_set_ip4_route): don't add the route if it's on the + same subnet (#437396) + 2007-07-26 Dan Williams Patch from Kelemen Gábor diff --git a/src/NetworkManagerSystem.c b/src/NetworkManagerSystem.c index 773d175e03..13d606e32e 100644 --- a/src/NetworkManagerSystem.c +++ b/src/NetworkManagerSystem.c @@ -68,6 +68,7 @@ nm_system_device_set_ip4_route (NMDevice *dev, struct rtentry rtent; struct sockaddr_in *p; const char * iface; + NMIP4Config * config = NULL; int err; struct rtentry rtent2; @@ -81,6 +82,16 @@ nm_system_device_set_ip4_route (NMDevice *dev, iface = nm_device_get_iface (dev); + /* + * Do not add the route if the destination is on the same subnet. + */ + config = nm_device_get_ip4_config(dev); + if (config && + ((guint32)ip4_dest & nm_ip4_config_get_netmask(config)) == + (nm_ip4_config_get_address(config) & nm_ip4_config_get_netmask(config))) + return TRUE; + + if ((sk = nm_dev_sock_open (iface, NETWORK_CONTROL, __func__, NULL)) == NULL) return FALSE;