summaryrefslogtreecommitdiff
path: root/src/scm/webid-oidc/program.scm
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2021-07-06 12:07:13 +0200
committerVivien Kraus <vivien@planete-kraus.eu>2021-07-06 12:52:46 +0200
commit9d23792481d7ae8d75d9565dd2a0b1e17d08943b (patch)
treec7b9933c8d946175d480dc8e50b8ad86a527d704 /src/scm/webid-oidc/program.scm
parent888fb3e55a5deca32aa46a2bdc7fa5994768797d (diff)
Also log exceptions
Diffstat (limited to 'src/scm/webid-oidc/program.scm')
-rw-r--r--src/scm/webid-oidc/program.scm44
1 files changed, 24 insertions, 20 deletions
diff --git a/src/scm/webid-oidc/program.scm b/src/scm/webid-oidc/program.scm
index 3ee86d8..be72f75 100644
--- a/src/scm/webid-oidc/program.scm
+++ b/src/scm/webid-oidc/program.scm
@@ -103,38 +103,42 @@
((record-accessor &unknown-client-locale 'c-locale) error)
(error->str error)))
(lambda ()
- (receive (response response-body user)
+ (receive (response response-body user cause)
(call-with-values
(lambda ()
(handler request request-body))
(case-lambda
((response response-body)
- (values response response-body #f))
+ (values response response-body #f #f))
((response response-body user)
- (values response response-body user))))
+ (values response response-body user #f))
+ ((response response-body user cause)
+ (values response response-body user cause))))
(let ((logging-port
(let ((response-code (response-code response)))
(if (>= response-code 400)
;; That’s an error
(current-error-port)
(current-output-port)))))
- (if user
- (format logging-port
- (G_ "~a: ~a (~a): ~s ~a ~s ~a\n")
- (date->string (time-utc->date (current-time)))
- (uri->string user)
- (request-ip-address request)
- (request-method request)
- (uri-path (request-uri request))
- (response-code response)
- (response-reason-phrase response))
- (format logging-port
- (G_ "~a: ~a: ~s ~a ~s ~a\n")
- (date->string (time-utc->date (current-time)))
- (request-ip-address request)
- (request-method request)
- (uri-path (request-uri request))
- (response-code response)
+ (format logging-port
+ (G_ "~a: ~s ~a ~s ~a\n")
+ (if user
+ (format #f (G_ "~a: ~a (~a)")
+ (date->string (time-utc->date (current-time)))
+ (uri->string user)
+ (request-ip-address request))
+ (format #f (G_ "~a: ~a")
+ (date->string (time-utc->date (current-time)))
+ (request-ip-address request)))
+ (request-method request)
+ (uri-path (request-uri request))
+ (response-code response)
+ (if cause
+ (string-append
+ (response-reason-phrase response)
+ " "
+ (format #f (G_ "(there was an error: ~a)")
+ (error->str cause)))
(response-reason-phrase response))))
(return
(build-response