From 6c2a40a800277ded302f3183ac6c68b01ca3ed41 Mon Sep 17 00:00:00 2001 From: Matt Benjamin Date: Tue, 17 Jan 2017 11:23:45 -0500 Subject: [PATCH] rgw_file: split last argv on ws, if provided This is intended to allow an "extra" unparsed argument string containing various cmdline options to be passed as the last argument in the argv array of librgw_create(), which nfs-ganesha is expecting to happen. While at it, hook env_args() too. Signed-off-by: Matt Benjamin (cherry picked from commit fbc19e4effc736c98cc1cc283e5c7b131a0fa766) --- src/rgw/librgw.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/rgw/librgw.cc b/src/rgw/librgw.cc index 70fd69e864f76..0e4075c718083 100644 --- a/src/rgw/librgw.cc +++ b/src/rgw/librgw.cc @@ -629,7 +629,18 @@ int librgw_create(librgw_t* rgw, int argc, char **argv) std::lock_guard lg(librgw_mtx); if (! g_ceph_context) { vector args; + std::vector spl_args; + // last non-0 argument will be split and consumed + if (argc > 1) { + const std::string spl_arg{argv[(--argc)]}; + get_str_vec(spl_arg, " \t", spl_args); + } argv_to_vec(argc, const_cast(argv), args); + // append split args, if any + for (const auto& elt : spl_args) { + args.push_back(elt.c_str()); + } + env_to_vec(args); rc = rgwlib.init(args); } } -- 2.39.5