Colm MacCarthaigh wrote:
On Mon, Aug 25, 2003 at 12:59:42PM -0400, Jeff Trawick wrote:

So what do you get on your system? I must be missing some OS X fix... (But this box is running straight Jaguar with all available updates from Software Update installed.)


This is what my darwin-using friends have been telling me aswell. Can
you try:

--- gni_mapped.c Sat Feb 15 00:18:30 2003
+++ gni_mapped2.c Mon Aug 25 17:40:15 2003
@@ -37,8 +37,10 @@
rc = getnameinfo((struct sockaddr *)&sin, sizeof sin, hostbuf, sizeof hostbuf, NULL, 0, 0);
printf("look up via IPv4: %d/%s\n", rc, hostbuf);
+ sin.sin_addr.s_addr = sin6.sin6_addr.s6_addr32[3];

the presence of this line doesn't make any difference on my box

compiling with -DKERNEL picks up the s6_addr32 macro on Jaguar

+
     strcpy(hostbuf, "not found");
-    rc = getnameinfo((struct sockaddr *)&sin6, sizeof sin6, hostbuf, sizeof 
hostbuf, NULL, 0, NI_NAMEREQD);
+    rc = getnameinfo((struct sockaddr *)&sin, sizeof sin, hostbuf, sizeof 
hostbuf, NULL, 0, 0);
     printf("look up via IPv6: %d/%s\n", rc, hostbuf);

without the NI_NAMEREQD flag, with our without the line you added previously, I get


look up via IPv6: 0/::ffff:812a:1263

return 0;


Where .s6_addr32 is the appropriate member of sin6_addr on darwin, for BSDs it should be:

sin6.sin6_addr.__u6_addr.__u6_addr32[3];

That will tell if the patch would fix thigns (which it does for my
friends).

which patch are we talking about?



Reply via email to