aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorAdnan Maolood <[email protected]>2021-02-27 14:53:37 -0500
committerAdnan Maolood <[email protected]>2021-02-27 14:53:37 -0500
commitfcc71b76d997fc24f62a1ad1977163edf567d022 (patch)
tree4e8ce656a6cc04ab1521dbffdde7d22a20f08ecc /examples
parentresponse: Add tests for maximum-length META (diff)
downloadgo-gemini-fcc71b76d997fc24f62a1ad1977163edf567d022.tar.xz
go-gemini-fcc71b76d997fc24f62a1ad1977163edf567d022.zip
examples/server: Clean up LoggingMiddleware
Diffstat (limited to 'examples')
-rw-r--r--examples/server.go18
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 {