summaryrefslogtreecommitdiff
path: root/source/nmbd/nmbd_processlogon.c
diff options
context:
space:
mode:
authorMatthew Chapman <matty@samba.org>1999-08-08 04:51:13 +0000
committerMatthew Chapman <matty@samba.org>1999-08-08 04:51:13 +0000
commit8a603a8793cb067cd06edc3d73d0b35c427ed5ed (patch)
tree1d8da0ef05eeb9f42a98140f259411a89559af93 /source/nmbd/nmbd_processlogon.c
parentc086c7ab94d676e22801bc78588c116cf2e5a4eb (diff)
downloadsamba-8a603a8793cb067cd06edc3d73d0b35c427ed5ed.tar.gz
Fix for Win95 not being able to find PDC (for User/Server Manager, and
password change requests), from Michael Stockman <pgmtekn@algonet.se>. GETDC on \MAILSLOT\NET\NETLOGON necessarily returns less information than the NTLOGON version.
Diffstat (limited to 'source/nmbd/nmbd_processlogon.c')
-rw-r--r--source/nmbd/nmbd_processlogon.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/source/nmbd/nmbd_processlogon.c b/source/nmbd/nmbd_processlogon.c
index 6b56aed5b25..0fc44a40c9a 100644
--- a/source/nmbd/nmbd_processlogon.c
+++ b/source/nmbd/nmbd_processlogon.c
@@ -136,18 +136,21 @@ logons are not enabled.\n", inet_ntoa(p->ip) ));
fstrcpy(q, reply_name);
q = skip_string(q, 1); /* PDC name */
- q = align2(q, buf);
-
/* PDC and domain name */
- q = ascii_to_unibuf(q, my_name, outbuf+sizeof(outbuf)-q-2);
- q = ascii_to_unibuf(q, global_myworkgroup, outbuf+sizeof(outbuf)-q-2);
-
- SIVAL(q, 0, ntversion);
- q += 4;
- SSVAL(q, 0, lmnttoken);
- q += 2;
- SSVAL(q, 0, lm20token);
- q += 2;
+ if (strcmp(mailslot, NT_LOGON_MAILSLOT)==0)
+ {
+ q = align2(q, buf);
+
+ q = ascii_to_unibuf(q, my_name, outbuf+sizeof(outbuf)-q-2);
+ q = ascii_to_unibuf(q, global_myworkgroup, outbuf+sizeof(outbuf)-q-2);
+
+ SIVAL(q, 0, ntversion);
+ q += 4;
+ SSVAL(q, 0, lmnttoken);
+ q += 2;
+ SSVAL(q, 0, lm20token);
+ q += 2;
+ }
DEBUG(3,("process_logon_packet: GETDC request from %s at IP %s, \
reporting %s domain %s 0x%x ntversion=%x lm_nt token=%x lm_20 token=%x\n",