diff options
author | Giuseppe Scrivano <gscrivan@redhat.com> | 2020-07-16 12:19:51 +0200 |
---|---|---|
committer | Giuseppe Scrivano <gscrivan@redhat.com> | 2020-07-16 22:37:27 +0200 |
commit | 9be7029cdd4736f3ac33004e4364e3e7f3bd1db5 (patch) | |
tree | 3471bf92af256dc4006f84a5f8fa4bcda090cdc2 /libpod/networking_linux.go | |
parent | 8d12f19371eb9d91139f7b982cde2926ec8c8e74 (diff) | |
download | podman-9be7029cdd4736f3ac33004e4364e3e7f3bd1db5.tar.gz podman-9be7029cdd4736f3ac33004e4364e3e7f3bd1db5.tar.bz2 podman-9be7029cdd4736f3ac33004e4364e3e7f3bd1db5.zip |
libpod: pass down network options
do not pass network specific options through the network namespace.
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
Diffstat (limited to 'libpod/networking_linux.go')
-rw-r--r-- | libpod/networking_linux.go | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/libpod/networking_linux.go b/libpod/networking_linux.go index db8aa219b..9be8e0b14 100644 --- a/libpod/networking_linux.go +++ b/libpod/networking_linux.go @@ -223,6 +223,22 @@ func (r *Runtime) setupRootlessNetNS(ctr *Container) error { havePortMapping := len(ctr.Config().PortMappings) > 0 logPath := filepath.Join(ctr.runtime.config.Engine.TmpDir, fmt.Sprintf("slirp4netns-%s.log", ctr.config.ID)) + isSlirpHostForward := false + if ctr.config.NetworkOptions != nil { + slirpOptions := ctr.config.NetworkOptions["slirp4netns"] + for _, o := range slirpOptions { + switch o { + case "port_handler=slirp4netns": + isSlirpHostForward = true + case "port_handler=rootlesskit": + isSlirpHostForward = false + default: + return errors.Errorf("unknown option for slirp4netns: %q", o) + + } + } + } + cmdArgs := []string{} slirpFeatures, err := checkSlirpFlags(path) if err != nil { @@ -242,7 +258,7 @@ func (r *Runtime) setupRootlessNetNS(ctr *Container) error { } var apiSocket string - if havePortMapping && ctr.config.NetMode.IsPortForwardViaSlirpHostFwd() { + if havePortMapping && isSlirpHostForward { apiSocket = filepath.Join(ctr.runtime.config.Engine.TmpDir, fmt.Sprintf("%s.net", ctr.config.ID)) cmdArgs = append(cmdArgs, "--api-socket", apiSocket) } @@ -310,7 +326,7 @@ func (r *Runtime) setupRootlessNetNS(ctr *Container) error { } if havePortMapping { - if ctr.config.NetMode.IsPortForwardViaSlirpHostFwd() { + if isSlirpHostForward { return r.setupRootlessPortMappingViaSlirp(ctr, cmd, apiSocket) } else { return r.setupRootlessPortMappingViaRLK(ctr, netnsPath) |