Auto-detect hstrerror. Raise socket.herror in PyH_Error. Register the three
exception classes in the module dictionary.
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index e6a9ec8..41dd2c4 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -431,7 +431,7 @@
v = Py_BuildValue("(is)", h_error, "host not found");
#endif
if (v != NULL) {
- PyErr_SetObject(PyGAI_Error, v);
+ PyErr_SetObject(PyH_Error, v);
Py_DECREF(v);
}
@@ -2915,13 +2915,16 @@
PySocket_Error = PyErr_NewException("socket.error", NULL, NULL);
if (PySocket_Error == NULL)
return;
+ PyDict_SetItemString(d, "error", PySocket_Error);
PyH_Error = PyErr_NewException("socket.herror", PySocket_Error, NULL);
if (PyH_Error == NULL)
return;
+ PyDict_SetItemString(d, "herror", PyH_Error);
PyGAI_Error = PyErr_NewException("socket.gaierror", PySocket_Error,
NULL);
if (PyGAI_Error == NULL)
return;
+ PyDict_SetItemString(d, "gaierror", PyGAI_Error);
#ifdef USE_SSL
SSL_load_error_strings();
SSLeay_add_ssl_algorithms();
@@ -2934,7 +2937,6 @@
(PyObject *)&SSL_Type) != 0)
return;
#endif /* USE_SSL */
- PyDict_SetItemString(d, "error", PySocket_Error);
PySocketSock_Type.ob_type = &PyType_Type;
PySocketSock_Type.tp_doc = sockettype_doc;
Py_INCREF(&PySocketSock_Type);