diff options
-rw-r--r-- | Modules/_ssl.c | 8 | ||||
-rw-r--r-- | Modules/socketmodule.c | 11 |
2 files changed, 12 insertions, 7 deletions
diff --git a/Modules/_ssl.c b/Modules/_ssl.c index 2732416..c21c0f8 100644 --- a/Modules/_ssl.c +++ b/Modules/_ssl.c @@ -113,6 +113,10 @@ struct py_ssl_library_code { # define HAVE_ALPN #endif +#ifndef INVALID_SOCKET /* MS defines this */ +#define INVALID_SOCKET (-1) +#endif + enum py_ssl_error { /* these mirror ssl.h */ PY_SSL_ERROR_NONE, @@ -1699,7 +1703,7 @@ PySSL_select(PySocketSockObject *s, int writing, _PyTime_t timeout) } /* Guard against closed socket */ - if (s->sock_fd < 0) + if (s->sock_fd == INVALID_SOCKET) return SOCKET_HAS_BEEN_CLOSED; /* Prefer poll, if available, since you can poll() any fd @@ -2023,7 +2027,7 @@ _ssl__SSLSocket_shutdown_impl(PySSLSocket *self) if (sock != NULL) { /* Guard against closed socket */ - if ((((PyObject*)sock) == Py_None) || (sock->sock_fd < 0)) { + if ((((PyObject*)sock) == Py_None) || (sock->sock_fd == INVALID_SOCKET)) { _setSSLError("Underlying socket connection gone", PY_SSL_ERROR_NO_SOCKET, __FILE__, __LINE__); return NULL; diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index 8e804af..b34981c 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -2568,8 +2568,9 @@ sock_close(PySocketSockObject *s) * and http://linux.derkeiler.com/Mailing-Lists/Kernel/2005-09/3000.html * for more details. */ - if ((fd = s->sock_fd) != -1) { - s->sock_fd = -1; + fd = s->sock_fd; + if (fd != INVALID_SOCKET) { + s->sock_fd = INVALID_SOCKET; Py_BEGIN_ALLOW_THREADS (void) SOCKETCLOSE(fd); Py_END_ALLOW_THREADS @@ -2587,7 +2588,7 @@ static PyObject * sock_detach(PySocketSockObject *s) { SOCKET_T fd = s->sock_fd; - s->sock_fd = -1; + s->sock_fd = INVALID_SOCKET; return PyLong_FromSocket_t(fd); } @@ -4165,7 +4166,7 @@ static PyGetSetDef sock_getsetlist[] = { static void sock_dealloc(PySocketSockObject *s) { - if (s->sock_fd != -1) { + if (s->sock_fd != INVALID_SOCKET) { PyObject *exc, *val, *tb; Py_ssize_t old_refcount = Py_REFCNT(s); ++Py_REFCNT(s); @@ -4221,7 +4222,7 @@ sock_new(PyTypeObject *type, PyObject *args, PyObject *kwds) new = type->tp_alloc(type, 0); if (new != NULL) { - ((PySocketSockObject *)new)->sock_fd = -1; + ((PySocketSockObject *)new)->sock_fd = INVALID_SOCKET; ((PySocketSockObject *)new)->sock_timeout = _PyTime_FromSeconds(-1); ((PySocketSockObject *)new)->errorhandler = &set_error; } |