Andrew McNamara wrote: >>>Patch #1003700: Add socketpair function to socket module. >> >>The docstring (below) states the arguments are the same as socket(). >>However, in sock_initobj() line 2496, the family is initialized to >>AF_INET. I think the #if defined(AF_UNIX) code above should be >>removed and family should be initialized to AF_INET. > > > I talked Dave into this - AF_UNIX is typically the only address family > that is valid for socketpair(). Using AF_INET under linux and OS X > results in EOPNOTSUPP. I wondered about the AF_UNIX/AF_INET thing. When looking through the code I noticed that all references to AF_UNIX were #ifdef enclosed. I decided to allow for the possibility of socketpair() support on a platform that supports AF_INET but not AF_UNIX (no idea if such a thing exists). The other alternative could have been to conditional include socketpair() only if both AF_UNIX and HAVE_SOCKETPAIR are defined. Another thing to consider is the prior art in the form of eunuchs. The implementation of socketpair() in eunuchs defaults to AF_UNIX. Code using eunuchs is probably assuming AF_UNIX - not a bad assumption really. Would a change to the documentation and docstring be sufficient it it explained that the default family is AF_UNIX if defined for the platform, AF_INET otherwise? >>I don't think the #ifdef SIGPIPE code is correct. If the user >>installed a signal handler calling signal() will remove it. I >>think the call to signal() should be removed. > > > I agree, but I think that was copied verbatim from elsewhere in > socketmodule.c, so it was left with the aim of being bug for bug > compatible with socket.socket(). Indeed. I was not going to change something as fundamental as the existing signal handling. The onyl sensible thing to do was to copy the behaviour already in place when you create a socket the "normal" way. -- http://www.object-craft.com.au
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4