[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