libcli/smb: Use helper function for finding session
authorChristof Schmitt <cs@samba.org>
Wed, 21 Oct 2015 19:04:47 +0000 (12:04 -0700)
committerJeremy Allison <jra@samba.org>
Wed, 18 Nov 2015 03:04:15 +0000 (04:04 +0100)
This removes some duplicated code.

Signed-off-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Wed Nov 18 04:04:17 CET 2015 on sn-devel-104

libcli/smb/smbXcli_base.c

index 6fe4816c3b5a62e8c8d40d2573587daf95bce7ec..1f1b6cd4b9dbc24d16d6689050d591c495304e8a 100644 (file)
@@ -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) {