diff options
Diffstat (limited to 'source4/cldap_server/cldap_server.c')
-rw-r--r-- | source4/cldap_server/cldap_server.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/source4/cldap_server/cldap_server.c b/source4/cldap_server/cldap_server.c index eb72b5b1623..46c0ccc297d 100644 --- a/source4/cldap_server/cldap_server.c +++ b/source4/cldap_server/cldap_server.c @@ -146,13 +146,19 @@ static NTSTATUS cldapd_startup_interfaces(struct cldapd_server *cldapd, struct l /* if we are allowing incoming packets from any address, then we need to bind to the wildcard address */ if (!lpcfg_bind_interfaces_only(lp_ctx)) { + int num_binds = 0; char **wcard = iface_list_wildcard(cldapd); NT_STATUS_HAVE_NO_MEMORY(wcard); for (i=0; wcard[i]; i++) { status = cldapd_add_socket(cldapd, lp_ctx, wcard[i]); - NT_STATUS_NOT_OK_RETURN(status); + if (NT_STATUS_IS_OK(status)) { + num_binds++; + } } talloc_free(wcard); + if (num_binds == 0) { + return NT_STATUS_INVALID_PARAMETER_MIX; + } } /* now we have to also listen on the specific interfaces, |