diff --git a/peer/http3/server.go b/peer/http3/server.go index 30ae3fd..d81f0f8 100644 --- a/peer/http3/server.go +++ b/peer/http3/server.go @@ -65,9 +65,14 @@ type availabilityResponse struct { // Start starts the server listener to handle connections. func (s *Server) Start(address string) error { log.Println("HTTP3 peer listening on " + address) + window500M := 500 * 1 << 20 + quicConf := &quic.Config{ - HandshakeIdleTimeout: 4 * time.Second, - MaxIdleTimeout: 20 * time.Second, + MaxStreamReceiveWindow: uint64(window500M), + MaxConnectionReceiveWindow: uint64(window500M), + EnableDatagrams: true, + HandshakeIdleTimeout: 4 * time.Second, + MaxIdleTimeout: 20 * time.Second, } r := mux.NewRouter() r.HandleFunc("/get/{hash}", func(w http.ResponseWriter, r *http.Request) { diff --git a/peer/http3/store.go b/peer/http3/store.go index bcc7cae..7d8fc34 100644 --- a/peer/http3/store.go +++ b/peer/http3/store.go @@ -36,6 +36,10 @@ func NewStore(opts StoreOpts) *Store { func (p *Store) getClient() (*Client, error) { var qconf quic.Config + window500M := 500 * 1 << 20 + qconf.MaxStreamReceiveWindow = uint64(window500M) + qconf.MaxConnectionReceiveWindow = uint64(window500M) + qconf.EnableDatagrams = true qconf.HandshakeIdleTimeout = 4 * time.Second qconf.MaxIdleTimeout = 20 * time.Second pool, err := x509.SystemCertPool()