@@ -19,7 +19,7 @@ type CommunicationTestSuite struct{}
1919var _ = Suite (& CommunicationTestSuite {})
2020
2121func (CommunicationTestSuite ) TestBasicCommunication (c * C ) {
22- comm , err := NewCommunication (nil , 6668 , "" , []peer.ID {}, logger ("TestBasicCommunication" ))
22+ comm , err := NewCommunication (nil , 6668 , "" , "" , []peer.ID {}, logger ("TestBasicCommunication" ))
2323 c .Assert (err , IsNil )
2424 c .Assert (comm , NotNil )
2525 comm .SetSubscribe (messages .TSSKeyGenMsg , "hello" , make (chan * Message ))
@@ -63,13 +63,13 @@ func (CommunicationTestSuite) TestEstablishP2pCommunication(c *C) {
6363 c .Assert (err , IsNil )
6464 privKey , err := base64 .StdEncoding .DecodeString (bootstrapPrivKey )
6565 c .Assert (err , IsNil )
66- comm , err := NewCommunication (nil , 2220 , fakeExternalIP , whitelistedPeers , log )
66+ comm , err := NewCommunication (nil , 2220 , fakeExternalIP , "" , whitelistedPeers , log )
6767 c .Assert (err , IsNil )
6868 c .Assert (comm .Start (privKey ), IsNil )
6969
7070 defer comm .Stop ()
7171 c .Assert (err , IsNil )
72- comm2 , err := NewCommunication ([]maddr.Multiaddr {validMultiAddr }, 2221 , "" , whitelistedPeers , log )
72+ comm2 , err := NewCommunication ([]maddr.Multiaddr {validMultiAddr }, 2221 , "" , "" , whitelistedPeers , log )
7373 c .Assert (err , IsNil )
7474 err = comm2 .Start (sk1raw )
7575 c .Assert (err , IsNil )
@@ -79,7 +79,7 @@ func (CommunicationTestSuite) TestEstablishP2pCommunication(c *C) {
7979 invalidAddr := "/ip4/127.0.0.1/tcp/2220/p2p/" + id2 .String ()
8080 invalidMultiAddr , err := maddr .NewMultiaddr (invalidAddr )
8181 c .Assert (err , IsNil )
82- comm3 , err := NewCommunication ([]maddr.Multiaddr {invalidMultiAddr }, 2222 , "" , whitelistedPeers , log )
82+ comm3 , err := NewCommunication ([]maddr.Multiaddr {invalidMultiAddr }, 2222 , "" , "" , whitelistedPeers , log )
8383 c .Assert (err , IsNil )
8484 err = comm3 .Start (sk1raw )
8585 c .Assert (err , ErrorMatches , "fail to connect to bootstrap peer: fail to connect to any peer" )
@@ -90,6 +90,7 @@ func (CommunicationTestSuite) TestEstablishP2pCommunication(c *C) {
9090 []maddr.Multiaddr {invalidMultiAddr , validMultiAddr },
9191 2223 ,
9292 "" ,
93+ "" ,
9394 whitelistedPeers ,
9495 log ,
9596 )
@@ -110,6 +111,7 @@ func (CommunicationTestSuite) TestEstablishP2pCommunication(c *C) {
110111 []maddr.Multiaddr {invalidMultiAddr , validMultiAddr },
111112 2224 ,
112113 "" ,
114+ "" ,
113115 []peer.ID {},
114116 log ,
115117 )
@@ -119,6 +121,44 @@ func (CommunicationTestSuite) TestEstablishP2pCommunication(c *C) {
119121 defer comm5 .Stop ()
120122}
121123
124+ func (CommunicationTestSuite ) TestEstablishP2pCommunication_ExternalDNS (c * C ) {
125+ log := logger ("TestEstablishP2pCommunication_ExternalDNS" )
126+
127+ bootstrapPeerID , err := peer .Decode ("16Uiu2HAm4TmEzUqy3q3Dv7HvdoSboHk5sFj2FH3npiN5vDbJC6gh" )
128+ c .Assert (err , IsNil )
129+ sk1 , _ , err := crypto .GenerateSecp256k1Key (rand .Reader )
130+ c .Assert (err , IsNil )
131+ sk1raw , _ := sk1 .Raw ()
132+ id1 , err := peer .IDFromPrivateKey (sk1 )
133+ c .Assert (err , IsNil )
134+
135+ bootstrapPeer := fmt .Sprintf ("/ip4/127.0.0.1/tcp/2220/p2p/%s" , bootstrapPeerID .String ())
136+ whitelistedPeers := []peer.ID {bootstrapPeerID , id1 }
137+ bootstrapPrivKey := "6LABmWB4iXqkqOJ9H0YFEA2CSSx6bA7XAKGyI/TDtas="
138+ fakeExternalDNS := "p2ptest.com"
139+ fakeExternalDNSMultiAddr := "/dns4/p2ptest.com/tcp/2220"
140+ bootstrapMultiAddr , err := maddr .NewMultiaddr (bootstrapPeer )
141+ c .Assert (err , IsNil )
142+ privKey , err := base64 .StdEncoding .DecodeString (bootstrapPrivKey )
143+ c .Assert (err , IsNil )
144+
145+ comm , err := NewCommunication (nil , 2220 , "" , fakeExternalDNS , whitelistedPeers , log )
146+ c .Assert (err , IsNil )
147+ c .Assert (comm .Start (privKey ), IsNil )
148+ defer comm .Stop ()
149+
150+ comm2 , err := NewCommunication ([]maddr.Multiaddr {bootstrapMultiAddr }, 2221 , "" , "" , whitelistedPeers , log )
151+ c .Assert (err , IsNil )
152+ err = comm2 .Start (sk1raw )
153+ c .Assert (err , IsNil )
154+ defer comm2 .Stop ()
155+
156+ // check for external dns advertising
157+ c .Assert (checkExist (comm .host .Addrs (), fakeExternalDNSMultiAddr ), Equals , true )
158+ ps := comm2 .host .Peerstore ()
159+ c .Assert (checkExist (ps .Addrs (comm .host .ID ()), fakeExternalDNSMultiAddr ), Equals , true )
160+ }
161+
122162func logger (name string ) zerolog.Logger {
123163 cw := zerolog .NewConsoleWriter ()
124164
0 commit comments