diff --git a/brontide/conn.go b/brontide/conn.go index a61632e3..1aa1b3a2 100644 --- a/brontide/conn.go +++ b/brontide/conn.go @@ -6,6 +6,7 @@ import ( "net" "time" + "github.com/lightningnetwork/lnd/lnwire" "github.com/roasbeef/btcd/btcec" ) @@ -30,17 +31,16 @@ var _ net.Conn = (*Conn)(nil) // remote peer located at address which has remotePub as its long-term static // public key. In the case of a handshake failure, the connection is closed and // a non-nil error is returned. -func Dial(localPriv *btcec.PrivateKey, remotePub *btcec.PublicKey, - address string) (*Conn, error) { - - conn, err := net.Dial("tcp", address) +func Dial(localPriv *btcec.PrivateKey, netAddr *lnwire.NetAddress) (*Conn, error) { + ipAddr := netAddr.Address.String() + conn, err := net.Dial("tcp", ipAddr) if err != nil { return nil, err } b := &Conn{ conn: conn, - noise: NewBrontideMachine(true, localPriv, remotePub), + noise: NewBrontideMachine(true, localPriv, netAddr.IdentityKey), } // Initiate the handshake by sending the first act to the receiver. diff --git a/brontide/noise_test.go b/brontide/noise_test.go index d228955b..ad1507ba 100644 --- a/brontide/noise_test.go +++ b/brontide/noise_test.go @@ -5,6 +5,7 @@ import ( "net" "testing" + "github.com/lightningnetwork/lnd/lnwire" "github.com/roasbeef/btcd/btcec" ) @@ -31,14 +32,17 @@ func TestConnectionCorrectness(t *testing.T) { } defer listener.Close() - listenAddr := listener.Addr().String() + netAddr := &lnwire.NetAddress{ + IdentityKey: localPriv.PubKey(), + Address: listener.Addr().(*net.TCPAddr), + } // Initiate a connection with a separate goroutine, and listen with our // main one. If both errors are nil, then encryption+auth was succesful. errChan := make(chan error) connChan := make(chan net.Conn) go func() { - conn, err := Dial(remotePriv, localPriv.PubKey(), listenAddr) + conn, err := Dial(remotePriv, netAddr) errChan <- err connChan <- conn }()