Skip to content

Commit

Permalink
Merge pull request containers#4629 from mheon/fix_indirect_netnsctr_l…
Browse files Browse the repository at this point in the history
…ookup

Allow chained network namespace containers
  • Loading branch information
openshift-merge-robot authored Dec 3, 2019
2 parents 748de3c + b0b9103 commit 5c3af00
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 4 deletions.
2 changes: 1 addition & 1 deletion libpod/container.go
Original file line number Diff line number Diff line change
Expand Up @@ -1146,7 +1146,7 @@ func (c *Container) NetworkDisabled() (bool, error) {
if err != nil {
return false, err
}
return networkDisabled(container)
return container.NetworkDisabled()
}
return networkDisabled(c)

Expand Down
21 changes: 18 additions & 3 deletions libpod/container_internal_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -1016,9 +1016,24 @@ func (c *Container) makeBindMounts() error {
// We want /etc/resolv.conf and /etc/hosts from the
// other container. Unless we're not creating both of
// them.
depCtr, err := c.runtime.state.Container(c.config.NetNsCtr)
if err != nil {
return errors.Wrapf(err, "error fetching dependency %s of container %s", c.config.NetNsCtr, c.ID())
var (
depCtr *Container
nextCtr string
)

// I don't like infinite loops, but I don't think there's
// a serious risk of looping dependencies - too many
// protections against that elsewhere.
nextCtr = c.config.NetNsCtr
for {
depCtr, err = c.runtime.state.Container(nextCtr)
if err != nil {
return errors.Wrapf(err, "error fetching dependency %s of container %s", c.config.NetNsCtr, c.ID())
}
nextCtr = depCtr.config.NetNsCtr
if nextCtr == "" {
break
}
}

// We need that container's bind mounts
Expand Down

0 comments on commit 5c3af00

Please sign in to comment.