]> granicus.if.org Git - python/commitdiff
Make socket.sslerror a subclass of socket.error .
authorBrett Cannon <bcannon@gmail.com>
Tue, 23 Mar 2004 23:16:54 +0000 (23:16 +0000)
committerBrett Cannon <bcannon@gmail.com>
Tue, 23 Mar 2004 23:16:54 +0000 (23:16 +0000)
Added socket.error to the socket module's C API.

Misc/NEWS
Modules/_ssl.c
Modules/socketmodule.c
Modules/socketmodule.h

index be6984b4fd96d912c75236f8d7eafd543e8f86b7..afd8ea617c447533a85140713fa614cc86c5981d 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -195,6 +195,9 @@ Core and builtins
 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
   nl_langinfo(ERA) caused by GNU libc's illegal NULL return is fixed.
 
index 5fcf84ca2e9e97d505ae8d8d81a5f18451ced715..bee10400cd52f0d0cc1a8464c0214e6146cc46b6 100644 (file)
@@ -609,7 +609,9 @@ init_ssl(void)
        SSLeay_add_ssl_algorithms();
 
        /* Add symbols to module dict */
-       PySSLErrorObject = PyErr_NewException("socket.sslerror", NULL, NULL);
+       PySSLErrorObject = PyErr_NewException("socket.sslerror",
+                                               PySocketModule.error,
+                                               NULL);
        if (PySSLErrorObject == NULL)
                return;
        PyDict_SetItemString(d, "sslerror", PySSLErrorObject);
index 818d169da5b7f02568f05d3dfdead4ff2ab10b54..7beb1cfa869157e805b655e1abd9b0dbbfbb7b05 100644 (file)
@@ -3559,6 +3559,7 @@ static
 PySocketModule_APIObject PySocketModuleAPI =
 {
        &sock_type,
+        NULL
 };
 
 
@@ -3596,6 +3597,7 @@ init_socket(void)
        socket_error = PyErr_NewException("socket.error", NULL, NULL);
        if (socket_error == NULL)
                return;
+        PySocketModuleAPI.error = socket_error;
        Py_INCREF(socket_error);
        PyModule_AddObject(m, "error", socket_error);
        socket_herror = PyErr_NewException("socket.herror",
index e81b5b40e72b1f1d1b83cd221db21496b688888c..601c2820a59985b9b9e20ff777d1f4868b81dfae 100644 (file)
@@ -160,6 +160,7 @@ typedef struct {
 /* C API for usage by other Python modules */
 typedef struct {
        PyTypeObject *Sock_Type;
+        PyObject *error;
 } PySocketModule_APIObject;
 
 /* XXX The net effect of the following appears to be to define a function