- (let ((request-line (read-line in-port)))
- (print* "Serving request '" request-line "' ... ")
- (with-output-to-port out-port
- (lambda ()
- (process-request config request-line)))
- (print "done."))
+ (if (and (config-blacklist config)
+ (member remote-ip
+ (with-input-from-file
+ (config-blacklist config)
+ read)))
+ (begin
+ (print "Connection from blacklisted IP. Closing.")
+ (with-output-to-port out-port
+ (lambda ()
+ (serve-document-header (ext->mime "txt"))
+ (print "Refusing to serve to IP " remote-ip ".\n")
+ (when (config-blacklist-resp config)
+ (print)
+ (for-each print
+ (with-input-from-file
+ (config-blacklist-resp config)
+ read-lines))))))
+ (let ((request-line (read-line in-port)))
+ (print* "Serving request '" request-line "' ... ")
+ (with-output-to-port out-port
+ (lambda ()
+ (process-request config request-line)))
+ (print "done.")))