s3:smbd: send SMB2 interim responses for async calls
authorStefan Metzmacher <metze@samba.org>
Tue, 9 Jun 2009 20:34:14 +0000 (22:34 +0200)
committerStefan Metzmacher <metze@samba.org>
Wed, 24 Jun 2009 19:04:57 +0000 (21:04 +0200)
metze

source3/smbd/smb2_create.c
source3/smbd/smb2_flush.c
source3/smbd/smb2_ioctl.c
source3/smbd/smb2_read.c
source3/smbd/smb2_write.c

index 0e3cd164cd9216cf3caf6335e097def32c579e1e..578dfa7c3b5bd44f9aa1024fefa2cf6fd1d9ec05 100644 (file)
@@ -123,6 +123,11 @@ NTSTATUS smbd_smb2_request_process_create(struct smbd_smb2_request *req)
                return smbd_smb2_request_error(req, NT_STATUS_NO_MEMORY);
        }
        tevent_req_set_callback(subreq, smbd_smb2_request_create_done, req);
+
+       if (tevent_req_is_in_progress(subreq)) {
+               return smbd_smb2_request_pending_queue(req);
+       }
+
        return NT_STATUS_OK;
 }
 
index ce560a1362558d23d74fc211d69b3c0cdc7206b5..8ce683923b570a8daaaa9be29b538c867b12404d 100644 (file)
@@ -69,6 +69,11 @@ NTSTATUS smbd_smb2_request_process_flush(struct smbd_smb2_request *req)
                return smbd_smb2_request_error(req, NT_STATUS_NO_MEMORY);
        }
        tevent_req_set_callback(subreq, smbd_smb2_request_flush_done, req);
+
+       if (tevent_req_is_in_progress(subreq)) {
+               return smbd_smb2_request_pending_queue(req);
+       }
+
        return NT_STATUS_OK;
 }
 
index a1f28856680935b70a833f0bd81c84008b268e4f..85da92e6c0063ba8bc3df5ff5db11c0ccb37e015 100644 (file)
@@ -104,6 +104,11 @@ NTSTATUS smbd_smb2_request_process_ioctl(struct smbd_smb2_request *req)
                return smbd_smb2_request_error(req, NT_STATUS_NO_MEMORY);
        }
        tevent_req_set_callback(subreq, smbd_smb2_request_ioctl_done, req);
+
+       if (tevent_req_is_in_progress(subreq)) {
+               return smbd_smb2_request_pending_queue(req);
+       }
+
        return NT_STATUS_OK;
 }
 
index 5890ca6c4231a3afee62671c0dfea02cef86ed79..c9f281f73eceeae1efd36ac56810a4e9b5006608 100644 (file)
@@ -100,6 +100,11 @@ NTSTATUS smbd_smb2_request_process_read(struct smbd_smb2_request *req)
                return smbd_smb2_request_error(req, NT_STATUS_NO_MEMORY);
        }
        tevent_req_set_callback(subreq, smbd_smb2_request_read_done, req);
+
+       if (tevent_req_is_in_progress(subreq)) {
+               return smbd_smb2_request_pending_queue(req);
+       }
+
        return NT_STATUS_OK;
 }
 
index ccfe3b343424d39dca582df982a18042b5a085e2..31460a01a17e01e3feece1a5bd21b7692231442f 100644 (file)
@@ -108,6 +108,11 @@ NTSTATUS smbd_smb2_request_process_write(struct smbd_smb2_request *req)
                return smbd_smb2_request_error(req, NT_STATUS_NO_MEMORY);
        }
        tevent_req_set_callback(subreq, smbd_smb2_request_write_done, req);
+
+       if (tevent_req_is_in_progress(subreq)) {
+               return smbd_smb2_request_pending_queue(req);
+       }
+
        return NT_STATUS_OK;
 }