s3:libsmb: Plumb cli_smb2_list() inside cli_list().
authorJeremy Allison <jra@samba.org>
Wed, 7 Aug 2013 23:43:33 +0000 (16:43 -0700)
committerStefan Metzmacher <metze@samba.org>
Thu, 15 Aug 2013 07:07:07 +0000 (09:07 +0200)
Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
source3/libsmb/clilist.c

index b0d3a4e6e4b225c87bf487bbb4c4d345712fc7d2..ed970cd896ee1d04440a27b0b7f8161e36a7d4c3 100644 (file)
@@ -933,7 +933,7 @@ NTSTATUS cli_list(struct cli_state *cli, const char *mask, uint16 attribute,
                  NTSTATUS (*fn)(const char *, struct file_info *, const char *,
                             void *), void *state)
 {
-       TALLOC_CTX *frame = talloc_stackframe();
+       TALLOC_CTX *frame = NULL;
        struct tevent_context *ev;
        struct tevent_req *req;
        NTSTATUS status = NT_STATUS_NO_MEMORY;
@@ -941,6 +941,12 @@ NTSTATUS cli_list(struct cli_state *cli, const char *mask, uint16 attribute,
        size_t i, num_finfo;
        uint16_t info_level;
 
+       if (smbXcli_conn_protocol(cli->conn) >= PROTOCOL_SMB2_02) {
+               return cli_smb2_list(cli, mask, fn, state);
+       }
+
+       frame = talloc_stackframe();
+
        if (smbXcli_conn_has_async_calls(cli->conn)) {
                /*
                 * Can't use sync call while an async call is in flight