- (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 (or (config-blacklist config)
+ (not (member remote-ip
+ (with-input-from-file
+ (config-blacklist config)))))
+ (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."))
+ (begin
+ (print "Connection from blacklisted IP. Closing.")
+ (with-output-to-port out-port
+ (lambda ()
+ (print* "Refusing to serve to IP " remote-ip ".\n")
+ (when (config-blacklist-resp config)
+ (for-each print
+ (with-input-from-file
+ (config-blacklist-resp config)
+ read-lines)))))))