From 992f6761b90a2977cbc0ea59743bec5bfde2a6fa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Philipp=20H=C3=B6rist?= <forenjunkie@chello.at>
Date: Tue, 10 Jan 2017 17:42:49 +0100
Subject: [PATCH] [httpupload] Dont crash on error in upload thread

---
 httpupload/httpupload.py | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/httpupload/httpupload.py b/httpupload/httpupload.py
index a917f4c5..5c997786 100644
--- a/httpupload/httpupload.py
+++ b/httpupload/httpupload.py
@@ -378,8 +378,12 @@ class Base(object):
                 return
 
             def upload_complete(response_code):
-                if response_code == 0:
-                    return      # Upload was aborted
+                if isinstance(response_code, str):
+                    # We got a error Message
+                    ErrorDialog(
+                        _('Error'), response_code,
+                        transient_for=self.chat_control.parent_win.window)
+                    return
                 if response_code >= 200 and response_code < 300:
                     log.info("Upload completed successfully")
                     xhtml = None
@@ -475,15 +479,10 @@ class Base(object):
                     transfer = urllib2.urlopen(request, timeout=30)
                     log.debug("urllib2 upload request done, response code: " + str(transfer.getcode()))
                     return transfer.getcode()
-                except UploadAbortedException:
-                    log.info("Upload aborted")
-                except:
-                    progress_window.close_dialog()
-                    ErrorDialog(_('Could not upload file'),
-                                _('Got unexpected exception while uploading file (see error log for more information)'),
-                                transient_for=self.chat_control.parent_win.window)
-                    raise       # fill error log with useful information
-                return 0
+                except Exception as error:
+                    gobject.idle_add(progress_window.close_dialog)
+                    log.exception('Error')
+                return str(error)
 
             log.info("Uploading file to '%s'..." % str(put.getData()))
             log.info("Please download from '%s' later..." % str(get.getData()))
-- 
GitLab