From 4821aa05b5d688dfdcb6cc5d2054f98b3ac3a576 Mon Sep 17 00:00:00 2001 From: WeebDataHoarder <57538841+WeebDataHoarder@users.noreply.github.com> Date: Mon, 6 Jun 2022 23:25:30 +0200 Subject: [PATCH] Wait before grabbing QUIC headers --- httputils/server.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/httputils/server.go b/httputils/server.go index f12495f..709d40f 100644 --- a/httputils/server.go +++ b/httputils/server.go @@ -11,6 +11,7 @@ import ( "mime" "net" "net/http" + "runtime" "sync" "time" ) @@ -184,9 +185,17 @@ func (server *Server) Serve() { }, } - h := http.Header{} - s.SetQuicHeaders(h) - server.AddExtraHeader("Alt-Svc", h.Get("Alt-Svc")) + //TODO HACK: SetQuicHeaders does not work before server starts + go func() { + h := http.Header{} + for { + if err := s.SetQuicHeaders(h); err == nil { + server.AddExtraHeader("Alt-Svc", h.Get("Alt-Svc")) + break + } + runtime.Gosched() + } + }() log.Printf("[Server] Serving UDP on %s", server.ListenAddress) err := s.ListenAndServe()