diff options
Diffstat (limited to 'src/providers/ldap/sdap_dyndns.c')
-rw-r--r-- | src/providers/ldap/sdap_dyndns.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/providers/ldap/sdap_dyndns.c b/src/providers/ldap/sdap_dyndns.c index f5929cff3..a463a2fce 100644 --- a/src/providers/ldap/sdap_dyndns.c +++ b/src/providers/ldap/sdap_dyndns.c @@ -644,7 +644,6 @@ sdap_dyndns_add_ldap_conn(struct sdap_dyndns_get_addrs_state *state, { int ret; int fd; - struct sss_iface_addr *address; struct sockaddr_storage ss; socklen_t ss_len = sizeof(ss); @@ -666,20 +665,21 @@ sdap_dyndns_add_ldap_conn(struct sdap_dyndns_get_addrs_state *state, return ret; } - switch(ss.ss_family) { - case AF_INET: - case AF_INET6: - address = sss_iface_addr_add(state, &state->addresses, &ss); - if (address == NULL) { - return ENOMEM; - } - break; - default: + if (ss.ss_family != AF_INET && ss.ss_family != AF_INET6) { DEBUG(SSSDBG_CRIT_FAILURE, "Connection to LDAP is neither IPv4 nor IPv6\n"); return EIO; } + ret = sss_get_dualstack_addresses(state, (struct sockaddr *) &ss, + &state->addresses); + if (ret != EOK) { + DEBUG(SSSDBG_MINOR_FAILURE, + "sss_get_dualstack_addresses failed: %d:[%s]\n", + ret, sss_strerror(ret)); + return ret; + } + return EOK; } |