aboutsummaryrefslogtreecommitdiff
path: root/weeb/main.scm
diff options
context:
space:
mode:
Diffstat (limited to 'weeb/main.scm')
-rw-r--r--weeb/main.scm10
1 files changed, 8 insertions, 2 deletions
diff --git a/weeb/main.scm b/weeb/main.scm
index 7487f19..b6e47ec 100644
--- a/weeb/main.scm
+++ b/weeb/main.scm
@@ -110,6 +110,11 @@
(match-lambda
("GET" 'GET)
("POST" 'POST)))
+ (define (strip-query-string uri)
+ (let ((match-object (string-match "^(/.*)\\?" uri)))
+ (if match-object
+ (match:substring match-object 1)
+ uri)))
;; According to RFC 9110, header names must be treated as case-insensitive.
(define headers
(filter-map
@@ -125,8 +130,9 @@
#f)))
(environ)))
(let* ((method (string->method (getenv "REQUEST_METHOD")))
- (uri (getenv "REQUEST_URI")))
- (make-struct <request> method uri '() headers (fcgi-read))))
+ (query (parse-form-urlencoded (getenv "QUERY_STRING")))
+ (uri (strip-query-string (getenv "REQUEST_URI"))))
+ (make-struct <request> method uri query headers (fcgi-read))))
(define (handle-errors thunk)
(catch #t

© 2015 - 2026 Jakob L. Kreuze