Dolda2000 GitWeb
/
wrw.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of ansgar.seatribe.se:/usr/local/src/wrw
[wrw.git]
/
wrw
/
form.py
diff --git
a/wrw/form.py
b/wrw/form.py
index
e89901d
..
7905dc6
100644
(file)
--- a/
wrw/form.py
+++ b/
wrw/form.py
@@
-7,9
+7,12
@@
def formparse(req):
buf = {}
buf.update(urllib.parse.parse_qsl(req.query))
if req.ihead.get("Content-Type") == "application/x-www-form-urlencoded":
buf = {}
buf.update(urllib.parse.parse_qsl(req.query))
if req.ihead.get("Content-Type") == "application/x-www-form-urlencoded":
- rbody = req.input.read(2 ** 20)
+ try:
+ rbody = req.input.read(2 ** 20)
+ except IOError as exc:
+ return exc
if len(rbody) >= 2 ** 20:
if len(rbody) >= 2 ** 20:
- r
aise
ValueError("x-www-form-urlencoded data is absurdly long")
+ r
eturn
ValueError("x-www-form-urlencoded data is absurdly long")
buf.update(urllib.parse.parse_qsl(rbody.decode("latin1")))
return buf
buf.update(urllib.parse.parse_qsl(rbody.decode("latin1")))
return buf
@@
-161,5
+164,10
@@
class multipart(object):
self.lastpart.parsehead(self.headcs)
return self.lastpart
self.lastpart.parsehead(self.headcs)
return self.lastpart
-def formdata(req):
- return req.item(formparse)
+def formdata(req, onerror=Exception):
+ data = req.item(formparse)
+ if isinstance(data, Exception):
+ if onerror is Exception:
+ raise data
+ return onerror
+ return data