mirror of
https://github.com/samba-team/samba.git
synced 2025-01-26 10:04:02 +03:00
mailslot: allow to give back struct nbt_ntlogon_packet.
Guenther (This used to be commit 2b178dcae608ecc05f62593a7a0c2a127b8b7ca2)
This commit is contained in:
parent
012d678211
commit
b77601a4b7
@ -197,7 +197,8 @@ bool send_getdc_request(TALLOC_CTX *mem_ctx,
|
||||
bool receive_getdc_response(TALLOC_CTX *mem_ctx,
|
||||
struct sockaddr_storage *dc_ss,
|
||||
const char *domain_name,
|
||||
const char **dc_name)
|
||||
const char **dc_name,
|
||||
struct nbt_ntlogon_packet **reply)
|
||||
{
|
||||
struct packet_struct *packet;
|
||||
const char *my_mailslot = NULL;
|
||||
@ -299,6 +300,14 @@ bool receive_getdc_response(TALLOC_CTX *mem_ctx,
|
||||
if (**dc_name == '\\') *dc_name += 1;
|
||||
if (**dc_name == '\\') *dc_name += 1;
|
||||
|
||||
if (reply) {
|
||||
*reply = talloc_memdup(mem_ctx, &r,
|
||||
sizeof(struct nbt_ntlogon_packet));
|
||||
if (!*reply) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
DEBUG(10, ("GetDC gave name %s for domain %s\n",
|
||||
*dc_name, returned_domain));
|
||||
|
||||
|
@ -779,6 +779,7 @@ static NTSTATUS process_dc_netbios(TALLOC_CTX *mem_ctx,
|
||||
const char *dc_name = NULL;
|
||||
fstring tmp_dc_name;
|
||||
struct messaging_context *msg_ctx = msg_context(mem_ctx);
|
||||
struct nbt_ntlogon_packet *reply = NULL;
|
||||
|
||||
if (flags & DS_PDC_REQUIRED) {
|
||||
name_type = NBT_NAME_PDC;
|
||||
@ -805,7 +806,8 @@ static NTSTATUS process_dc_netbios(TALLOC_CTX *mem_ctx,
|
||||
if (receive_getdc_response(mem_ctx,
|
||||
&dclist[i].ss,
|
||||
domain_name,
|
||||
&dc_name)) {
|
||||
&dc_name,
|
||||
&reply)) {
|
||||
namecache_store(dc_name, NBT_NAME_SERVER, 1, &ip_list);
|
||||
dc_hostname = dc_name;
|
||||
dc_domain_name = talloc_strdup_upper(mem_ctx, domain_name);
|
||||
|
@ -1098,7 +1098,8 @@ static bool dcip_to_name(TALLOC_CTX *mem_ctx,
|
||||
int i;
|
||||
smb_msleep(100);
|
||||
for (i=0; i<5; i++) {
|
||||
if (receive_getdc_response(mem_ctx, pss, domain->name, &dc_name)) {
|
||||
if (receive_getdc_response(mem_ctx, pss, domain->name,
|
||||
&dc_name, NULL)) {
|
||||
fstrcpy(name, dc_name);
|
||||
namecache_store(name, 0x20, 1, &ip_list);
|
||||
return True;
|
||||
|
Loading…
x
Reference in New Issue
Block a user