storage/nfs: pass std::string_view to the NfsStorage ctor

This commit is contained in:
Max Kellermann 2024-05-06 15:26:30 +02:00
parent bcc39be784
commit 96888cce9c

View File

@ -55,10 +55,10 @@ class NfsStorage final
public: public:
NfsStorage(EventLoop &_loop, const char *_base, NfsStorage(EventLoop &_loop, const char *_base,
std::string &&_server, std::string &&_export_name) std::string_view _server, std::string_view _export_name)
:base(_base), :base(_base),
server(std::move(_server)), server(_server),
export_name(std::move(_export_name)), export_name(_export_name),
defer_connect(_loop, BIND_THIS_METHOD(OnDeferredConnect)), defer_connect(_loop, BIND_THIS_METHOD(OnDeferredConnect)),
reconnect_timer(_loop, BIND_THIS_METHOD(OnReconnectTimer)) { reconnect_timer(_loop, BIND_THIS_METHOD(OnReconnectTimer)) {
nfs_init(_loop); nfs_init(_loop);
@ -397,16 +397,16 @@ CreateNfsStorageURI(EventLoop &event_loop, const char *base)
if (p == nullptr) if (p == nullptr)
return nullptr; return nullptr;
const char *mount = std::strchr(p, '/'); const char *slash = std::strchr(p, '/');
if (mount == nullptr) if (slash == nullptr)
throw std::runtime_error("Malformed nfs:// URI"); throw std::runtime_error("Malformed nfs:// URI");
const std::string server(p, mount); const std::string_view server{p, slash}, mount{slash};
nfs_set_base(server, mount); nfs_set_base(server, mount);
return std::make_unique<NfsStorage>(event_loop, base, return std::make_unique<NfsStorage>(event_loop, base,
server.c_str(), mount); server, mount);
} }
static constexpr const char *nfs_prefixes[] = { "nfs://", nullptr }; static constexpr const char *nfs_prefixes[] = { "nfs://", nullptr };