Mercurial > cpython-lru_cache-weakref
diff Modules/socketmodule.c @ 12436:dff7b26116de legacy-trunk
Use an explicit macro SOCKETCLOSE which expands to closesocket (on
Windows), soclose (on OS2), or to close (everywhere else).
Hopefully this fixes a new compilation error that I suddenly get on
Windows because the macro definition for close -> closesocket
apparently was done before including io.h, which contains a prototype
for close. (No idea why this wasn't an error before.)
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Fri, 21 Apr 2000 20:33:00 +0000 |
| parents | 57f34e162e67 |
| children | a3e1fecb43c6 |
line wrap: on
line diff
--- a/Modules/socketmodule.c Fri Apr 21 18:54:45 2000 +0000 +++ b/Modules/socketmodule.c Fri Apr 21 20:33:00 2000 +0000 @@ -214,17 +214,21 @@ #if defined(MS_WINDOWS) || defined(__BEOS__) /* BeOS suffers from the same socket dichotomy as Win32... - [cjh] */ /* seem to be a few differences in the API */ -#define close closesocket +#define SOCKETCLOSE closesocket #define NO_DUP /* Actually it exists on NT 3.5, but what the heck... */ #define FORCE_ANSI_FUNC_DEFS #endif #if defined(PYOS_OS2) -#define close soclose +#define SOCKETCLOSE soclose #define NO_DUP /* Sockets are Not Actual File Handles under OS/2 */ #define FORCE_ANSI_FUNC_DEFS #endif +#ifndef SOCKETCLOSE +#define SOCKETCLOSE close +#endif + #ifdef FORCE_ANSI_FUNC_DEFS #define BUILD_FUNC_DEF_1( fnname, arg1type, arg1name ) \ fnname( arg1type arg1name ) @@ -682,7 +686,7 @@ s->sock_type, s->sock_proto); if (sock == NULL) { - close(newfd); + SOCKETCLOSE(newfd); goto finally; } if (!(addr = makesockaddr((struct sockaddr *) addrbuf, addrlen))) @@ -889,7 +893,7 @@ return NULL; if (s->sock_fd != -1) { Py_BEGIN_ALLOW_THREADS - (void) close(s->sock_fd); + (void) SOCKETCLOSE(s->sock_fd); Py_END_ALLOW_THREADS } s->sock_fd = -1; @@ -988,7 +992,7 @@ s->sock_type, s->sock_proto); if (sock == NULL) - close(newfd); + SOCKETCLOSE(newfd); return sock; } @@ -1112,7 +1116,7 @@ #endif { if (fd >= 0) - close(fd); + SOCKETCLOSE(fd); return PySocket_Err(); } f = PyFile_FromFile(fp, "<socket>", mode, fclose); @@ -1357,7 +1361,7 @@ BUILD_FUNC_DEF_1(PySocketSock_dealloc,PySocketSockObject *,s) { if (s->sock_fd != -1) - (void) close(s->sock_fd); + (void) SOCKETCLOSE(s->sock_fd); PyMem_DEL(s); } @@ -1725,7 +1729,7 @@ /* If the object can't be created, don't forget to close the file descriptor again! */ if (s == NULL) - (void) close(fd); + (void) SOCKETCLOSE(fd); /* From now on, ignore SIGPIPE and let the error checking do the work. */ #ifdef SIGPIPE @@ -1944,8 +1948,8 @@ PyString_FromString("newSSLObject error")); return NULL; } - memset(self->server, NULL, sizeof(char) * 256); - memset(self->issuer, NULL, sizeof(char) * 256); + memset(self->server, '\0', sizeof(char) * 256); + memset(self->issuer, '\0', sizeof(char) * 256); self->x_attr = PyDict_New(); self->ctx = SSL_CTX_new(SSLv23_method()); /* Set up context */
