mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-04-29 12:14:48 +00:00
runtime: Naming conflict of network devices
When creating a new endpoint, we check existing endpoint names and automatically adjust the naming of the new endpoint to ensure uniqueness. Fixes: #7876 Signed-off-by: shixuanqing <1356292400@qq.com>
This commit is contained in:
parent
e1f54f96d0
commit
ca4b6b051d
@ -12,8 +12,10 @@ import (
|
|||||||
"net"
|
"net"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
"regexp"
|
||||||
"runtime"
|
"runtime"
|
||||||
"sort"
|
"sort"
|
||||||
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containernetworking/plugins/pkg/ns"
|
"github.com/containernetworking/plugins/pkg/ns"
|
||||||
@ -128,6 +130,22 @@ func (n *LinuxNetwork) addSingleEndpoint(ctx context.Context, s *Sandbox, netInf
|
|||||||
var socketPath string
|
var socketPath string
|
||||||
idx := len(n.eps)
|
idx := len(n.eps)
|
||||||
|
|
||||||
|
// Avoid endpoint naming conflicts
|
||||||
|
// When creating a new endpoint, we check existing endpoint names and automatically adjust the naming of the new endpoint to ensure uniqueness.
|
||||||
|
lastIdx := -1
|
||||||
|
if len(n.eps) > 0 {
|
||||||
|
lastEndpoint := n.eps[len(n.eps)-1]
|
||||||
|
re := regexp.MustCompile("[0-9]+")
|
||||||
|
matchStr := re.FindString(lastEndpoint.Name())
|
||||||
|
n, err := strconv.ParseInt(matchStr, 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
lastIdx = int(n)
|
||||||
|
}
|
||||||
|
if idx <= lastIdx {
|
||||||
|
idx = lastIdx + 1
|
||||||
|
}
|
||||||
// Check if this is a dummy interface which has a vhost-user socket associated with it
|
// Check if this is a dummy interface which has a vhost-user socket associated with it
|
||||||
socketPath, err = vhostUserSocketPath(netInfo)
|
socketPath, err = vhostUserSocketPath(netInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user