diff --git a/src/htmltextview.py b/src/htmltextview.py index 51066b6f2..acb2a9a00 100644 --- a/src/htmltextview.py +++ b/src/htmltextview.py @@ -693,7 +693,7 @@ class HtmlHandler(xml.sax.handler.ContentHandler): else: # Wait 10ms between each byte try: - f.fp._sock.fp._sock.settimeout(0.01) + f.fp._sock.fp._sock.settimeout(0.1) except: pass # Max image size = 2 MB (to try to prevent DoS) in Max 3s @@ -703,25 +703,44 @@ class HtmlHandler(xml.sax.handler.ContentHandler): if time.time() > deadline: gajim.log.debug(str('Timeout loading image %s ' % \ attrs['src'] + ex)) - pixbuf = None - alt = attrs.get('alt', 'Timeout loading image') + mem = '' + alt = attrs.get('alt', '') + if alt: + alt += '\n' + alt += _('Timeout loading image') + break + try: + temp = f.read(100) + except socket.timeout, ex: + gajim.log.debug('Timeout loading image %s ' % attrs['src'] + \ + str(ex)) + mem = '' + alt = attrs.get('alt', '') + if alt: + alt += '\n' + alt += _('Timeout loading image') break - temp = f.read(100) if temp: mem += temp else: break if len(mem) > 2*1024*1024: - alt = attrs.get('alt', 'Image is too big') + alt = attrs.get('alt', '') + if alt: + alt += '\n' + alt += _('Image is too big') break - # Caveat: GdkPixbuf is known not to be safe to load - # images from network... this program is now potentially - # hackable ;) - loader = gtk.gdk.PixbufLoader() - loader.write(mem) - loader.close() - pixbuf = loader.get_pixbuf() + if mem: + # Caveat: GdkPixbuf is known not to be safe to load + # images from network... this program is now potentially + # hackable ;) + loader = gtk.gdk.PixbufLoader() + loader.write(mem) + loader.close() + pixbuf = loader.get_pixbuf() + else: + pixbuf = None if pixbuf is not None: tags = self._get_style_tags() if tags: