aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Evangelatov <anton.evangelatov@gmail.com>2019-03-02 15:45:07 +0800
committerViktor TrĂ³n <viktor.tron@gmail.com>2019-03-02 15:45:07 +0800
commitf9aa1cd21f776a4d3267d9c89772bdc622468d6d (patch)
tree1eabc2c2b36c523b636718b79bf47c2a350b55f8
parentb797dd07d2f2cf0868d4fe79e120d5cf0b8fdc0b (diff)
downloadgo-tangerine-f9aa1cd21f776a4d3267d9c89772bdc622468d6d.tar
go-tangerine-f9aa1cd21f776a4d3267d9c89772bdc622468d6d.tar.gz
go-tangerine-f9aa1cd21f776a4d3267d9c89772bdc622468d6d.tar.bz2
go-tangerine-f9aa1cd21f776a4d3267d9c89772bdc622468d6d.tar.lz
go-tangerine-f9aa1cd21f776a4d3267d9c89772bdc622468d6d.tar.xz
go-tangerine-f9aa1cd21f776a4d3267d9c89772bdc622468d6d.tar.zst
go-tangerine-f9aa1cd21f776a4d3267d9c89772bdc622468d6d.zip
Revert "swarm/network: Use actual remote peer ip in underlay (#19137)" (#19193)
This reverts commit 460d206f309fc0884c666bd191a1b6a4b63462fc.
-rw-r--r--swarm/network/protocol.go21
-rw-r--r--swarm/network/protocol_test.go26
2 files changed, 1 insertions, 46 deletions
diff --git a/swarm/network/protocol.go b/swarm/network/protocol.go
index ba2a7e5fa..6f8eadad2 100644
--- a/swarm/network/protocol.go
+++ b/swarm/network/protocol.go
@@ -21,7 +21,6 @@ import (
"errors"
"fmt"
"net"
- "regexp"
"sync"
"time"
@@ -40,8 +39,6 @@ const (
bzzHandshakeTimeout = 3000 * time.Millisecond
)
-var regexpEnodeIP = regexp.MustCompile("@(.+):([0-9]+)")
-
// BzzSpec is the spec of the generic swarm handshake
var BzzSpec = &protocols.Spec{
Name: "bzz",
@@ -217,26 +214,10 @@ func (b *Bzz) performHandshake(p *protocols.Peer, handshake *HandshakeMsg) error
return err
}
handshake.peerAddr = rsh.(*HandshakeMsg).Addr
- sanitizeEnodeRemote(p.RemoteAddr(), handshake.peerAddr)
handshake.LightNode = rsh.(*HandshakeMsg).LightNode
return nil
}
-// the remote enode string may advertise arbitrary host information (e.g. localhost)
-// this method ensures that the addr of the peer will be the one
-// applicable on the interface the connection came in on
-// it modifies the passed bzzaddr in place, and returns the same pointer
-func sanitizeEnodeRemote(paddr net.Addr, baddr *BzzAddr) {
- hsSubmatch := regexpEnodeIP.FindSubmatch(baddr.UAddr)
- ip, _, err := net.SplitHostPort(paddr.String())
- // since we expect nothing else than ipv4 here, a panic on missing submatch is desired
- if err == nil && string(hsSubmatch[1]) != ip {
- remoteStr := fmt.Sprintf("@%s:%s", ip, string(hsSubmatch[2]))
- log.Debug("rewrote peer uaddr host/port", "addr", baddr)
- baddr.UAddr = regexpEnodeIP.ReplaceAll(baddr.UAddr, []byte(remoteStr))
- }
-}
-
// runBzz is the p2p protocol run function for the bzz base protocol
// that negotiates the bzz handshake
func (b *Bzz) runBzz(p *p2p.Peer, rw p2p.MsgReadWriter) error {
@@ -343,7 +324,7 @@ func (b *Bzz) GetOrCreateHandshake(peerID enode.ID) (*HandshakeMsg, bool) {
init: make(chan bool, 1),
done: make(chan struct{}),
}
- // when handshake is first created for a remote peer
+ // when handhsake is first created for a remote peer
// it is initialised with the init
handshake.init <- true
b.handshakes[peerID] = handshake
diff --git a/swarm/network/protocol_test.go b/swarm/network/protocol_test.go
index 97cb4b97b..64ce7ba4a 100644
--- a/swarm/network/protocol_test.go
+++ b/swarm/network/protocol_test.go
@@ -17,15 +17,12 @@
package network
import (
- "bytes"
"flag"
"fmt"
- "net"
"os"
"testing"
"time"
- "github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/p2p"
"github.com/ethereum/go-ethereum/p2p/enode"
@@ -254,26 +251,3 @@ func TestBzzHandshakeLightNode(t *testing.T) {
})
}
}
-
-// Tests the overwriting of localhost enode in handshake if actual remote ip is known
-// (swarm.network/protocol.go:sanitizeEnodeRemote)
-func TestSanitizeEnodeRemote(t *testing.T) {
- pk, err := crypto.GenerateKey()
- if err != nil {
- t.Fatal(err)
- }
- remoteIP := net.IPv4(0x80, 0x40, 0x20, 0x10)
- remoteAddr := net.TCPAddr{
- IP: remoteIP,
- Port: 30399,
- }
- nodLocal := enode.NewV4(&pk.PublicKey, net.IPv4(0x7f, 0x00, 0x00, 0x01), 30341, 30341)
- nodRemote := enode.NewV4(&pk.PublicKey, remoteIP, 30341, 30341)
- baddr := RandomAddr()
- oldUAddr := []byte(nodLocal.String())
- baddr.UAddr = oldUAddr
- sanitizeEnodeRemote(&remoteAddr, baddr)
- if !bytes.Equal(baddr.UAddr, []byte(nodRemote.String())) {
- t.Fatalf("insane address. expected %v, got %v", nodRemote.String(), string(baddr.UAddr))
- }
-}