summaryrefslogtreecommitdiff
path: root/libpod
diff options
context:
space:
mode:
Diffstat (limited to 'libpod')
-rw-r--r--libpod/boltdb_state.go1
-rw-r--r--libpod/container.go4
-rw-r--r--libpod/container_inspect.go7
-rw-r--r--libpod/container_internal.go1
-rw-r--r--libpod/networking.go1
5 files changed, 14 insertions, 0 deletions
diff --git a/libpod/boltdb_state.go b/libpod/boltdb_state.go
index 77a17ce12..5e70a2554 100644
--- a/libpod/boltdb_state.go
+++ b/libpod/boltdb_state.go
@@ -179,6 +179,7 @@ func (s *BoltState) Refresh() error {
state.State = ContainerStateConfigured
state.ExecSessions = make(map[string]*ExecSession)
state.IPs = nil
+ state.Interfaces = nil
state.Routes = nil
state.BindMounts = make(map[string]string)
diff --git a/libpod/container.go b/libpod/container.go
index 26232e5c0..a30a9e006 100644
--- a/libpod/container.go
+++ b/libpod/container.go
@@ -152,6 +152,10 @@ type containerState struct {
// Only populated if we created a network namespace for the container,
// and the network namespace is currently active
IPs []*cnitypes.IPConfig `json:"ipAddresses,omitempty"`
+ // Interfaces contains interface information about the container
+ // Only populated if we created a network namespace for the container,
+ // and the network namespace is currently active
+ Interfaces []*cnitypes.Interface `json:"interfaces,omitempty"`
// Routes contains network routes present in the container
// Only populated if we created a network namespace for the container,
// and the network namespace is currently active
diff --git a/libpod/container_inspect.go b/libpod/container_inspect.go
index a3b4d0f65..7dc4d34b9 100644
--- a/libpod/container_inspect.go
+++ b/libpod/container_inspect.go
@@ -132,6 +132,13 @@ func (c *Container) getContainerInspectData(size bool, driverData *inspect.Data)
// Set network namespace path
data.NetworkSettings.SandboxKey = runtimeInfo.NetNS.Path()
+
+ // Set MAC address of interface linked with network namespace path
+ for _, i := range c.state.Interfaces {
+ if i.Sandbox == data.NetworkSettings.SandboxKey {
+ data.NetworkSettings.MacAddress = i.Mac
+ }
+ }
}
if size {
diff --git a/libpod/container_internal.go b/libpod/container_internal.go
index bd0074e56..ef4f907b6 100644
--- a/libpod/container_internal.go
+++ b/libpod/container_internal.go
@@ -805,6 +805,7 @@ func (c *Container) cleanupNetwork() error {
c.state.NetNS = nil
c.state.IPs = nil
+ c.state.Interfaces = nil
c.state.Routes = nil
return c.save()
}
diff --git a/libpod/networking.go b/libpod/networking.go
index 74ca340a0..afa18b534 100644
--- a/libpod/networking.go
+++ b/libpod/networking.go
@@ -55,6 +55,7 @@ func (r *Runtime) configureNetNS(ctr *Container, ctrNS ns.NetNS) (err error) {
ctr.state.NetNS = ctrNS
ctr.state.IPs = resultStruct.IPs
ctr.state.Routes = resultStruct.Routes
+ ctr.state.Interfaces = resultStruct.Interfaces
// We need to temporarily use iptables to allow the container
// to resolve DNS until this issue is fixed upstream.