Skip to content

Commit

Permalink
Merge: * GetValidNetInterfaces: don't skip PointToPoint interfaces
Browse files Browse the repository at this point in the history
Close #1534

* commit '2b1919137d88902d0cfc0cc8f480274e18b2d109':
  * GetValidNetInterfaces: don't skip PointToPoint interfaces
  • Loading branch information
szolin committed Apr 7, 2020
2 parents 105e2dd + 2b19191 commit 59b3a5b
Showing 1 changed file with 6 additions and 10 deletions.
16 changes: 6 additions & 10 deletions util/network_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,19 +36,14 @@ func GetValidNetInterfaces() ([]net.Interface, error) {
netIfaces := []net.Interface{}

for i := range ifaces {
if ifaces[i].Flags&net.FlagPointToPoint != 0 {
// this interface is ppp, we're not interested in this one
continue
}

iface := ifaces[i]
netIfaces = append(netIfaces, iface)
}

return netIfaces, nil
}

// getValidNetInterfacesMap returns interfaces that are eligible for DNS and WEB only
// GetValidNetInterfacesForWeb returns interfaces that are eligible for DNS and WEB only
// we do not return link-local addresses here
func GetValidNetInterfacesForWeb() ([]NetInterface, error) {
ifaces, err := GetValidNetInterfaces()
Expand Down Expand Up @@ -101,7 +96,7 @@ func GetValidNetInterfacesForWeb() ([]NetInterface, error) {
return netInterfaces, nil
}

// Get interface name by its IP address.
// GetInterfaceByIP - Get interface name by its IP address.
func GetInterfaceByIP(ip string) string {
ifaces, err := GetValidNetInterfacesForWeb()
if err != nil {
Expand All @@ -119,7 +114,7 @@ func GetInterfaceByIP(ip string) string {
return ""
}

// Get IP address with netmask for the specified interface
// GetSubnet - Get IP address with netmask for the specified interface
// Returns an empty string if it fails to find it
func GetSubnet(ifaceName string) string {
netIfaces, err := GetValidNetInterfacesForWeb()
Expand All @@ -137,7 +132,7 @@ func GetSubnet(ifaceName string) string {
return ""
}

// checkPortAvailable is not a cheap test to see if the port is bindable, because it's actually doing the bind momentarily
// CheckPortAvailable - check if TCP port is available
func CheckPortAvailable(host string, port int) error {
ln, err := net.Listen("tcp", net.JoinHostPort(host, strconv.Itoa(port)))
if err != nil {
Expand All @@ -151,6 +146,7 @@ func CheckPortAvailable(host string, port int) error {
return nil
}

// CheckPacketPortAvailable - check if UDP port is available
func CheckPacketPortAvailable(host string, port int) error {
ln, err := net.ListenPacket("udp", net.JoinHostPort(host, strconv.Itoa(port)))
if err != nil {
Expand All @@ -164,7 +160,7 @@ func CheckPacketPortAvailable(host string, port int) error {
return err
}

// check if error is "address already in use"
// ErrorIsAddrInUse - check if error is "address already in use"
func ErrorIsAddrInUse(err error) bool {
errOpError, ok := err.(*net.OpError)
if !ok {
Expand Down

0 comments on commit 59b3a5b

Please sign in to comment.