mirror of
https://github.com/containers/podman.git
synced 2025-12-06 05:37:49 +08:00
Vendor in latest containers/common
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:
24
vendor/github.com/containers/common/libnetwork/cni/network.go
generated
vendored
24
vendor/github.com/containers/common/libnetwork/cni/network.go
generated
vendored
@@ -18,10 +18,12 @@ import (
|
||||
"github.com/containers/common/libnetwork/types"
|
||||
"github.com/containers/common/pkg/config"
|
||||
"github.com/containers/storage/pkg/lockfile"
|
||||
"github.com/containers/storage/pkg/unshare"
|
||||
"github.com/sirupsen/logrus"
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
const defaultRootLockPath = "/run/lock/podman-cni.lock"
|
||||
|
||||
type cniNetwork struct {
|
||||
// cniConfigDir is directory where the cni config files are stored.
|
||||
cniConfigDir string
|
||||
@@ -81,19 +83,15 @@ type InitConfig struct {
|
||||
// NewCNINetworkInterface creates the ContainerNetwork interface for the CNI backend.
|
||||
// Note: The networks are not loaded from disk until a method is called.
|
||||
func NewCNINetworkInterface(conf *InitConfig) (types.ContainerNetwork, error) {
|
||||
// TODO: consider using a shared memory lock
|
||||
lock, err := lockfile.GetLockFile(filepath.Join(conf.CNIConfigDir, "cni.lock"))
|
||||
// root needs to use a globally unique lock because there is only one host netns
|
||||
lockPath := defaultRootLockPath
|
||||
if unshare.IsRootless() {
|
||||
lockPath = filepath.Join(conf.CNIConfigDir, "cni.lock")
|
||||
}
|
||||
|
||||
lock, err := lockfile.GetLockFile(lockPath)
|
||||
if err != nil {
|
||||
// If we're on a read-only filesystem, there is no risk of
|
||||
// contention. Fall back to a local lockfile.
|
||||
if errors.Is(err, unix.EROFS) {
|
||||
lock, err = lockfile.GetLockFile(filepath.Join(conf.RunDir, "cni.lock"))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
return nil, err
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
defaultNetworkName := conf.DefaultNetwork
|
||||
|
||||
Reference in New Issue
Block a user