[SCM] Samba Shared Repository - branch master updated

Michael Adam obnox at samba.org
Thu May 7 02:44:03 MDT 2015


The branch, master has been updated
       via  c7fcab7 s3:smbXsrv: refactor duplicate code into smbXsrv_session_clear_and_logoff()
       via  a590ac6 libsmbconf:registry: Ignore keyless smb.conf regvalues
      from  57941aa s3: utils: Convert all uses of uint32/16/8 to _t.

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


- Log -----------------------------------------------------------------
commit c7fcab7999c763acbc0f9dadb7fe05b47a257c7a
Author: Michael Adam <obnox at samba.org>
Date:   Wed May 6 17:20:55 2015 +0200

    s3:smbXsrv: refactor duplicate code into smbXsrv_session_clear_and_logoff()
    
    This replaces code in smbXsrv_session_logoff_all_callback()
    and smbXsrv_session_clear_and_logoff().
    
    Signed-off-by: Michael Adam <obnox at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>
    
    Autobuild-User(master): Michael Adam <obnox at samba.org>
    Autobuild-Date(master): Thu May  7 10:43:29 CEST 2015 on sn-devel-104

commit a590ac60ef54cb4644a7f9ebb609be4529c2f319
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Apr 27 14:34:12 2015 +0000

    libsmbconf:registry: Ignore keyless smb.conf regvalues
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

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

Summary of changes:
 source3/lib/smbconf/smbconf_reg.c | 34 ----------------------------------
 source3/smbd/smbXsrv_session.c    | 34 ++++++++++------------------------
 2 files changed, 10 insertions(+), 58 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/lib/smbconf/smbconf_reg.c b/source3/lib/smbconf/smbconf_reg.c
index bc878cc..e756580 100644
--- a/source3/lib/smbconf/smbconf_reg.c
+++ b/source3/lib/smbconf/smbconf_reg.c
@@ -530,29 +530,6 @@ done:
 	return err;
 }
 
-static bool smbconf_reg_key_has_values(struct registry_key *key)
-{
-	WERROR werr;
-	uint32_t num_subkeys;
-	uint32_t max_subkeylen;
-	uint32_t max_subkeysize;
-	uint32_t num_values;
-	uint32_t max_valnamelen;
-	uint32_t max_valbufsize;
-	uint32_t secdescsize;
-	NTTIME last_changed_time;
-
-	werr = reg_queryinfokey(key, &num_subkeys, &max_subkeylen,
-				&max_subkeysize, &num_values, &max_valnamelen,
-				&max_valbufsize, &secdescsize,
-				&last_changed_time);
-	if (!W_ERROR_IS_OK(werr)) {
-		return false;
-	}
-
-	return (num_values != 0);
-}
-
 /**
  * delete all values from a key
  */
@@ -806,17 +783,6 @@ static sbcErr smbconf_reg_get_share_names(struct smbconf_ctx *ctx,
 
 	tmp_ctx = talloc_stackframe();
 
-	/* if there are values in the base key, return NULL as share name */
-
-	if (smbconf_reg_key_has_values(rpd(ctx)->base_key)) {
-		err = smbconf_add_string_to_array(tmp_ctx, &tmp_share_names,
-						   0, NULL);
-		if (!SBC_ERROR_IS_OK(err)) {
-			goto done;
-		}
-		added_count++;
-	}
-
 	/* make sure "global" is always listed first */
 	if (smbconf_share_exists(ctx, GLOBAL_NAME)) {
 		err = smbconf_add_string_to_array(tmp_ctx, &tmp_share_names,
diff --git a/source3/smbd/smbXsrv_session.c b/source3/smbd/smbXsrv_session.c
index 2ccae0e..07375d8 100644
--- a/source3/smbd/smbXsrv_session.c
+++ b/source3/smbd/smbXsrv_session.c
@@ -1094,7 +1094,7 @@ NTSTATUS smb2srv_session_close_previous_recv(struct tevent_req *req)
 	return NT_STATUS_OK;
 }
 
-static int smbXsrv_session_destructor(struct smbXsrv_session *session)
+static NTSTATUS smbXsrv_session_clear_and_logoff(struct smbXsrv_session *session)
 {
 	NTSTATUS status;
 	struct smbXsrv_connection *xconn = NULL;
@@ -1122,6 +1122,14 @@ static int smbXsrv_session_destructor(struct smbXsrv_session *session)
 	}
 
 	status = smbXsrv_session_logoff(session);
+	return status;
+}
+
+static int smbXsrv_session_destructor(struct smbXsrv_session *session)
+{
+	NTSTATUS status;
+
+	status = smbXsrv_session_clear_and_logoff(session);
 	if (!NT_STATUS_IS_OK(status)) {
 		DEBUG(0, ("smbXsrv_session_destructor: "
 			  "smbXsrv_session_logoff() failed: %s\n",
@@ -1655,7 +1663,6 @@ static int smbXsrv_session_logoff_all_callback(struct db_record *local_rec,
 	TDB_DATA val;
 	void *ptr = NULL;
 	struct smbXsrv_session *session = NULL;
-	struct smbXsrv_connection *xconn = NULL;
 	NTSTATUS status;
 
 	val = dbwrap_record_get_value(local_rec);
@@ -1673,28 +1680,7 @@ static int smbXsrv_session_logoff_all_callback(struct db_record *local_rec,
 
 	session->db_rec = local_rec;
 
-	if (session->client != NULL) {
-		xconn = session->client->connections;
-	}
-	for (; xconn != NULL; xconn = xconn->next) {
-		struct smbd_smb2_request *preq;
-
-		for (preq = xconn->smb2.requests; preq != NULL; preq = preq->next) {
-			if (preq->session != session) {
-				continue;
-			}
-
-			preq->session = NULL;
-			/*
-			 * If we no longer have a session we can't
-			 * sign or encrypt replies.
-			 */
-			preq->do_signing = false;
-			preq->do_encryption = false;
-		}
-	}
-
-	status = smbXsrv_session_logoff(session);
+	status = smbXsrv_session_clear_and_logoff(session);
 	if (!NT_STATUS_IS_OK(status)) {
 		if (NT_STATUS_IS_OK(state->first_status)) {
 			state->first_status = status;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list