diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2003-11-27 19:40:22 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2003-11-27 19:40:22 (GMT) |
commit | 94681fc4a35be6a87ceae0daeb687a711699806b (patch) | |
tree | c1ae89e6662e3756a1dbccdbf4a071bb325dd814 | |
parent | 04bf7241e4d936dc1438880f3d96c9faf2eea208 (diff) | |
download | cpython-94681fc4a35be6a87ceae0daeb687a711699806b.zip cpython-94681fc4a35be6a87ceae0daeb687a711699806b.tar.gz cpython-94681fc4a35be6a87ceae0daeb687a711699806b.tar.bz2 |
Patch #849595: Add socket.shutdown() constants.
-rw-r--r-- | Doc/lib/libsocket.tex | 4 | ||||
-rw-r--r-- | Misc/NEWS | 2 | ||||
-rw-r--r-- | Modules/socketmodule.c | 27 |
3 files changed, 29 insertions, 4 deletions
diff --git a/Doc/lib/libsocket.tex b/Doc/lib/libsocket.tex index de2f51d..09c4c8d 100644 --- a/Doc/lib/libsocket.tex +++ b/Doc/lib/libsocket.tex @@ -638,8 +638,8 @@ structures as strings). \begin{methoddesc}[socket]{shutdown}{how} Shut down one or both halves of the connection. If \var{how} is -\code{0}, further receives are disallowed. If \var{how} is \code{1}, -further sends are disallowed. If \var{how} is \code{2}, further sends +\constant{SHUT_RD}, further receives are disallowed. If \var{how} is \constant{SHUT_WR}, +further sends are disallowed. If \var{how} is \constant{SHUT_RDWR}, further sends and receives are disallowed. \end{methoddesc} @@ -95,6 +95,8 @@ Core and builtins Extension modules ----------------- +- socket.SHUT_{RD,WR,RDWR} was added. + - os.getsid was added. - The pwd module incorrectly advertised its struct type as diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index f93da4e..6ca855f 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -2097,8 +2097,8 @@ sock_shutdown(PySocketSockObject *s, PyObject *arg) PyDoc_STRVAR(shutdown_doc, "shutdown(flag)\n\ \n\ -Shut down the reading side of the socket (flag == 0), the writing side\n\ -of the socket (flag == 1), or both ends (flag == 2)."); +Shut down the reading side of the socket (flag == SHUT_RD), the writing side\n\ +of the socket (flag == SHUT_WR), or both ends (flag == SHUT_RDWR)."); /* List of methods for socket objects */ @@ -4101,6 +4101,29 @@ init_socket(void) PyModule_AddIntConstant(m, "NI_DGRAM", NI_DGRAM); #endif + /* shutdown() parameters */ +#ifdef SHUT_RD + PyModule_AddIntConstant(m, "SHUT_RD", SHUT_RD); +#elif defined(SD_RECEIVE) + PyModule_AddIntConstant(m, "SHUT_RD", SD_RECEIVE); +#else + PyModule_AddIntConstant(m, "SHUT_RD", 0); +#endif +#ifdef SHUT_WR + PyModule_AddIntConstant(m, "SHUT_WR", SHUT_WR); +#elif defined(SD_SEND) + PyModule_AddIntConstant(m, "SHUT_WR", SD_SEND); +#else + PyModule_AddIntConstant(m, "SHUT_WR", 1); +#endif +#ifdef SHUT_RDWR + PyModule_AddIntConstant(m, "SHUT_RDWR", SHUT_RDWR); +#elif defined(SD_BOTH) + PyModule_AddIntConstant(m, "SHUT_RDWR", SD_BOTH); +#else + PyModule_AddIntConstant(m, "SHUT_RDWR", 2); +#endif + /* Initialize gethostbyname lock */ #if defined(USE_GETHOSTBYNAME_LOCK) || defined(USE_GETADDRINFO_LOCK) netdb_lock = PyThread_allocate_lock(); |