s3:smbd: remember the request_time on an incoming request
authorStefan Metzmacher <metze@samba.org>
Wed, 11 Apr 2012 14:54:17 +0000 (16:54 +0200)
committerStefan Metzmacher <metze@samba.org>
Fri, 15 Jun 2012 05:18:00 +0000 (07:18 +0200)
metze

source3/include/vfs.h
source3/smbd/process.c

index 723eb6c826bdbfb1b204fa564dff771ad3133624..e6a9ef4541d482561a4d581bcfdfb3df89bef6f5 100644 (file)
@@ -399,6 +399,8 @@ struct smb_request {
         * Request list for chained requests, we're part of it.
         */
        struct smb_request **chain;
         * Request list for chained requests, we're part of it.
         */
        struct smb_request **chain;
+
+       struct timeval request_time;
 };
 
 /*
 };
 
 /*
index 5e26826d6a96e573bf30df707b22d90e396c5665..9e1abb268cd369547c4de6d74174d29e7b2025f7 100644 (file)
@@ -517,12 +517,16 @@ static bool init_smb_request(struct smb_request *req,
                             uint32_t seqnum)
 {
        size_t req_size = smb_len(inbuf) + 4;
                             uint32_t seqnum)
 {
        size_t req_size = smb_len(inbuf) + 4;
+
        /* Ensure we have at least smb_size bytes. */
        if (req_size < smb_size) {
                DEBUG(0,("init_smb_request: invalid request size %u\n",
                        (unsigned int)req_size ));
                return false;
        }
        /* Ensure we have at least smb_size bytes. */
        if (req_size < smb_size) {
                DEBUG(0,("init_smb_request: invalid request size %u\n",
                        (unsigned int)req_size ));
                return false;
        }
+
+       req->request_time = timeval_current();
+
        req->cmd    = CVAL(inbuf, smb_com);
        req->flags2 = SVAL(inbuf, smb_flg2);
        req->smbpid = SVAL(inbuf, smb_pid);
        req->cmd    = CVAL(inbuf, smb_com);
        req->flags2 = SVAL(inbuf, smb_flg2);
        req->smbpid = SVAL(inbuf, smb_pid);