Commit d1968dcc authored by Marcin Siodelski's avatar Marcin Siodelski

[3730] Method to open sockets closes sockets before configuring IfaceMgr.

Previously, the sockets were closed just before opening a new set of
sockets, rather than before reconfiguring the IfaceMgr. Some steps of the
IfaceMgr reconfiguration failed when sockets were still open, which
effectively led to inability to reconfigure the running server.
parent 94690965
......@@ -65,6 +65,9 @@ CfgIface::openSockets(const uint16_t family, const uint16_t port,
// inactive.
setState(family, !wildcard_used_, true);
IfaceMgr& iface_mgr = IfaceMgr::instance();
// Close any open sockets because we're going to modify some properties
// of the IfaceMgr. Those modifications require that sockets are closed.
closeSockets();
// Remove selection of unicast addresses from all interfaces.
iface_mgr.clearUnicasts();
// For the DHCPv4 server, if the user has selected that raw sockets
......@@ -127,9 +130,6 @@ CfgIface::openSockets(const uint16_t family, const uint16_t port,
}
}
// Before opening any sockets, close existing ones.
closeSockets();
// Set the callback which is called when the socket fails to open
// for some specific interface. This callback will simply log a
// warning message.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment