Commit 06c34798 authored by Brett Cannon's avatar Brett Cannon

Make socket.sslerror a subclass of socket.error .

Added socket.error to the socket module's C API.
parent fee6f33e
...@@ -195,6 +195,9 @@ Core and builtins ...@@ -195,6 +195,9 @@ Core and builtins
Extension modules Extension modules
----------------- -----------------
- socket.sslerror is now a subclass of socket.error . Also added
socket.error to the socket module's C API.
- Bug #920575: A problem that _locale module segfaults on - Bug #920575: A problem that _locale module segfaults on
nl_langinfo(ERA) caused by GNU libc's illegal NULL return is fixed. nl_langinfo(ERA) caused by GNU libc's illegal NULL return is fixed.
......
...@@ -609,7 +609,9 @@ init_ssl(void) ...@@ -609,7 +609,9 @@ init_ssl(void)
SSLeay_add_ssl_algorithms(); SSLeay_add_ssl_algorithms();
/* Add symbols to module dict */ /* Add symbols to module dict */
PySSLErrorObject = PyErr_NewException("socket.sslerror", NULL, NULL); PySSLErrorObject = PyErr_NewException("socket.sslerror",
PySocketModule.error,
NULL);
if (PySSLErrorObject == NULL) if (PySSLErrorObject == NULL)
return; return;
PyDict_SetItemString(d, "sslerror", PySSLErrorObject); PyDict_SetItemString(d, "sslerror", PySSLErrorObject);
......
...@@ -3559,6 +3559,7 @@ static ...@@ -3559,6 +3559,7 @@ static
PySocketModule_APIObject PySocketModuleAPI = PySocketModule_APIObject PySocketModuleAPI =
{ {
&sock_type, &sock_type,
NULL
}; };
...@@ -3596,6 +3597,7 @@ init_socket(void) ...@@ -3596,6 +3597,7 @@ init_socket(void)
socket_error = PyErr_NewException("socket.error", NULL, NULL); socket_error = PyErr_NewException("socket.error", NULL, NULL);
if (socket_error == NULL) if (socket_error == NULL)
return; return;
PySocketModuleAPI.error = socket_error;
Py_INCREF(socket_error); Py_INCREF(socket_error);
PyModule_AddObject(m, "error", socket_error); PyModule_AddObject(m, "error", socket_error);
socket_herror = PyErr_NewException("socket.herror", socket_herror = PyErr_NewException("socket.herror",
......
...@@ -160,6 +160,7 @@ typedef struct { ...@@ -160,6 +160,7 @@ typedef struct {
/* C API for usage by other Python modules */ /* C API for usage by other Python modules */
typedef struct { typedef struct {
PyTypeObject *Sock_Type; PyTypeObject *Sock_Type;
PyObject *error;
} PySocketModule_APIObject; } PySocketModule_APIObject;
/* XXX The net effect of the following appears to be to define a function /* XXX The net effect of the following appears to be to define a function
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment