s3:smb2_server: make use of nt_status_np_pipe()
authorStefan Metzmacher <metze@samba.org>
Wed, 23 May 2012 13:24:01 +0000 (15:24 +0200)
committerStefan Metzmacher <metze@samba.org>
Wed, 23 May 2012 18:03:09 +0000 (20:03 +0200)
metze

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

index 8840167508b6f288498861eb6c9ca7944493f3fa..cd303eddde2cab649e044efa989c93708b5e53ab 100644 (file)
@@ -656,18 +656,24 @@ static void smbd_smb2_ioctl_pipe_read_done(struct tevent_req *subreq)
        struct smbd_smb2_ioctl_state *state = tevent_req_data(req,
                                              struct smbd_smb2_ioctl_state);
        NTSTATUS status;
+       NTSTATUS old;
        ssize_t nread = -1;
        bool is_data_outstanding = false;
 
        status = np_read_recv(subreq, &nread, &is_data_outstanding);
+       TALLOC_FREE(subreq);
+
+       old = status;
+       status = nt_status_np_pipe(old);
 
        DEBUG(10,("smbd_smb2_ioctl_pipe_read_done: np_read_recv nread = %d "
-                "is_data_outstanding = %d, status = %s\n",
+                "is_data_outstanding = %d, status = %s%s%s\n",
                (int)nread,
                (int)is_data_outstanding,
-               nt_errstr(status) ));
+               nt_errstr(old),
+               NT_STATUS_EQUAL(old, status)?"":" => ",
+               NT_STATUS_EQUAL(old, status)?"":nt_errstr(status)));
 
-       TALLOC_FREE(subreq);
        if (!NT_STATUS_IS_OK(status)) {
                tevent_req_nterror(req, status);
                return;
index 53b0a9dc571f143e5ba275387a695e07283ef1df..b36c3cb141cc679b7583c7b47eb36c7bbe189272 100644 (file)
@@ -567,6 +567,8 @@ static void smbd_smb2_read_pipe_done(struct tevent_req *subreq)
        status = np_read_recv(subreq, &nread, &is_data_outstanding);
        TALLOC_FREE(subreq);
        if (!NT_STATUS_IS_OK(status)) {
+               NTSTATUS old = status;
+               status = nt_status_np_pipe(old);
                tevent_req_nterror(req, status);
                return;
        }
index 163672cdb112d17e6dd7a83742034c37347a2637..0b502a4f48b2d8e00fb4b7dc8faa272239d4594b 100644 (file)
@@ -390,6 +390,8 @@ static void smbd_smb2_write_pipe_done(struct tevent_req *subreq)
        status = np_write_recv(subreq, &nwritten);
        TALLOC_FREE(subreq);
        if (!NT_STATUS_IS_OK(status)) {
+               NTSTATUS old = status;
+               status = nt_status_np_pipe(old);
                tevent_req_nterror(req, status);
                return;
        }