diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2016-01-23 10:04:26 +0100 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2016-01-23 10:04:26 +0100 |
commit | 0ba500d13174e103e3d35ce6a278928f874b7d9a (patch) | |
tree | b294324d8d528d03000c877b9e6d4cc3875ecfe3 | |
parent | ba24a127398310ccfe8ac2bc4a207805d3bb9818 (diff) | |
parent | e3a6ba6756620b5ed64459141567dd7a760e2c30 (diff) | |
download | NetworkManager-0ba500d13174e103e3d35ce6a278928f874b7d9a.tar.gz |
core: merge branch 'bg/iptables-sharing-rules-bgo692673'
Remove iptables rules for connection sharing upon termination to avoid
the presence of duplicate rules when NM is restarted.
https://bugzilla.gnome.org/show_bug.cgi?id=692673
-rw-r--r-- | src/devices/nm-device.c | 18 | ||||
-rw-r--r-- | src/nm-activation-request.c | 2 | ||||
-rw-r--r-- | src/nm-manager.c | 2 |
3 files changed, 12 insertions, 10 deletions
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c index 2b4dc1eda5..e843b9b7f4 100644 --- a/src/devices/nm-device.c +++ b/src/devices/nm-device.c @@ -6636,16 +6636,16 @@ start_sharing (NMDevice *self, NMIP4Config *config) req = nm_device_get_act_request (self); g_assert (req); - add_share_rule (req, "filter", "INPUT --in-interface %s --protocol tcp --destination-port 53 --jump ACCEPT", ip_iface); - add_share_rule (req, "filter", "INPUT --in-interface %s --protocol udp --destination-port 53 --jump ACCEPT", ip_iface); - add_share_rule (req, "filter", "INPUT --in-interface %s --protocol tcp --destination-port 67 --jump ACCEPT", ip_iface); - add_share_rule (req, "filter", "INPUT --in-interface %s --protocol udp --destination-port 67 --jump ACCEPT", ip_iface); - add_share_rule (req, "filter", "FORWARD --in-interface %s --jump REJECT", ip_iface); - add_share_rule (req, "filter", "FORWARD --out-interface %s --jump REJECT", ip_iface); - add_share_rule (req, "filter", "FORWARD --in-interface %s --out-interface %s --jump ACCEPT", ip_iface, ip_iface); - add_share_rule (req, "filter", "FORWARD --source %s/%s --in-interface %s --jump ACCEPT", str_addr, str_mask, ip_iface); - add_share_rule (req, "filter", "FORWARD --destination %s/%s --out-interface %s --match state --state ESTABLISHED,RELATED --jump ACCEPT", str_addr, str_mask, ip_iface); add_share_rule (req, "nat", "POSTROUTING --source %s/%s ! --destination %s/%s --jump MASQUERADE", str_addr, str_mask, str_addr, str_mask); + add_share_rule (req, "filter", "FORWARD --destination %s/%s --out-interface %s --match state --state ESTABLISHED,RELATED --jump ACCEPT", str_addr, str_mask, ip_iface); + add_share_rule (req, "filter", "FORWARD --source %s/%s --in-interface %s --jump ACCEPT", str_addr, str_mask, ip_iface); + add_share_rule (req, "filter", "FORWARD --in-interface %s --out-interface %s --jump ACCEPT", ip_iface, ip_iface); + add_share_rule (req, "filter", "FORWARD --out-interface %s --jump REJECT", ip_iface); + add_share_rule (req, "filter", "FORWARD --in-interface %s --jump REJECT", ip_iface); + add_share_rule (req, "filter", "INPUT --in-interface %s --protocol udp --destination-port 67 --jump ACCEPT", ip_iface); + add_share_rule (req, "filter", "INPUT --in-interface %s --protocol tcp --destination-port 67 --jump ACCEPT", ip_iface); + add_share_rule (req, "filter", "INPUT --in-interface %s --protocol udp --destination-port 53 --jump ACCEPT", ip_iface); + add_share_rule (req, "filter", "INPUT --in-interface %s --protocol tcp --destination-port 53 --jump ACCEPT", ip_iface); nm_act_request_set_shared (req, TRUE); diff --git a/src/nm-activation-request.c b/src/nm-activation-request.c index 30e98fcacb..04a39dba8b 100644 --- a/src/nm-activation-request.c +++ b/src/nm-activation-request.c @@ -346,7 +346,7 @@ nm_act_request_add_share_rule (NMActRequest *req, rule = g_malloc0 (sizeof (ShareRule)); rule->table = g_strdup (table); rule->rule = g_strdup (table_rule); - priv->share_rules = g_slist_append (priv->share_rules, rule); + priv->share_rules = g_slist_prepend (priv->share_rules, rule); } /********************************************************************/ diff --git a/src/nm-manager.c b/src/nm-manager.c index c2b4e531ab..f647c8f9e4 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -4418,6 +4418,8 @@ nm_manager_stop (NMManager *self) /* Remove all devices */ while (priv->devices) remove_device (self, NM_DEVICE (priv->devices->data), TRUE, TRUE); + + _active_connection_cleanup (self); } static gboolean |