aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2023-05-22 12:16:05 +0100
committerChristopher Baines <mail@cbaines.net>2023-05-22 12:16:05 +0100
commitefaf8fa580ad197d74ff375ca50bddf9c8ac3a86 (patch)
treeab41983abe348240b5172cbc197b44cb74e2c037
parent0d58b96c8eda264ac545bb439bffda796f7db37b (diff)
downloadnar-herder-efaf8fa580ad197d74ff375ca50bddf9c8ac3a86.tar
nar-herder-efaf8fa580ad197d74ff375ca50bddf9c8ac3a86.tar.gz
Improve HEAD request handling
The Guile Fibers web server already just omits response bodies for HEAD requests, so just change the controller to handle HEAD requests like GET requests in all cases.
-rw-r--r--nar-herder/server.scm12
1 files changed, 6 insertions, 6 deletions
diff --git a/nar-herder/server.scm b/nar-herder/server.scm
index f07cb9d..86d7079 100644
--- a/nar-herder/server.scm
+++ b/nar-herder/server.scm
@@ -233,7 +233,7 @@
(match (cons (request-method request)
(split-and-decode-uri-path
(uri-path (request-uri request))))
- (('GET (? narinfo? narinfo))
+ (((or 'HEAD 'GET) (? narinfo? narinfo))
(let ((base-narinfo-contents
narinfo-id
(database-select-narinfo-contents-by-hash
@@ -263,7 +263,7 @@
(max-age . ,negative-ttl)))
'()))
"404"))))
- (('GET (? narinfo? narinfo) "info")
+ (((or 'HEAD 'GET) (? narinfo? narinfo) "info")
(let ((narinfo-contents
(database-select-narinfo-contents-by-hash
database
@@ -282,7 +282,7 @@
(string-take narinfo 32)))))
(values (build-response #:code 404)
"404"))))
- (('GET "nar" compression filename)
+ (((or 'HEAD 'GET) "nar" compression filename)
(let* ((hash (and (>= (string-length filename) 32)
(string-take filename 32)))
(narinfo
@@ -439,7 +439,7 @@
#f
"404")))))))
- (('GET "recent-changes")
+ (((or 'HEAD 'GET) "recent-changes")
(let ((query-parameters
(or (and=> (uri-query (request-uri request))
parse-query-string)
@@ -454,7 +454,7 @@
(or
(assoc-ref query-parameters "since")
"1970-01-01 00:00:01"))))))))
- (('GET "latest-database-dump")
+ (((or 'HEAD 'GET) "latest-database-dump")
(increment-request-metric "latest-database-dump" "200")
@@ -462,7 +462,7 @@
#:code 200
#:headers '((X-Accel-Redirect . "/internal/database/nar_herder_dump.db")))
#f))
- (('GET "metrics")
+ (((or 'HEAD 'GET) "metrics")
(gc-metrics-updater)
(guile-time-metrics-updater)
(increment-request-metric "metrics" "200")