summaryrefslogtreecommitdiff
path: root/libpod/container_internal_linux.go
diff options
context:
space:
mode:
authorParham Alvani <1995parham@tuta.io>2021-09-04 18:24:41 +0430
committerParham Alvani <1995parham@tuta.io>2021-09-04 18:24:41 +0430
commitce5baa125b2334195e995099fe6c8274a603efdf (patch)
treeff2775cff2b41db645029f68006eb5405056f0fe /libpod/container_internal_linux.go
parentaf58cb15d2aa46609fc7231647af09f808ba6c1c (diff)
downloadpodman-ce5baa125b2334195e995099fe6c8274a603efdf.tar.gz
podman-ce5baa125b2334195e995099fe6c8274a603efdf.tar.bz2
podman-ce5baa125b2334195e995099fe6c8274a603efdf.zip
feat: add localhost into hosts if the networking mode is not host
Signed-off-by: Parham Alvani <1995parham@tuta.io>
Diffstat (limited to 'libpod/container_internal_linux.go')
-rw-r--r--libpod/container_internal_linux.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/libpod/container_internal_linux.go b/libpod/container_internal_linux.go
index 847122929..cafa3c642 100644
--- a/libpod/container_internal_linux.go
+++ b/libpod/container_internal_linux.go
@@ -1,3 +1,4 @@
+//go:build linux
// +build linux
package libpod
@@ -1942,9 +1943,24 @@ func (c *Container) generateHosts(path string) (string, error) {
}
hosts := string(orig)
hosts += c.getHosts()
+
+ hosts = c.appendLocalhost(hosts)
+
return c.writeStringToRundir("hosts", hosts)
}
+// based on networking mode we may want to append the localhost
+// if there isn't any record for it and also this shoud happen
+// in slirp4netns and similar network modes.
+func (c *Container) appendLocalhost(hosts string) string {
+ if !strings.Contains(hosts, "localhost") &&
+ !c.config.NetMode.IsHost() {
+ hosts += "127.0.0.1\tlocalhost\n::1\tlocalhost\n"
+ }
+
+ return hosts
+}
+
// appendHosts appends a container's config and state pertaining to hosts to a container's
// local hosts file. netCtr is the container from which the netNS information is
// taken.