On Mon, 18 Jan 1999 [EMAIL PROTECTED] wrote:

> > +    if(inet_aton(AuthHost, &hident.Value.InetAddress))
> 
> inet_aton returns 0 on success

Not here it doesn't.

>From the Linux inet_aton man page:
       inet_aton() converts the Internet host address cp from the
       standard numbers-and-dots notation into  binary  data  and
       stores  it  in the structure that inp points to. inet_aton
       returns nonzero if the address is valid, zero if not.

>From the Linux libc info page:
 - Function: int inet_aton (const char *NAME, struct in_addr *ADDR)
     This function converts the Internet host address NAME from the
     standard numbers-and-dots notation into binary data and stores it
     in the `struct in_addr' that ADDR points to.  `inet_aton' returns
     nonzero if the address is valid, zero if not.

>From the IRIX man page:
     The inet_aton routine interprets the specified character
     string as an Internet address, placing the address into the structure
     provided.  It returns 1 if the string was successfully interpreted, or 0
     if the string is invalid.

I've attached the inet_aton() compatibility routine I use in ORBit, in
case it is of any use...
-- Elliot
"In film you will find four basic story lines. Man versus man, man
 versus nature, nature versus nature, and dog versus vampire."
    - Steven Spielberg


#include "config.h"

#ifndef HAVE_INET_ATON
#include <netinet/in.h>
#include <string.h>
int inet_aton(const char *cp, struct in_addr *inp)
{
        union {
                unsigned int n;
                char parts[4];
        } u;
        int a=0,b=0,c=0,d=0, i;

        i = sscanf(cp, "%d.%d.%d.%d%*s", &a, &b, &c, &d);

        if(i != 4)
                return 0;

        u.parts[0] = a;
        u.parts[1] = b;
        u.parts[2] = c;
        u.parts[3] = d;

        inp->s_addr = u.n;

        return 1;
}
#endif

Reply via email to