MCPcopy Create free account
hub / github.com/DNAProject/DNA / TestAddrReqHandle_maskok

Function TestAddrReqHandle_maskok

p2pserver/message/utils/msg_handler_test.go:293–348  ·  view source on GitHub ↗

create two neighbors, one masked, one un-masked send addr-req from un-mask peer, get itself in addr-rsp

(t *testing.T)

Source from the content-addressed store, hash-verified

291// send addr-req from un-mask peer, get itself in addr-rsp
292//
293func TestAddrReqHandle_maskok(t *testing.T) {
294 network = NewMockP2p()
295
296 // Simulate a remote peer to be added to the neighbor peers
297 testID := uint64(123456)
298 remotePeer := peer.NewPeer()
299 remotePeer.UpdateInfo(time.Now(), 1, 12345678, 20336,
300 testID, 0, 12345, "1.5.2")
301 remotePeer.Link.SetAddr("1.2.3.4:5001")
302 remotePeer.Link.SetPort(5001)
303 network.AddNbrNode(remotePeer)
304 remotePeer.SetState(msgCommon.ESTABLISH)
305
306 testID2 := uint64(1234567)
307 remotePeer2 := peer.NewPeer()
308 remotePeer2.UpdateInfo(time.Now(), 1, 12345678, 20336,
309 testID2, 0, 12345, "1.5.2")
310 remotePeer2.Link.SetAddr("1.2.3.5:5002")
311 remotePeer2.Link.SetPort(5002)
312 network.AddNbrNode(remotePeer2)
313 remotePeer2.SetState(msgCommon.ESTABLISH)
314
315 // Construct an address request packet
316 buf := msgpack.NewAddrReq()
317
318 msg := &types.MsgPayload{
319 Id: testID2,
320 Addr: "test",
321 Payload: buf,
322 }
323
324 config.DefConfig.P2PNode.ReservedPeersOnly = true
325 config.DefConfig.P2PNode.ReservedCfg.MaskPeers = []string{"1.2.3.4"}
326
327 // Invoke AddrReqHandle to handle the msg
328 AddrReqHandle(msg, network, nil)
329
330 // verify 1.2.3.4 is masked
331 for _, msg := range network.SentMsgs {
332 addrMsg, ok := msg.(*types.Addr)
333 if !ok {
334 t.Fatalf("invalid addr msg %s", msg.CmdType())
335 }
336 if len(addrMsg.NodeAddrs) != 1 {
337 t.Fatalf("invalid addr count: %v", addrMsg.NodeAddrs)
338 }
339 var ip net.IP
340 ip = addrMsg.NodeAddrs[0].IpAddr[:]
341 addr := fmt.Sprintf("%v:%d", ip, addrMsg.NodeAddrs[0].Port)
342 if addr != remotePeer2.Link.GetAddr() {
343 t.Fatalf("invalid addr: %s vs %s", addr, remotePeer2.Link.GetAddr())
344 }
345 }
346
347 network.DelNbrNode(testID)
348}
349
350//

Callers

nothing calls this directly

Calls 12

UpdateInfoMethod · 0.95
SetStateMethod · 0.95
NewPeerFunction · 0.92
NewMockP2pFunction · 0.85
AddrReqHandleFunction · 0.85
SetAddrMethod · 0.80
FatalfMethod · 0.80
AddNbrNodeMethod · 0.65
CmdTypeMethod · 0.65
DelNbrNodeMethod · 0.65
SetPortMethod · 0.45
GetAddrMethod · 0.45

Tested by

no test coverage detected