summaryrefslogtreecommitdiff
path: root/slixmpp/plugins/xep_0363/http_upload.py
diff options
context:
space:
mode:
Diffstat (limited to 'slixmpp/plugins/xep_0363/http_upload.py')
-rw-r--r--slixmpp/plugins/xep_0363/http_upload.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/slixmpp/plugins/xep_0363/http_upload.py b/slixmpp/plugins/xep_0363/http_upload.py
index 266fc656..04b066cd 100644
--- a/slixmpp/plugins/xep_0363/http_upload.py
+++ b/slixmpp/plugins/xep_0363/http_upload.py
@@ -28,7 +28,9 @@ class UploadServiceNotFound(FileUploadError):
pass
class FileTooBig(FileUploadError):
- pass
+ def __str__(self):
+ return 'File size too large: {} (max: {} bytes)' \
+ .format(self.args[0], self.args[1])
class HTTPError(FileUploadError):
def __str__(self):
@@ -116,7 +118,7 @@ class XEP_0363(BasePlugin):
except (TypeError, ValueError):
log.error('Invalid max size received from HTTP File Upload service')
self.max_file_size = float('+inf')
- break
+ break
if input_file is None:
input_file = open(filename, 'rb')
@@ -126,7 +128,7 @@ class XEP_0363(BasePlugin):
input_file.seek(0)
if size > self.max_file_size:
- raise FileTooBig()
+ raise FileTooBig(size, self.max_file_size)
if content_type is None:
content_type = guess_type(filename)[0]
@@ -136,6 +138,7 @@ class XEP_0363(BasePlugin):
basename = os.path.basename(filename)
slot_iq = await self.request_slot(self.upload_service, basename, size,
content_type, ifrom, timeout,
+ callback=callback,
timeout_callback=timeout_callback)
slot = slot_iq['http_upload_slot']