[Lisppaste-cvs] CVS update: lisppaste2/web-server.lisp
Brian Mastenbrook
bmastenbrook at common-lisp.net
Thu Jun 3 22:12:14 UTC 2004
Update of /project/lisppaste/cvsroot/lisppaste2
In directory common-lisp.net:/home/bmastenbrook/lisppaste2
Modified Files:
web-server.lisp
Log Message:
IP banning (web-server.lisp part)
Date: Thu Jun 3 15:12:14 2004
Author: bmastenbrook
Index: lisppaste2/web-server.lisp
diff -u lisppaste2/web-server.lisp:1.49 lisppaste2/web-server.lisp:1.50
--- lisppaste2/web-server.lisp:1.49 Thu Jun 3 07:16:35 2004
+++ lisppaste2/web-server.lisp Thu Jun 3 15:12:14 2004
@@ -1,4 +1,4 @@
-;;;; $Id: web-server.lisp,v 1.49 2004/06/03 14:16:35 bmastenbrook Exp $
+;;;; $Id: web-server.lisp,v 1.50 2004/06/03 22:12:14 bmastenbrook Exp $
;;;; $Source: /project/lisppaste/cvsroot/lisppaste2/web-server.lisp,v $
;;;; See the LICENSE file for licensing information.
@@ -35,6 +35,31 @@
(defclass syndication-handler (araneida:handler) ())
(defclass stats-handler (araneida:handler) ())
+
+(defmethod araneida:handle-request-response :around
+ ((handler submit-paste-handler) method request)
+ (let ((forwarded-for (car (araneida:request-header request :x-forwarded-for))))
+ (if (and forwarded-for
+ (member forwarded-for
+ *banned-ips* :test #'string-equal))
+ (progn
+ (with-open-file (s "ban-log" :direction :output :if-exists :append
+ :if-does-not-exist :create)
+ (format s "Logged attempt by ~S to submit a paste.~%"
+ forwarded-for)
+ (format s "Request headers are: ~S.~%"
+ (araneida:request-headers request))
+ (format s "Request body is: ~S.~%"
+ (araneida:request-body request)))
+ (araneida:request-send-headers request :expires 0)
+ (araneida:html-stream
+ (araneida:request-stream request)
+ `(html
+ (head
+ (title "No cookie for you!"))
+ (body (h1 ((font :color "red") "Naughty boy!"))))))
+ (call-next-method))))
+
(defmethod araneida:handle-request-response ((handler new-paste-handler) method request)
(let* ((annotate-string (araneida:body-param "annotate" (araneida:request-body request)))
More information about the Lisppaste-cvs
mailing list