mirror of
https://github.com/python/cpython
synced 2024-09-16 01:13:03 +00:00
bpo-46541: remove usage of _Py_IDENTIFIER from _ssl module (GH-31599)
This commit is contained in:
parent
9204bb72a2
commit
e91b0a7139
|
@ -22,7 +22,6 @@
|
||||||
#define OPENSSL_NO_DEPRECATED 1
|
#define OPENSSL_NO_DEPRECATED 1
|
||||||
|
|
||||||
#define PY_SSIZE_T_CLEAN
|
#define PY_SSIZE_T_CLEAN
|
||||||
#define NEEDS_PY_IDENTIFIER
|
|
||||||
|
|
||||||
#include "Python.h"
|
#include "Python.h"
|
||||||
|
|
||||||
|
@ -447,10 +446,6 @@ fill_and_set_sslerror(_sslmodulestate *state,
|
||||||
PyObject *err_value = NULL, *reason_obj = NULL, *lib_obj = NULL;
|
PyObject *err_value = NULL, *reason_obj = NULL, *lib_obj = NULL;
|
||||||
PyObject *verify_obj = NULL, *verify_code_obj = NULL;
|
PyObject *verify_obj = NULL, *verify_code_obj = NULL;
|
||||||
PyObject *init_value, *msg, *key;
|
PyObject *init_value, *msg, *key;
|
||||||
_Py_IDENTIFIER(reason);
|
|
||||||
_Py_IDENTIFIER(library);
|
|
||||||
_Py_IDENTIFIER(verify_message);
|
|
||||||
_Py_IDENTIFIER(verify_code);
|
|
||||||
|
|
||||||
if (errcode != 0) {
|
if (errcode != 0) {
|
||||||
int lib, reason;
|
int lib, reason;
|
||||||
|
@ -544,20 +539,20 @@ fill_and_set_sslerror(_sslmodulestate *state,
|
||||||
|
|
||||||
if (reason_obj == NULL)
|
if (reason_obj == NULL)
|
||||||
reason_obj = Py_None;
|
reason_obj = Py_None;
|
||||||
if (_PyObject_SetAttrId(err_value, &PyId_reason, reason_obj))
|
if (PyObject_SetAttr(err_value, state->str_reason, reason_obj))
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
if (lib_obj == NULL)
|
if (lib_obj == NULL)
|
||||||
lib_obj = Py_None;
|
lib_obj = Py_None;
|
||||||
if (_PyObject_SetAttrId(err_value, &PyId_library, lib_obj))
|
if (PyObject_SetAttr(err_value, state->str_library, lib_obj))
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
if ((sslsock != NULL) && (type == state->PySSLCertVerificationErrorObject)) {
|
if ((sslsock != NULL) && (type == state->PySSLCertVerificationErrorObject)) {
|
||||||
/* Only set verify code / message for SSLCertVerificationError */
|
/* Only set verify code / message for SSLCertVerificationError */
|
||||||
if (_PyObject_SetAttrId(err_value, &PyId_verify_code,
|
if (PyObject_SetAttr(err_value, state->str_verify_code,
|
||||||
verify_code_obj))
|
verify_code_obj))
|
||||||
goto fail;
|
goto fail;
|
||||||
if (_PyObject_SetAttrId(err_value, &PyId_verify_message, verify_obj))
|
if (PyObject_SetAttr(err_value, state->str_verify_message, verify_obj))
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6158,6 +6153,29 @@ sslmodule_init_types(PyObject *module)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
sslmodule_init_strings(PyObject *module)
|
||||||
|
{
|
||||||
|
_sslmodulestate *state = get_ssl_state(module);
|
||||||
|
state->str_library = PyUnicode_InternFromString("library");
|
||||||
|
if (state->str_library == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
state->str_reason = PyUnicode_InternFromString("reason");
|
||||||
|
if (state->str_reason == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
state->str_verify_message = PyUnicode_InternFromString("verify_message");
|
||||||
|
if (state->str_verify_message == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
state->str_verify_code = PyUnicode_InternFromString("verify_code");
|
||||||
|
if (state->str_verify_code == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static PyModuleDef_Slot sslmodule_slots[] = {
|
static PyModuleDef_Slot sslmodule_slots[] = {
|
||||||
{Py_mod_exec, sslmodule_init_types},
|
{Py_mod_exec, sslmodule_init_types},
|
||||||
{Py_mod_exec, sslmodule_init_exceptions},
|
{Py_mod_exec, sslmodule_init_exceptions},
|
||||||
|
@ -6165,6 +6183,7 @@ static PyModuleDef_Slot sslmodule_slots[] = {
|
||||||
{Py_mod_exec, sslmodule_init_errorcodes},
|
{Py_mod_exec, sslmodule_init_errorcodes},
|
||||||
{Py_mod_exec, sslmodule_init_constants},
|
{Py_mod_exec, sslmodule_init_constants},
|
||||||
{Py_mod_exec, sslmodule_init_versioninfo},
|
{Py_mod_exec, sslmodule_init_versioninfo},
|
||||||
|
{Py_mod_exec, sslmodule_init_strings},
|
||||||
{0, NULL}
|
{0, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -6214,7 +6233,10 @@ sslmodule_clear(PyObject *m)
|
||||||
Py_CLEAR(state->err_names_to_codes);
|
Py_CLEAR(state->err_names_to_codes);
|
||||||
Py_CLEAR(state->lib_codes_to_names);
|
Py_CLEAR(state->lib_codes_to_names);
|
||||||
Py_CLEAR(state->Sock_Type);
|
Py_CLEAR(state->Sock_Type);
|
||||||
|
Py_CLEAR(state->str_library);
|
||||||
|
Py_CLEAR(state->str_reason);
|
||||||
|
Py_CLEAR(state->str_verify_code);
|
||||||
|
Py_CLEAR(state->str_verify_message);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,11 @@ typedef struct {
|
||||||
PyObject *lib_codes_to_names;
|
PyObject *lib_codes_to_names;
|
||||||
/* socket type from module CAPI */
|
/* socket type from module CAPI */
|
||||||
PyTypeObject *Sock_Type;
|
PyTypeObject *Sock_Type;
|
||||||
|
/* Interned strings */
|
||||||
|
PyObject *str_library;
|
||||||
|
PyObject *str_reason;
|
||||||
|
PyObject *str_verify_code;
|
||||||
|
PyObject *str_verify_message;
|
||||||
} _sslmodulestate;
|
} _sslmodulestate;
|
||||||
|
|
||||||
static struct PyModuleDef _sslmodule_def;
|
static struct PyModuleDef _sslmodule_def;
|
||||||
|
|
Loading…
Reference in a new issue