Skip to content

Commit 8285eba

Browse files
authored
caddyhttp: allow customizing the Server header (#7338)
1 parent 895b560 commit 8285eba

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

modules/caddyhttp/server.go

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,11 @@ type Server struct {
285285
onStopFuncs []func(context.Context) error // TODO: Experimental (Nov. 2023)
286286
}
287287

288+
var (
289+
ServerHeader = "Caddy"
290+
serverHeader = []string{ServerHeader}
291+
)
292+
288293
// ServeHTTP is the entry point for all HTTP requests.
289294
func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
290295
// If there are listener wrappers that process tls connections but don't return a *tls.Conn, this field will be nil.
@@ -294,16 +299,14 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
294299
}
295300
}
296301

297-
w.Header().Set("Server", "Caddy")
302+
h := w.Header()
303+
h["Server"] = serverHeader
298304

299305
// advertise HTTP/3, if enabled
300-
if s.h3server != nil {
301-
if r.ProtoMajor < 3 {
302-
err := s.h3server.SetQUICHeaders(w.Header())
303-
if err != nil {
304-
if c := s.logger.Check(zapcore.ErrorLevel, "setting HTTP/3 Alt-Svc header"); c != nil {
305-
c.Write(zap.Error(err))
306-
}
306+
if s.h3server != nil && r.ProtoMajor < 3 {
307+
if err := s.h3server.SetQUICHeaders(h); err != nil {
308+
if c := s.logger.Check(zapcore.ErrorLevel, "setting HTTP/3 Alt-Svc header"); c != nil {
309+
c.Write(zap.Error(err))
307310
}
308311
}
309312
}
@@ -328,9 +331,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
328331
// enable full-duplex for HTTP/1, ensuring the entire
329332
// request body gets consumed before writing the response
330333
if s.EnableFullDuplex && r.ProtoMajor == 1 {
331-
//nolint:bodyclose
332-
err := http.NewResponseController(w).EnableFullDuplex()
333-
if err != nil {
334+
if err := http.NewResponseController(w).EnableFullDuplex(); err != nil { //nolint:bodyclose
334335
if c := s.logger.Check(zapcore.WarnLevel, "failed to enable full duplex"); c != nil {
335336
c.Write(zap.Error(err))
336337
}
@@ -417,8 +418,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
417418
var fields []zapcore.Field
418419
if s.Errors != nil && len(s.Errors.Routes) > 0 {
419420
// execute user-defined error handling route
420-
err2 := s.errorHandlerChain.ServeHTTP(w, r)
421-
if err2 == nil {
421+
if err2 := s.errorHandlerChain.ServeHTTP(w, r); err2 == nil {
422422
// user's error route handled the error response
423423
// successfully, so now just log the error
424424
for _, logger := range errLoggers {

0 commit comments

Comments
 (0)