From 29a6144123eec91242ce22abeb4e12a70ba7e73d Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Sun, 12 Feb 2012 13:46:22 +0100 Subject: [PATCH] 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. --- tekuti/request.scm | 13 ++++++++++--- 1 file 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 +;; Copyright (C) 2008, 2010, 2011, 2012 Andy Wingo ;; 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 ...)))))