diff options
author | Paul Holzinger <pholzing@redhat.com> | 2022-04-19 16:22:39 +0200 |
---|---|---|
committer | Paul Holzinger <pholzing@redhat.com> | 2022-04-22 12:59:51 +0200 |
commit | 128086639c6317c324c32423765c72f38c115f74 (patch) | |
tree | c3e8022e71f651594acaae6edf4b1dbf6c20f15c /libpod | |
parent | 696bcd2773cf6c255855db9cf2ef724547626438 (diff) | |
download | podman-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')
-rw-r--r-- | libpod/container.go | 9 |
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 } |