const char *ERR_reason_error_string(unsigned long e) { ERR_STRING_DATA d, *p = NULL; unsigned long l, r; CRYPTO_THREAD_run_once(&err_string_init, do_err_strings_init); l = ERR_GET_LIB(e); r = ERR_GET_REASON(e); d.error = ERR_PACK(l, 0, r); p = int_err_get_item(&d); if (!p) { d.error = ERR_PACK(0, 0, r); p = int_err_get_item(&d); } return ((p == NULL) ? NULL : p->string); }
const char *ERR_lib_error_string(unsigned long e) { ERR_STRING_DATA d, *p; unsigned long l; CRYPTO_THREAD_run_once(&err_string_init, do_err_strings_init); l = ERR_GET_LIB(e); d.error = ERR_PACK(l, 0, 0); p = int_err_get_item(&d); return ((p == NULL) ? NULL : p->string); }
const char *ERR_lib_error_string(unsigned long e) { ERR_STRING_DATA d, *p; unsigned long l; if (!RUN_ONCE(&err_string_init, do_err_strings_init)) { return NULL; } l = ERR_GET_LIB(e); d.error = ERR_PACK(l, 0, 0); p = int_err_get_item(&d); return ((p == NULL) ? NULL : p->string); }