mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-25 11:05:45 +00:00
portlist: exclude services bound to IPv6 loopback address
Fixes #1683 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
parent
87eb8384f5
commit
f325aa7e38
@ -42,7 +42,10 @@ func parsePort(s string) int {
|
||||
}
|
||||
|
||||
func isLoopbackAddr(s string) bool {
|
||||
return strings.HasPrefix(s, "127.0.0.1:") || strings.HasPrefix(s, "127.0.0.1.")
|
||||
return strings.HasPrefix(s, "127.0.0.1:") ||
|
||||
strings.HasPrefix(s, "127.0.0.1.") ||
|
||||
strings.HasPrefix(s, "[::1]:") ||
|
||||
strings.HasPrefix(s, "::1.")
|
||||
}
|
||||
|
||||
type nothing struct{}
|
||||
|
@ -5,6 +5,7 @@
|
||||
package portlist
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"testing"
|
||||
)
|
||||
|
||||
@ -40,7 +41,11 @@ type InOut struct {
|
||||
|
||||
// macOS
|
||||
tcp4 0 0 *.23 *.* LISTEN
|
||||
tcp6 0 0 *.24 *.* LISTEN
|
||||
tcp6 0 0 *.24 *.* LISTEN
|
||||
tcp4 0 0 *.8185 *.* LISTEN
|
||||
tcp4 0 0 127.0.0.1.8186 *.* LISTEN
|
||||
tcp6 0 0 ::1.8187 *.* LISTEN
|
||||
|
||||
udp6 0 0 *.5453 *.*
|
||||
udp4 0 0 *.5553 *.*
|
||||
|
||||
@ -73,14 +78,21 @@ func TestParsePortsNetstat(t *testing.T) {
|
||||
Port{"udp", 5354, "", ""},
|
||||
Port{"udp", 5453, "", ""},
|
||||
Port{"udp", 5553, "", ""},
|
||||
Port{"tcp", 8185, "", ""}, // but not 8186 or 8187 on localhost
|
||||
Port{"udp", 9353, "iTunes", ""},
|
||||
}
|
||||
|
||||
pl := parsePortsNetstat(netstatOutput)
|
||||
jgot, _ := json.MarshalIndent(pl, "", "\t")
|
||||
jwant, _ := json.MarshalIndent(want, "", "\t")
|
||||
if len(pl) != len(want) {
|
||||
t.Fatalf("Got:\n%s\n\nWant:\n%s\n", jgot, jwant)
|
||||
}
|
||||
for i := range pl {
|
||||
if pl[i] != want[i] {
|
||||
t.Errorf("row#%d\n got: %#v\n\nwant: %#v\n",
|
||||
i, pl[i], want[i])
|
||||
t.Fatalf("Got:\n%s\n\nWant:\n%s\n", jgot, jwant)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user