From 4b430b62d36143bc27dedd9baea596d23313c050 Mon Sep 17 00:00:00 2001 From: Johan Danielsson Date: Thu, 1 Apr 1999 18:23:53 +0000 Subject: [PATCH] (get_addrs_int): add extra host addresses git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@5838 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/get_addrs.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/lib/krb5/get_addrs.c b/lib/krb5/get_addrs.c index fc8c1af94..3c718792e 100644 --- a/lib/krb5/get_addrs.c +++ b/lib/krb5/get_addrs.c @@ -208,7 +208,7 @@ cleanup: } static krb5_error_code -get_addrs_int (krb5_addresses *res, int loop) +get_addrs_int (krb5_context context, krb5_addresses *res, int loop) { krb5_error_code ret = -1; #if defined(AF_INET6) && defined(SIOCGIF6CONF) && defined(SIOCGIF6FLAGS) @@ -221,7 +221,22 @@ get_addrs_int (krb5_addresses *res, int loop) sizeof(struct ifreq)); #endif if(ret || res->len == 0) - return gethostname_fallback (res); + ret = gethostname_fallback (res); + if(ret == 0) { + /* append user specified addresses */ + krb5_addresses a; + ret = krb5_get_extra_addresses(context, &a); + if(ret) { + krb5_free_addresses(context, res); + return ret; + } + ret = krb5_append_addresses(context, res, &a); + if(ret) { + krb5_free_addresses(context, res); + return ret; + } + krb5_free_addresses(context, &a); + } return ret; } @@ -234,9 +249,9 @@ get_addrs_int (krb5_addresses *res, int loop) */ krb5_error_code -krb5_get_all_client_addrs (krb5_addresses *res) +krb5_get_all_client_addrs (krb5_context context, krb5_addresses *res) { - return get_addrs_int (res, 0); + return get_addrs_int (context, res, 0); } /* @@ -245,7 +260,7 @@ krb5_get_all_client_addrs (krb5_addresses *res) */ krb5_error_code -krb5_get_all_server_addrs (krb5_addresses *res) +krb5_get_all_server_addrs (krb5_context context, krb5_addresses *res) { - return get_addrs_int (res, 1); + return get_addrs_int (context, res, 1); }