From 13264cc303c71962fb684f7d51f27f751e619670 Mon Sep 17 00:00:00 2001 From: Marcin Sobczak Date: Mon, 31 Oct 2022 17:20:45 +0100 Subject: [PATCH 1/5] ignore FindNode in BondThenPingWithWrongFrom --- cmd/devp2p/internal/v4test/discv4tests.go | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/cmd/devp2p/internal/v4test/discv4tests.go b/cmd/devp2p/internal/v4test/discv4tests.go index cf727dcf8713..af397609720e 100644 --- a/cmd/devp2p/internal/v4test/discv4tests.go +++ b/cmd/devp2p/internal/v4test/discv4tests.go @@ -265,10 +265,23 @@ func BondThenPingWithWrongFrom(t *utesting.T) { To: te.remoteEndpoint(), Expiration: futureExpiration(), }) - if reply, _, err := te.read(te.l1); err != nil { - t.Fatal(err) - } else if err := te.checkPong(reply, pingHash); err != nil { - t.Fatal(err) + for { + reply, _, err := te.read(te.l1) + if err != nil { + t.Fatal(err) + } + switch reply.Kind() { + case v4wire.PongPacket: + if err := te.checkPong(reply, pingHash); err != nil { + t.Fatal(err) + } + // PONG response, all good + break + case v4wire.FindnodePacket: + continue // A FindNode is ok, just ignore it + default: + t.Fatalf("Expected PONG, got %v %v", reply.Name(), reply) + } } } From 3a6779db04c6049f41e3976166abc3f97a7fd19c Mon Sep 17 00:00:00 2001 From: Marcin Sobczak Date: Tue, 1 Nov 2022 12:29:06 +0100 Subject: [PATCH 2/5] add log --- cmd/devp2p/internal/v4test/discv4tests.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/devp2p/internal/v4test/discv4tests.go b/cmd/devp2p/internal/v4test/discv4tests.go index af397609720e..c6405fea23dc 100644 --- a/cmd/devp2p/internal/v4test/discv4tests.go +++ b/cmd/devp2p/internal/v4test/discv4tests.go @@ -278,6 +278,7 @@ func BondThenPingWithWrongFrom(t *utesting.T) { // PONG response, all good break case v4wire.FindnodePacket: + t.Log("Received FindNode, ignored, still waiting for PONG") continue // A FindNode is ok, just ignore it default: t.Fatalf("Expected PONG, got %v %v", reply.Name(), reply) From 52463f7c10db8edfb5b34c3750cf047a59a4d6ef Mon Sep 17 00:00:00 2001 From: Marcin Sobczak Date: Tue, 1 Nov 2022 14:21:50 +0100 Subject: [PATCH 3/5] add break --- cmd/devp2p/internal/v4test/discv4tests.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/devp2p/internal/v4test/discv4tests.go b/cmd/devp2p/internal/v4test/discv4tests.go index c6405fea23dc..23a99bcdfc53 100644 --- a/cmd/devp2p/internal/v4test/discv4tests.go +++ b/cmd/devp2p/internal/v4test/discv4tests.go @@ -283,6 +283,7 @@ func BondThenPingWithWrongFrom(t *utesting.T) { default: t.Fatalf("Expected PONG, got %v %v", reply.Name(), reply) } + break } } From c1c733672e989ef0b12281e72b8402d1e17013ff Mon Sep 17 00:00:00 2001 From: Marcin Sobczak Date: Tue, 1 Nov 2022 14:26:54 +0100 Subject: [PATCH 4/5] Revert "add log" This reverts commit 3a6779db04c6049f41e3976166abc3f97a7fd19c. --- cmd/devp2p/internal/v4test/discv4tests.go | 1 - 1 file changed, 1 deletion(-) diff --git a/cmd/devp2p/internal/v4test/discv4tests.go b/cmd/devp2p/internal/v4test/discv4tests.go index 23a99bcdfc53..dbd84a3c70f8 100644 --- a/cmd/devp2p/internal/v4test/discv4tests.go +++ b/cmd/devp2p/internal/v4test/discv4tests.go @@ -278,7 +278,6 @@ func BondThenPingWithWrongFrom(t *utesting.T) { // PONG response, all good break case v4wire.FindnodePacket: - t.Log("Received FindNode, ignored, still waiting for PONG") continue // A FindNode is ok, just ignore it default: t.Fatalf("Expected PONG, got %v %v", reply.Name(), reply) From 2dddeaf6119bdcd7ab900f6ad80f84960bdf88b6 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Mon, 7 Nov 2022 22:44:41 +0100 Subject: [PATCH 5/5] cmd/devp2p/internal/v4test: improve loop --- cmd/devp2p/internal/v4test/discv4tests.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/cmd/devp2p/internal/v4test/discv4tests.go b/cmd/devp2p/internal/v4test/discv4tests.go index dbd84a3c70f8..7b818a52f9c5 100644 --- a/cmd/devp2p/internal/v4test/discv4tests.go +++ b/cmd/devp2p/internal/v4test/discv4tests.go @@ -256,6 +256,7 @@ func WrongPacketType(t *utesting.T) { func BondThenPingWithWrongFrom(t *utesting.T) { te := newTestEnv(Remote, Listen1, Listen2) defer te.close() + bond(t, te) wrongEndpoint := v4wire.Endpoint{IP: net.ParseIP("192.0.2.0")} @@ -265,6 +266,8 @@ func BondThenPingWithWrongFrom(t *utesting.T) { To: te.remoteEndpoint(), Expiration: futureExpiration(), }) + +waitForPong: for { reply, _, err := te.read(te.l1) if err != nil { @@ -275,14 +278,13 @@ func BondThenPingWithWrongFrom(t *utesting.T) { if err := te.checkPong(reply, pingHash); err != nil { t.Fatal(err) } - // PONG response, all good - break + break waitForPong case v4wire.FindnodePacket: - continue // A FindNode is ok, just ignore it + // FINDNODE from the node is acceptable here since the endpoint + // verification was performed earlier. default: t.Fatalf("Expected PONG, got %v %v", reply.Name(), reply) } - break } }