Fixed docker.internal.gateway not displaying properly on live restore
Also includes review suggestions in daemon.initNetworkController():
- update godoc for setHostGatewayIP()
- change setHostGatewayIP() to get config, instead of daemon
- remove redundant nil check for controller
Signed-off-by: sanchayanghosh <sanchayanghosh@outlook.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
diff --git a/daemon/daemon_unix.go b/daemon/daemon_unix.go
index 562e4c4..3ff3091 100644
--- a/daemon/daemon_unix.go
+++ b/daemon/daemon_unix.go
@@ -869,6 +869,7 @@
if len(activeSandboxes) > 0 {
logrus.Info("There are old running containers, the network config will not take affect")
+ setHostGatewayIP(daemon.configStore, controller)
return controller, nil
}
@@ -906,21 +907,28 @@
}
// Set HostGatewayIP to the default bridge's IP if it is empty
- if daemon.configStore.HostGatewayIP == nil && controller != nil {
- if n, err := controller.NetworkByName("bridge"); err == nil {
- v4Info, v6Info := n.Info().IpamInfo()
- var gateway net.IP
- if len(v4Info) > 0 {
- gateway = v4Info[0].Gateway.IP
- } else if len(v6Info) > 0 {
- gateway = v6Info[0].Gateway.IP
- }
- daemon.configStore.HostGatewayIP = gateway
- }
- }
+ setHostGatewayIP(daemon.configStore, controller)
+
return controller, nil
}
+// setHostGatewayIP sets cfg.HostGatewayIP to the default bridge's IP if it is empty.
+func setHostGatewayIP(config *config.Config, controller libnetwork.NetworkController) {
+ if config.HostGatewayIP != nil {
+ return
+ }
+ if n, err := controller.NetworkByName("bridge"); err == nil {
+ v4Info, v6Info := n.Info().IpamInfo()
+ var gateway net.IP
+ if len(v4Info) > 0 {
+ gateway = v4Info[0].Gateway.IP
+ } else if len(v6Info) > 0 {
+ gateway = v6Info[0].Gateway.IP
+ }
+ config.HostGatewayIP = gateway
+ }
+}
+
func driverOptions(config *config.Config) []nwconfig.Option {
bridgeConfig := options.Generic{
"EnableIPForwarding": config.BridgeConfig.EnableIPForward,