mirror of
https://github.com/octoleo/syncthing.git
synced 2025-02-02 11:58:28 +00:00
Fix broadcast addrs for nets smaller than /8
This commit is contained in:
parent
e8b9600ddb
commit
73f5c47fe2
@ -124,7 +124,7 @@ func bcast(ip *net.IPNet) *net.IPNet {
|
||||
|
||||
offset := len(bc.IP) - len(bc.Mask)
|
||||
for i := range bc.IP {
|
||||
if i-offset > 0 {
|
||||
if i-offset >= 0 {
|
||||
bc.IP[i] = ip.IP[i] | ^ip.Mask[i-offset]
|
||||
}
|
||||
}
|
||||
|
30
beacon/beacon_test.go
Normal file
30
beacon/beacon_test.go
Normal file
@ -0,0 +1,30 @@
|
||||
package beacon
|
||||
|
||||
import (
|
||||
"net"
|
||||
"testing"
|
||||
)
|
||||
|
||||
var addrToBcast = []struct {
|
||||
addr, bcast string
|
||||
}{
|
||||
{"172.16.32.33/25", "172.16.32.127/25"},
|
||||
{"172.16.32.129/25", "172.16.32.255/25"},
|
||||
{"172.16.32.33/24", "172.16.32.255/24"},
|
||||
{"172.16.32.33/22", "172.16.35.255/22"},
|
||||
{"172.16.32.33/0", "255.255.255.255/0"},
|
||||
{"172.16.32.33/32", "172.16.32.33/32"},
|
||||
}
|
||||
|
||||
func TestBroadcastAddr(t *testing.T) {
|
||||
for _, tc := range addrToBcast {
|
||||
_, net, err := net.ParseCIDR(tc.addr)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
bc := bcast(net).String()
|
||||
if bc != tc.bcast {
|
||||
t.Errorf("%q != %q", bc, tc.bcast)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user