From 9d34ffea4fc42b939f03794b0c8d72c40fbe13c3 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Mon, 21 Nov 2016 17:38:41 +1300 Subject: [PATCH] Log websocket connection starts --- racket/syndicate/drivers/web.rkt | 51 +++++++++++++++++++------------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/racket/syndicate/drivers/web.rkt b/racket/syndicate/drivers/web.rkt index a3b46e2..d8f2c04 100644 --- a/racket/syndicate/drivers/web.rkt +++ b/racket/syndicate/drivers/web.rkt @@ -335,27 +335,36 @@ (define start-ms (current-inexact-milliseconds)) (send-ground-message (web-raw-request id listen-port conn req control-ch)) (sync (handle-evt control-ch - (match-lambda - [(list 'websocket reply-headers ws-ch) - (with-handlers ((exn:dispatcher? - (lambda (_e) (bad-request conn req)))) - ((make-general-websockets-dispatcher - (websocket-connection-main id ws-ch) - (lambda _args (values reply-headers (void)))) - conn req))] - [(list 'response resp) - (define delay-ms (inexact->exact - (truncate - (- (current-inexact-milliseconds) start-ms)))) - (log-syndicate/drivers/web-info - "~s" - `((method ,(request-method req)) - (url ,(url->string (request-uri req))) - (headers ,(request-headers req)) - (port ,(request-host-port req)) - (code ,(response-code resp)) - (delay-ms ,delay-ms))) - (output-response/method conn resp (request-method req))]))) + (lambda (msg) + (define delay-ms (inexact->exact + (truncate + (- (current-inexact-milliseconds) start-ms)))) + (match msg + [(list 'websocket reply-headers ws-ch) + (log-syndicate/drivers/web-info + "~s" + `((method ,(request-method req)) + (url ,(url->string (request-uri req))) + (headers ,(request-headers req)) + (port ,(request-host-port req)) + (websocket) + (delay-ms ,delay-ms))) + (with-handlers ((exn:dispatcher? + (lambda (_e) (bad-request conn req)))) + ((make-general-websockets-dispatcher + (websocket-connection-main id ws-ch) + (lambda _args (values reply-headers (void)))) + conn req))] + [(list 'response resp) + (log-syndicate/drivers/web-info + "~s" + `((method ,(request-method req)) + (url ,(url->string (request-uri req))) + (headers ,(request-headers req)) + (port ,(request-host-port req)) + (code ,(response-code resp)) + (delay-ms ,delay-ms))) + (output-response/method conn resp (request-method req))])))) (do-request)))))) ;; D-: uck barf