diff --git a/libpod/container.go b/libpod/container.go index bc904f0ba4..9bd8028367 100644 --- a/libpod/container.go +++ b/libpod/container.go @@ -688,15 +688,7 @@ func (c *Container) Hostname() string { // if the container is not running in a private UTS namespace, // return the host's hostname. - privateUTS := false - if c.config.Spec.Linux != nil { - for _, ns := range c.config.Spec.Linux.Namespaces { - if ns.Type == spec.UTSNamespace { - privateUTS = true - break - } - } - } + privateUTS := c.hasPrivateUTS() if !privateUTS { hostname, err := os.Hostname() if err == nil { diff --git a/libpod/container_internal_freebsd.go b/libpod/container_internal_freebsd.go index 2ecb931f2d..152de92952 100644 --- a/libpod/container_internal_freebsd.go +++ b/libpod/container_internal_freebsd.go @@ -389,3 +389,10 @@ func (c *Container) getPlatformRunPath() (string, error) { func (c *Container) addMaskedPaths(g *generate.Generator) { // There are currently no FreeBSD-specific masked paths } + +func (c *Container) hasPrivateUTS() bool { + // Currently we always use a private UTS namespace on FreeBSD. This + // should be optional but needs a FreeBSD section in the OCI runtime + // specification. + return true +} diff --git a/libpod/container_internal_linux.go b/libpod/container_internal_linux.go index 6a8774b265..7f6508d380 100644 --- a/libpod/container_internal_linux.go +++ b/libpod/container_internal_linux.go @@ -811,3 +811,16 @@ func (c *Container) addMaskedPaths(g *generate.Generator) { g.AddLinuxMaskedPaths("/sys/devices/virtual/powercap") } } + +func (c *Container) hasPrivateUTS() bool { + privateUTS := false + if c.config.Spec.Linux != nil { + for _, ns := range c.config.Spec.Linux.Namespaces { + if ns.Type == spec.UTSNamespace { + privateUTS = true + break + } + } + } + return privateUTS +}