diff options
author | Jean-Paul Calderone <exarkun@divmod.com> | 2011-04-22 18:38:16 -0400 |
---|---|---|
committer | Jean-Paul Calderone <exarkun@divmod.com> | 2011-04-22 18:38:16 -0400 |
commit | 5163f57e6cb413787b4eda62eb338e3fe471d11d (patch) | |
tree | a3d3148d4ed62b2a878aceb93e01097c8c02336e /OpenSSL/crypto | |
parent | 9ce9afb4ca1a0f4a763e2a8f677e469e2815f320 (diff) | |
download | pyopenssl-5163f57e6cb413787b4eda62eb338e3fe471d11d.tar.gz |
Compatibility with CPython 2.5 though CPython 3.2
Diffstat (limited to 'OpenSSL/crypto')
-rw-r--r-- | OpenSSL/crypto/x509name.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/OpenSSL/crypto/x509name.c b/OpenSSL/crypto/x509name.c index 4ff2c34..a62c957 100644 --- a/OpenSSL/crypto/x509name.c +++ b/OpenSSL/crypto/x509name.c @@ -202,13 +202,19 @@ crypto_X509Name_setattro(crypto_X509NameObj *self, PyObject *nameobj, PyObject * char *buffer; char *name; - if (!PyString_CheckExact(nameobj) || !(name = PyString_AsString(nameobj))) { + if (!PyBytes_CheckExact(nameobj) && !PyUnicode_CheckExact(nameobj)) { PyErr_Format(PyExc_TypeError, "attribute name must be string, not '%.200s'", Py_TYPE(nameobj)->tp_name); return -1; } +#ifdef PY3 + name = PyBytes_AsString(PyUnicode_AsASCIIString(nameobj)); +#else + name = PyBytes_AsString(nameobj); +#endif + if ((nid = OBJ_txt2nid(name)) == NID_undef) { /* Just like the case in the getattr function */ |