fix module init return values and type initializers and unicode/bytes conversions
diff --git a/OpenSSL/ssl/context.c b/OpenSSL/ssl/context.c
index 902d1e4..a30b51f 100644
--- a/OpenSSL/ssl/context.c
+++ b/OpenSSL/ssl/context.c
@@ -368,8 +368,16 @@
Py_DECREF(type);
return NULL;
}
+
+#ifdef PY3
+ {
+ PyObject* asciiname = PyUnicode_AsASCIIString(name_attr);
+ Py_DECREF(name_attr);
+ name_attr = asciiname;
+ }
+#endif
right_name = (PyUnicode_CheckExact(name_attr) &&
- strcmp(name, _PyUnicode_AsString(name_attr)) == 0);
+ strcmp(name, PyBytes_AsString(name_attr)) == 0);
Py_DECREF(name_attr);
res = (PyTypeObject *)type;
if (!right_name || res->tp_basicsize != objsize) {
@@ -1243,7 +1251,7 @@
PyTypeObject ssl_Context_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ PyOpenSSL_HEAD_INIT(&PyType_Type, 0)
"OpenSSL.SSL.Context",
sizeof(ssl_ContextObj),
0,