Re: [Libguestfs] [nbdkit PATCH] plugin: add and use nbdkit_realpath

Richard W.M. Jones
2018-02-14T16:03:49Z

On Tue, Feb 13, 2018 at 04:44:02PM +0100, Pino Toscano
wrote:
> Introduce a new helper function to resolve a path name, calling
> nbdkit_error on failure: other than doing what nbdkit_absolute_path
> does, it also checks that the file exist (and thus avoid errors later
> on).
>
> Apply it where an existing path is required, both in nbdkit itself and
> in plugins.
>
> Related to: https://bugzilla.redhat.com/show_bug.cgi?id=1527334
> ---
>  docs/nbdkit-plugin.pod      | 13 +++++++++++++
>  include/nbdkit-common.h     |  1 +
>  plugins/example2/example2.c |  2 +-
>  plugins/file/file.c         |  6 +-----
>  plugins/gzip/gzip.c         |  2 +-
>  plugins/nbd/nbd.c           |  2 +-
>  plugins/split/split.c       |  2 +-
>  plugins/vddk/vddk.c         |  2 +-
>  plugins/xz/xz.c             |  2 +-
>  src/plugins.c               |  2 +-
>  src/utils.c                 | 19 +++++++++++++++++++
>  11 files changed, 41 insertions(+), 12 deletions(-)
>
> diff --git a/docs/nbdkit-plugin.pod b/docs/nbdkit-plugin.pod
> index 44822fc..4576635 100644
> --- a/docs/nbdkit-plugin.pod
> +++ b/docs/nbdkit-plugin.pod
> @@ -207,6 +207,19 @@ C<NULL>.  Note that this function does not check
that the file exists.
>
>  The returned string must be freed by the caller.
>
> +=head2 C<nbdkit_realpath>
> +
> + char *nbdkit_realpath (const char *filename);
> +
> +The utility function C<nbdkit_realpath> converts any path to an
> +absolute path, resolving symlinks.  Under the hood, it uses the
> +C<realpath> function.

Can it say something about the difference between this one and
nbdkit_absolute_path?  Like, that the file / directory must exist
otherwise it's an error.  I think otherwise people would wonder why
there are two functions that seem to do the same thing.

Rest of the patch seems fine, so ACK with updated documentation.

Rich.

--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.