Message187234
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? |
|
Date |
User |
Action |
Args |
2013-04-18 10:14:07 | Stijn.Hoop | set | recipients:
+ Stijn.Hoop, loewis, r.david.murray, dfranke, mcjeff, BreamoreBoy, ankitoshniwal |
2013-04-18 10:14:07 | Stijn.Hoop | set | messageid: <1366280047.5.0.509696653675.issue5004@psf.upfronthosting.co.za> |
2013-04-18 10:14:07 | Stijn.Hoop | link | issue5004 messages |
2013-04-18 10:14:06 | Stijn.Hoop | create | |
|