summaryrefslogtreecommitdiff
path: root/libpod
diff options
context:
space:
mode:
Diffstat (limited to 'libpod')
-rw-r--r--libpod/container.go14
-rw-r--r--libpod/oci_attach_linux.go3
2 files changed, 15 insertions, 2 deletions
diff --git a/libpod/container.go b/libpod/container.go
index 3e7ab7b0a..457b290b7 100644
--- a/libpod/container.go
+++ b/libpod/container.go
@@ -288,6 +288,15 @@ func (c *Container) Config() *ContainerConfig {
return nil
}
+ if c != nil {
+ networks, err := c.networks()
+ if err != nil {
+ return nil
+ }
+
+ returnConfig.Networks = networks
+ }
+
return returnConfig
}
@@ -1260,7 +1269,10 @@ func (c *Container) NetworkMode() string {
// Unlocked accessor for networks
func (c *Container) networks() (map[string]types.PerNetworkOptions, error) {
- return c.runtime.state.GetNetworks(c)
+ if c != nil && c.runtime != nil && c.runtime.state != nil { // can fail if c.networks is called from the tests
+ return c.runtime.state.GetNetworks(c)
+ }
+ return nil, nil
}
// getInterfaceByName returns a formatted interface name for a given
diff --git a/libpod/oci_attach_linux.go b/libpod/oci_attach_linux.go
index c6af294d5..06f8f8719 100644
--- a/libpod/oci_attach_linux.go
+++ b/libpod/oci_attach_linux.go
@@ -9,6 +9,7 @@ import (
"net"
"os"
"path/filepath"
+ "syscall"
"github.com/containers/common/pkg/config"
"github.com/containers/podman/v4/libpod/define"
@@ -259,7 +260,7 @@ func redirectResponseToOutputStreams(outputStream, errorStream io.Writer, writeO
}
}
}
- if er == io.EOF {
+ if errors.Is(er, io.EOF) || errors.Is(er, syscall.ECONNRESET) {
break
}
if er != nil {