diff options
| author | Adnan Maolood <[email protected]> | 2021-02-27 14:53:37 -0500 |
|---|---|---|
| committer | Adnan Maolood <[email protected]> | 2021-02-27 14:53:37 -0500 |
| commit | fcc71b76d997fc24f62a1ad1977163edf567d022 (patch) | |
| tree | 4e8ce656a6cc04ab1521dbffdde7d22a20f08ecc /examples | |
| parent | response: Add tests for maximum-length META (diff) | |
| download | go-gemini-fcc71b76d997fc24f62a1ad1977163edf567d022.tar.xz go-gemini-fcc71b76d997fc24f62a1ad1977163edf567d022.zip | |
examples/server: Clean up LoggingMiddleware
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/server.go | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/examples/server.go b/examples/server.go index 23bb953..7fa10ad 100644 --- a/examples/server.go +++ b/examples/server.go @@ -26,7 +26,7 @@ func main() { mux.Handle("/", gemini.FileServer(os.DirFS("/var/www"))) server := &gemini.Server{ - Handler: logMiddleware(mux), + Handler: LoggingMiddleware(mux), ReadTimeout: 30 * time.Second, WriteTimeout: 1 * time.Minute, GetCertificate: certificates.Get, @@ -57,22 +57,21 @@ func main() { } } -func logMiddleware(h gemini.Handler) gemini.Handler { +func LoggingMiddleware(h gemini.Handler) gemini.Handler { return gemini.HandlerFunc(func(ctx context.Context, w gemini.ResponseWriter, r *gemini.Request) { lw := &logResponseWriter{rw: w} h.ServeGemini(ctx, lw, r) host := r.TLS().ServerName - log.Printf("gemini: %s %q %d %d", host, r.URL, lw.status, lw.wrote) + log.Printf("gemini: %s %q %d %d", host, r.URL, lw.Status, lw.Wrote) }) } type logResponseWriter struct { + Status gemini.Status + Wrote int rw gemini.ResponseWriter - status gemini.Status - meta string mediatype string wroteHeader bool - wrote int } func (w *logResponseWriter) SetMediaType(mediatype string) { @@ -84,7 +83,7 @@ func (w *logResponseWriter) Write(b []byte) (int, error) { w.WriteHeader(gemini.StatusSuccess, w.mediatype) } n, err := w.rw.Write(b) - w.wrote += n + w.Wrote += n return n, err } @@ -92,11 +91,10 @@ func (w *logResponseWriter) WriteHeader(status gemini.Status, meta string) { if w.wroteHeader { return } - w.status = status - w.meta = meta w.wroteHeader = true + w.Status = status + w.Wrote += len(meta) + 5 w.rw.WriteHeader(status, meta) - w.wrote += len(meta) + 5 } func (w *logResponseWriter) Flush() error { |