s3/libsmb: Generalise cli_state in smb2 ioctl calls
authorLuk Claes <luk@debian.org>
Thu, 10 May 2012 16:36:47 +0000 (18:36 +0200)
committerStefan Metzmacher <metze@samba.org>
Fri, 11 May 2012 22:46:09 +0000 (00:46 +0200)
Signed-off-by: Luk Claes <luk@debian.org>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
source3/libsmb/cli_np_tstream.c
source3/libsmb/smb2cli.h
source3/libsmb/smb2cli_ioctl.c

index 612a2c3fb2ccaac8460d3ec94123d8f78b541df4..9bf5611d964a1f5acf65192410a5f2d711ba7f09 100644 (file)
@@ -808,7 +808,10 @@ static void tstream_cli_np_readv_trans_start(struct tevent_req *req)
                                                  cli_nps->write.ofs);
 
                subreq = smb2cli_ioctl_send(state, state->ev,
-                                           cli_nps->cli,
+                                           cli_nps->cli->conn,
+                                           cli_nps->cli->timeout,
+                                           cli_nps->cli->smb2.session,
+                                           cli_nps->cli->smb2.tid,
                                            cli_nps->fid_persistent,
                                            cli_nps->fid_volatile,
                                            FSCTL_NAMED_PIPE_READ_WRITE,
index c20589ef835dd7aed61cfc490822246abf11574b..121ba3bede6c2313ab67060032d8c9e909a88937 100644 (file)
@@ -188,7 +188,10 @@ NTSTATUS smb2cli_query_directory(struct cli_state *cli,
 
 struct tevent_req *smb2cli_ioctl_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,
                                      uint64_t in_fid_persistent,
                                      uint64_t in_fid_volatile,
                                      uint32_t in_ctl_code,
@@ -201,7 +204,10 @@ NTSTATUS smb2cli_ioctl_recv(struct tevent_req *req,
                            TALLOC_CTX *mem_ctx,
                            DATA_BLOB *out_input_buffer,
                            DATA_BLOB *out_output_buffer);
-NTSTATUS smb2cli_ioctl(struct cli_state *cli,
+NTSTATUS smb2cli_ioctl(struct smbXcli_conn *conn,
+                      uint32_t timeout_msec,
+                      struct smbXcli_session *session,
+                      uint32_t tcon_id,
                       uint64_t in_fid_persistent,
                       uint64_t in_fid_volatile,
                       uint32_t in_ctl_code,
index 58c348d8825e89bdedad8027b1ad6c8336356d60..4b83355b886436102b2cb4dd8d139c6ca6501ca8 100644 (file)
@@ -40,7 +40,10 @@ static void smb2cli_ioctl_done(struct tevent_req *subreq);
 
 struct tevent_req *smb2cli_ioctl_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,
                                      uint64_t in_fid_persistent,
                                      uint64_t in_fid_volatile,
                                      uint32_t in_ctl_code,
@@ -132,12 +135,12 @@ struct tevent_req *smb2cli_ioctl_send(TALLOC_CTX *mem_ctx,
                dyn_len = sizeof(state->dyn_pad);
        }
 
-       subreq = smb2cli_req_send(state, ev, cli->conn, SMB2_OP_IOCTL,
+       subreq = smb2cli_req_send(state, ev, conn, SMB2_OP_IOCTL,
                                  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),
                                  dyn, dyn_len);
        if (tevent_req_nomem(subreq, req)) {
@@ -277,7 +280,10 @@ NTSTATUS smb2cli_ioctl_recv(struct tevent_req *req,
        return NT_STATUS_OK;
 }
 
-NTSTATUS smb2cli_ioctl(struct cli_state *cli,
+NTSTATUS smb2cli_ioctl(struct smbXcli_conn *conn,
+                      uint32_t timeout_msec,
+                      struct smbXcli_session *session,
+                      uint32_t tcon_id,
                       uint64_t in_fid_persistent,
                       uint64_t in_fid_volatile,
                       uint32_t in_ctl_code,
@@ -295,7 +301,7 @@ NTSTATUS smb2cli_ioctl(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
                 */
@@ -306,7 +312,8 @@ NTSTATUS smb2cli_ioctl(struct cli_state *cli,
        if (ev == NULL) {
                goto fail;
        }
-       req = smb2cli_ioctl_send(frame, ev, cli,
+       req = smb2cli_ioctl_send(frame, ev, conn, timeout_msec,
+                                session, tcon_id,
                                 in_fid_persistent,
                                 in_fid_volatile,
                                 in_ctl_code,