[lvm-devel] [PATCH] Renamed create_toolcontext function to _create_context and added sys_dir as argument, new functions create_librarycontext and create_toolcontext.
Alasdair G Kergon
agk at redhat.com
Fri Dec 12 01:04:33 UTC 2008
On Thu, Dec 11, 2008 at 05:43:40PM +0100, Thomas Woerner wrote:
> +++ b/lib/commands/toolcontext.c
> @@ -990,9 +990,10 @@ static void _init_rand(struct cmd_context *cmd)
> -struct cmd_context *create_toolcontext(struct arg *the_args, unsigned is_static,
> - unsigned is_long_lived)
> +static struct cmd_context *_create_context(struct arg *the_args,
> + unsigned is_static,
> + unsigned is_long_lived,
> + const char *sys_dir)
> @@ -1024,7 +1025,10 @@ struct cmd_context *create_toolcontext(struct arg *the_args, unsigned is_static,
> - strcpy(cmd->sys_dir, DEFAULT_SYS_DIR);
> + strncpy(cmd->sys_dir, DEFAULT_SYS_DIR, PATH_MAX);
No need for that one - I think it's safe to assume DEFAULT_SYS_DIR is shorter
than PATH_MAX or else it would be impossible to use!
> + if (sys_dir)
> + strncpy(cmd->sys_dir, sys_dir, PATH_MAX);
Oops - trailing NULL if it's too long?
> @@ -1101,6 +1105,19 @@ struct cmd_context *create_toolcontext(struct arg *the_args, unsigned is_static,
> +/* Library Entry point */
> +struct cmd_context *create_librarycontext(const char *sys_dir)
> +{
> + return _create_context(NULL, 0, 1, sys_dir);
> +}
> +/* Tool Entry point */
> +struct cmd_context *create_toolcontext(struct arg *the_args, unsigned is_static,
> + unsigned is_long_lived)
> +{
> + return _create_context(the_args, is_static, is_long_lived, NULL);
> +}
Please don't separate these. All tools will use the same library interface -
there is to be nothing privileged about the existing tools in the tools dir or
anaconda - they will both share the same interface. So work out where those
parameters should live.
Alasdair
--
agk at redhat.com
More information about the lvm-devel
mailing list