diff options
Diffstat (limited to '')
-rw-r--r-- | module/server/util.scm | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/module/server/util.scm b/module/server/util.scm index b9bc6099..f6110952 100644 --- a/module/server/util.scm +++ b/module/server/util.scm @@ -5,6 +5,10 @@ (define-public (parse-query query) (when query (fold (lambda (str list) - (let* (((k v) (string-split str #\=))) - (cons* (-> k string->symbol symbol->keyword) v list))) + ;; only split on the first equal. + ;; Does HTTP allow multiple equal signs in a data field? + (define idx (string-index str #\=)) + (define key (substring str 0 idx)) + (define val (substring str (1+ idx))) + (cons* (-> key string->symbol symbol->keyword) val list)) '() (string-split query #\&)))) |