s3-libsmb: introduce new NTSTATUS cli_read()
authorBjörn Baumbach <bb@sernet.de>
Tue, 19 Jul 2011 09:11:27 +0000 (11:11 +0200)
committerStefan Metzmacher <metze@samba.org>
Wed, 20 Jul 2011 20:09:25 +0000 (22:09 +0200)
Replacement for cli_read_old()

Signed-off-by: Stefan Metzmacher <metze@samba.org>
source3/libsmb/clireadwrite.c
source3/libsmb/proto.h

index f9c85f6c35875192a7b1fcad557e558f79fa96ea..540600778474e81be054b6cab71bdefe441617c2 100644 (file)
@@ -705,6 +705,26 @@ ssize_t cli_read_old(struct cli_state *cli, uint16_t fnum, char *buf,
        return ret;
 }
 
+NTSTATUS cli_read(struct cli_state *cli, uint16_t fnum,
+                char *buf, off_t offset, size_t size,
+                size_t *nread)
+{
+       NTSTATUS status;
+       SMB_OFF_T ret;
+
+       status = cli_pull(cli, fnum, offset, size, size,
+                         cli_read_sink, &buf, &ret);
+       if (!NT_STATUS_IS_OK(status)) {
+               return status;
+       }
+
+       if (nread) {
+               *nread = ret;
+       }
+
+       return NT_STATUS_OK;
+}
+
 /****************************************************************************
   write to a file using a SMBwrite and not bypassing 0 byte writes
 ****************************************************************************/
index 82c98466038173a30005f74dd719c6a47d8f1241..127983de843d466a96ce10f16a96babdf01112c1 100644 (file)
@@ -740,6 +740,9 @@ NTSTATUS cli_pull(struct cli_state *cli, uint16_t fnum,
                  void *priv, SMB_OFF_T *received);
 ssize_t cli_read_old(struct cli_state *cli, uint16_t fnum, char *buf,
                 off_t offset, size_t size);
+NTSTATUS cli_read(struct cli_state *cli, uint16_t fnum,
+                 char *buf, off_t offset, size_t size,
+                 size_t *nread);
 NTSTATUS cli_smbwrite(struct cli_state *cli, uint16_t fnum, char *buf,
                      off_t offset, size_t size1, size_t *ptotal);
 struct tevent_req *cli_write_andx_create(TALLOC_CTX *mem_ctx,