NBT_MAILSLOT_GETDC, dc_ip.s_addr);
}
-bool send_getdc_request(struct messaging_context *msg_ctx,
+bool send_getdc_request(TALLOC_CTX *mem_ctx,
+ struct messaging_context *msg_ctx,
struct sockaddr_storage *dc_ss,
const char *domain_name,
const DOM_SID *sid)
enum ndr_err_code ndr_err;
DATA_BLOB blob;
struct dom_sid my_sid;
- TALLOC_CTX *mem_ctx = talloc_tos();
ZERO_STRUCT(packet);
ZERO_STRUCT(my_sid);
dc_ss);
}
-bool receive_getdc_response(struct sockaddr_storage *dc_ss,
+bool receive_getdc_response(TALLOC_CTX *mem_ctx,
+ struct sockaddr_storage *dc_ss,
const char *domain_name,
const char **dc_name)
{
struct packet_struct *packet;
const char *my_mailslot = NULL;
struct in_addr dc_ip;
- TALLOC_CTX *mem_ctx = talloc_tos();
DATA_BLOB blob;
struct nbt_ntlogon_packet r;
union dgram_message_body p;
convert an ip to a name
*******************************************************************/
-static bool dcip_to_name(const struct winbindd_domain *domain,
+static bool dcip_to_name(TALLOC_CTX *mem_ctx,
+ const struct winbindd_domain *domain,
struct sockaddr_storage *pss,
fstring name )
{
/* try GETDC requests next */
- if (send_getdc_request(winbind_messaging_context(),
+ if (send_getdc_request(mem_ctx, winbind_messaging_context(),
pss, domain->name, &domain->sid)) {
const char *dc_name = NULL;
int i;
smb_msleep(100);
for (i=0; i<5; i++) {
- if (receive_getdc_response(pss, domain->name, &dc_name)) {
+ if (receive_getdc_response(mem_ctx, pss, domain->name, &dc_name)) {
fstrcpy(name, dc_name);
namecache_store(name, 0x20, 1, &ip_list);
return True;
}
/* Try to figure out the name */
- if (dcip_to_name(domain, pss, dcname)) {
+ if (dcip_to_name(mem_ctx, domain, pss, dcname)) {
return True;
}
AI_NUMERICHOST)) {
return NT_STATUS_UNSUCCESSFUL;
}
- if (dcip_to_name( domain, &ss, saf_name )) {
+ if (dcip_to_name(mem_ctx, domain, &ss, saf_name )) {
fstrcpy( domain->dcname, saf_name );
} else {
winbind_add_failed_connection_entry(