s3-libsmb: Generalise cli_state in smb2 read calls
[obnox/samba/samba-obnox.git] / source3 / libsmb / smb2cli_read.c
index d01e33f42d754eb7cc7bc1e523cee9fd620ae570..8f3362a4ab22c4efa7d354ae881812f7fdc072b0 100644 (file)
@@ -37,7 +37,10 @@ static void smb2cli_read_done(struct tevent_req *subreq);
 
 struct tevent_req *smb2cli_read_send(TALLOC_CTX *mem_ctx,
                                     struct tevent_context *ev,
-                                    struct cli_state *cli,
+                                    struct smbXcli_conn *conn,
+                                    uint32_t timeout_msec,
+                                    struct smbXcli_session *session,
+                                    uint32_t tcon_id,
                                     uint32_t length,
                                     uint64_t offset,
                                     uint64_t fid_persistent,
@@ -65,12 +68,12 @@ struct tevent_req *smb2cli_read_send(TALLOC_CTX *mem_ctx,
        SBVAL(fixed, 32, minimum_count);
        SBVAL(fixed, 40, remaining_bytes);
 
-       subreq = smb2cli_req_send(state, ev, cli->conn, SMB2_OP_READ,
+       subreq = smb2cli_req_send(state, ev, conn, SMB2_OP_READ,
                                  0, 0, /* flags */
-                                 cli->timeout,
-                                 cli->smb2.pid,
-                                 cli->smb2.tid,
-                                 cli->smb2.session,
+                                 timeout_msec,
+                                 0xFEFF, /* pid */
+                                 tcon_id,
+                                 session,
                                  state->fixed, sizeof(state->fixed),
                                  state->dyn_pad, sizeof(state->dyn_pad));
        if (tevent_req_nomem(subreq, req)) {
@@ -138,7 +141,10 @@ NTSTATUS smb2cli_read_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
        return NT_STATUS_OK;
 }
 
-NTSTATUS smb2cli_read(struct cli_state *cli,
+NTSTATUS smb2cli_read(struct smbXcli_conn *conn,
+                     uint32_t timeout_msec,
+                     struct smbXcli_session *session,
+                     uint32_t tcon_id,
                      uint32_t length,
                      uint64_t offset,
                      uint64_t fid_persistent,
@@ -154,7 +160,7 @@ NTSTATUS smb2cli_read(struct cli_state *cli,
        struct tevent_req *req;
        NTSTATUS status = NT_STATUS_NO_MEMORY;
 
-       if (cli_has_async_calls(cli)) {
+       if (smbXcli_conn_has_async_calls(conn)) {
                /*
                 * Can't use sync call while an async call is in flight
                 */
@@ -165,7 +171,9 @@ NTSTATUS smb2cli_read(struct cli_state *cli,
        if (ev == NULL) {
                goto fail;
        }
-       req = smb2cli_read_send(frame, ev, cli, length, offset,
+       req = smb2cli_read_send(frame, ev,
+                               conn, timeout_msec, session, tcon_id,
+                               length, offset,
                                fid_persistent, fid_volatile,
                                minimum_count, remaining_bytes);
        if (req == NULL) {