• David Fifield's avatar
    Wait for data channel OnOpen before returning from NewWebRTCPeer. · 047d3214
    David Fifield authored
    Now callers cannot call Write without there being a DataChannel to write
    to. This lets us remove the internal buffer and checks for transport ==
    nil.
    
    Don't set internal fields like writePipe, transport, and pc to nil when
    closing; just close them and let them return errors if further calls are
    made on them.
    
    There's now a constant DataChannelTimeout that's separate from
    SnowflakeTimeout (the latter is what checkForStaleness uses). Now we can
    set DataChannel timeout to a lower value, to quickly dispose of
    unconnectable proxies, while still keeping the threshold for detecting
    the failure of a once-working proxy at 30 seconds.
    
    https://bugs.torproject.org/33897
    047d3214
snowflake.go 5.22 KB