()
| 24 | ) |
| 25 | |
| 26 | func GetLiveNetworkSubnets() ([]*net.IPNet, error) { |
| 27 | var addrs []net.Addr |
| 28 | if err := rootlessutil.WithDetachedNetNSIfAny(func() error { |
| 29 | var err2 error |
| 30 | addrs, err2 = net.InterfaceAddrs() |
| 31 | return err2 |
| 32 | }); err != nil { |
| 33 | return nil, err |
| 34 | } |
| 35 | nets := make([]*net.IPNet, 0, len(addrs)) |
| 36 | for _, address := range addrs { |
| 37 | _, n, err := net.ParseCIDR(address.String()) |
| 38 | if err != nil { |
| 39 | return nil, err |
| 40 | } |
| 41 | nets = append(nets, n) |
| 42 | } |
| 43 | return nets, nil |
| 44 | } |
| 45 | |
| 46 | // GetFreeSubnet try to find a free subnet in the given network |
| 47 | func GetFreeSubnet(n *net.IPNet, usedNetworks []*net.IPNet) (*net.IPNet, error) { |
nothing calls this directly
no test coverage detected
searching dependent graphs…