From aa3fd6fde3888c0e333cad852ae5b4f671d55f58 Mon Sep 17 00:00:00 2001 From: Pavel Reichl Date: Wed, 8 Jul 2015 09:01:24 -0400 Subject: DYNDNS: sss_iface_addr_list_get return ENOENT If none of eligible interfaces matches ifname then ENOENT is returned. Resolves: https://fedorahosted.org/sssd/ticket/2549 --- src/providers/dp_dyndns.c | 13 +++++++++++-- src/providers/ldap/sdap_dyndns.c | 6 +++++- 2 files changed, 16 insertions(+), 3 deletions(-) (limited to 'src/providers') diff --git a/src/providers/dp_dyndns.c b/src/providers/dp_dyndns.c index 1cac3d0fa..2ac43a108 100644 --- a/src/providers/dp_dyndns.c +++ b/src/providers/dp_dyndns.c @@ -222,8 +222,17 @@ sss_iface_addr_list_get(TALLOC_CTX *mem_ctx, const char *ifname, } } - ret = EOK; - *_addrlist = addrlist; + if (addrlist != NULL) { + /* OK, some result was found */ + ret = EOK; + *_addrlist = addrlist; + } else { + /* No result was found */ + DEBUG(SSSDBG_TRACE_FUNC, + "No IPs usable for DNS was found for interface: %s.\n", ifname); + ret = ENOENT; + } + done: freeifaddrs(ifaces); return ret; diff --git a/src/providers/ldap/sdap_dyndns.c b/src/providers/ldap/sdap_dyndns.c index 0d9c92057..e99a4f668 100644 --- a/src/providers/ldap/sdap_dyndns.c +++ b/src/providers/ldap/sdap_dyndns.c @@ -502,8 +502,12 @@ sdap_dyndns_get_addrs_send(TALLOC_CTX *mem_ctx, if (iface) { ret = sss_iface_addr_list_get(state, iface, &state->addresses); if (ret != EOK) { - DEBUG(SSSDBG_OP_FAILURE, + DEBUG(ret == ENOENT ? SSSDBG_MINOR_FAILURE : SSSDBG_OP_FAILURE, "Cannot get list of addresses from interface %s\n", iface); + /* non critical failure */ + if (ret == ENOENT) { + ret = EOK; + } } /* We're done. Just fake an async request completion */ goto done; -- cgit