Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: PATCH: test for network libraries (for test only)/problems with name resolution



A short time ago, at a computer terminal far, far away, Andrej Borsenkow wrote:
>> } I dunno. If I remove the "static" from the zftp.c declaration, it
>> } should work fine, but I'm not sure what problems that might introduce.
>>
>> It'll just mean you can't look up names for IPv6 hosts, I think.

It looked to me that, if I removed the 'static' prefix from zftp.pro and
zftp.c, the compiler would then accept the code, as it wouldn't be
conflicting with <netdb.h>.  It would then have an implementation of
gethostbyname2() - however, now being non-static, it could conceiveably be
called from outside the zftp code; that was what I was wondering might
introduce problems.

>IPv6 is the keyword. We need the gethostbyname2/getipnodebyname, inet_pton etc
>*only* if we want to do IPv6. Conversely, we cannot do IPv6 without these
>functions (well, actually, RFC for gethostbyname2 - forgot the number -
>states, that implementation of gethostbyname may return IPv6 addresses, but it
>looks too obscure. And it is is obsolete by getipnodebyname anyway). That was
>what I  was about to do - remove all local (re-)definitions of resolver
>functions and make better guess about SUPORT_IPV6, i.e. do not use IPv6
>functions unless we are doing IPv6 and do not do IPv6 unless we have all
>prerequisites. That should also solve my problem (with incorrect use of
>gethostbyname2). Unfortunately, I do not have any IPv6 implementation here to
>test it. Is there some system that supports IPv6 without proper resolver
>support?Zefram, you added IPv6 support IIRC?
>
>Does Solaris 7 support IPv6?

No, 2.7 doesn't appear to support IPv6 natively, although I think there's
an unbundled, unsupported, experimental-quality pkg from Sun to add IPv6 to
2.7.  I haven't tried it. :)  Solaris 2.8 does support IPv6 natively, of
course.

I was beginning to wonder why it compiles properly under 2.8, as
gethostbyname2() still isn't available (being named res_getbyhostname2
instead).  However, looking back over the code, I see that it works
because, although HAVE_GETHOSTBYNAME2 is still undefined, it doesn't
actually try to define gethostbyname2() in zftp.c because that's only done
if it didn't find getipnodebyname().  Looks like gethostbyname2() is only
needed to implement getipnodebyname(), and 2.8 does have that, in libnsl.
Okay, that makes more sense now. :)

I guess my question, then, is why is zftp even messing with IPv6 stuff
under 2.7 if 2.7 doesn't support IPv6?  Oh never mind - I just re-read your
paragraph above, and understand now.

Sorry, this doesn't really add much to the discussion, but it at least
seemed to help me work it all out in my head.

-- 
Will Day     <PGP mail preferred>     OIT / O&E / Technical Support
willday@xxxxxxxxxxxxxxxxxx            Georgia Tech, Atlanta 30332-0715
  -> Opinions expressed are mine alone and do not reflect OIT policy <-
Those who would give up essential Liberty, to purchase a little temporary
Safety, deserve neither Liberty nor Safety.
    Benjamin Franklin, Pennsylvania Assembly, Nov. 11, 1755

Attachment: pgpfPwizuQY63.pgp
Description: PGP signature



Messages sorted by: Reverse Date, Date, Thread, Author