summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2021-07-02 16:15:08 +0200
committerVivien Kraus <vivien@planete-kraus.eu>2021-07-02 16:26:21 +0200
commit3f1c996d1cfebbc3c859d210cda5ba7b61efdeec (patch)
tree25ef62a317f4eceb3e4fef9a046b7c513b8e8566 /src
parentf139de0aad495eb8b5e91b941fee3d749d9b6b6c (diff)
Also log the remote peer IP address
Diffstat (limited to 'src')
-rw-r--r--src/scm/webid-oidc/program.scm16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/scm/webid-oidc/program.scm b/src/scm/webid-oidc/program.scm
index d4b98fe..66f1c66 100644
--- a/src/scm/webid-oidc/program.scm
+++ b/src/scm/webid-oidc/program.scm
@@ -63,6 +63,14 @@
(define cache-http-get
(with-cache #:http-get http-get-with-log))
+(define (request-ip-address request)
+ ;; The IP address of the remote end
+ (let ((socket (request-port request)))
+ (let ((peer (getpeername socket)))
+ (let ((family (sockaddr:fam peer))
+ (address (sockaddr:addr peer)))
+ (inet-ntop family address)))))
+
(define (handler-with-log log-file error-file complete-corresponding-source handler)
(lambda (request request-body)
(when log-file
@@ -74,8 +82,9 @@
(with-exception-handler
(lambda (error)
(format (current-error-port)
- (G_ "~a: Internal server error: ~a\n")
+ (G_ "~a: ~a: Internal server error: ~a\n")
(date->string (time-utc->date (current-time)))
+ (request-ip-address request)
(error->str error))
(return
(build-response #:code 500
@@ -93,9 +102,10 @@
(lambda ()
(receive (response response-body)
(handler request request-body)
- (format (current-error-port)
- (G_ "~a: ~s ~a ~s ~a\n")
+ (format (current-output-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)