s3:smbd: pass smbXsrv_session instead of user_struct to session_claim() and session_y...
authorGregor Beck <gbeck@sernet.de>
Thu, 23 Aug 2012 12:47:33 +0000 (14:47 +0200)
committerMichael Adam <obnox@samba.org>
Fri, 19 Oct 2012 10:14:59 +0000 (12:14 +0200)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Michael Adam <obnox@samba.org>
source3/smbd/password.c
source3/smbd/proto.h
source3/smbd/session.c
source3/smbd/sesssetup.c
source3/smbd/smb2_sesssetup.c

index 60ab04528375ebe6dbf73d5c3df3b19505467c3c..3a64d1b13845307d7dab05bfd8d565c492f65deb 100644 (file)
@@ -105,7 +105,7 @@ void invalidate_vuid(struct smbd_server_connection *sconn, uint64_t vuid)
                return;
        }
 
-       session_yield(vuser);
+       session_yield(vuser->session);
 
        DLIST_REMOVE(sconn->users, vuser);
        SMB_ASSERT(sconn->num_users > 0);
index a71547678f2f1b45c57eae3a20b1c1ef25c3a93d..5f41957fc4d6cd0beb48999e970bbd498146a0c2 100644 (file)
@@ -993,9 +993,10 @@ void close_cnum(connection_struct *conn, uint64_t vuid);
 
 /* The following definitions come from smbd/session.c  */
 struct sessionid;
+struct smbXsrv_session;
 bool session_init(void);
-bool session_claim(struct smbd_server_connection *sconn, struct user_struct *vuser);
-void session_yield(struct user_struct *vuser);
+bool session_claim(struct smbd_server_connection *sconn, struct smbXsrv_session *session);
+void session_yield(struct smbXsrv_session *session);
 int list_sessions(TALLOC_CTX *mem_ctx, struct sessionid **session_list);
 
 /* The following definitions come from smbd/sesssetup.c  */
index e7e7570f40423a999c0bde57ebd813596b73e582..c931f8b8e13de9ca49f7a524ac9853bc08d7f5a6 100644 (file)
@@ -40,8 +40,9 @@
  called when a session is created
 ********************************************************************/
 
-bool session_claim(struct smbd_server_connection *sconn, struct user_struct *vuser)
+bool session_claim(struct smbd_server_connection *sconn, struct smbXsrv_session *session)
 {
+       struct user_struct *vuser = session->compat;
        struct server_id pid = messaging_server_id(sconn->msg_ctx);
        TDB_DATA data;
        int i = 0;
@@ -194,8 +195,9 @@ bool session_claim(struct smbd_server_connection *sconn, struct user_struct *vus
  called when a session is destroyed
 ********************************************************************/
 
-void session_yield(struct user_struct *vuser)
+void session_yield(struct smbXsrv_session *session)
 {
+       struct user_struct *vuser = session->compat;
        struct sessionid sessionid;
        struct db_record *rec;
        TDB_DATA value;
index 4d58e7a0be2f91b68a90efcf9088da7930331dae..16a71f74083e7f525b48cd3775be1959bbb4fb15 100644 (file)
@@ -326,7 +326,7 @@ static void reply_sesssetup_and_X_spnego(struct smb_request *req)
                                register_homes_share(session_info->unix_info->unix_name);
                }
 
-               if (!session_claim(sconn, session->compat)) {
+               if (!session_claim(sconn, session)) {
                        DEBUG(1, ("smb1: Failed to claim session for vuid=%llu\n",
                                  (unsigned long long)session->compat->vuid));
                        data_blob_free(&out_blob);
@@ -1008,7 +1008,7 @@ void reply_sesssetup_and_X(struct smb_request *req)
                        register_homes_share(session_info->unix_info->unix_name);
        }
 
-       if (!session_claim(sconn, session->compat)) {
+       if (!session_claim(sconn, session)) {
                DEBUG(1, ("smb1: Failed to claim session for vuid=%llu\n",
                          (unsigned long long)session->compat->vuid));
                data_blob_free(&nt_resp);
index 2599d2a63dabf713fe709f699018866c6ef4a38f..29253d032171160cd2d9f2939aaa5e7c38cffd85 100644 (file)
@@ -330,7 +330,7 @@ static NTSTATUS smbd_smb2_auth_generic_return(struct smbXsrv_session *session,
                        register_homes_share(session_info->unix_info->unix_name);
        }
 
-       if (!session_claim(smb2req->sconn, session->compat)) {
+       if (!session_claim(smb2req->sconn, session)) {
                DEBUG(1, ("smb2: Failed to claim session "
                        "for vuid=%llu\n",
                        (unsigned long long)session->compat->vuid));