From 6acec35f355646eeb98303038304715209505b47 Mon Sep 17 00:00:00 2001 From: capossele <angelocapossele@gmail.com> Date: Tue, 17 Dec 2019 20:28:24 +0000 Subject: [PATCH] :art: adds pubIP to the transport --- packages/gossip/transport/handshake.go | 2 +- packages/gossip/transport/transport.go | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/gossip/transport/handshake.go b/packages/gossip/transport/handshake.go index e5e928c4..2be73aab 100644 --- a/packages/gossip/transport/handshake.go +++ b/packages/gossip/transport/handshake.go @@ -56,7 +56,7 @@ func (t *TCP) validateHandshakeRequest(reqData []byte, fromAddr string) bool { ) return false } - if m.GetTo() != t.LocalAddr().String() { + if m.GetTo() != t.pubIP { t.log.Debugw("invalid handshake", "to", m.GetTo(), ) diff --git a/packages/gossip/transport/transport.go b/packages/gossip/transport/transport.go index a948dd23..83fd6edd 100644 --- a/packages/gossip/transport/transport.go +++ b/packages/gossip/transport/transport.go @@ -41,6 +41,7 @@ const ( // TCP establishes verified incoming and outgoing TCP connections to other peers. type TCP struct { local *peer.Local + pubIP string listener *net.TCPListener log *zap.SugaredLogger @@ -85,6 +86,8 @@ func Listen(local *peer.Local, log *zap.SugaredLogger) (*TCP, error) { return nil, ErrNoGossip } + t.pubIP = gossipAddr.String() + host, port, _ := net.SplitHostPort(gossipAddr.String()) if host != "127.0.0.1" { host = "0.0.0.0" @@ -300,7 +303,10 @@ func (t *TCP) listenLoop() { } func (t *TCP) doHandshake(key peer.PublicKey, remoteAddr string, conn net.Conn) error { - reqData, err := newHandshakeRequest(conn.LocalAddr().String(), remoteAddr) + _, connPort, _ := net.SplitHostPort(conn.LocalAddr().String()) + from, _, _ := net.SplitHostPort(t.pubIP) + + reqData, err := newHandshakeRequest(from+":"+connPort, remoteAddr) if err != nil { return err } -- GitLab