mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-13 20:11:19 -04:00
refactor: separate function for connectToRelay
This should make the code easier to glance over, to understand that relay connection is performed from inside the datachannel handler.
This commit is contained in:
parent
239357509f
commit
c5d680342b
1 changed files with 15 additions and 7 deletions
|
@ -348,10 +348,21 @@ func (sf *SnowflakeProxy) datachannelHandler(conn *webRTCConn, remoteAddr net.Ad
|
||||||
relayURL = sf.RelayURL
|
relayURL = sf.RelayURL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wsConn, err := connectToRelay(relayURL, remoteAddr)
|
||||||
|
if err != nil {
|
||||||
|
log.Print(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer wsConn.Close()
|
||||||
|
|
||||||
|
copyLoop(conn, wsConn, sf.shutdown)
|
||||||
|
log.Printf("datachannelHandler ends")
|
||||||
|
}
|
||||||
|
|
||||||
|
func connectToRelay(relayURL string, remoteAddr net.Addr) (*websocketconn.Conn, error) {
|
||||||
u, err := url.Parse(relayURL)
|
u, err := url.Parse(relayURL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("invalid relay url: %s", err)
|
return nil, fmt.Errorf("invalid relay url: %s", err)
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if remoteAddr != nil {
|
if remoteAddr != nil {
|
||||||
|
@ -366,15 +377,12 @@ func (sf *SnowflakeProxy) datachannelHandler(conn *webRTCConn, remoteAddr net.Ad
|
||||||
|
|
||||||
ws, _, err := websocket.DefaultDialer.Dial(u.String(), nil)
|
ws, _, err := websocket.DefaultDialer.Dial(u.String(), nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("error dialing relay: %s = %s", u.String(), err)
|
return nil, fmt.Errorf("error dialing relay: %s = %s", u.String(), err)
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wsConn := websocketconn.New(ws)
|
wsConn := websocketconn.New(ws)
|
||||||
log.Printf("Connected to relay: %v", relayURL)
|
log.Printf("Connected to relay: %v", relayURL)
|
||||||
defer wsConn.Close()
|
return wsConn, nil
|
||||||
copyLoop(conn, wsConn, sf.shutdown)
|
|
||||||
log.Printf("datachannelHandler ends")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type dataChannelHandlerWithRelayURL struct {
|
type dataChannelHandlerWithRelayURL struct {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue