summaryrefslogtreecommitdiff
path: root/libpod/container.go
diff options
context:
space:
mode:
authorPaul Holzinger <pholzing@redhat.com>2022-04-19 16:22:39 +0200
committerPaul Holzinger <pholzing@redhat.com>2022-04-22 12:59:51 +0200
commit128086639c6317c324c32423765c72f38c115f74 (patch)
treec3e8022e71f651594acaae6edf4b1dbf6c20f15c /libpod/container.go
parent696bcd2773cf6c255855db9cf2ef724547626438 (diff)
downloadpodman-128086639c6317c324c32423765c72f38c115f74.tar.gz
podman-128086639c6317c324c32423765c72f38c115f74.tar.bz2
podman-128086639c6317c324c32423765c72f38c115f74.zip
libpod: fix c.Hostname() to respect the utsNsCtr
When we lookup the hostname for a given container we have to check if the container is joined to another utsns and use this hostname then instead. This fixes a problem where the `hostname` command would use the correct name but /etc/hostname would contain a different name. Signed-off-by: Paul Holzinger <pholzing@redhat.com>
Diffstat (limited to 'libpod/container.go')
-rw-r--r--libpod/container.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/libpod/container.go b/libpod/container.go
index bc3cab439..6e2b7f528 100644
--- a/libpod/container.go
+++ b/libpod/container.go
@@ -628,6 +628,15 @@ func (c *Container) RuntimeName() string {
// Hostname gets the container's hostname
func (c *Container) Hostname() string {
+ if c.config.UTSNsCtr != "" {
+ utsNsCtr, err := c.runtime.GetContainer(c.config.UTSNsCtr)
+ if err != nil {
+ // should we return an error here?
+ logrus.Errorf("unable to lookup uts namespace for container %s: %v", c.ID(), err)
+ return ""
+ }
+ return utsNsCtr.Hostname()
+ }
if c.config.Spec.Hostname != "" {
return c.config.Spec.Hostname
}