In nbdkit API v3 we will probably add the export name as an extra parameter, but while we are using API v2 we can get the same effect by calling nbdkit_export_name(). --- plugins/sh/nbdkit-sh-plugin.pod | 6 ++++-- plugins/sh/sh.c | 6 +++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/plugins/sh/nbdkit-sh-plugin.pod b/plugins/sh/nbdkit-sh-plugin.pod index 5789908..a088838 100644 --- a/plugins/sh/nbdkit-sh-plugin.pod +++ b/plugins/sh/nbdkit-sh-plugin.pod @@ -237,9 +237,11 @@ with status C<1>; unrecognized output is ignored. =item C<open> - /path/to/script open <readonly> + /path/to/script open <readonly> <exportname> -The C<readonly> parameter will be C<true> or C<false>. +The C<readonly> parameter will be C<true> or C<false>. The +C<exportname> parameter, if present, is the export name passed to the +server from the client. On success this should print the handle (any string) on stdout and exit with code C<0>. If the handle ends with a newline character then diff --git a/plugins/sh/sh.c b/plugins/sh/sh.c index e0d370d..56d30ca 100644 --- a/plugins/sh/sh.c +++ b/plugins/sh/sh.c @@ -324,7 +324,11 @@ sh_open (int readonly) { char *h = NULL; size_t hlen; - const char *args[] = { script, "open", readonly ? "true" : "false", NULL }; + const char *args[] = + { script, "open", + readonly ? "true" : "false", + nbdkit_export_name () ? : "", + NULL }; /* We store the string returned by open in the handle. */ switch (call_read (&h, &hlen, args)) { -- 2.23.0