Changeset 592 in code for trunk


Ignore:
Timestamp:
Sep 19, 2021, 3:00:40 PM (4 years ago)
Author:
chris
Message:

Set a higher timeout for proxyproto listeners

go-proxyproto added support for a read timeout in 0.6.0[1] and
defaulted it to 200ms. After this time if no data is read on
the socket, it is closed.

This is _really_ low if the underlying connection is a TLS
one as no data pops out the other end until the handshake is
done. It effectively limits you to TLS connections within
a 50ms RTT of your bouncer with clients that are fast enough
at responding.

It appears that HexChat on Arch is somehow slow enough at
TLS connections thant it consistently takes longer than
200ms even over localhost, meaning it outright can't connect
to soju any longer.

To make this a lot less painful, have soju pass in a read
timeout of 5 seconds. This feels like a reasonable tradeoff
between keeping (possibly malicious) connections open and
accepting the realities of network connections.

[1]: https://github.com/pires/go-proxyproto/issues/65

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/cmd/soju/main.go

    r581 r592  
    254254                        return proxyproto.IGNORE, nil
    255255                },
    256         }
    257 }
     256                ReadHeaderTimeout: 5 * time.Second,
     257        }
     258}
Note: See TracChangeset for help on using the changeset viewer.