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

Function TestAddrReqHandle_unmaskok

p2pserver/message/utils/msg_handler_test.go:354–407  ·  view source on GitHub ↗

create one masked neighbor send addr-req, get itself in addr-rsp

(t *testing.T)

Source from the content-addressed store, hash-verified

352// send addr-req, get itself in addr-rsp
353//
354func TestAddrReqHandle_unmaskok(t *testing.T) {
355 network = NewMockP2p()
356
357 // Simulate a remote peer to be added to the neighbor peers
358 var testID uint64
359 _, testPub, _ := keypair.GenerateKeyPair(keypair.PK_ECDSA, keypair.P256)
360 key := keypair.SerializePublicKey(testPub)
361 err := binary.Read(bytes.NewBuffer(key[:8]), binary.LittleEndian, &(testID))
362 assert.Nil(t, err)
363
364 remotePeer := peer.NewPeer()
365 assert.NotNil(t, remotePeer)
366
367 remotePeer.UpdateInfo(time.Now(), 1, 12345678, 20336,
368 testID, 0, 12345, "1.5.2")
369 remotePeer.Link.SetAddr("1.2.3.4:5001")
370 remotePeer.Link.SetPort(5001)
371
372 network.AddNbrNode(remotePeer)
373 remotePeer.SetState(msgCommon.ESTABLISH)
374
375 // Construct an address request packet
376 buf := msgpack.NewAddrReq()
377
378 msg := &types.MsgPayload{
379 Id: testID,
380 Addr: "test",
381 Payload: buf,
382 }
383
384 config.DefConfig.P2PNode.ReservedPeersOnly = true
385 config.DefConfig.P2PNode.ReservedCfg.MaskPeers = []string{"1.2.3.4"}
386
387 // Invoke AddrReqHandle to handle the msg
388 AddrReqHandle(msg, network, nil)
389
390 for _, msg := range network.SentMsgs {
391 addrMsg, ok := msg.(*types.Addr)
392 if !ok {
393 t.Fatalf("invalid addr msg %s", msg.CmdType())
394 }
395 if len(addrMsg.NodeAddrs) != 1 {
396 t.Fatalf("invalid addr count: %v", addrMsg.NodeAddrs)
397 }
398 var ip net.IP
399 ip = addrMsg.NodeAddrs[0].IpAddr[:]
400 addr := fmt.Sprintf("%v:%d", ip, addrMsg.NodeAddrs[0].Port)
401 if addr != remotePeer.Link.GetAddr() {
402 t.Fatalf("invalid addr: %s vs %s", addr, remotePeer.Link.GetAddr())
403 }
404 }
405
406 network.DelNbrNode(testID)
407}
408
409// TestHeadersReqHandle tests Function HeadersReqHandle handling a header req
410func TestHeadersReqHandle(t *testing.T) {

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