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