mirror of
https://github.com/netbirdio/netbird.git
synced 2024-12-15 11:21:04 +01:00
Fix remote address in ws client
This commit is contained in:
parent
0261e15aad
commit
81f2330d49
@ -10,14 +10,16 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Conn struct {
|
type Conn struct {
|
||||||
*websocket.Conn
|
|
||||||
ctx context.Context
|
ctx context.Context
|
||||||
|
*websocket.Conn
|
||||||
|
srvAddr *net.TCPAddr
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewConn(wsConn *websocket.Conn) net.Conn {
|
func NewConn(wsConn *websocket.Conn, srvAddr *net.TCPAddr) net.Conn {
|
||||||
return &Conn{
|
return &Conn{
|
||||||
Conn: wsConn,
|
|
||||||
ctx: context.Background(),
|
ctx: context.Background(),
|
||||||
|
Conn: wsConn,
|
||||||
|
srvAddr: srvAddr,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -40,8 +42,7 @@ func (c *Conn) Write(b []byte) (n int, err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *Conn) RemoteAddr() net.Addr {
|
func (c *Conn) RemoteAddr() net.Addr {
|
||||||
// todo: implement me
|
return c.srvAddr
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Conn) LocalAddr() net.Addr {
|
func (c *Conn) LocalAddr() net.Addr {
|
||||||
|
@ -5,18 +5,31 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"net"
|
"net"
|
||||||
|
|
||||||
|
log "github.com/sirupsen/logrus"
|
||||||
"nhooyr.io/websocket"
|
"nhooyr.io/websocket"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Dial(address string) (net.Conn, error) {
|
func Dial(address string) (net.Conn, error) {
|
||||||
|
|
||||||
addr := fmt.Sprintf("ws://" + address)
|
hostName, _, err := net.SplitHostPort(address)
|
||||||
wsConn, _, err := websocket.Dial(context.Background(), addr, nil)
|
|
||||||
|
addr, err := net.ResolveTCPAddr("tcp", address)
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("failed to resolve address of Relay server: %s", address)
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
url := fmt.Sprintf("ws://%s:%d"+addr.IP.String(), addr.Port)
|
||||||
|
opts := &websocket.DialOptions{
|
||||||
|
Host: hostName,
|
||||||
|
}
|
||||||
|
|
||||||
|
wsConn, _, err := websocket.Dial(context.Background(), url, opts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
conn := NewConn(wsConn)
|
conn := NewConn(wsConn, addr)
|
||||||
|
|
||||||
return conn, nil
|
return conn, nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user