mirror of https://github.com/gorilla/websocket.git
update allow bind local ip to reach network
This commit is contained in:
parent
21ab95fa12
commit
dbc3d9c9e0
19
client.go
19
client.go
|
@ -82,6 +82,9 @@ type Dialer struct {
|
||||||
// If Jar is nil, cookies are not sent in requests and ignored
|
// If Jar is nil, cookies are not sent in requests and ignored
|
||||||
// in responses.
|
// in responses.
|
||||||
Jar http.CookieJar
|
Jar http.CookieJar
|
||||||
|
|
||||||
|
//bind local ip
|
||||||
|
LocalAddr string
|
||||||
}
|
}
|
||||||
|
|
||||||
var errMalformedURL = errors.New("malformed ws or wss URL")
|
var errMalformedURL = errors.New("malformed ws or wss URL")
|
||||||
|
@ -212,7 +215,21 @@ func (d *Dialer) Dial(urlStr string, requestHeader http.Header) (*Conn, *http.Re
|
||||||
// Get network dial function.
|
// Get network dial function.
|
||||||
netDial := d.NetDial
|
netDial := d.NetDial
|
||||||
if netDial == nil {
|
if netDial == nil {
|
||||||
netDialer := &net.Dialer{Deadline: deadline}
|
|
||||||
|
var netDialer *net.Dialer
|
||||||
|
if len(d.LocalAddr) > 0 {
|
||||||
|
localAddr, err := net.ResolveIPAddr("ip", d.LocalAddr)
|
||||||
|
if err != nil {
|
||||||
|
return nil, nil, err
|
||||||
|
}
|
||||||
|
localTCPAddr := net.TCPAddr{
|
||||||
|
IP: localAddr.IP,
|
||||||
|
}
|
||||||
|
netDialer = &net.Dialer{Deadline: deadline, LocalAddr: &localTCPAddr}
|
||||||
|
} else {
|
||||||
|
netDialer = &net.Dialer{Deadline: deadline}
|
||||||
|
}
|
||||||
|
|
||||||
netDial = netDialer.Dial
|
netDial = netDialer.Dial
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue