On Sep 24, 2011, at 21:22, Alan Coopersmith wrote: > It's gethostname, no "by", to get the name of the current host.
You're using gethostbyname here: >> + struct hostent *hp = gethostbyname(MyHostName); > IPv6 support is provided for xscope by the xtrans code, and I > believe fully works already (I haven't actually tested in a while). The gethostbyname(MyHostName) will fail for POSIX conforming gethostbyname(3) if gethostname(3) returns a hostname which NXDOMAINs the A lookup. This will happen if the system has no IPv4 stack (thus no IPv4 loopback to resolve to) and has a POSIX conforming gethostbyname(3) (ie not glibc or its unfortunate relatives). > > -alan- > > On 09/24/11 12:43 PM, Jeremy Huddleston wrote: >> Can we use this opportunity to use getaddrinfo(3) rather than >> gethostbyname(3) as it is the preferred API and will make xscope IPv6 >> compatible. >> >> On Sep 24, 2011, at 08:48, Alan Coopersmith wrote: >> >>> Signed-off-by: Alan Coopersmith<[email protected]> >>> --- >>> common.c | 15 +++++++-------- >>> 1 files changed, 7 insertions(+), 8 deletions(-) >>> >>> diff --git a/common.c b/common.c >>> index 42220cd..3779b13 100644 >>> --- a/common.c >>> +++ b/common.c >>> @@ -200,9 +200,15 @@ SetUpConnectionSocket( >>> struct linger linger; >>> #endif /* SO_DONTLINGER */ >>> #endif >>> + char MyHostName[256]; >>> >>> enterprocedure("SetUpConnectionSocket"); >>> >>> + (void) gethostname(MyHostName, sizeof(MyHostName)); >>> + ScopeHost = strdup(MyHostName); >>> + if (ScopeHost == NULL) >>> + panic("Can't allocate memory for hostname"); >>> + >>> #ifdef USE_XTRANS >>> ScopePort = iport - ServerBasePort; >>> sprintf (port, "%d", ScopePort); >>> @@ -258,14 +264,7 @@ SetUpConnectionSocket( >>> */ >>> { >>> /* define the host part of the address */ >>> - char MyHostName[256]; >>> - struct hostent *hp; >>> - >>> - (void) gethostname(MyHostName, sizeof(MyHostName)); >>> - ScopeHost = strdup(MyHostName); >>> - if (ScopeHost == NULL) >>> - panic("Can't allocate memory for hostname"); >>> - hp = gethostbyname(MyHostName); >>> + struct hostent *hp = gethostbyname(MyHostName); >>> if (hp == NULL) >>> panic("No address for our host"); >>> bcopy((char *)hp->h_addr, (char*)&sin.sin_addr, hp->h_length); >>> -- >>> 1.7.3.2 >>> >>> _______________________________________________ >>> [email protected]: X.Org development >>> Archives: http://lists.x.org/archives/xorg-devel >>> Info: http://lists.x.org/mailman/listinfo/xorg-devel >>> >> > > > -- > -Alan Coopersmith- [email protected] > Oracle Solaris Platform Engineering: X Window System > > _______________________________________________ > [email protected]: X.Org development > Archives: http://lists.x.org/archives/xorg-devel > Info: http://lists.x.org/mailman/listinfo/xorg-devel > _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
