|
|
@@ -9,6 +9,8 @@ package nat
|
|
|
import (
|
|
|
"net"
|
|
|
"testing"
|
|
|
+
|
|
|
+ "github.com/syncthing/syncthing/lib/protocol"
|
|
|
)
|
|
|
|
|
|
func TestMappingValidGateway(t *testing.T) {
|
|
|
@@ -52,3 +54,16 @@ func TestMappingValidGateway(t *testing.T) {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+func TestMappingClearAddresses(t *testing.T) {
|
|
|
+ natSvc := NewService(protocol.EmptyDeviceID, nil)
|
|
|
+ // Mock a mapped port; avoids the need to actually map a port
|
|
|
+ ip := net.ParseIP("192.168.0.1")
|
|
|
+ m := natSvc.NewMapping(TCP, ip, 1024)
|
|
|
+ m.extAddresses["test"] = Address{
|
|
|
+ IP: ip,
|
|
|
+ Port: 1024,
|
|
|
+ }
|
|
|
+ // Now try and remove the mapped port; prior to #4829 this deadlocked
|
|
|
+ natSvc.RemoveMapping(m)
|
|
|
+}
|