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()