This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Stijn.Hoop
Recipients BreamoreBoy, Stijn.Hoop, ankitoshniwal, dfranke, loewis, mcjeff, r.david.murray
Date 2013-04-18.10:14:06
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1366280047.5.0.509696653675.issue5004@psf.upfronthosting.co.za>
In-reply-to
Content
OK, fair enough.

From reading sources, it appears that hostname is using getaddrinfo(3) on kernelhostname with hints->ai_flags & AI_CANONNAME, while Lib/socket.py simply uses gethostbyaddr(kernelhostname), and falls back on kernelhostname in case of errors.

Unfortunately I am not entirely sure who is "correct" here, as I don't know the intent of socket.getfqdn().

In my case, kernelhostname is set to 'pclin281' e.g. without the dots. I believe this to be correct, but I know that this is already "controversial" as in there exists software that expects an FQDN there, and internet folklore is split about 50/50 about this necessity.

Then, apparently, there is confusion about AI_CANONNAME and what it actually should do. glibc upstream does address lookups but Fedora patches this out. See this recent glibc bug for more pointers:

http://sourceware.org/bugzilla/show_bug.cgi?id=15218

As mentioned in that bug, a lot of software runs on Fedora and works using that definition of AI_CANONNAME.

However, switching Lib/socket.py / getfqdn from gethostbyaddr to getaddrinfo might have more implications than just fixing this case. I can try to write a patch, but is this the right direction?
History
Date User Action Args
2013-04-18 10:14:07Stijn.Hoopsetrecipients: + Stijn.Hoop, loewis, r.david.murray, dfranke, mcjeff, BreamoreBoy, ankitoshniwal
2013-04-18 10:14:07Stijn.Hoopsetmessageid: <1366280047.5.0.509696653675.issue5004@psf.upfronthosting.co.za>
2013-04-18 10:14:07Stijn.Hooplinkissue5004 messages
2013-04-18 10:14:06Stijn.Hoopcreate