[SCM] Samba Shared Repository - branch master updated

Günther Deschner gd at samba.org
Wed Sep 8 11:33:47 MDT 2010


The branch, master has been updated
       via  958df10 s3-nmbd: fix indentation in process_logon_packet().
       via  ed68eb7 s3-nmbd: remove trailing whitespace in nmbd_processlogon.c
      from  32e9577 s3-spoolss: Move spoolss winreg to new dcerpc client funtions.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 958df10a44f1370ab46f8ed571e6927e1e182d87
Author: Günther Deschner <gd at samba.org>
Date:   Tue Sep 7 11:50:39 2010 +0200

    s3-nmbd: fix indentation in process_logon_packet().
    
    purely cosmetic, no code change.
    
    Guenther

commit ed68eb768b59835b96099d3073a5aa8b1da0e082
Author: Günther Deschner <gd at samba.org>
Date:   Wed Sep 8 19:01:10 2010 +0200

    s3-nmbd: remove trailing whitespace in nmbd_processlogon.c
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source3/nmbd/nmbd_processlogon.c | 1056 +++++++++++++++++++-------------------
 1 files changed, 526 insertions(+), 530 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/nmbd/nmbd_processlogon.c b/source3/nmbd/nmbd_processlogon.c
index 273f3d3..357d00b 100644
--- a/source3/nmbd/nmbd_processlogon.c
+++ b/source3/nmbd/nmbd_processlogon.c
@@ -1,24 +1,24 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
    NBT netbios routines and daemon - version 2
    Copyright (C) Andrew Tridgell 1994-1998
    Copyright (C) Luke Kenneth Casson Leighton 1994-1998
    Copyright (C) Jeremy Allison 1994-2003
    Copyright (C) Jim McDonough <jmcd at us.ibm.com> 2002
-   
+
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-   
+
    Revision History:
 
 */
@@ -280,7 +280,7 @@ static void nmbd_proxy_logon_done(struct tevent_req *subreq)
 		return;
 	}
 
-	status = push_netlogon_samlogon_response(&response, state, 
+	status = push_netlogon_samlogon_response(&response, state,
 						 &state->io.out.netlogon);
 	if (!NT_STATUS_IS_OK(status)) {
 		DEBUG(0,("failed to push netlogon_samlogon_response: %s\n",
@@ -304,7 +304,7 @@ static void nmbd_proxy_logon_done(struct tevent_req *subreq)
 Process a domain logon packet
 **************************************************************************/
 
-void process_logon_packet(struct packet_struct *p, char *buf,int len, 
+void process_logon_packet(struct packet_struct *p, char *buf,int len,
                           const char *mailslot)
 {
 	struct dgram_packet *dgram = &p->packet.dgram;
@@ -351,585 +351,581 @@ logons are not enabled.\n", inet_ntoa(p->ip) ));
 	DEBUG(4,("process_logon_packet: Logon from %s: code = 0x%x\n", inet_ntoa(p->ip), code));
 
 	switch (code) {
-		case 0:
-			{
-				fstring mach_str, user_str, getdc_str;
-				char *q = buf + 2;
-				char *machine = q;
-				char *user = skip_string(buf,len,machine);
-
-				if (!user || PTR_DIFF(user, buf) >= len) {
-					DEBUG(0,("process_logon_packet: bad packet\n"));
-					return;
-				}
-				getdc = skip_string(buf,len,user);
+	case 0: {
+		fstring mach_str, user_str, getdc_str;
+		char *q = buf + 2;
+		char *machine = q;
+		char *user = skip_string(buf,len,machine);
+
+		if (!user || PTR_DIFF(user, buf) >= len) {
+			DEBUG(0,("process_logon_packet: bad packet\n"));
+			return;
+		}
+		getdc = skip_string(buf,len,user);
 
-				if (!getdc || PTR_DIFF(getdc, buf) >= len) {
-					DEBUG(0,("process_logon_packet: bad packet\n"));
-					return;
-				}
-				q = skip_string(buf,len,getdc);
+		if (!getdc || PTR_DIFF(getdc, buf) >= len) {
+			DEBUG(0,("process_logon_packet: bad packet\n"));
+			return;
+		}
+		q = skip_string(buf,len,getdc);
 
-				if (!q || PTR_DIFF(q + 5, buf) > len) {
-					DEBUG(0,("process_logon_packet: bad packet\n"));
-					return;
-				}
-				token = SVAL(q,3);
+		if (!q || PTR_DIFF(q + 5, buf) > len) {
+			DEBUG(0,("process_logon_packet: bad packet\n"));
+			return;
+		}
+		token = SVAL(q,3);
 
-				fstrcpy(reply_name,my_name);
+		fstrcpy(reply_name,my_name);
 
-				pull_ascii_fstring(mach_str, machine);
-				pull_ascii_fstring(user_str, user);
-				pull_ascii_fstring(getdc_str, getdc);
+		pull_ascii_fstring(mach_str, machine);
+		pull_ascii_fstring(user_str, user);
+		pull_ascii_fstring(getdc_str, getdc);
 
-				DEBUG(5,("process_logon_packet: Domain login request from %s at IP %s user=%s token=%x\n",
-					mach_str,inet_ntoa(p->ip),user_str,token));
+		DEBUG(5,("process_logon_packet: Domain login request from %s at IP %s user=%s token=%x\n",
+			mach_str,inet_ntoa(p->ip),user_str,token));
 
-				q = outbuf;
-				SSVAL(q, 0, 6);
-				q += 2;
+		q = outbuf;
+		SSVAL(q, 0, 6);
+		q += 2;
 
-				fstrcpy(reply_name, "\\\\");
-				fstrcat(reply_name, my_name);
-				size = push_ascii(q,reply_name,
-						sizeof(outbuf)-PTR_DIFF(q, outbuf),
-						STR_TERMINATE);
-				if (size == (size_t)-1) {
-					return;
-				}
-				q = skip_string(outbuf,sizeof(outbuf),q); /* PDC name */
+		fstrcpy(reply_name, "\\\\");
+		fstrcat(reply_name, my_name);
+		size = push_ascii(q,reply_name,
+				sizeof(outbuf)-PTR_DIFF(q, outbuf),
+				STR_TERMINATE);
+		if (size == (size_t)-1) {
+			return;
+		}
+		q = skip_string(outbuf,sizeof(outbuf),q); /* PDC name */
 
-				SSVAL(q, 0, token);
-				q += 2;
+		SSVAL(q, 0, token);
+		q += 2;
 
-				dump_data(4, (uint8 *)outbuf, PTR_DIFF(q, outbuf));
+		dump_data(4, (uint8 *)outbuf, PTR_DIFF(q, outbuf));
 
-				send_mailslot(True, getdc_str,
-						outbuf,PTR_DIFF(q,outbuf),
-						global_myname(), 0x0,
-						mach_str,
-						dgram->source_name.name_type,
-						p->ip, ip, p->port);
-				break;
-			}
+		send_mailslot(True, getdc_str,
+				outbuf,PTR_DIFF(q,outbuf),
+				global_myname(), 0x0,
+				mach_str,
+				dgram->source_name.name_type,
+				p->ip, ip, p->port);
+		break;
+	}
 
-		case LOGON_PRIMARY_QUERY:
-			{
-				fstring mach_str, getdc_str;
-				fstring source_name;
-				char *q = buf + 2;
-				char *machine = q;
+	case LOGON_PRIMARY_QUERY: {
+		fstring mach_str, getdc_str;
+		fstring source_name;
+		char *q = buf + 2;
+		char *machine = q;
 
-				if (!lp_domain_master()) {
-					/* We're not Primary Domain Controller -- ignore this */
-					return;
-				}
+		if (!lp_domain_master()) {
+			/* We're not Primary Domain Controller -- ignore this */
+			return;
+		}
 
-				getdc = skip_string(buf,len,machine);
+		getdc = skip_string(buf,len,machine);
 
-				if (!getdc || PTR_DIFF(getdc, buf) >= len) {
-					DEBUG(0,("process_logon_packet: bad packet\n"));
-					return;
-				}
-				q = skip_string(buf,len,getdc);
+		if (!getdc || PTR_DIFF(getdc, buf) >= len) {
+			DEBUG(0,("process_logon_packet: bad packet\n"));
+			return;
+		}
+		q = skip_string(buf,len,getdc);
 
-				if (!q || PTR_DIFF(q, buf) >= len) {
-					DEBUG(0,("process_logon_packet: bad packet\n"));
-					return;
-				}
-				q = ALIGN2(q, buf);
-
-				/* At this point we can work out if this is a W9X or NT style
-				   request. Experiments show that the difference is wether the
-				   packet ends here. For a W9X request we now end with a pair of
-				   bytes (usually 0xFE 0xFF) whereas with NT we have two further
-				   strings - the following is a simple way of detecting this */
-
-				if (len - PTR_DIFF(q, buf) <= 3) {
-					short_request = True;
-				} else {
-					unicomp = q;
-
-					if (PTR_DIFF(q, buf) >= len) {
-						DEBUG(0,("process_logon_packet: bad packet\n"));
-						return;
-					}
-
-					/* A full length (NT style) request */
-					q = skip_unibuf(unicomp, PTR_DIFF(buf + len, unicomp));
-
-					if (PTR_DIFF(q, buf) >= len) {
-						DEBUG(0,("process_logon_packet: bad packet\n"));
-						return;
-					}
-
-					if (len - PTR_DIFF(q, buf) > 8) {
-						/* with NT5 clients we can sometimes
-							get additional data - a length specificed string
-							containing the domain name, then 16 bytes of
-							data (no idea what it is) */
-						int dom_len = CVAL(q, 0);
-						q++;
-						if (dom_len != 0) {
-							q += dom_len + 1;
-						}
-						q += 16;
-					}
-
-					if (PTR_DIFF(q + 8, buf) > len) {
-						DEBUG(0,("process_logon_packet: bad packet\n"));
-						return;
-					}
-
-					ntversion = IVAL(q, 0);
-					lmnttoken = SVAL(q, 4);
-					lm20token = SVAL(q, 6);
-				}
+		if (!q || PTR_DIFF(q, buf) >= len) {
+			DEBUG(0,("process_logon_packet: bad packet\n"));
+			return;
+		}
+		q = ALIGN2(q, buf);
 
-				/* Construct reply. */
-				q = outbuf;
-				SSVAL(q, 0, NETLOGON_RESPONSE_FROM_PDC);
-				q += 2;
+		/* At this point we can work out if this is a W9X or NT style
+		   request. Experiments show that the difference is wether the
+		   packet ends here. For a W9X request we now end with a pair of
+		   bytes (usually 0xFE 0xFF) whereas with NT we have two further
+		   strings - the following is a simple way of detecting this */
 
-				fstrcpy(reply_name,my_name);
-				size = push_ascii(q, reply_name,
-						sizeof(outbuf)-PTR_DIFF(q, outbuf),
-						STR_TERMINATE);
-				if (size == (size_t)-1) {
-					return;
-				}
-				q = skip_string(outbuf,sizeof(outbuf),q); /* PDC name */
-
-				/* PDC and domain name */
-				if (!short_request) {
-					/* Make a full reply */
-					q = ALIGN2(q, outbuf);
-
-					q += dos_PutUniCode(q, my_name,
-						sizeof(outbuf) - PTR_DIFF(q, outbuf),
-						True); /* PDC name */
-					q += dos_PutUniCode(q, lp_workgroup(),
-						sizeof(outbuf) - PTR_DIFF(q, outbuf),
-						True); /* Domain name*/
-					if (sizeof(outbuf) - PTR_DIFF(q, outbuf) < 8) {
-						return;
-					}
-					SIVAL(q, 0, 1); /* our nt version */
-					SSVAL(q, 4, 0xffff); /* our lmnttoken */
-					SSVAL(q, 6, 0xffff); /* our lm20token */
-					q += 8;
-				}
+		if (len - PTR_DIFF(q, buf) <= 3) {
+			short_request = True;
+		} else {
+			unicomp = q;
+
+			if (PTR_DIFF(q, buf) >= len) {
+				DEBUG(0,("process_logon_packet: bad packet\n"));
+				return;
+			}
 
-				/* RJS, 21-Feb-2000, we send a short reply if the request was short */
+			/* A full length (NT style) request */
+			q = skip_unibuf(unicomp, PTR_DIFF(buf + len, unicomp));
 
-				pull_ascii_fstring(mach_str, machine);
+			if (PTR_DIFF(q, buf) >= len) {
+				DEBUG(0,("process_logon_packet: bad packet\n"));
+				return;
+			}
 
-				DEBUG(5,("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",
-					mach_str,inet_ntoa(p->ip), reply_name, lp_workgroup(),
-					NETLOGON_RESPONSE_FROM_PDC, (uint32)ntversion, (uint32)lmnttoken,
-					(uint32)lm20token ));
+			if (len - PTR_DIFF(q, buf) > 8) {
+				/* with NT5 clients we can sometimes
+					get additional data - a length specificed string
+					containing the domain name, then 16 bytes of
+					data (no idea what it is) */
+				int dom_len = CVAL(q, 0);
+				q++;
+				if (dom_len != 0) {
+					q += dom_len + 1;
+				}
+				q += 16;
+			}
+
+			if (PTR_DIFF(q + 8, buf) > len) {
+				DEBUG(0,("process_logon_packet: bad packet\n"));
+				return;
+			}
 
-				dump_data(4, (uint8 *)outbuf, PTR_DIFF(q, outbuf));
+			ntversion = IVAL(q, 0);
+			lmnttoken = SVAL(q, 4);
+			lm20token = SVAL(q, 6);
+		}
 
-				pull_ascii_fstring(getdc_str, getdc);
-				pull_ascii_nstring(source_name, sizeof(source_name), dgram->source_name.name);
+		/* Construct reply. */
+		q = outbuf;
+		SSVAL(q, 0, NETLOGON_RESPONSE_FROM_PDC);
+		q += 2;
 
-				send_mailslot(True, getdc_str,
-					outbuf,PTR_DIFF(q,outbuf),
-					global_myname(), 0x0,
-					source_name,
-					dgram->source_name.name_type,
-					p->ip, ip, p->port);
+		fstrcpy(reply_name,my_name);
+		size = push_ascii(q, reply_name,
+				sizeof(outbuf)-PTR_DIFF(q, outbuf),
+				STR_TERMINATE);
+		if (size == (size_t)-1) {
+			return;
+		}
+		q = skip_string(outbuf,sizeof(outbuf),q); /* PDC name */
+
+		/* PDC and domain name */
+		if (!short_request) {
+			/* Make a full reply */
+			q = ALIGN2(q, outbuf);
+
+			q += dos_PutUniCode(q, my_name,
+				sizeof(outbuf) - PTR_DIFF(q, outbuf),
+				True); /* PDC name */
+			q += dos_PutUniCode(q, lp_workgroup(),
+				sizeof(outbuf) - PTR_DIFF(q, outbuf),
+				True); /* Domain name*/
+			if (sizeof(outbuf) - PTR_DIFF(q, outbuf) < 8) {
 				return;
 			}
+			SIVAL(q, 0, 1); /* our nt version */
+			SSVAL(q, 4, 0xffff); /* our lmnttoken */
+			SSVAL(q, 6, 0xffff); /* our lm20token */
+			q += 8;
+		}
 
-		case LOGON_SAM_LOGON_REQUEST:
+		/* RJS, 21-Feb-2000, we send a short reply if the request was short */
 
-			{
-				fstring getdc_str;
-				fstring source_name;
-				char *source_addr;
-				char *q = buf + 2;
-				fstring asccomp;
+		pull_ascii_fstring(mach_str, machine);
 
-				if (global_nmbd_proxy_logon) {
-					nmbd_proxy_logon(global_nmbd_proxy_logon,
-							 ip, p, (uint8_t *)buf, len);
-					return;
-				}
+		DEBUG(5,("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",
+			mach_str,inet_ntoa(p->ip), reply_name, lp_workgroup(),
+			NETLOGON_RESPONSE_FROM_PDC, (uint32)ntversion, (uint32)lmnttoken,
+			(uint32)lm20token ));
 
-				q += 2;
+		dump_data(4, (uint8 *)outbuf, PTR_DIFF(q, outbuf));
 
-				if (PTR_DIFF(q, buf) >= len) {
-					DEBUG(0,("process_logon_packet: bad packet\n"));
-					return;
-				}
+		pull_ascii_fstring(getdc_str, getdc);
+		pull_ascii_nstring(source_name, sizeof(source_name), dgram->source_name.name);
 
-				unicomp = q;
-				uniuser = skip_unibuf(unicomp, PTR_DIFF(buf+len, unicomp));
+		send_mailslot(True, getdc_str,
+			outbuf,PTR_DIFF(q,outbuf),
+			global_myname(), 0x0,
+			source_name,
+			dgram->source_name.name_type,
+			p->ip, ip, p->port);
+		return;
+	}
 
-				if (PTR_DIFF(uniuser, buf) >= len) {
-					DEBUG(0,("process_logon_packet: bad packet\n"));
-					return;
-				}
+	case LOGON_SAM_LOGON_REQUEST: {
+		fstring getdc_str;
+		fstring source_name;
+		char *source_addr;
+		char *q = buf + 2;
+		fstring asccomp;
 
-				getdc = skip_unibuf(uniuser,PTR_DIFF(buf+len, uniuser));
+		if (global_nmbd_proxy_logon) {
+			nmbd_proxy_logon(global_nmbd_proxy_logon,
+					 ip, p, (uint8_t *)buf, len);
+			return;
+		}
 
-				if (PTR_DIFF(getdc, buf) >= len) {
-					DEBUG(0,("process_logon_packet: bad packet\n"));
-					return;
-				}
+		q += 2;
 
-				q = skip_string(buf,len,getdc);
+		if (PTR_DIFF(q, buf) >= len) {
+			DEBUG(0,("process_logon_packet: bad packet\n"));
+			return;
+		}
 
-				if (!q || PTR_DIFF(q + 8, buf) >= len) {
-					DEBUG(0,("process_logon_packet: bad packet\n"));
-					return;
-				}
+		unicomp = q;
+		uniuser = skip_unibuf(unicomp, PTR_DIFF(buf+len, unicomp));
 
-				q += 4; /* Account Control Bits - indicating username type */
-				domainsidsize = IVAL(q, 0);
-				q += 4;
+		if (PTR_DIFF(uniuser, buf) >= len) {
+			DEBUG(0,("process_logon_packet: bad packet\n"));
+			return;
+		}
 
-				DEBUG(5,("process_logon_packet: LOGON_SAM_LOGON_REQUEST sidsize %d, len = %d\n", domainsidsize, len));
+		getdc = skip_unibuf(uniuser,PTR_DIFF(buf+len, uniuser));
 
-				if (domainsidsize < (len - PTR_DIFF(q, buf)) && (domainsidsize != 0)) {
-					q += domainsidsize;
-					q = ALIGN4(q, buf);
-				}
+		if (PTR_DIFF(getdc, buf) >= len) {
+			DEBUG(0,("process_logon_packet: bad packet\n"));
+			return;
+		}
 
-				DEBUG(5,("process_logon_packet: len = %d PTR_DIFF(q, buf) = %ld\n", len, (unsigned long)PTR_DIFF(q, buf) ));
-
-				if (len - PTR_DIFF(q, buf) > 8) {
-					/* with NT5 clients we can sometimes
-						get additional data - a length specificed string
-						containing the domain name, then 16 bytes of
-						data (no idea what it is) */
-					int dom_len = CVAL(q, 0);
-					q++;
-					if (dom_len < (len - PTR_DIFF(q, buf)) && (dom_len != 0)) {


-- 
Samba Shared Repository


More information about the samba-cvs mailing list