mirror of
https://github.com/schollz/croc.git
synced 2025-10-11 13:21:00 +02:00
seems to work
This commit is contained in:
parent
83f44ca554
commit
82489c81e8
1 changed files with 25 additions and 1 deletions
|
@ -371,7 +371,32 @@ func (c *Client) Receive() (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
log.Debugf("ips data: %s", data)
|
log.Debugf("ips data: %s", data)
|
||||||
|
var ips []string
|
||||||
|
json.Unmarshal(data, &ips)
|
||||||
|
if len(ips) > 1 {
|
||||||
|
port := ips[0]
|
||||||
|
ips = ips[1:]
|
||||||
|
for _, ip := range ips {
|
||||||
|
serverTry := fmt.Sprintf("%s:%s", ip, port)
|
||||||
|
conn, banner2, externalIP, errConn := tcp.ConnectToTCPServer(serverTry, c.Options.SharedSecret)
|
||||||
|
if errConn != nil {
|
||||||
|
log.Debugf("could not connect to " + serverTry)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
log.Debugf("local connection established to %s", conn, serverTry)
|
||||||
|
log.Debugf("banner: %s", banner2)
|
||||||
|
// reset to the local port
|
||||||
|
banner = banner2
|
||||||
|
c.Options.RelayAddress = serverTry
|
||||||
|
c.ExternalIP = externalIP
|
||||||
|
c.conn[0].Close()
|
||||||
|
c.conn[0] = nil
|
||||||
|
c.conn[0] = conn
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
c.conn[0].Send([]byte("handshake"))
|
c.conn[0].Send([]byte("handshake"))
|
||||||
c.Options.RelayPorts = strings.Split(banner, ",")
|
c.Options.RelayPorts = strings.Split(banner, ",")
|
||||||
log.Debug("exchanged header message")
|
log.Debug("exchanged header message")
|
||||||
|
@ -731,7 +756,6 @@ func (c *Client) updateState() (err error) {
|
||||||
Bytes: bRequest,
|
Bytes: bRequest,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error(err)
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
c.Step3RecipientRequestFile = true
|
c.Step3RecipientRequestFile = true
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue