Description:
git-svn-id: http://theory.cpe.ku.ac.th/grader/web/trunk@229 6386c4cd-e34a-4fa8-8920-d93eb39b512e
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
r110:89e2f87ebc06 - - 1 file changed: 2 inserted, 2 deleted
@@ -1,39 +1,39 | |||||
|
1 | class SizeFilterHandler < Mongrel::HttpHandler |
|
1 | class SizeFilterHandler < Mongrel::HttpHandler |
|
2 |
|
2 | ||
|
3 | def initialize(options = {}) |
|
3 | def initialize(options = {}) |
|
4 | @max_size = options[:max_size] || -1 |
|
4 | @max_size = options[:max_size] || -1 |
|
5 | @redirect_url = options[:redirect_url] |
|
5 | @redirect_url = options[:redirect_url] |
|
6 | @request_notify = true |
|
6 | @request_notify = true |
|
7 | end |
|
7 | end |
|
8 |
|
8 | ||
|
9 | def request_begins(params) |
|
9 | def request_begins(params) |
|
10 | @request_too_large = false |
|
10 | @request_too_large = false |
|
11 |
|
11 | ||
|
12 | # Only operate on POST requests |
|
12 | # Only operate on POST requests |
|
13 | return unless params[Mongrel::Const::REQUEST_METHOD] == 'POST' |
|
13 | return unless params[Mongrel::Const::REQUEST_METHOD] == 'POST' |
|
14 |
|
14 | ||
|
15 | if params[Mongrel::Const::CONTENT_LENGTH]!=nil |
|
15 | if params[Mongrel::Const::CONTENT_LENGTH]!=nil |
|
16 | req_size = params[Mongrel::Const::CONTENT_LENGTH].to_i |
|
16 | req_size = params[Mongrel::Const::CONTENT_LENGTH].to_i |
|
17 | if @max_size!=-1 and req_size > @max_size |
|
17 | if @max_size!=-1 and req_size > @max_size |
|
18 | @request_too_large = true |
|
18 | @request_too_large = true |
|
19 | end |
|
19 | end |
|
20 | else |
|
20 | else |
|
21 | @request_too_large = true |
|
21 | @request_too_large = true |
|
22 | end |
|
22 | end |
|
23 | end |
|
23 | end |
|
24 |
|
24 | ||
|
25 | def process(request, response) |
|
25 | def process(request, response) |
|
26 | if @request_too_large |
|
26 | if @request_too_large |
|
27 | if @redirect_url != nil |
|
27 | if @redirect_url != nil |
|
28 | response.socket.write(Mongrel::Const::REDIRECT % @redirect_url) |
|
28 | response.socket.write(Mongrel::Const::REDIRECT % @redirect_url) |
|
29 | else |
|
29 | else |
|
30 | response.socket.write(Mongrel::Const::STATUS_FORMAT % [403, "Forbidden"]) |
|
30 | response.socket.write(Mongrel::Const::STATUS_FORMAT % [403, "Forbidden"]) |
|
31 | end |
|
31 | end |
|
32 | response.finished() |
|
32 | response.finished() |
|
33 | end |
|
33 | end |
|
34 | end |
|
34 | end |
|
35 | end |
|
35 | end |
|
36 |
|
36 | ||
|
37 | - uri "/", :handler => SizeFilterHandler.new(:max_size => 200_000, |
|
37 | + uri "/", :handler => SizeFilterHandler.new(:max_size => 2_100_000, |
|
38 |
- :redirect_url => "/main/ |
|
38 | + :redirect_url => "/main/error"), |
|
39 | :in_front => true |
|
39 | :in_front => true |
You need to be logged in to leave comments.
Login now