Commit 0fbcc6cc authored by Georg Brandl's avatar Georg Brandl

Bug #1460564: document that socket.fromfd() duplicates the given

file descriptor.
parent 0dc1ed11
...@@ -317,10 +317,11 @@ Availability: \UNIX. \versionadded{2.4} ...@@ -317,10 +317,11 @@ Availability: \UNIX. \versionadded{2.4}
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{fromfd}{fd, family, type\optional{, proto}} \begin{funcdesc}{fromfd}{fd, family, type\optional{, proto}}
Build a socket object from an existing file descriptor (an integer as Duplicate the file descriptor \var{fd} (an integer as returned by a file
returned by a file object's \method{fileno()} method). Address family, object's \method{fileno()} method) and build a socket object from the
socket type and protocol number are as for the \function{socket()} function result. Address family, socket type and protocol number are as for the
above. The file descriptor should refer to a socket, but this is not \function{socket()} function above.
The file descriptor should refer to a socket, but this is not
checked --- subsequent operations on the object may fail if the file checked --- subsequent operations on the object may fail if the file
descriptor is invalid. This function is rarely needed, but can be descriptor is invalid. This function is rarely needed, but can be
used to get or set socket options on a socket passed to a program as used to get or set socket options on a socket passed to a program as
......
...@@ -3168,7 +3168,8 @@ socket_fromfd(PyObject *self, PyObject *args) ...@@ -3168,7 +3168,8 @@ socket_fromfd(PyObject *self, PyObject *args)
PyDoc_STRVAR(fromfd_doc, PyDoc_STRVAR(fromfd_doc,
"fromfd(fd, family, type[, proto]) -> socket object\n\ "fromfd(fd, family, type[, proto]) -> socket object\n\
\n\ \n\
Create a socket object from the given file descriptor.\n\ Create a socket object from a duplicate of the given\n\
file descriptor.\n\
The remaining arguments are the same as for socket()."); The remaining arguments are the same as for socket().");
#endif /* NO_DUP */ #endif /* NO_DUP */
...@@ -4052,7 +4053,7 @@ init_socket(void) ...@@ -4052,7 +4053,7 @@ init_socket(void)
PyModule_AddIntConstant(m, "NETLINK_IP6_FW", NETLINK_IP6_FW); PyModule_AddIntConstant(m, "NETLINK_IP6_FW", NETLINK_IP6_FW);
PyModule_AddIntConstant(m, "NETLINK_DNRTMSG", NETLINK_DNRTMSG); PyModule_AddIntConstant(m, "NETLINK_DNRTMSG", NETLINK_DNRTMSG);
PyModule_AddIntConstant(m, "NETLINK_TAPBASE", NETLINK_TAPBASE); PyModule_AddIntConstant(m, "NETLINK_TAPBASE", NETLINK_TAPBASE);
#endif #endif /* AF_NETLINK */
#ifdef AF_ROUTE #ifdef AF_ROUTE
/* Alias to emulate 4.4BSD */ /* Alias to emulate 4.4BSD */
PyModule_AddIntConstant(m, "AF_ROUTE", AF_ROUTE); PyModule_AddIntConstant(m, "AF_ROUTE", AF_ROUTE);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment