[PATCH] libcli/smb: Use helper function for finding session

Christof Schmitt cs at samba.org
Tue Nov 17 23:26:51 UTC 2015


From 26b49497c826b6b8089dfe42f996f1997e26fc02 Mon Sep 17 00:00:00 2001
From: Christof Schmitt <cs at samba.org>
Date: Wed, 21 Oct 2015 12:04:47 -0700
Subject: [PATCH] libcli/smb: Use helper function for finding session

This removes some duplicated code.

Signed-off-by: Christof Schmitt <cs at samba.org>
---
 libcli/smb/smbXcli_base.c |   37 ++++++++++++++++++-------------------
 1 files changed, 18 insertions(+), 19 deletions(-)

diff --git a/libcli/smb/smbXcli_base.c b/libcli/smb/smbXcli_base.c
index 6fe4816..1f1b6cd 100644
--- a/libcli/smb/smbXcli_base.c
+++ b/libcli/smb/smbXcli_base.c
@@ -3295,6 +3295,21 @@ static void smb2cli_req_writev_done(struct tevent_req *subreq)
 	}
 }
 
+static struct smbXcli_session* smbXcli_session_by_uid(struct smbXcli_conn *conn,
+						     uint64_t uid)
+{
+	struct smbXcli_session *s = conn->sessions;
+
+	for (; s; s = s->next) {
+		if (s->smb2->session_id != uid) {
+			continue;
+		}
+		break;
+	}
+
+	return s;
+}
+
 static NTSTATUS smb2cli_inbuf_parse_compound(struct smbXcli_conn *conn,
 					     uint8_t *buf,
 					     size_t buflen,
@@ -3362,14 +3377,7 @@ static NTSTATUS smb2cli_inbuf_parse_compound(struct smbXcli_conn *conn,
 				goto inval;
 			}
 
-			s = conn->sessions;
-			for (; s; s = s->next) {
-				if (s->smb2->session_id != uid) {
-					continue;
-				}
-				break;
-			}
-
+			s = smbXcli_session_by_uid(conn, uid);
 			if (s == NULL) {
 				DEBUG(10, ("unknown session_id %llu\n",
 					   (unsigned long long)uid));
@@ -3588,17 +3596,8 @@ static NTSTATUS smb2cli_conn_dispatch_incoming(struct smbXcli_conn *conn,
 			uint64_t uid = BVAL(inhdr, SMB2_HDR_SESSION_ID);
 
 			if (session == NULL) {
-				struct smbXcli_session *s;
-
-				s = state->conn->sessions;
-				for (; s; s = s->next) {
-					if (s->smb2->session_id != uid) {
-						continue;
-					}
-
-					session = s;
-					break;
-				}
+				session = smbXcli_session_by_uid(state->conn,
+								 uid);
 			}
 
 			if (session == NULL) {
-- 
1.7.1



More information about the samba-technical mailing list