mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
r6320: some minor netlogon datagram fixes - NT4 can now join a Samba4 domain without
Samba3 nmbd
(This used to be commit 4507bdc339
)
This commit is contained in:
parent
b3221032d2
commit
b6fd09d805
@ -159,7 +159,7 @@ NTSTATUS dgram_mailslot_send(struct nbt_dgram_socket *dgmsock,
|
||||
|
||||
ZERO_STRUCT(packet);
|
||||
packet.msg_type = msg_type;
|
||||
packet.flags = DGRAM_FLAG_FIRST;
|
||||
packet.flags = DGRAM_FLAG_FIRST | DGRAM_NODE_NBDD;
|
||||
packet.dgram_id = generate_random() % UINT16_MAX;
|
||||
packet.source = socket_get_my_addr(dgmsock->sock, tmp_ctx);
|
||||
packet.src_port = socket_get_my_port(dgmsock->sock);
|
||||
@ -179,7 +179,7 @@ NTSTATUS dgram_mailslot_send(struct nbt_dgram_socket *dgmsock,
|
||||
|
||||
trans = &smb->body.trans;
|
||||
trans->total_data_count = request->length;
|
||||
trans->timeout = (uint32_t)-1;
|
||||
trans->timeout = 1000;
|
||||
trans->data_count = request->length;
|
||||
trans->data_offset = 70 + strlen(mailslot_name);
|
||||
trans->opcode = 1; /* write mail slot */
|
||||
|
@ -70,6 +70,7 @@ NTSTATUS dgram_mailslot_netlogon_reply(struct nbt_dgram_socket *dgmsock,
|
||||
NTSTATUS status;
|
||||
DATA_BLOB blob;
|
||||
TALLOC_CTX *tmp_ctx = talloc_new(dgmsock);
|
||||
struct nbt_name myname;
|
||||
|
||||
status = ndr_push_struct_blob(&blob, tmp_ctx, reply,
|
||||
(ndr_push_flags_fn_t)ndr_push_nbt_netlogon_packet);
|
||||
@ -78,11 +79,15 @@ NTSTATUS dgram_mailslot_netlogon_reply(struct nbt_dgram_socket *dgmsock,
|
||||
return status;
|
||||
}
|
||||
|
||||
myname.name = lp_netbios_name();
|
||||
myname.type = NBT_NAME_CLIENT;
|
||||
myname.scope = NULL;
|
||||
|
||||
status = dgram_mailslot_send(dgmsock, DGRAM_DIRECT_UNIQUE,
|
||||
mailslot_name,
|
||||
&request->data.msg.source_name,
|
||||
request->source, request->src_port,
|
||||
&request->data.msg.dest_name, &blob);
|
||||
&myname, &blob);
|
||||
talloc_free(tmp_ctx);
|
||||
return status;
|
||||
}
|
||||
|
@ -327,7 +327,7 @@
|
||||
|
||||
|
||||
/* \MAILSLOT\NET\NETLOGON mailslot requests */
|
||||
typedef [enum8bit] enum {
|
||||
typedef enum {
|
||||
NETLOGON_QUERY_FOR_PDC = 0x7,
|
||||
NETLOGON_ANNOUNCE_UAS = 0xa,
|
||||
NETLOGON_RESPONSE_FROM_PDC = 0xc
|
||||
@ -391,7 +391,6 @@
|
||||
|
||||
typedef [flag(NDR_NOALIGN),public] struct {
|
||||
nbt_netlogon_command command;
|
||||
[value(0)] uint8 pad;
|
||||
[switch_is(command)] nbt_netlogon_request req;
|
||||
} nbt_netlogon_packet;
|
||||
}
|
||||
|
@ -44,6 +44,7 @@ static void nbtd_netlogon_getdc(struct dgram_mailslot_handler *dgmslot,
|
||||
}
|
||||
|
||||
/* setup a GETDC reply */
|
||||
ZERO_STRUCT(reply);
|
||||
reply.command = NETLOGON_RESPONSE_FROM_PDC;
|
||||
pdc = &reply.req.response;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user