[Gajim-devel] http_upload issue
public at polch.org
public at polch.org
Sun Nov 13 15:57:05 CET 2016
Hey guys -
unfortunately I was not able to place following ticket on the ticket
system. Hopefully I can get help here.
Version: Gajim 0.16.6
OS: Linux / Windows 7
Server: ejabberd
When uploading file with http_upload I get following error:
Exception in thread Thread-61:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/share/gajim/src/gui_interface.py", line 3117, in
thread_function
output = func(*func_args)
File
"/home/opolch/.local/share/gajim/plugins/httpupload/httpupload.py", line
488, in uploader
transfer = urllib2.urlopen(request, timeout=30)
File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 431, in open
response = self._open(req, data)
File "/usr/lib/python2.7/urllib2.py", line 449, in _open
'_open', req)
File "/usr/lib/python2.7/urllib2.py", line 409, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 1240, in https_open
context=self._context)
File "/usr/lib/python2.7/urllib2.py", line 1197, in do_open
raise URLError(err)
URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate
verify failed (_ssl.c:590)>
After changing function def_uploader(): as shown below it works. This
means to not verify the certificate anymore. Is that the recommended way
for a unsigned cert?
def uploader():
progress_messages.put(_('Uploading file via HTTP...'))
try:
#################################
# SSL_CERTIFICATE_ERROR fix
context = ssl.create_default_context()
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE
#################################
headers = {'User-Agent': 'Gajim %s' % gajim.version,
'Content-Type': mime_type}
request =
urllib2.Request(put.getData().encode("utf-8"), data=data, headers=headers)
request.get_method = lambda: 'PUT'
log.debug("opening urllib2 upload request...")
transfer = urllib2.urlopen(request, timeout=30,
context=context)
#transfer = urllib2.urlopen(request, timeout=30)
log.debug("urllib2 upload request done, response
code: " + str(transfer.getcode()))
return transfer.getcode()
Here is the ejabberd conf:
module: ejabberd_http
port: 5443
tls: true
certfile: "/etc/ejabberd/ejabberd.pem"
request_handlers:
"": mod_http_upload
Regards,
Marcus
More information about the Gajim-devel
mailing list