netns: add support for specifying network namespace by path

This commit is contained in:
ginuerzh
2024-07-08 10:59:03 +08:00
parent 13c9e3ba97
commit 949c98adc0
2 changed files with 23 additions and 6 deletions

View File

@ -175,9 +175,15 @@ func ParseService(cfg *config.ServiceConfig) (service.Service, error) {
}
defer netns.Set(originNs)
ns, err := netns.GetFromName(netnsIn)
var ns netns.NsHandle
if strings.HasPrefix(netnsIn, "/") {
ns, err = netns.GetFromPath(netnsIn)
} else {
ns, err = netns.GetFromName(netnsIn)
}
if err != nil {
return nil, fmt.Errorf("netns.GetFromName(%s): %v", netnsIn, err)
return nil, fmt.Errorf("netns.Get(%s): %v", netnsIn, err)
}
defer ns.Close()