diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0f0c824..cd29e17 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -27,7 +27,15 @@ jobs: - name: Install dependencies run: | sudo add-apt-repository ppa:ubuntu-lxc/daily -y - sudo apt-get install -qq apparmor lxc lxc-dev pkg-config uidmap busybox libdbus-1-dev libseccomp-dev libcap-dev libselinux-dev + sudo apt-get install -qq apparmor lxc lxc-dev pkg-config uidmap busybox libdbus-1-dev libseccomp-dev libcap-dev libselinux-dev nftables iptables + + - name: Reset all firewalling + run: | + sudo iptables -F + sudo iptables -P INPUT ACCEPT + sudo iptables -P OUTPUT ACCEPT + sudo iptables -P FORWARD ACCEPT + sudo nft flush ruleset - name: Setup test environment run: | diff --git a/container.go b/container.go index d22345d..004cf6f 100644 --- a/container.go +++ b/container.go @@ -647,9 +647,16 @@ func (c *Container) StartWithArgs(args []string) error { return err } - if !bool(C.go_lxc_start(c.container, 0, makeNullTerminatedArgs(args))) { - return ErrStartFailed + if args != nil { + if !bool(C.go_lxc_start(c.container, 0, makeNullTerminatedArgs(args))) { + return ErrStartFailed + } + } else { + if !bool(C.go_lxc_start(c.container, 0, nil)) { + return ErrStartFailed + } } + return nil } @@ -667,8 +674,14 @@ func (c *Container) StartExecute(args []string) error { return err } - if !bool(C.go_lxc_start(c.container, 1, makeNullTerminatedArgs(args))) { - return ErrStartFailed + if args != nil { + if !bool(C.go_lxc_start(c.container, 1, makeNullTerminatedArgs(args))) { + return ErrStartFailed + } + } else { + if !bool(C.go_lxc_start(c.container, 1, nil)) { + return ErrStartFailed + } } return nil diff --git a/go.mod b/go.mod index 0f41775..51b2cda 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,4 @@ module github.com/lxc/go-lxc go 1.20 -require golang.org/x/sys v0.12.0 +require golang.org/x/sys v0.21.0 diff --git a/go.sum b/go.sum index 63a0250..ac7fb31 100644 --- a/go.sum +++ b/go.sum @@ -1,2 +1,2 @@ -golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= +golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= diff --git a/lxc_test.go b/lxc_test.go index bf77e56..e14a346 100644 --- a/lxc_test.go +++ b/lxc_test.go @@ -42,11 +42,6 @@ func unprivileged() bool { return os.Geteuid() != 0 } -func travis() bool { - // https://docs.travis-ci.com/user/environment-variables/#default-environment-variables - return os.Getenv("TRAVIS") == "true" -} - func supported(moduleName string) bool { if _, err := os.Stat("/sys/module/" + moduleName); err != nil { return false @@ -1411,22 +1406,24 @@ func TestIPv4Addresses(t *testing.T) { } defer c.Release() + // Wait for IP configuration. + time.Sleep(5 * time.Second) + if _, err := c.IPv4Addresses(); err != nil { t.Errorf(err.Error()) } } func TestIPv6Addresses(t *testing.T) { - if !ipv6() { - t.Skip("skipping test since lxc bridge does not have ipv6 address") - } - c, err := NewContainer(ContainerName()) if err != nil { t.Errorf(err.Error()) } defer c.Release() + // Wait for IP configuration. + time.Sleep(5 * time.Second) + if _, err := c.IPv6Addresses(); err != nil { t.Errorf(err.Error()) }