From: Samuel Cabrero Date: Tue, 1 Mar 2022 10:40:31 +0000 (+0100) Subject: s3:winbind: Move the function to list trusted domains to winbindd_dual_srv.c X-Git-Tag: tevent-0.12.0~550 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=64160686e4586b749efe070b3032fa855955947e;p=thirdparty%2Fsamba.git s3:winbind: Move the function to list trusted domains to winbindd_dual_srv.c This function will be converted to a local RPC call handler so move it to the file including ndr_winbindd_scompat.c. Updated debug message and use newer debug macros. Signed-off-by: Samuel Cabrero Reviewed-by: Andrew Bartlett --- diff --git a/source3/winbindd/winbindd_dual_srv.c b/source3/winbindd/winbindd_dual_srv.c index cefd134f2c6..3452349d608 100644 --- a/source3/winbindd/winbindd_dual_srv.c +++ b/source3/winbindd/winbindd_dual_srv.c @@ -1927,4 +1927,79 @@ reconnect: return status; } +enum winbindd_result winbindd_dual_list_trusted_domains(struct winbindd_domain *domain, + struct winbindd_cli_state *state) +{ + uint32_t i; + int extra_data_len = 0; + char *extra_data; + NTSTATUS result; + bool have_own_domain = False; + struct netr_DomainTrustList trusts; + + DBG_NOTICE("[%s %u]: list trusted domains\n", + state->client_name, + (unsigned int)state->pid); + + result = wb_cache_trusted_domains(domain, state->mem_ctx, &trusts); + + if (!NT_STATUS_IS_OK(result)) { + DBG_NOTICE("wb_cache_trusted_domains returned %s\n", + nt_errstr(result)); + return WINBINDD_ERROR; + } + + extra_data = talloc_strdup(state->mem_ctx, ""); + + for (i=0; iname)) { + have_own_domain = True; + break; + } + } + + if (state->request->data.list_all_domains && !have_own_domain) { + struct dom_sid_buf buf; + extra_data = talloc_asprintf_append_buffer( + extra_data, "%s\\%s\\%s\n", domain->name, + domain->alt_name != NULL ? + domain->alt_name : + domain->name, + dom_sid_str_buf(&domain->sid, &buf)); + } + + extra_data_len = strlen(extra_data); + if (extra_data_len > 0) { + + /* Strip the last \n */ + extra_data[extra_data_len-1] = '\0'; + + state->response->extra_data.data = extra_data; + state->response->length += extra_data_len; + } + + return WINBINDD_OK; +} + #include "librpc/gen_ndr/ndr_winbind_scompat.c" diff --git a/source3/winbindd/winbindd_misc.c b/source3/winbindd/winbindd_misc.c index db7e1c87dee..e7e2021bec3 100644 --- a/source3/winbindd/winbindd_misc.c +++ b/source3/winbindd/winbindd_misc.c @@ -277,81 +277,6 @@ done: return ret; } -enum winbindd_result winbindd_dual_list_trusted_domains(struct winbindd_domain *domain, - struct winbindd_cli_state *state) -{ - uint32_t i; - int extra_data_len = 0; - char *extra_data; - NTSTATUS result; - bool have_own_domain = False; - struct netr_DomainTrustList trusts; - - DBG_NOTICE("[%s %u]: list trusted domains\n", - state->client_name, - (unsigned int)state->pid); - - result = wb_cache_trusted_domains(domain, state->mem_ctx, &trusts); - - if (!NT_STATUS_IS_OK(result)) { - DEBUG(3, ("winbindd_dual_list_trusted_domains: trusted_domains returned %s\n", - nt_errstr(result) )); - return WINBINDD_ERROR; - } - - extra_data = talloc_strdup(state->mem_ctx, ""); - - for (i=0; iname)) { - have_own_domain = True; - break; - } - } - - if (state->request->data.list_all_domains && !have_own_domain) { - struct dom_sid_buf buf; - extra_data = talloc_asprintf_append_buffer( - extra_data, "%s\\%s\\%s\n", domain->name, - domain->alt_name != NULL ? - domain->alt_name : - domain->name, - dom_sid_str_buf(&domain->sid, &buf)); - } - - extra_data_len = strlen(extra_data); - if (extra_data_len > 0) { - - /* Strip the last \n */ - extra_data[extra_data_len-1] = '\0'; - - state->response->extra_data.data = extra_data; - state->response->length += extra_data_len; - } - - return WINBINDD_OK; -} - bool winbindd_dc_info(struct winbindd_cli_state *cli) { struct winbindd_domain *domain;