NTSTATUS status;
status = dsgetdcname(ctx,
+ NULL,
r->in.domain_name,
r->in.domain_guid,
r->in.site_name,
uint32_t flags = DS_DIRECTORY_SERVICE_REQUIRED |
DS_WRITABLE_REQUIRED |
DS_RETURN_DNS_NAME;
- status = dsgetdcname(mem_ctx, r->in.domain,
+ status = dsgetdcname(mem_ctx, NULL, r->in.domain,
NULL, NULL, flags, &info);
if (!NT_STATUS_IS_OK(status)) {
libnetapi_set_error_string(mem_ctx,
uint32_t flags = DS_DIRECTORY_SERVICE_REQUIRED |
DS_WRITABLE_REQUIRED |
DS_RETURN_DNS_NAME;
- status = dsgetdcname(mem_ctx, domain,
+ status = dsgetdcname(mem_ctx, NULL, domain,
NULL, NULL, flags, &info);
if (!NT_STATUS_IS_OK(status)) {
libnetapi_set_error_string(mem_ctx,
uint32_t flags = DS_DIRECTORY_SERVICE_REQUIRED |
DS_RETURN_DNS_NAME;
- status = dsgetdcname(ctx, r->in.domain,
+ status = dsgetdcname(ctx, NULL, r->in.domain,
NULL, NULL, flags, &info);
if (!NT_STATUS_IS_OK(status)) {
libnetapi_set_error_string(ctx, "%s",
struct netr_DsRGetDCNameInfo *info;
const char *dc;
status = dsgetdcname(mem_ctx,
+ r->in.msg_ctx,
r->in.domain_name,
NULL,
NULL,
struct netr_DsRGetDCNameInfo *info;
const char *dc;
status = dsgetdcname(mem_ctx,
+ r->in.msg_ctx,
r->in.domain_name,
NULL,
NULL,
struct ads_struct *ads;/* [ref] */
uint8_t debug;
enum netr_SchannelType secure_channel_type;
+ struct messaging_context *msg_ctx;/* [noprint,ref] */
} in;
struct {
struct dom_sid *domain_sid;/* [ref] */
struct ads_struct *ads;/* [ref] */
uint8_t debug;
+ struct messaging_context *msg_ctx;/* [noprint,ref] */
} in;
struct {
[in] ads_struct *ads,
[in] boolean8 debug,
[in] netr_SchannelType secure_channel_type,
+ [in,noprint] messaging_context *msg_ctx,
[out] string account_name,
[out] string netbios_domain_name,
[out] string dns_domain_name,
[in] dom_sid *domain_sid,
[in] ads_struct *ads,
[in] boolean8 debug,
+ [in,noprint] messaging_context *msg_ctx,
[out] string netbios_domain_name,
[out] string dns_domain_name,
[out] boolean8 modified_config,
****************************************************************/
static NTSTATUS dsgetdcname_cache_refresh(TALLOC_CTX *mem_ctx,
+ struct messaging_context *msg_ctx,
const char *domain_name,
struct GUID *domain_guid,
uint32_t flags,
struct netr_DsRGetDCNameInfo *dc_info;
return dsgetdcname(mem_ctx,
+ msg_ctx,
domain_name,
domain_guid,
site_name,
****************************************************************/
static NTSTATUS dsgetdcname_cached(TALLOC_CTX *mem_ctx,
+ struct messaging_context *msg_ctx,
const char *domain_name,
struct GUID *domain_guid,
uint32_t flags,
}
if (expired) {
- status = dsgetdcname_cache_refresh(mem_ctx, domain_name,
+ status = dsgetdcname_cache_refresh(mem_ctx, msg_ctx,
+ domain_name,
domain_guid, flags,
site_name, *info);
if (!NT_STATUS_IS_OK(status)) {
****************************************************************/
static NTSTATUS process_dc_netbios(TALLOC_CTX *mem_ctx,
+ struct messaging_context *msg_ctx,
const char *domain_name,
uint32_t flags,
struct ip_service_name *dclist,
int i;
const char *dc_name = NULL;
fstring tmp_dc_name;
- struct messaging_context *msg_ctx = msg_context(mem_ctx);
union nbt_cldap_netlogon *r = NULL;
uint32_t nt_version = NETLOGON_VERSION_1 |
NETLOGON_VERSION_5 |
NETLOGON_VERSION_5EX_WITH_IP;
+ if (!msg_ctx) {
+ msg_ctx = msg_context(mem_ctx);
+ }
+
if (flags & DS_PDC_REQUIRED) {
name_type = NBT_NAME_PDC;
}
****************************************************************/
static NTSTATUS dsgetdcname_rediscover(TALLOC_CTX *mem_ctx,
+ struct messaging_context *msg_ctx,
const char *domain_name,
struct GUID *domain_guid,
uint32_t flags,
&dclist, &num_dcs);
NT_STATUS_NOT_OK_RETURN(status);
- return process_dc_netbios(mem_ctx, domain_name, flags,
+ return process_dc_netbios(mem_ctx, msg_ctx, domain_name, flags,
dclist, num_dcs, info);
}
&num_dcs);
NT_STATUS_NOT_OK_RETURN(status);
- return process_dc_netbios(mem_ctx, domain_name, flags, dclist,
+ return process_dc_netbios(mem_ctx, msg_ctx, domain_name, flags, dclist,
num_dcs, info);
}
********************************************************************/
NTSTATUS dsgetdcname(TALLOC_CTX *mem_ctx,
+ struct messaging_context *msg_ctx,
const char *domain_name,
struct GUID *domain_guid,
const char *site_name,
goto rediscover;
}
- status = dsgetdcname_cached(mem_ctx, domain_name, domain_guid,
+ status = dsgetdcname_cached(mem_ctx, msg_ctx, domain_name, domain_guid,
flags, site_name, &myinfo);
if (NT_STATUS_IS_OK(status)) {
*info = myinfo;
}
rediscover:
- status = dsgetdcname_rediscover(mem_ctx, domain_name,
+ status = dsgetdcname_rediscover(mem_ctx, msg_ctx, domain_name,
domain_guid, flags, site_name,
&myinfo);
j->in.admin_password = cleartext_pwd;
j->in.debug = true;
j->in.modify_config = lp_config_backend_is_registry();
+ j->in.msg_ctx = smbd_messaging_context();
become_root();
werr = libnet_Join(p->mem_ctx, j);
u->in.admin_password = cleartext_pwd;
u->in.debug = true;
u->in.modify_config = lp_config_backend_is_registry();
+ u->in.msg_ctx = smbd_messaging_context();
become_root();
werr = libnet_Unjoin(p->mem_ctx, u);
site_name = sitename_fetch(domain_name);
}
- status = dsgetdcname(mem_ctx, domain_name, NULL, site_name,
+ status = dsgetdcname(mem_ctx, NULL, domain_name, NULL, site_name,
flags, &info);
if (!NT_STATUS_IS_OK(status)) {
d_printf("failed with: %s\n", nt_errstr(status));
DEBUG(3, ("[%5lu]: dsgetdcname for %s\n", (unsigned long)state->pid,
state->request.domain_name));
- result = dsgetdcname(state->mem_ctx, state->request.domain_name,
+ result = dsgetdcname(state->mem_ctx, winbind_messaging_context(),
+ state->request.domain_name,
NULL, NULL, state->request.flags, &info);
if (!NT_STATUS_IS_OK(result)) {