Squelching port-closed error messages

This commit is contained in:
Jay McCarthy 2012-09-25 10:21:14 -06:00
parent b420e40b0e
commit a5acdb473f

View File

@ -1,6 +1,7 @@
#lang racket/unit #lang racket/unit
(require net/tcp-sig (require net/tcp-sig
racket/async-channel racket/async-channel
racket/port
mzlib/thread) mzlib/thread)
(require "web-server-structs.rkt" (require "web-server-structs.rkt"
"connection-manager.rkt" "connection-manager.rkt"
@ -85,12 +86,23 @@
;; connection will be closed. This shouldn't change any other ;; connection will be closed. This shouldn't change any other
;; behavior: read-request is already blocking, peeking doesn't ;; behavior: read-request is already blocking, peeking doesn't
;; consume a byte, etc. ;; consume a byte, etc.
(if (eof-object? (peek-byte ip)) (sync
(kill-connection! conn) (handle-evt
(let-values (port-closed-evt ip)
([(req close?) (config:read-request conn config:port port-addresses)]) (λ (res)
(kill-connection! conn)))
(handle-evt
(peek-bytes-evt 1 0 #f ip)
(λ (res)
(cond
[(eof-object? res)
(kill-connection! conn)]
[else
(define-values
(req close?)
(config:read-request conn config:port port-addresses))
(set-connection-close?! conn close?) (set-connection-close?! conn close?)
(config:dispatch conn req) (config:dispatch conn req)
(if (connection-close? conn) (if (connection-close? conn)
(kill-connection! conn) (kill-connection! conn)
(connection-loop)))))) (connection-loop))]))))))