diff --git a/app/views/main/list.html.haml b/app/views/main/list.html.haml
--- a/app/views/main/list.html.haml
+++ b/app/views/main/list.html.haml
@@ -23,6 +23,4 @@
%hr/
-.submitbox
- = render :partial => 'submission_box'
diff --git a/config/size_filter_handler.rb b/config/size_filter_handler.rb
new file mode 100644
--- /dev/null
+++ b/config/size_filter_handler.rb
@@ -0,0 +1,39 @@
+class SizeFilterHandler < Mongrel::HttpHandler
+
+ def initialize(options = {})
+ @max_size = options[:max_size] || -1
+ @redirect_url = options[:redirect_url]
+ @request_notify = true
+ end
+
+ def request_begins(params)
+ @request_too_large = false
+
+ # Only operate on POST requests
+ return unless params[Mongrel::Const::REQUEST_METHOD] == 'POST'
+
+ if params[Mongrel::Const::CONTENT_LENGTH]!=nil
+ req_size = params[Mongrel::Const::CONTENT_LENGTH].to_i
+ if @max_size!=-1 and req_size > @max_size
+ @request_too_large = true
+ end
+ else
+ @request_too_large = true
+ end
+ end
+
+ def process(request, response)
+ if @request_too_large
+ if @redirect_url != nil
+ response.socket.write(Mongrel::Const::REDIRECT % @redirect_url)
+ else
+ response.socket.write(Mongrel::Const::STATUS_FORMAT % [403, "Forbidden"])
+ end
+ response.finished()
+ end
+ end
+end
+
+uri "/", :handler => SizeFilterHandler.new(:max_size => 200_000,
+ :redirect_url => "/main/list"),
+ :in_front => true