From: Masatake YAMATO Date: Thu, 14 Oct 2021 15:01:49 +0000 (+0900) Subject: lsfd: (helper) add "dir" parameter to directory factory X-Git-Tag: v2.38-rc1~144^2~31 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8c670091dead898465ab4124f15bf73b6a06e46f;p=thirdparty%2Futil-linux.git lsfd: (helper) add "dir" parameter to directory factory Signed-off-by: Masatake YAMATO --- diff --git a/tests/helpers/test_mkfds.c b/tests/helpers/test_mkfds.c index c5d67a0113..5b5b39de9f 100644 --- a/tests/helpers/test_mkfds.c +++ b/tests/helpers/test_mkfds.c @@ -277,14 +277,15 @@ static void make_pipe(const struct factory *factory _U_, struct fdesc fdescs[], } } -static void open_directory(const struct factory *factory _U_, struct fdesc fdescs[], pid_t * child _U_, - int argc _U_, char ** argv _U_) +static void open_directory(const struct factory *factory, struct fdesc fdescs[], pid_t * child _U_, + int argc, char ** argv) { - const char *dir = "/"; + struct arg dir = decode_arg("dir", factory->params, argc, argv); - int fd = open(dir, O_RDONLY|O_DIRECTORY); + int fd = open(ARG_STRING(dir), O_RDONLY|O_DIRECTORY); if (fd < 0) - err(EXIT_FAILURE, "failed to open: %s", dir); + err(EXIT_FAILURE, "failed to open: %s", ARG_STRING(dir)); + free_arg(&dir); if (dup2(fd, fdescs[0].fd) < 0) { int e = errno; @@ -335,11 +336,20 @@ static const struct factory factories[] = { }, { .name = "directory", - .desc = "directory (/)", + .desc = "directory", .priv = false, .N = 1, .fork = false, - .make = open_directory + .make = open_directory, + .params = (struct parameter []) { + { + .name = "dir", + .type = PTYPE_STRING, + .desc = "directory to be opened", + .defv.string = "/", + }, + PARAM_END + }, }, };