diff options
-rw-r--r-- | source3/libsmb/clidfs.c | 21 | ||||
-rw-r--r-- | source3/libsmb/proto.h | 7 |
2 files changed, 26 insertions, 2 deletions
diff --git a/source3/libsmb/clidfs.c b/source3/libsmb/clidfs.c index 207b3240f5e..b740007f675 100644 --- a/source3/libsmb/clidfs.c +++ b/source3/libsmb/clidfs.c @@ -662,9 +662,10 @@ static bool cli_dfs_check_error(struct cli_state *cli, NTSTATUS expected, Get the dfs referral link. ********************************************************************/ -NTSTATUS cli_dfs_get_referral(TALLOC_CTX *ctx, +NTSTATUS cli_dfs_get_referral_ex(TALLOC_CTX *ctx, struct cli_state *cli, const char *path, + uint16_t max_referral_level, struct client_dfs_referral **refs, size_t *num_refs, size_t *consumed) @@ -691,7 +692,7 @@ NTSTATUS cli_dfs_get_referral(TALLOC_CTX *ctx, status = NT_STATUS_NO_MEMORY; goto out; } - SSVAL(param, 0, 0x03); /* max referral level */ + SSVAL(param, 0, max_referral_level); param = trans2_bytes_push_str(param, smbXcli_conn_use_unicode(cli->conn), path, strlen(path)+1, @@ -857,6 +858,22 @@ NTSTATUS cli_dfs_get_referral(TALLOC_CTX *ctx, return status; } +NTSTATUS cli_dfs_get_referral(TALLOC_CTX *ctx, + struct cli_state *cli, + const char *path, + struct client_dfs_referral **refs, + size_t *num_refs, + size_t *consumed) +{ + return cli_dfs_get_referral_ex(ctx, + cli, + path, + 3, + refs, /* Max referral level we want */ + num_refs, + consumed); +} + /******************************************************************** ********************************************************************/ struct cli_dfs_path_split { diff --git a/source3/libsmb/proto.h b/source3/libsmb/proto.h index 47b9cf190bd..05d91f79f83 100644 --- a/source3/libsmb/proto.h +++ b/source3/libsmb/proto.h @@ -152,6 +152,13 @@ NTSTATUS cli_cm_open(TALLOC_CTX *ctx, struct cli_state **pcli); void cli_cm_display(struct cli_state *c); struct client_dfs_referral; +NTSTATUS cli_dfs_get_referral_ex(TALLOC_CTX *ctx, + struct cli_state *cli, + const char *path, + uint16_t max_referral_level, + struct client_dfs_referral **refs, + size_t *num_refs, + size_t *consumed); NTSTATUS cli_dfs_get_referral(TALLOC_CTX *ctx, struct cli_state *cli, const char *path, |