From aa90730e0c2617c3d2ab477c3f08c26adb582b21 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Tue, 20 May 2008 11:54:50 +1000 Subject: Revert addition of 'mailslot' parameter. It turns out that the mailslot name (and a useful private prointer) is provided in the struct dgram_mailslot_handler. Andrew Bartlett (This used to be commit e17804b8857fdb3c182c5e886323b9d6c194c2ff) --- source4/libcli/dgram/dgramsocket.c | 2 +- source4/libcli/dgram/libdgram.h | 1 - source4/nbt_server/dgram/browse.c | 1 - source4/nbt_server/dgram/netlogon.c | 9 +++------ source4/torture/nbt/dgram.c | 3 +-- 5 files changed, 5 insertions(+), 11 deletions(-) diff --git a/source4/libcli/dgram/dgramsocket.c b/source4/libcli/dgram/dgramsocket.c index 2cdda654ef..06b7bd5771 100644 --- a/source4/libcli/dgram/dgramsocket.c +++ b/source4/libcli/dgram/dgramsocket.c @@ -88,7 +88,7 @@ static void dgm_socket_recv(struct nbt_dgram_socket *dgmsock) struct dgram_mailslot_handler *dgmslot; dgmslot = dgram_mailslot_find(dgmsock, mailslot_name); if (dgmslot) { - dgmslot->handler(dgmslot, packet, mailslot_name, src); + dgmslot->handler(dgmslot, packet, src); } else { DEBUG(2,("No mailslot handler for '%s'\n", mailslot_name)); } diff --git a/source4/libcli/dgram/libdgram.h b/source4/libcli/dgram/libdgram.h index 51408d029e..e1209e7a54 100644 --- a/source4/libcli/dgram/libdgram.h +++ b/source4/libcli/dgram/libdgram.h @@ -70,7 +70,6 @@ struct nbt_dgram_socket { typedef void (*dgram_mailslot_handler_t)(struct dgram_mailslot_handler *, struct nbt_dgram_packet *, - const char *mailslot_name, struct socket_address *src); struct dgram_mailslot_handler { diff --git a/source4/nbt_server/dgram/browse.c b/source4/nbt_server/dgram/browse.c index 36f0160e1b..2e12fa114a 100644 --- a/source4/nbt_server/dgram/browse.c +++ b/source4/nbt_server/dgram/browse.c @@ -49,7 +49,6 @@ static const char *nbt_browse_opcode_string(enum nbt_browse_opcode r) */ void nbtd_mailslot_browse_handler(struct dgram_mailslot_handler *dgmslot, struct nbt_dgram_packet *packet, - const char *mailslot_name, struct socket_address *src) { struct nbt_browse_packet *browse = talloc(dgmslot, struct nbt_browse_packet); diff --git a/source4/nbt_server/dgram/netlogon.c b/source4/nbt_server/dgram/netlogon.c index c66089523b..b8fb1b8677 100644 --- a/source4/nbt_server/dgram/netlogon.c +++ b/source4/nbt_server/dgram/netlogon.c @@ -38,7 +38,6 @@ static void nbtd_netlogon_getdc(struct dgram_mailslot_handler *dgmslot, struct nbtd_interface *iface, struct nbt_dgram_packet *packet, - const char *mailslot_name, const struct socket_address *src, struct nbt_netlogon_packet *netlogon) { @@ -106,7 +105,6 @@ static void nbtd_netlogon_getdc(struct dgram_mailslot_handler *dgmslot, static void nbtd_netlogon_samlogon(struct dgram_mailslot_handler *dgmslot, struct nbtd_interface *iface, struct nbt_dgram_packet *packet, - const char *mailslot_name, const struct socket_address *src, struct nbt_netlogon_packet *netlogon) { @@ -135,7 +133,7 @@ static void nbtd_netlogon_samlogon(struct dgram_mailslot_handler *dgmslot, } if (netlogon->req.logon.sid_size) { - if (strcasecmp(mailslot_name, NBT_MAILSLOT_NTLOGON) == 0) { + if (strcasecmp(dgmslot->mailslot_name, NBT_MAILSLOT_NTLOGON) == 0) { DEBUG(2,("NBT netlogon query failed because SID specified in request to NTLOGON\n")); /* SID not permitted on NTLOGON (for some reason...) */ return; @@ -171,7 +169,6 @@ static void nbtd_netlogon_samlogon(struct dgram_mailslot_handler *dgmslot, */ void nbtd_mailslot_netlogon_handler(struct dgram_mailslot_handler *dgmslot, struct nbt_dgram_packet *packet, - const char *mailslot_name, struct socket_address *src) { NTSTATUS status = NT_STATUS_NO_MEMORY; @@ -200,11 +197,11 @@ void nbtd_mailslot_netlogon_handler(struct dgram_mailslot_handler *dgmslot, switch (netlogon->command) { case LOGON_PRIMARY_QUERY: - nbtd_netlogon_getdc(dgmslot, iface, packet, mailslot_name, + nbtd_netlogon_getdc(dgmslot, iface, packet, src, netlogon); break; case LOGON_SAM_LOGON_REQUEST: - nbtd_netlogon_samlogon(dgmslot, iface, packet, mailslot_name, + nbtd_netlogon_samlogon(dgmslot, iface, packet, src, netlogon); break; default: diff --git a/source4/torture/nbt/dgram.c b/source4/torture/nbt/dgram.c index ce5758977d..2bc3d3d75e 100644 --- a/source4/torture/nbt/dgram.c +++ b/source4/torture/nbt/dgram.c @@ -39,7 +39,6 @@ */ static void netlogon_handler(struct dgram_mailslot_handler *dgmslot, struct nbt_dgram_packet *packet, - const char *mailslot_name, struct socket_address *src) { NTSTATUS status; @@ -54,7 +53,7 @@ static void netlogon_handler(struct dgram_mailslot_handler *dgmslot, src->addr, src->port); return; } - + (*replies)++; } -- cgit From acba9bc702bf8d07487f3f37d1acdac3648ee75b Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Tue, 20 May 2008 14:52:57 +1000 Subject: Fix number of arguments to IRPC getdc callback. Andrew Bartlett (This used to be commit 8753ced2f4ee25cd5eff011f66f8e37f9807bdaf) --- source4/nbt_server/irpc.c | 1 - 1 file changed, 1 deletion(-) diff --git a/source4/nbt_server/irpc.c b/source4/nbt_server/irpc.c index 3a70c98041..b14610b2df 100644 --- a/source4/nbt_server/irpc.c +++ b/source4/nbt_server/irpc.c @@ -61,7 +61,6 @@ struct getdc_state { static void getdc_recv_netlogon_reply(struct dgram_mailslot_handler *dgmslot, struct nbt_dgram_packet *packet, - const char *mailslot_name, struct socket_address *src) { struct getdc_state *s = -- cgit From 52f0af3990f79dfc6b2e784eed9e58a2a705d1ea Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Tue, 20 May 2008 15:28:26 +1000 Subject: Fix irpc GetDC requests. We would return NT_STATUS_NO_LOGON_SERVERS in all cases, which was less than helpful. Andrew Bartlett (This used to be commit 5dfa316b3636718ffc6fd26cf7a397a797bd2ac1) --- source4/nbt_server/irpc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source4/nbt_server/irpc.c b/source4/nbt_server/irpc.c index b14610b2df..8f1f74afcf 100644 --- a/source4/nbt_server/irpc.c +++ b/source4/nbt_server/irpc.c @@ -84,8 +84,6 @@ static void getdc_recv_netlogon_reply(struct dgram_mailslot_handler *dgmslot, goto done; } - status = NT_STATUS_NO_LOGON_SERVERS; - p = netlogon.samlogon.nt4.server; DEBUG(10, ("NTLOGON_SAM_LOGON_REPLY: server: %s, user: %s, " @@ -102,6 +100,8 @@ static void getdc_recv_netlogon_reply(struct dgram_mailslot_handler *dgmslot, goto done; } + status = NT_STATUS_OK; + done: irpc_send_reply(s->msg, status); } -- cgit