mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
winbind: pass down existing talloc context.
Guenther
This commit is contained in:
parent
a51cb3c1a9
commit
675bf42cff
@ -126,7 +126,8 @@ static const char *mailslot_name(TALLOC_CTX *mem_ctx, struct in_addr dc_ip)
|
||||
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)
|
||||
@ -139,7 +140,6 @@ bool send_getdc_request(struct messaging_context *msg_ctx,
|
||||
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);
|
||||
@ -193,14 +193,14 @@ bool send_getdc_request(struct messaging_context *msg_ctx,
|
||||
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;
|
||||
|
@ -1024,7 +1024,8 @@ static bool add_sockaddr_to_array(TALLOC_CTX *mem_ctx,
|
||||
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 )
|
||||
{
|
||||
@ -1091,13 +1092,13 @@ static bool dcip_to_name(const struct winbindd_domain *domain,
|
||||
|
||||
/* 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;
|
||||
@ -1291,7 +1292,7 @@ static bool find_new_dc(TALLOC_CTX *mem_ctx,
|
||||
}
|
||||
|
||||
/* Try to figure out the name */
|
||||
if (dcip_to_name(domain, pss, dcname)) {
|
||||
if (dcip_to_name(mem_ctx, domain, pss, dcname)) {
|
||||
return True;
|
||||
}
|
||||
|
||||
@ -1336,7 +1337,7 @@ static NTSTATUS cm_open_connection(struct winbindd_domain *domain,
|
||||
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(
|
||||
|
Loading…
Reference in New Issue
Block a user