summaryrefslogtreecommitdiff
path: root/source3/utils/net_dns.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2008-10-03 12:23:00 -0700
committerAndrew Tridgell <tridge@samba.org>2008-10-03 12:23:00 -0700
commit23ec448f83ab00105b214388df287f0a934cdb7a (patch)
treede94cbd50e47eb7592e5bdf9e42643fb5aa4f239 /source3/utils/net_dns.c
parent163fa1d25ae2104b634ba37ed97d51fe033cbc1f (diff)
parentc7625979ceb350d90d87d2add6ed7156440072c3 (diff)
downloadsamba-23ec448f83ab00105b214388df287f0a934cdb7a.tar.gz
samba-23ec448f83ab00105b214388df287f0a934cdb7a.tar.bz2
samba-23ec448f83ab00105b214388df287f0a934cdb7a.zip
Merge commit 'master/master'
Diffstat (limited to 'source3/utils/net_dns.c')
-rw-r--r--source3/utils/net_dns.c25
1 files changed, 12 insertions, 13 deletions
diff --git a/source3/utils/net_dns.c b/source3/utils/net_dns.c
index 14d45e2b0f..46f38d42f6 100644
--- a/source3/utils/net_dns.c
+++ b/source3/utils/net_dns.c
@@ -150,9 +150,10 @@ int get_my_ip_address( struct sockaddr_storage **pp_ss )
struct sockaddr_storage *list = NULL;
int count = 0;
- /* find the first non-loopback address from our list of interfaces */
+ /* Honor the configured list of interfaces to register */
- n = get_interfaces(nics, MAX_INTERFACES);
+ load_interfaces();
+ n = iface_count();
if (n <= 0) {
return -1;
@@ -163,19 +164,17 @@ int get_my_ip_address( struct sockaddr_storage **pp_ss )
}
for ( i=0; i<n; i++ ) {
- if (is_loopback_addr(&nics[i].ip)) {
+ const struct sockaddr_storage *nic_sa_storage = NULL;
+
+ if ((nic_sa_storage = iface_n_sockaddr_storage(i)) == NULL)
+ continue;
+
+ /* Don't register loopback addresses */
+ if (is_loopback_addr(nic_sa_storage)) {
continue;
}
-#if defined(HAVE_IPV6)
- if ((nics[i].ip.ss_family == AF_INET6)) {
- memcpy(&list[count++], &nics[i].ip,
- sizeof(struct sockaddr_storage));
- } else
-#endif
- if (nics[i].ip.ss_family == AF_INET) {
- memcpy(&list[count++], &nics[i].ip,
- sizeof(struct sockaddr_storage));
- }
+
+ memcpy(&list[count++], nic_sa_storage, sizeof(struct sockaddr_storage));
}
*pp_ss = list;