summaryrefslogtreecommitdiff
path: root/module/web/request.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/web/request.scm')
-rw-r--r--module/web/request.scm8
1 files changed, 6 insertions, 2 deletions
diff --git a/module/web/request.scm b/module/web/request.scm
index 7ced076fa..0a206cf35 100644
--- a/module/web/request.scm
+++ b/module/web/request.scm
@@ -300,7 +300,8 @@ request R."
(define-request-accessor user-agent #f)
;; Misc accessors
-(define* (request-absolute-uri r #:optional default-host default-port)
+(define* (request-absolute-uri r #:optional default-host default-port
+ default-scheme)
"A helper routine to determine the absolute URI of a request, using the
‘host’ header and the default host and port."
(let ((uri (request-uri r)))
@@ -313,7 +314,10 @@ request R."
(bad-request
"URI not absolute, no Host header, and no default: ~s"
uri)))))
- (build-uri (uri-scheme uri)
+ (build-uri (or (uri-scheme uri)
+ default-scheme
+ (bad-request "URI not absolute and no default-port"
+ uri))
#:host (car host)
#:port (cdr host)
#:path (uri-path uri)