Skip to content
Snippets Groups Projects
  1. Jan 18, 2022
  2. Nov 11, 2021
  3. Oct 07, 2021
  4. Aug 10, 2021
  5. Jul 19, 2021
  6. Jun 24, 2021
  7. Jun 19, 2021
    • Cecylia Bocovich's avatar
      Store net.Addr in clientIDAddrMap · 6634f2be
      Cecylia Bocovich authored
      This fixes a stats collection bug where we were converting client
      addresses between a string and net.Addr using the clientAddr function
      multiple times, resulting in an empty string for all addresses.
      6634f2be
  8. May 12, 2021
  9. Mar 19, 2021
    • Cecylia Bocovich's avatar
      Don't log errors from callng close on OR conns · c0b6e082
      Cecylia Bocovich authored
      Snowflake copies data between the OR connection and the KCP stream,
      meaning that in most cases the copy loops will only terminate once the
      OR connection times out. In this case the OR connection is already
      closed and so calls to CloseRead and CloseWrite will generate errors.
      c0b6e082
    • Cecylia Bocovich's avatar
      Don't log io.ErrClosedPipe in server · 720d2b8e
      Cecylia Bocovich authored
      These errors are triggered in three places when the OR connection times
      out. They don't tell us anything useful and are filling up our logs.
      720d2b8e
  10. Dec 17, 2020
  11. Apr 23, 2020
    • David Fifield's avatar
      USERADDR support for turbotunnel sessions. · 07909540
      David Fifield authored
      The difficulty here is that the whole point of turbotunnel sessions is
      that they are not necessarily tied to a single WebSocket connection, nor
      even a single client IP address. We use a heuristic: whenever a
      WebSocket connection starts that has a new ClientID, we store a mapping
      from that ClientID to the IP address attached to the WebSocket
      connection in a lookup table. Later, when enough packets have arrived to
      establish a turbotunnel session, we recover the ClientID associated with
      the session (which kcp-go has stored in the RemoteAddr field), and look
      it up in the table to get an IP address. We introduce a new data type,
      clientIDMap, to store the clientID-to-IP mapping during the short time
      between when a WebSocket connection starts and handleSession receives a
      fully fledged KCP session.
      07909540
    • David Fifield's avatar
      Turbo Tunnel client and server. · 70126177
      David Fifield authored
      The client opts into turbotunnel mode by sending a magic token at the
      beginning of each WebSocket connection (before sending even the
      ClientID). The token is just a random byte string I generated. The
      server peeks at the token and, if it matches, uses turbotunnel mode.
      Otherwise, it unreads the token and continues in the old
      one-session-per-WebSocket mode.
      70126177
  12. Mar 25, 2020
  13. Feb 22, 2020
  14. Feb 05, 2020
  15. Jan 31, 2020
  16. Jan 30, 2020
  17. Jan 23, 2020
  18. Jan 21, 2020
  19. Dec 06, 2019
  20. Nov 22, 2019
  21. Nov 21, 2019
  22. Nov 11, 2019
  23. Oct 11, 2019
  24. Oct 08, 2019
  25. Apr 11, 2019
  26. Mar 25, 2019
Loading