[Python-Dev] Re: [Python-checkins] python/dist/src/Modules socketmodule.c, 1.298, 1.299
Dave Cole
djc at object-craft.com.au
Fri Aug 20 07:06:21 CEST 2004
More information about the Python-Dev mailing list
Fri Aug 20 07:06:21 CEST 2004
- Previous message: [Python-Dev] Re: [Python-checkins] python/dist/src/Modules socketmodule.c, 1.298, 1.299
- Next message: [Python-Dev] Ignoring SIGPIPE (was: [Python-checkins] python/dist/src/Modules socketmodule.c, 1.298, 1.299)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- Previous message: [Python-Dev] Re: [Python-checkins] python/dist/src/Modules socketmodule.c, 1.298, 1.299
- Next message: [Python-Dev] Ignoring SIGPIPE (was: [Python-checkins] python/dist/src/Modules socketmodule.c, 1.298, 1.299)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list