Patch: Add support for passing the max_referral_level into the CLI call for DFS referrals

Jeremy Allison jra at samba.org
Mon Jun 26 18:18:51 UTC 2017


On Mon, Jun 26, 2017 at 10:05:41AM -0700, Richard Sharpe via samba-technical wrote:
> Hi folks,
> 
> This is a small patch to allow me to write tests of our server code.

Missing 'Signed-off-by:' ? Can I add and push ?

> Richard Sharpe
> (何以解憂?唯有杜康。--曹操)

> From 9985a33464734f74f5203e88932153dd38b503cd Mon Sep 17 00:00:00 2001
> From: Richard Sharpe <richard.sharpe at primarydata.com>
> Date: Mon, 26 Jun 2017 09:43:31 -0700
> Subject: [PATCH] Add support for passing the max_referral_level into the cli
>  call to get a DFS referral. This is being done so I can write tests of the
>  DFS referral code on the server side.
> 
> ---
>  source3/libsmb/clidfs.c | 21 +++++++++++++++++++--
>  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 060c4e9..561ce44 100644
> --- a/source3/libsmb/clidfs.c
> +++ b/source3/libsmb/clidfs.c
> @@ -675,9 +675,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)
> @@ -704,7 +705,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,
> @@ -870,6 +871,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 fb122b9..2239707 100644
> --- a/source3/libsmb/proto.h
> +++ b/source3/libsmb/proto.h
> @@ -153,6 +153,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,
> -- 
> 2.3.6
> 




More information about the samba-technical mailing list