/*
*/
/*
* lib/krb5/os/hostaddr.c
*
* Copyright 1990,1991 by the Massachusetts Institute of Technology.
* All Rights Reserved.
*
* Export of this software from the United States of America may
* require a specific license from the United States Government.
* It is the responsibility of any person or organization contemplating
* export to obtain such a license before exporting.
*
* WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
* distribute this software and its documentation for any purpose and
* without fee is hereby granted, provided that the above copyright
* notice appear in all copies and that both that copyright notice and
* this permission notice appear in supporting documentation, and that
* the name of M.I.T. not be used in advertising or publicity pertaining
* to distribution of the software without specific, written prior
* permission. Furthermore if you modify this software you must label
* your software as modified software and not distribute it in such a
* fashion that it might be confused with the original M.I.T. software.
* M.I.T. makes no representations about the suitability of
* this software for any purpose. It is provided "as is" without express
* or implied warranty.
*
* This routine returns a list of krb5 addresses given a hostname.
*
*/
#include "k5-int.h"
#include <locale.h>
#include "fake-addrinfo.h"
{
int i, j, r;
if (!name) {
return KRB5_ERR_BAD_HOSTNAME;
}
/* We don't care what kind at this point, really, but without
this, we can get back multiple sockaddrs per address, for
SOCK_DGRAM, SOCK_STREAM, and SOCK_RAW. I haven't checked if
that's what the spec indicates. */
if (r && AI_NUMERICHOST != 0) {
}
if (r) {
"Hostname cannot be canonicalized for '%s': %s"),
return KRB5_ERR_BAD_HOSTNAME;
}
case AF_INET:
#ifdef KRB5_USE_INET6
case AF_INET6:
#endif
i++;
default:
/* Ignore addresses of unknown families. */
;
}
}
if (!addrs)
return errno;
for (j = 0; j < i + 1; j++)
addrs[j] = 0;
void *ptr;
int atype;
case AF_INET:
/*LINTED*/
break;
#ifdef KRB5_USE_INET6
case AF_INET6:
/*LINTED*/
break;
#endif
default:
continue;
}
if (!addrs[i]) {
goto errout;
}
goto errout;
}
i++;
}
if (ai)
return 0;
/* Solaris Kerberos */
if (addrs)
if (ai)
return retval;
}