[PYTHON-CRYPTO] m2crypto blocking all other threads

Heikki Toivonen heikki at OSAFOUNDATION.ORG
Thu Sep 22 06:51:43 CEST 2005


Rune Froysa wrote:
> I'm using m2crypto for a SSL-based xmlrpc service.  This service is
> frequently DOSed by what appears to be a bug in m2crypto: it blocks

It seems like this is user error. In a multithreaded application you
need to initialize M2Crypto for threading. With those changes your
sample works for me. See below:

> #!/usr/bin/env python
> import sys, time, threading

from M2Crypto import threading as m2threading

> demo_dir='/tmp/m2crypto-0.15/demo/ssl'
> sys.path.insert(0, demo_dir)
> 
> from https_srv import *
> 
> def my_wt():
>     while True:
>         time.sleep(0.5)
>         print "test"
> 
> if __name__ == '__main__':

      m2threading.init()

>     threading.Thread(target=my_wt).start()
>     ctx = init_context('sslv23', '%s/server.pem' % demo_dir, '%s/ca.pem' % demo_dir, 
>                        SSL.verify_none)
>     httpsd = HTTPS_Server(('', 9443), HTTP_Handler, ctx)
>     httpsd.serve_forever()

      m2threading.cleanup()



> BTW: under 0.15, the https_srv.py complains from line 126 -> SSL/Context.py: 118:
> TypeError: ssl_ctx_load_verify_locations() argument 3 must be string, not None

This does not happen for me.


Please note that I did find a bug in Connection.py regarding handling of
post connection checks and just fixed them.

-- 
  Heikki Toivonen

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 253 bytes
Desc: OpenPGP digital signature
URL: <http://mail.python.org/pipermail/python-crypto/attachments/20050921/f74b25c8/attachment.pgp>


More information about the python-crypto mailing list