create one masked neighbor send addr-req, get itself in addr-rsp
(t *testing.T)
| 352 | // send addr-req, get itself in addr-rsp |
| 353 | // |
| 354 | func 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 |
| 410 | func TestHeadersReqHandle(t *testing.T) { |
nothing calls this directly
no test coverage detected