pylibsmb: Use cli_qfileinfo_basic_send() in py_smb_filesize()
authorVolker Lendecke <vl@samba.org>
Thu, 4 Jun 2020 13:16:26 +0000 (15:16 +0200)
committerJeremy Allison <jra@samba.org>
Thu, 4 Jun 2020 17:11:40 +0000 (17:11 +0000)
This now does all protocols asynchronously

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/libsmb/pylibsmb.c

index df324da7a3d67df8a9e856cd1fc7b1f9bbfb21c5..3fcc3424a57721518af8de169d8de921854ebc29 100644 (file)
@@ -883,27 +883,15 @@ static NTSTATUS py_smb_filesize(struct py_cli_state *self, uint16_t fnum,
                                off_t *size)
 {
        NTSTATUS status;
+       struct tevent_req *req = NULL;
 
-       if (self->is_smb1) {
-               uint8_t *rdata = NULL;
-               struct tevent_req *req = NULL;
-
-               req = cli_qfileinfo_send(NULL, self->ev, self->cli, fnum,
-                                        SMB_QUERY_FILE_ALL_INFO, 68,
-                                        CLI_BUFFER_SIZE);
-               if (!py_tevent_req_wait_exc(self, req)) {
-                       return NT_STATUS_INTERNAL_ERROR;
-               }
-               status = cli_qfileinfo_recv(req, NULL, NULL, &rdata, NULL);
-               if (NT_STATUS_IS_OK(status)) {
-                       *size = IVAL2_TO_SMB_BIG_UINT(rdata, 48);
-               }
-               TALLOC_FREE(req);
-               TALLOC_FREE(rdata);
-       } else {
-               status = cli_qfileinfo_basic(self->cli, fnum, NULL, size,
-                                            NULL, NULL, NULL, NULL, NULL);
+       req = cli_qfileinfo_basic_send(NULL, self->ev, self->cli, fnum);
+       if (!py_tevent_req_wait_exc(self, req)) {
+               return NT_STATUS_INTERNAL_ERROR;
        }
+       status = cli_qfileinfo_basic_recv(
+               req, NULL, size, NULL, NULL, NULL, NULL, NULL);
+       TALLOC_FREE(req);
        return status;
 }