Skip to content

Commit e3223f5

Browse files
Merge pull request #180 from dfr/freebsd
pkg/ocicni: Use 'ifconfig -j' to access jail network state
2 parents 0885782 + 4e25248 commit e3223f5

File tree

2 files changed

+14
-16
lines changed

2 files changed

+14
-16
lines changed

hack/find-godeps.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#!/bin/bash
1+
#!/usr/bin/env bash
22
#
33
# $1 - base path of the source tree
44
# $2 - subpath under $1 to find *.go dependencies for

pkg/ocicni/util_freebsd.go

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,22 @@ import (
1010
"strings"
1111
)
1212

13-
var defaultJexecCommandName = "jexec"
14-
15-
type nsManager struct {
16-
jexecPath string
17-
}
13+
type nsManager struct{}
1814

1915
func (nsm *nsManager) init() error {
20-
var err error
21-
nsm.jexecPath, err = exec.LookPath(defaultJexecCommandName)
22-
return err
16+
return nil
2317
}
2418

2519
func getContainerDetails(nsm *nsManager, netnsJailName, interfaceName, addrType string) (*net.IPNet, *net.HardwareAddr, error) {
2620
// Try to retrieve ip inside container network namespace
21+
if addrType == "-4" {
22+
addrType = "inet"
23+
} else {
24+
addrType = "inet6"
25+
}
2726
output, err := exec.Command(
28-
nsm.jexecPath, netnsJailName,
29-
"ifconfig", "-f", "inet:cidr,inet6:cidr",
27+
"ifconfig", "-j", netnsJailName,
28+
"-f", "inet:cidr,inet6:cidr",
3029
interfaceName,
3130
addrType).CombinedOutput()
3231
if err != nil {
@@ -38,7 +37,7 @@ func getContainerDetails(nsm *nsManager, netnsJailName, interfaceName, addrType
3837
return nil, nil, fmt.Errorf("Unexpected command output %s", output)
3938
}
4039
fields := strings.Fields(strings.TrimSpace(lines[2]))
41-
if len(fields) < 4 {
40+
if len(fields) < 2 {
4241
return nil, nil, fmt.Errorf("Unexpected address output %s ", lines[0])
4342
}
4443
ip, ipNet, err := net.ParseCIDR(fields[1])
@@ -53,8 +52,7 @@ func getContainerDetails(nsm *nsManager, netnsJailName, interfaceName, addrType
5352

5453
// Try to retrieve MAC inside container network namespace
5554
output, err = exec.Command(
56-
nsm.jexecPath, netnsJailName,
57-
"ifconfig", "-f", "inet:cidr,inet6:cidr",
55+
"ifconfig", "-j", netnsJailName, "-f", "inet:cidr,inet6:cidr",
5856
interfaceName,
5957
"ether").CombinedOutput()
6058
if err != nil {
@@ -65,7 +63,7 @@ func getContainerDetails(nsm *nsManager, netnsJailName, interfaceName, addrType
6563
if len(lines) < 3 {
6664
return nil, nil, fmt.Errorf("unexpected ifconfig command output %s", output)
6765
}
68-
fields = strings.Fields(strings.TrimSpace(lines[1]))
66+
fields = strings.Fields(strings.TrimSpace(lines[2]))
6967
if len(fields) < 2 {
7068
return nil, nil, fmt.Errorf("unexpected ether output %s ", lines[0])
7169
}
@@ -78,7 +76,7 @@ func getContainerDetails(nsm *nsManager, netnsJailName, interfaceName, addrType
7876
}
7977

8078
func bringUpLoopback(netns string) error {
81-
if err := exec.Command("jexec", netns, "ifconfig", "lo0", "inet", "127.0.0.1").Run(); err != nil {
79+
if err := exec.Command("ifconfig", "-j", netns, "lo0", "inet", "127.0.0.1").Run(); err != nil {
8280
return fmt.Errorf("failed to initialize loopback: %w", err)
8381
}
8482
return nil

0 commit comments

Comments
 (0)