mirror of
https://github.com/EDCD/EDDN.git
synced 2025-06-07 19:03:10 +03:00
Gateway: Properly report 'badly form encoded' to uploaders
This currently only applies if the data was also, validly, compressed.
This commit is contained in:
parent
10b12cf74b
commit
872af7f594
@ -128,6 +128,7 @@ def get_decompressed_message():
|
|||||||
:returns: The de-compressed request body.
|
:returns: The de-compressed request body.
|
||||||
"""
|
"""
|
||||||
content_encoding = request.headers.get('Content-Encoding', '')
|
content_encoding = request.headers.get('Content-Encoding', '')
|
||||||
|
logger.debug('Content-Encoding: ' + content_encoding)
|
||||||
|
|
||||||
if content_encoding in ['gzip', 'deflate']:
|
if content_encoding in ['gzip', 'deflate']:
|
||||||
logger.debug('Content-Encoding of gzip or deflate...')
|
logger.debug('Content-Encoding of gzip or deflate...')
|
||||||
@ -148,6 +149,7 @@ def get_decompressed_message():
|
|||||||
# body. If it's not form-encoded, this will return an empty dict.
|
# body. If it's not form-encoded, this will return an empty dict.
|
||||||
form_enc_parsed = urlparse.parse_qs(message_body)
|
form_enc_parsed = urlparse.parse_qs(message_body)
|
||||||
if form_enc_parsed:
|
if form_enc_parsed:
|
||||||
|
logger.debug('Request is form-encoded')
|
||||||
# This is a form-encoded POST. The value of the data attrib will
|
# This is a form-encoded POST. The value of the data attrib will
|
||||||
# be the body we're looking for.
|
# be the body we're looking for.
|
||||||
try:
|
try:
|
||||||
@ -157,6 +159,10 @@ def get_decompressed_message():
|
|||||||
"No 'data' POST key/value found. Check your POST key "
|
"No 'data' POST key/value found. Check your POST key "
|
||||||
"name for spelling, and make sure you're passing a value."
|
"name for spelling, and make sure you're passing a value."
|
||||||
)
|
)
|
||||||
|
|
||||||
|
else:
|
||||||
|
logger.debug('Request is *NOT* form-encoded')
|
||||||
|
|
||||||
else:
|
else:
|
||||||
# Uncompressed request. Bottle handles all of the parsing of the
|
# Uncompressed request. Bottle handles all of the parsing of the
|
||||||
# POST key/vals, or un-encoded body.
|
# POST key/vals, or un-encoded body.
|
||||||
@ -279,7 +285,7 @@ def upload():
|
|||||||
response.status = 400
|
response.status = 400
|
||||||
logger.error("MalformedUploadError from %s: %s" % (get_remote_address(), exc.message))
|
logger.error("MalformedUploadError from %s: %s" % (get_remote_address(), exc.message))
|
||||||
|
|
||||||
return exc.message
|
return 'FAIL: ' + exc.message
|
||||||
|
|
||||||
statsCollector.tally("inbound")
|
statsCollector.tally("inbound")
|
||||||
return parse_and_error_handle(message_body)
|
return parse_and_error_handle(message_body)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user