s3:libsmb: add support for SMB2 in cli_writeall()
authorStefan Metzmacher <metze@samba.org>
Tue, 13 Aug 2013 16:38:57 +0000 (18:38 +0200)
committerStefan Metzmacher <metze@samba.org>
Thu, 15 Aug 2013 07:07:07 +0000 (09:07 +0200)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/libsmb/clireadwrite.c

index d28c226037f21d1a14203c996f0e5481fb6d9cbd..adcd98bb0d9b6a2070405943568aa452a44936fe 100644 (file)
@@ -1066,7 +1066,13 @@ NTSTATUS cli_writeall(struct cli_state *cli, uint16_t fnum, uint16_t mode,
        if (ev == NULL) {
                goto fail;
        }
-       req = cli_writeall_send(frame, ev, cli, fnum, mode, buf, offset, size);
+       if (smbXcli_conn_protocol(cli->conn) >= PROTOCOL_SMB2_02) {
+               req = cli_smb2_writeall_send(frame, ev, cli, fnum, mode,
+                                            buf, offset, size);
+       } else {
+               req = cli_writeall_send(frame, ev, cli, fnum, mode,
+                                       buf, offset, size);
+       }
        if (req == NULL) {
                goto fail;
        }
@@ -1074,7 +1080,11 @@ NTSTATUS cli_writeall(struct cli_state *cli, uint16_t fnum, uint16_t mode,
                status = map_nt_error_from_unix(errno);
                goto fail;
        }
-       status = cli_writeall_recv(req, pwritten);
+       if (smbXcli_conn_protocol(cli->conn) >= PROTOCOL_SMB2_02) {
+               status = cli_smb2_writeall_recv(req, pwritten);
+       } else {
+               status = cli_writeall_recv(req, pwritten);
+       }
  fail:
        TALLOC_FREE(frame);
        return status;