diff options
author | Andy Wingo | 2012-02-12 13:46:22 +0100 |
---|---|---|
committer | Andy Wingo | 2012-02-12 13:46:22 +0100 |
commit | 29a6144123eec91242ce22abeb4e12a70ba7e73d (patch) | |
tree | 2ed0e32ca92383a783a65abafe1c00ba7a660cd4 | |
parent | afec0daa992123035f4bf63c5365b09f2df1e1af (diff) | |
download | tekuti-29a6144123eec91242ce22abeb4e12a70ba7e73d.tar.gz tekuti-29a6144123eec91242ce22abeb4e12a70ba7e73d.zip |
handle HEAD requests (requires Guile from today)
* tekuti/request.scm (request-path-case): Dispatch HEAD requests as GET
requests, relying on new Guile web servers to elide the HEAD body.
-rw-r--r-- | tekuti/request.scm | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/tekuti/request.scm b/tekuti/request.scm index 514864e..c198a52 100644 --- a/tekuti/request.scm +++ b/tekuti/request.scm @@ -1,5 +1,5 @@ ;; Tekuti -;; Copyright (C) 2008, 2010, 2011 Andy Wingo <wingo at pobox dot com> +;; Copyright (C) 2008, 2010, 2011, 2012 Andy Wingo <wingo at pobox dot com> ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as @@ -162,7 +162,14 @@ (define-syntax request-path-case (syntax-rules () ((_ request clause ...) - (let ((r request)) + (let* ((r request) + (method (request-method r))) (path-proc-case - (cons (symbol->string (request-method r)) (request-relative-path r)) + (cons (symbol->string + (case method + ;; Treat HEAD as GET, for the purposes of dispatching + ;; requests. + ((HEAD) 'GET) + (else method))) + (request-relative-path r)) clause ...))))) |