2016-04-26 1 views
0

experts.centos 7.2 python 2.7.5 WSGIServer ne peut pas fournir l'argument keyfile

Je crée un serveur python en utilisant ssl. Donc, j'utilise gevent.pywsgi.WSGIServer. Mais quand j'essaye de livrer keyfile .. ce n'est pas livrer à _ssl.c qui est la bibliothèque de c pour python.

Mon code est ci-dessous ..

rack.append(WSGIServer(('', conf.ssl_port), application, backlog=2500, 
        keyfile=conf.keyfile, certfile=conf.certfile)) 

Certes, keyfile a des valeurs propres. mais lorsqu'elle est atteinte au code de _ssl.c

load_cert_chain_args

sur cette PyString_Check de fonction pour argumnet keyfile fait une erreur de segmentation. (Vous pouvez confirmer /Python-2.7.5/Module/_ssl.c + ligne 2695). Lorsque je confirme l'argument keyfile de load_cert_chain_args, je peux voir ce journal.

= keyfile keyfile @ entrée = (inconnue à 0xd231d4 à distance)

mais quand je confirme la valeur de cette mémoire.

x/s 0xd231d4L: « chaîne correcte est ici »

Je ne sais pas pourquoi cette marque .. mais dans la mémoire il y a une valeur appropriée sur keyfile.

si c'est un problème qui peut être pagetable .. peut-être que je ne peux pas voir la valeur keyfile en utilisant gdb.

mais je ne sais pas pourquoi de load_cert_chain de _ssl.c fait faute Segmemtation (PyString_Check (keyfile)).

et je ne sais pas bien que je puisse voir la valeur dans la mémoire pourquoi gdb reste inconnue au journal distant. J'utilise Python 2.7.5 sur Centos 7 et j'utilise python-gevent 1.0-2.el7).

Thx.

+0

et si je vois le fichier de clés en utilisant la commande d'impression sur gdb ..Je ne peux pas voir comme "print keyfile => $ 1 = . pourquoi? si c'est un problème pagetable je pense qu'il est impossible de voir en utilisant la commande x/s ... – Levi

Répondre

0

Enfin, je trouve la réponse.

quand je Python 2.7.5-34 qui est installé dans CentOS 7.2,

qui offrent chaîne pur non comme PyObject à _ssl.c python c module. Pour résoudre mon problème, le lien ci-dessous est vraiment utile.

https://github.com/gevent/gevent/issues/702

Merci!