s3:smbd: move global smbd_msg_state to smbXsrv_connection
authorStefan Metzmacher <metze@samba.org>
Thu, 24 May 2012 21:41:43 +0000 (23:41 +0200)
committerStefan Metzmacher <metze@samba.org>
Fri, 25 May 2012 09:01:27 +0000 (11:01 +0200)
metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Fri May 25 11:01:27 CEST 2012 on sn-devel-104

source3/smbd/globals.c
source3/smbd/globals.h
source3/smbd/message.c

index 807271b3206572884cdcc5cfc7aa638be7a3f770..f107c0e66131941238bf0a1bbe182590b402137d 100644 (file)
@@ -54,8 +54,6 @@ TDB_CONTEXT *tdb_mangled_cache = NULL;
 */
 unsigned mangle_prefix = 0;
 
-struct msg_state *smbd_msg_state = NULL;
-
 bool logged_ioctl_message = false;
 
 time_t last_smb_conf_reload_time = 0;
index b334e2593a0ca4940692bfc2acc07d674997c565..ccf79fe5ffd3ab13c915a1c8d080889d874f6de7 100644 (file)
@@ -58,7 +58,6 @@ extern struct tdb_context *tdb_mangled_cache;
 extern unsigned mangle_prefix;
 
 struct msg_state;
-extern struct msg_state *smbd_msg_state;
 
 extern bool logged_ioctl_message;
 
@@ -351,6 +350,8 @@ struct smbXsrv_connection {
                        uint32_t max_write;
                } server;
        } smb2;
+
+       struct msg_state *msg_state;
 };
 
 NTSTATUS smbXsrv_connection_init_tables(struct smbXsrv_connection *conn,
index 63b08e126203148718bd3552f9a82b797ba26566..8ae588b5119637796172cf1a9a8b0482058d6fb4 100644 (file)
@@ -200,11 +200,11 @@ void reply_sendstrt(struct smb_request *req)
                return;
        }
 
-       TALLOC_FREE(smbd_msg_state);
+       TALLOC_FREE(req->sconn->conn->msg_state);
 
-       smbd_msg_state = talloc_zero(NULL, struct msg_state);
+       req->sconn->conn->msg_state = talloc_zero(NULL, struct msg_state);
 
-       if (smbd_msg_state == NULL) {
+       if (req->sconn->conn->msg_state == NULL) {
                reply_nterror(req, NT_STATUS_NO_MEMORY);
                END_PROFILE(SMBsendstrt);
                return;
@@ -212,14 +212,17 @@ void reply_sendstrt(struct smb_request *req)
 
        p = (const char *)req->buf+1;
        p += srvstr_pull_req_talloc(
-               smbd_msg_state, req, &smbd_msg_state->from, p,
+               req->sconn->conn->msg_state, req,
+               &req->sconn->conn->msg_state->from, p,
                STR_ASCII|STR_TERMINATE) + 1;
        p += srvstr_pull_req_talloc(
-               smbd_msg_state, req, &smbd_msg_state->to, p,
+               req->sconn->conn->msg_state, req,
+               &req->sconn->conn->msg_state->to, p,
                STR_ASCII|STR_TERMINATE) + 1;
 
-       DEBUG( 3, ( "SMBsendstrt (from %s to %s)\n", smbd_msg_state->from,
-                   smbd_msg_state->to ) );
+       DEBUG(3, ("SMBsendstrt (from %s to %s)\n",
+                 req->sconn->conn->msg_state->from,
+                 req->sconn->conn->msg_state->to));
 
        reply_outbuf(req, 0, 0);
 
@@ -247,7 +250,7 @@ void reply_sendtxt(struct smb_request *req)
                return;
        }
 
-       if ((smbd_msg_state == NULL) || (req->buflen < 3)) {
+       if ((req->sconn->conn->msg_state == NULL) || (req->buflen < 3)) {
                reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
                END_PROFILE(SMBsendtxt);
                return;
@@ -255,12 +258,13 @@ void reply_sendtxt(struct smb_request *req)
 
        msg = (const char *)req->buf + 1;
 
-       old_len = talloc_get_size(smbd_msg_state->msg);
+       old_len = talloc_get_size(req->sconn->conn->msg_state->msg);
 
        len = MIN(SVAL(msg, 0), smbreq_bufrem(req, msg+2));
 
-       tmp = talloc_realloc(smbd_msg_state, smbd_msg_state->msg,
-                                  char, old_len + len);
+       tmp = talloc_realloc(req->sconn->conn->msg_state,
+                            req->sconn->conn->msg_state->msg,
+                            char, old_len + len);
 
        if (tmp == NULL) {
                reply_nterror(req, NT_STATUS_NO_MEMORY);
@@ -268,9 +272,9 @@ void reply_sendtxt(struct smb_request *req)
                return;
        }
 
-       smbd_msg_state->msg = tmp;
+       req->sconn->conn->msg_state->msg = tmp;
 
-       memcpy(&smbd_msg_state->msg[old_len], msg+2, len);
+       memcpy(&req->sconn->conn->msg_state->msg[old_len], msg+2, len);
 
        DEBUG( 3, ( "SMBsendtxt\n" ) );
 
@@ -297,9 +301,9 @@ void reply_sendend(struct smb_request *req)
 
        DEBUG(3,("SMBsendend\n"));
 
-       msg_deliver(smbd_msg_state);
+       msg_deliver(req->sconn->conn->msg_state);
 
-       TALLOC_FREE(smbd_msg_state);
+       TALLOC_FREE(req->sconn->conn->msg_state);
 
        reply_outbuf(req, 0, 0);