
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@870 ec53bebd-3082-4978-b11e-865c3cabbd6b
44 lines
967 B
C
44 lines
967 B
C
#include "krb5_locl.h"
|
|
|
|
|
|
/*
|
|
* Try to get all addresses, but return the one corresponding to
|
|
* `hostname' if we fail.
|
|
*/
|
|
|
|
krb5_error_code
|
|
krb5_get_all_client_addrs (krb5_addresses *res)
|
|
{
|
|
krb5_error_code err;
|
|
char hostname[MAXHOSTNAMELEN];
|
|
struct hostent *hostent;
|
|
|
|
if (gethostname (hostname, sizeof(hostname)))
|
|
return errno;
|
|
hostent = gethostbyname (hostname);
|
|
if (hostent == NULL)
|
|
return errno;
|
|
res->number = 1;
|
|
res->addrs = malloc (sizeof(*res->addrs));
|
|
res->addrs[0].type = hostent->h_addrtype;
|
|
res->addrs[0].address.data = NULL;
|
|
res->addrs[0].address.length = 0;
|
|
err = krb5_data_alloc (&res->addrs[0].address, hostent->h_length);
|
|
if (err)
|
|
return err;
|
|
memcpy (res->addrs[0].address.data,
|
|
hostent->h_addr,
|
|
hostent->h_length);
|
|
return 0;
|
|
}
|
|
|
|
/*
|
|
* Same as above, but with the fall-back to INADDR_ANY.
|
|
*/
|
|
|
|
krb5_error_code
|
|
krb5_get_all_server_addrs ()
|
|
{
|
|
return 0;
|
|
}
|