summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2021-10-21 10:53:28 +0200
committerVivien Kraus <vivien@planete-kraus.eu>2021-11-14 16:49:56 +0000
commit25431da247c33c66529c373e13919c87d8e86c55 (patch)
tree403f23f76bfd4a86960b413e99b4fc688003ec63
parent17bc5999ce9ee774afd82d8ede33f5a9be61a4af (diff)
Verbose HTTP router
-rw-r--r--src/scm/webid-oidc/server/endpoint.scm18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/scm/webid-oidc/server/endpoint.scm b/src/scm/webid-oidc/server/endpoint.scm
index 9a19ceb..e38bb5e 100644
--- a/src/scm/webid-oidc/server/endpoint.scm
+++ b/src/scm/webid-oidc/server/endpoint.scm
@@ -151,6 +151,7 @@
(list routed)))))))
(define-method (relevant? (endpoint <endpoint>) request)
+ (format (current-error-port) "Is ~s relevant for ~s?\n" endpoint request)
(let ((requested-host
(match (request-host request)
((or ((? string? host) . _)
@@ -160,22 +161,34 @@
(requested-path
(split-and-decode-uri-path
(uri-path (request-uri request)))))
+ (format (current-error-port) "Requested host: ~s, requested path: ~s\n" requested-host requested-path)
(and (or (not (host endpoint))
(equal? (host endpoint) requested-host))
(let check-path ((path (split-and-decode-uri-path (path endpoint)))
(requested-path requested-path))
+ (format (current-error-port) "Checking if path ~s is compatible with requested path ~s…\n" path requested-path)
(match `(,path ,requested-path)
- ((() _) #t)
- ((_ ()) #f)
+ ((() _)
+ (format (current-error-port) "Yes.\n")
+ #t)
+ ((_ ())
+ (format (current-error-port) "No.\n")
+ #f)
(((element path ...)
(requested-element requested-path ...))
+ (unless (equal? element requested-element)
+ (format (current-error-port) "No (~s vs ~s)\n" element requested-element))
(and (equal? element requested-element)
+ (format (current-error-port) "Maybe…\n")
(check-path path requested-path))))))))
(define-method (handle (endpoint <router>) request request-body)
+ (format (current-error-port) "Handling in a router: ~s ~s\n" request request-body)
(let find-router ((routed (routed endpoint)))
+ (format (current-error-port) "Handling in a router: ~s ~s, ~s\n" request request-body routed)
(match routed
(()
+ (format (current-error-port) "Handling in a router: ~s ~s, no more routed\n" request request-body)
(raise-exception
(make-exception
(make-web-exception 404 (W_ "Not Found"))
@@ -183,6 +196,7 @@
(((and router
(? (cute relevant? <> request)))
_ ...)
+ (format (current-error-port) "Handling in a router: ~s ~s, found ~s\n" request request-body router)
(handle router request request-body))
((_ routed ...)
(find-router routed)))))