Selaa lähdekoodia

fix(connections): announce PtP links again (fixes #9730) (#9731)

Jakob Borg 1 vuosi sitten
vanhempi
sitoutus
a8e2c8edb6
3 muutettua tiedostoa jossa 6 lisäystä ja 4 poistoa
  1. 1 1
      lib/connections/service.go
  2. 1 1
      lib/connections/util.go
  3. 4 2
      lib/osutil/net.go

+ 1 - 1
lib/connections/service.go

@@ -799,7 +799,7 @@ func (s *lanChecker) isLAN(addr net.Addr) bool {
 		}
 	}
 
-	lans, err := osutil.GetLans()
+	lans, err := osutil.GetInterfaceAddrs(false)
 	if err != nil {
 		l.Debugln("Failed to retrieve interface IPs:", err)
 		priv := ip.IsPrivate()

+ 1 - 1
lib/connections/util.go

@@ -60,7 +60,7 @@ func getURLsForAllAdaptersIfUnspecified(network string, uri *url.URL) []*url.URL
 }
 
 func getHostPortsForAllAdapters(port int) []string {
-	nets, err := osutil.GetLans()
+	nets, err := osutil.GetInterfaceAddrs(true)
 	if err != nil {
 		// Ignore failure.
 		return nil

+ 4 - 2
lib/osutil/net.go

@@ -10,7 +10,9 @@ import (
 	"net"
 )
 
-func GetLans() ([]*net.IPNet, error) {
+// GetInterfaceAddrs returns the IP networks of all interfaces that are up.
+// Point-to-point interfaces are exluded unless includePtP is true.
+func GetInterfaceAddrs(includePtP bool) ([]*net.IPNet, error) {
 	intfs, err := net.Interfaces()
 	if err != nil {
 		return nil, err
@@ -21,7 +23,7 @@ func GetLans() ([]*net.IPNet, error) {
 		if intf.Flags&net.FlagRunning == 0 {
 			continue
 		}
-		if intf.Flags&net.FlagPointToPoint != 0 {
+		if !includePtP && intf.Flags&net.FlagPointToPoint != 0 {
 			// Point-to-point interfaces are typically VPNs and similar
 			// which, for our purposes, do not qualify as LANs.
 			continue