Hello,

I was compiling the code tree for Kerberos 1.4.3 on HPUX 11.00 without IPv6 and 
discovered that localaddr.c parses INET6 address even though it is not supposed 
to do so for IPv4, which generates a build failure. I had to add if statements 
in the c code to get around the failure, and I thought that you would like to 
know, since there really is not any other way to fix it. 

<snip>
    #if defined(KRB5_USE_INET6)
    case AF_INET6:
        return CMPTYPE (struct sockaddr_in6, sin6_addr);
    #endif

<snip>

   /* Okay, this is kind of odd.  We have to use each of the address
       families we care about, because with an AF_INET socket, extra
       interfaces like hme0:1 that have only AF_INET6 addresses will
       cause errors.  Similarly, if hme0 has more AF_INET addresses
       than AF_INET6 addresses, we won't be able to retrieve all of
       the AF_INET addresses if we use an AF_INET6 socket.  Since
       neither family is guaranteed to have the greater number of
       addresses, we should use both.

       If it weren't for this little quirk, we could use one socket of
       any type, and ask for addresses of all types.  At least, it
       seems to work that way.  */

    #if defined(KRB5_USE_INET6)
    static const int afs[] = { AF_INET, AF_NS, AF_INET6 };
    #else
    static const int afs[] = { AF_INET, AF_NS };
    #endif

<snip>

Regards,

Dave Brown 
Senior UNIX Systems Administrator 
DaVita Inc.
Lakewood CO 80215 
Phone: 303-626-6221 
Email: [EMAIL PROTECTED] 


________________________________________________
Kerberos mailing list           [email protected]
https://mailman.mit.edu/mailman/listinfo/kerberos

Reply via email to