mirror of
https://github.com/python/cpython.git
synced 2025-08-30 05:35:08 +00:00
Issue #8524: Add a forget() method to socket objects, so as to put the
socket into the closed state without closing the underlying file descriptor.
This commit is contained in:
parent
ba8a98600e
commit
e43f9d0ed6
6 changed files with 50 additions and 3 deletions
|
@ -1869,6 +1869,21 @@ PyDoc_STRVAR(close_doc,
|
|||
\n\
|
||||
Close the socket. It cannot be used after this call.");
|
||||
|
||||
static PyObject *
|
||||
sock_forget(PySocketSockObject *s)
|
||||
{
|
||||
s->sock_fd = -1;
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(forget_doc,
|
||||
"forget()\n\
|
||||
\n\
|
||||
Close the socket object without closing the underlying file descriptor.\
|
||||
The object cannot be used after this call, but the file descriptor\
|
||||
can be reused for other purposes.");
|
||||
|
||||
static int
|
||||
internal_connect(PySocketSockObject *s, struct sockaddr *addr, int addrlen,
|
||||
int *timeoutp)
|
||||
|
@ -2759,6 +2774,8 @@ static PyMethodDef sock_methods[] = {
|
|||
connect_ex_doc},
|
||||
{"fileno", (PyCFunction)sock_fileno, METH_NOARGS,
|
||||
fileno_doc},
|
||||
{"forget", (PyCFunction)sock_forget, METH_NOARGS,
|
||||
forget_doc},
|
||||
#ifdef HAVE_GETPEERNAME
|
||||
{"getpeername", (PyCFunction)sock_getpeername,
|
||||
METH_NOARGS, getpeername_doc},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue