summaryrefslogtreecommitdiff
path: root/source4/samba3_nmbd.patch
diff options
context:
space:
mode:
Diffstat (limited to 'source4/samba3_nmbd.patch')
-rw-r--r--source4/samba3_nmbd.patch178
1 files changed, 0 insertions, 178 deletions
diff --git a/source4/samba3_nmbd.patch b/source4/samba3_nmbd.patch
deleted file mode 100644
index 772a0f917e..0000000000
--- a/source4/samba3_nmbd.patch
+++ /dev/null
@@ -1,178 +0,0 @@
-This is a extremely rough patch that 'fixes' Samba3 nmbd to allow a
-join from a WinXP client to a Samba4 server. Note that it hard-codes
-the domain GUID. Please only use for testing Samba4 - do not apply
-this to Samba3 svn.
-
-
-Index: nmbd/nmbd_processlogon.c
-===================================================================
---- nmbd/nmbd_processlogon.c (revision 4247)
-+++ nmbd/nmbd_processlogon.c (working copy)
-@@ -58,10 +58,37 @@
- tdb_close(tdb);
- }
-
-+
-+int push_components(unsigned char *q, const char *s)
-+{
-+ char *p;
-+ int l, len = 0;
-+
-+ if (*s == 0) {
-+ q[0] = 0;
-+ return 1;
-+ }
-+
-+ while ((p = strchr(s, '.'))) {
-+ l = (p-s);
-+ q[0] = l;
-+ memcpy(q+1, s, l);
-+ s += l + 1;
-+ q += l+1;
-+ len += l+1;
-+ }
-+
-+ l = strlen(s);
-+ q[0] = l;
-+ memcpy(q+1, s, l+1);
-+ len += strlen(s)+2;
-+
-+ return len;
-+}
-+
- /****************************************************************************
- Process a domain logon packet
- **************************************************************************/
--
- void process_logon_packet(struct packet_struct *p, char *buf,int len,
- const char *mailslot)
- {
-@@ -393,6 +420,8 @@
-
- get_mydnsdomname(domain);
- get_myname(hostname);
-+
-+ pstrcpy(domain, "bludom.tridgell.net");
-
- if (SVAL(uniuser, 0) == 0) {
- SIVAL(q, 0, SAMLOGON_AD_UNK_R); /* user unknown */
-@@ -403,6 +432,9 @@
-
- SIVAL(q, 0, ADS_PDC|ADS_GC|ADS_LDAP|ADS_DS|
- ADS_KDC|ADS_TIMESERV|ADS_CLOSEST|ADS_WRITABLE);
-+ SIVAL(q, 0, 0x3fd);
-+ SIVAL(q, 0, ADS_PDC|ADS_DS|
-+ ADS_TIMESERV|ADS_CLOSEST|ADS_WRITABLE);
- q += 4;
-
- /* Push Domain GUID */
-@@ -411,80 +443,34 @@
- return;
- }
-
-+ smb_string_to_uuid("b0eac516-4a33-8675-4127-6bf058911234", &domain_guid);
-+
-+ dump_data(0, domain_guid.node, 6);
-+
- smb_uuid_pack(domain_guid, &flat_guid);
- memcpy(q, &flat_guid.info, UUID_FLAT_SIZE);
-- q += UUID_FLAT_SIZE;
-
-- /* Forest */
-- str_offset = q - q_orig;
-- dc = domain;
-- q1 = q;
-- while ((component = strtok(dc, "."))) {
-- dc = NULL;
-- size = push_ascii(&q[1], component, -1, 0);
-- SCVAL(q, 0, size);
-- q += (size + 1);
-- }
-+ dump_data(0, q, 16);
-
-- /* Unk0 */
-- SCVAL(q, 0, 0);
-- q++;
-+ q += UUID_FLAT_SIZE;
-
-- /* Domain */
-- SCVAL(q, 0, 0xc0 | ((str_offset >> 8) & 0x3F));
-- SCVAL(q, 1, str_offset & 0xFF);
-- q += 2;
-+ const char *dnsname = "192.168.115.1";
-
-- /* Hostname */
-- size = push_ascii(&q[1], hostname, -1, 0);
-- SCVAL(q, 0, size);
-- q += (size + 1);
-- SCVAL(q, 0, 0xc0 | ((str_offset >> 8) & 0x3F));
-- SCVAL(q, 1, str_offset & 0xFF);
-- q += 2;
--
-- /* NETBIOS of domain */
-- size = push_ascii(&q[1], lp_workgroup(), -1, STR_UPPER);
-- SCVAL(q, 0, size);
-- q += (size + 1);
--
-- /* Unk1 */
-- SCVAL(q, 0, 0);
-- q++;
--
-- /* NETBIOS of hostname */
-- size = push_ascii(&q[1], my_name, -1, 0);
-- SCVAL(q, 0, size);
-- q += (size + 1);
--
-- /* Unk2 */
-- SCVAL(q, 0, 0);
-- q++;
--
-- /* User name */
-- if (SVAL(uniuser, 0) != 0) {
-- size = push_ascii(&q[1], ascuser, -1, 0);
-- SCVAL(q, 0, size);
-- q += (size + 1);
-+ q += push_components(q, domain);
-+ q += push_components(q, domain);
-+ q += push_components(q, dnsname);
-+ q += push_components(q, lp_workgroup());
-+ q += push_components(q, my_name);
-+ q += push_components(q, "");
-+ if (SVAL(uniuser, 0)) {
-+ q += push_components(q, ascuser);
- }
-+ q += push_components(q, "Default-First-Site-Name");
-+ q += push_components(q, "Default-First-Site-Name");
-
-- q_orig = q;
-- /* Site name */
-- size = push_ascii(&q[1], "Default-First-Site-Name", -1, 0);
-- SCVAL(q, 0, size);
-- q += (size + 1);
--
-- /* Site name (2) */
-- str_offset = q - q_orig;
-- SCVAL(q, 0, 0xc0 | ((str_offset >> 8) & 0x3F));
-- SCVAL(q, 1, str_offset & 0xFF);
-- q += 2;
--
-- SCVAL(q, 0, PTR_DIFF(q,q1));
-- SCVAL(q, 1, 0x10); /* unknown */
--
-- SIVAL(q, 0, 0x00000002);
-- q += 4; /* unknown */
-+ SCVAL(q, 0, 0x10); /* unknown */
-+ SIVAL(q, 1, 0x00000002);
-+ q += 5;
- SIVAL(q, 0, (iface_ip(p->ip))->s_addr);
- q += 4;
- SIVAL(q, 0, 0x00000000);
-@@ -495,7 +481,7 @@
- #endif
-
- /* tell the client what version we are */
-- SIVAL(q, 0, ((ntversion < 11) || (SEC_ADS != lp_security())) ? 1 : 13);
-+ SIVAL(q, 0, 13);
- /* our ntversion */
- SSVAL(q, 4, 0xffff); /* our lmnttoken */
- SSVAL(q, 6, 0xffff); /* our lm20token */