summaryrefslogtreecommitdiff
path: root/source4/heimdal_build
diff options
context:
space:
mode:
Diffstat (limited to 'source4/heimdal_build')
-rw-r--r--source4/heimdal_build/config.mk2
-rw-r--r--source4/heimdal_build/glue.c12
2 files changed, 11 insertions, 3 deletions
diff --git a/source4/heimdal_build/config.mk b/source4/heimdal_build/config.mk
index ce5fa6e98e..b534c9bc9f 100644
--- a/source4/heimdal_build/config.mk
+++ b/source4/heimdal_build/config.mk
@@ -429,7 +429,7 @@ PUBLIC_DEPENDENCIES = \
[SUBSYSTEM::HEIMDAL_GLUE]
CFLAGS = -Iheimdal_build -Iheimdal/lib/krb5 -Iheimdal/lib/asn1 -Iheimdal/lib/com_err
OBJ_FILES = glue.o
-PUBLIC_DEPENDENCIES = LIBNETIF
+PUBLIC_DEPENDENCIES = LIBNETIF LIBSAMBA-CONFIG
# End SUBSYSTEM HEIMDAL_GLUE
#######################
diff --git a/source4/heimdal_build/glue.c b/source4/heimdal_build/glue.c
index df08cae57c..07062ae8bf 100644
--- a/source4/heimdal_build/glue.c
+++ b/source4/heimdal_build/glue.c
@@ -31,22 +31,30 @@
krb5_error_code KRB5_LIB_FUNCTION krb5_get_all_client_addrs(krb5_context context, krb5_addresses *res)
{
int i;
- res->len = iface_count(global_loadparm);
+ struct interface *ifaces;
+
+ load_interfaces(NULL, lp_interfaces(global_loadparm), &ifaces);
+
+ res->len = iface_count(ifaces);
res->val = malloc_array_p(HostAddress, res->len);
if (res->val == NULL) {
+ talloc_free(ifaces);
return ENOMEM;
}
for (i=0;i<res->len;i++) {
- const char *ip = iface_n_ip(global_loadparm, i);
+ const char *ip = iface_n_ip(ifaces, i);
res->val[i].addr_type = AF_INET;
res->val[i].address.length = 4;
res->val[i].address.data = malloc(4);
if (res->val[i].address.data == NULL) {
+ talloc_free(ifaces);
return ENOMEM;
}
((struct in_addr *)res->val[i].address.data)->s_addr = inet_addr(ip);
}
+ talloc_free(ifaces);
+
return 0;
}