[SCM] Samba Shared Repository - branch v3-5-test updated

Jeremy Allison jra at samba.org
Wed Nov 4 16:17:32 MST 2009


The branch, v3-5-test has been updated
       via  c572a5b... Remove "Protocol" as an extern, and add accessor functions. Jeremy. (cherry picked from commit cbafe17bb37acfb76acf9d9905be1029e274089e)
      from  fedf1a0... s3: add support for full windows timestamps resolution on files

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-5-test


- Log -----------------------------------------------------------------
commit c572a5baa6645549e3bce8f2e049baba97fc4106
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Nov 4 15:15:50 2009 -0800

    Remove "Protocol" as an extern, and add accessor functions.
    Jeremy.
    (cherry picked from commit cbafe17bb37acfb76acf9d9905be1029e274089e)

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

Summary of changes:
 source3/include/proto.h     |    2 ++
 source3/lib/util.c          |   12 +++++++++++-
 source3/param/loadparm.c    |    3 +--
 source3/smbd/negprot.c      |   13 ++++++-------
 source3/smbd/nttrans.c      |    3 +--
 source3/smbd/reply.c        |   12 +++++-------
 source3/smbd/sesssetup.c    |    6 ++----
 source3/smbd/smb2_negprot.c |    4 +---
 source3/smbd/trans2.c       |    6 ++----
 9 files changed, 31 insertions(+), 30 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/include/proto.h b/source3/include/proto.h
index e133b88..82705b7 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -1073,6 +1073,8 @@ struct passwd *Get_Pwnam_alloc(TALLOC_CTX *mem_ctx, const char *user);
 
 /* The following definitions come from lib/util.c  */
 
+enum protocol_types get_Protocol(void);
+void set_Protocol(enum protocol_types  p);
 bool all_zero(const uint8_t *ptr, size_t size);
 bool set_global_myname(const char *myname);
 const char *global_myname(void);
diff --git a/source3/lib/util.c b/source3/lib/util.c
index b066a0d..247042d 100644
--- a/source3/lib/util.c
+++ b/source3/lib/util.c
@@ -55,7 +55,17 @@ extern unsigned int global_clobber_region_line;
 #endif /* WITH_NISPLUS_HOME */
 #endif /* HAVE_NETGROUP && WITH_AUTOMOUNT */
 
-enum protocol_types Protocol = PROTOCOL_COREPLUS;
+static enum protocol_types Protocol = PROTOCOL_COREPLUS;
+
+enum protocol_types get_Protocol(void)
+{
+	return Protocol;
+}
+
+void set_Protocol(enum protocol_types  p)
+{
+	Protocol = p;
+}
 
 static enum remote_arch_types ra_type = RA_UNKNOWN;
 
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index 93be017..06fb962 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -64,7 +64,6 @@
 
 bool bLoaded = False;
 
-extern enum protocol_types Protocol;
 extern userdom_struct current_user_info;
 
 #ifndef GLOBAL_NAME
@@ -9720,7 +9719,7 @@ bool lp_use_sendfile(int snum, struct smb_signing_state *signing_state)
 	bool sign_active = false;
 
 	/* Using sendfile blows the brains out of any DOS or Win9x TCP stack... JRA. */
-	if (Protocol < PROTOCOL_NT1) {
+	if (get_Protocol() < PROTOCOL_NT1) {
 		return false;
 	}
 	if (signing_state) {
diff --git a/source3/smbd/negprot.c b/source3/smbd/negprot.c
index 372f38e..81d29d9 100644
--- a/source3/smbd/negprot.c
+++ b/source3/smbd/negprot.c
@@ -23,7 +23,6 @@
 #include "../libcli/auth/spnego.h"
 
 extern fstring remote_proto;
-extern enum protocol_types Protocol;
 
 static void get_challenge(uint8 buff[8])
 {
@@ -61,7 +60,7 @@ static void reply_corep(struct smb_request *req, uint16 choice)
 	reply_outbuf(req, 1, 0);
 	SSVAL(req->outbuf, smb_vwv0, choice);
 
-	Protocol = PROTOCOL_CORE;
+	set_Protocol(PROTOCOL_CORE);
 }
 
 /****************************************************************************
@@ -81,7 +80,7 @@ static void reply_coreplus(struct smb_request *req, uint16 choice)
 	SCVAL(req->outbuf,smb_flg,FLAG_REPLY|FLAG_SUPPORT_LOCKREAD);
 	SSVAL(req->outbuf,smb_vwv1,0x1); /* user level security, don't
 					  * encrypt */
-	Protocol = PROTOCOL_COREPLUS;
+	set_Protocol(PROTOCOL_COREPLUS);
 }
 
 /****************************************************************************
@@ -114,7 +113,7 @@ static void reply_lanman1(struct smb_request *req, uint16 choice)
 		SSVAL(req->outbuf,smb_vwv11, 8);
 	}
 
-	Protocol = PROTOCOL_LANMAN1;
+	set_Protocol(PROTOCOL_LANMAN1);
 
 	/* Reply, SMBlockread, SMBwritelock supported. */
 	SCVAL(req->outbuf,smb_flg,FLAG_REPLY|FLAG_SUPPORT_LOCKREAD);
@@ -163,7 +162,7 @@ static void reply_lanman2(struct smb_request *req, uint16 choice)
 		SSVAL(req->outbuf,smb_vwv11, 8);
 	}
 
-	Protocol = PROTOCOL_LANMAN2;
+	set_Protocol(PROTOCOL_LANMAN2);
 
 	/* Reply, SMBlockread, SMBwritelock supported. */
 	SCVAL(req->outbuf,smb_flg,FLAG_REPLY|FLAG_SUPPORT_LOCKREAD);
@@ -345,7 +344,7 @@ static void reply_nt1(struct smb_request *req, uint16 choice)
 	SSVAL(req->outbuf,smb_vwv0,choice);
 	SCVAL(req->outbuf,smb_vwv1,secword);
 	
-	Protocol = PROTOCOL_NT1;
+	set_Protocol(PROTOCOL_NT1);
 	
 	SSVAL(req->outbuf,smb_vwv1+1,lp_maxmux()); /* maxmpx */
 	SSVAL(req->outbuf,smb_vwv2+1,1); /* num vcs */
@@ -698,7 +697,7 @@ void reply_negprot(struct smb_request *req)
   
 	DEBUG( 5, ( "negprot index=%d\n", choice ) );
 
-	if ((lp_server_signing() == Required) && (Protocol < PROTOCOL_NT1)) {
+	if ((lp_server_signing() == Required) && (get_Protocol() < PROTOCOL_NT1)) {
 		exit_server_cleanly("SMB signing is required and "
 			"client negotiated a downlevel protocol");
 	}
diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c
index 0cc05db..66102fa 100644
--- a/source3/smbd/nttrans.c
+++ b/source3/smbd/nttrans.c
@@ -21,7 +21,6 @@
 #include "includes.h"
 #include "smbd/globals.h"
 
-extern enum protocol_types Protocol;
 extern const struct generic_mapping file_generic_mapping;
 
 static char *nttrans_realloc(char **ptr, size_t size)
@@ -2538,7 +2537,7 @@ static void handle_nttrans(connection_struct *conn,
 			   struct trans_state *state,
 			   struct smb_request *req)
 {
-	if (Protocol >= PROTOCOL_NT1) {
+	if (get_Protocol() >= PROTOCOL_NT1) {
 		req->flags2 |= 0x40; /* IS_LONG_NAME */
 		SSVAL(req->inbuf,smb_flg2,req->flags2);
 	}
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c
index 2365ed1..984cf56 100644
--- a/source3/smbd/reply.c
+++ b/source3/smbd/reply.c
@@ -27,8 +27,6 @@
 #include "includes.h"
 #include "smbd/globals.h"
 
-extern enum protocol_types Protocol;
-
 /****************************************************************************
  Ensure we check the path in *exactly* the same way as W2K for a findfirst/findnext
  path or anything including wildcards.
@@ -787,7 +785,7 @@ void reply_tcon_and_X(struct smb_request *req)
 	else
 		server_devicetype = "A:";
 
-	if (Protocol < PROTOCOL_NT1) {
+	if (get_Protocol() < PROTOCOL_NT1) {
 		reply_outbuf(req, 2, 0);
 		if (message_push_string(&req->outbuf, server_devicetype,
 					STR_TERMINATE|STR_ASCII) == -1) {
@@ -1141,7 +1139,7 @@ void reply_getatr(struct smb_request *req)
 	}
 	SIVAL(req->outbuf,smb_vwv3,(uint32)size);
 
-	if (Protocol >= PROTOCOL_NT1) {
+	if (get_Protocol() >= PROTOCOL_NT1) {
 		SSVAL(req->outbuf, smb_flg2,
 		      SVAL(req->outbuf, smb_flg2) | FLAGS2_IS_LONG_NAME);
 	}
@@ -1266,7 +1264,7 @@ void reply_dskattr(struct smb_request *req)
 
 	reply_outbuf(req, 5, 0);
 
-	if (Protocol <= PROTOCOL_LANMAN2) {
+	if (get_Protocol() <= PROTOCOL_LANMAN2) {
 		double total_space, free_space;
 		/* we need to scale this to a number that DOS6 can handle. We
 		   use floating point so we can handle large drives on systems
@@ -3775,7 +3773,7 @@ void reply_writebraw(struct smb_request *req)
 	/* We have to deal with slightly different formats depending
 		on whether we are using the core+ or lanman1.0 protocol */
 
-	if(Protocol <= PROTOCOL_COREPLUS) {
+	if(get_Protocol() <= PROTOCOL_COREPLUS) {
 		numtowrite = SVAL(smb_buf(req->inbuf),-2);
 		data = smb_buf(req->inbuf);
 	} else {
@@ -3831,7 +3829,7 @@ void reply_writebraw(struct smb_request *req)
 	 * it to send more bytes */
 
 	memcpy(buf, req->inbuf, smb_size);
-	srv_set_message(buf,Protocol>PROTOCOL_COREPLUS?1:0,0,True);
+	srv_set_message(buf,get_Protocol()>PROTOCOL_COREPLUS?1:0,0,True);
 	SCVAL(buf,smb_com,SMBwritebraw);
 	SSVALS(buf,smb_vwv0,0xFFFF);
 	show_msg(buf);
diff --git a/source3/smbd/sesssetup.c b/source3/smbd/sesssetup.c
index 16ea2eb..addd386 100644
--- a/source3/smbd/sesssetup.c
+++ b/source3/smbd/sesssetup.c
@@ -26,8 +26,6 @@
 #include "smbd/globals.h"
 #include "../libcli/auth/spnego.h"
 
-extern enum protocol_types Protocol;
-
 /* For split krb5 SPNEGO blobs. */
 struct pending_auth_data {
 	struct pending_auth_data *prev, *next;
@@ -1432,7 +1430,7 @@ void reply_sesssetup_and_X(struct smb_request *req)
 
 	smb_bufsize = SVAL(req->vwv+2, 0);
 
-	if (Protocol < PROTOCOL_NT1) {
+	if (get_Protocol() < PROTOCOL_NT1) {
 		uint16 passlen1 = SVAL(req->vwv+7, 0);
 
 		/* Never do NT status codes with protocols before NT1 as we
@@ -1759,7 +1757,7 @@ void reply_sesssetup_and_X(struct smb_request *req)
 
 	/* it's ok - setup a reply */
 	reply_outbuf(req, 3, 0);
-	if (Protocol >= PROTOCOL_NT1) {
+	if (get_Protocol() >= PROTOCOL_NT1) {
 		push_signature(&req->outbuf);
 		/* perhaps grab OS version here?? */
 	}
diff --git a/source3/smbd/smb2_negprot.c b/source3/smbd/smb2_negprot.c
index 2c6449d..5b97c65 100644
--- a/source3/smbd/smb2_negprot.c
+++ b/source3/smbd/smb2_negprot.c
@@ -22,8 +22,6 @@
 #include "smbd/globals.h"
 #include "../libcli/smb/smb_common.h"
 
-extern enum protocol_types Protocol;
-
 /*
  * this is the entry point if SMB2 is selected via
  * the SMB negprot
@@ -114,7 +112,7 @@ NTSTATUS smbd_smb2_request_process_negprot(struct smbd_smb2_request *req)
 		return smbd_smb2_request_error(req, NT_STATUS_INVALID_PARAMETER);
 	}
 
-	Protocol = PROTOCOL_SMB2;
+	set_Protocol(PROTOCOL_SMB2);
 
 	if (get_remote_arch() != RA_SAMBA) {
 		set_remote_arch(RA_VISTA);
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index 445817f..74dd173 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -28,8 +28,6 @@
 #include "smbd/globals.h"
 #include "../libcli/auth/libcli_auth.h"
 
-extern enum protocol_types Protocol;
-
 #define DIR_ENTRY_SAFETY_MARGIN 4096
 
 static char *store_file_unix_basic(connection_struct *conn,
@@ -2466,7 +2464,7 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
 
 	if(numentries == 0) {
 		dptr_close(sconn, &dptr_num);
-		if (Protocol < PROTOCOL_NT1) {
+		if (get_Protocol() < PROTOCOL_NT1) {
 			reply_doserror(req, ERRDOS, ERRnofiles);
 			goto out;
 		} else {
@@ -8161,7 +8159,7 @@ void reply_findnclose(struct smb_request *req)
 static void handle_trans2(connection_struct *conn, struct smb_request *req,
 			  struct trans_state *state)
 {
-	if (Protocol >= PROTOCOL_NT1) {
+	if (get_Protocol() >= PROTOCOL_NT1) {
 		req->flags2 |= 0x40; /* IS_LONG_NAME */
 		SSVAL(req->inbuf,smb_flg2,req->flags2);
 	}


-- 
Samba Shared Repository


More information about the samba-cvs mailing list