X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Fbin%2Fcommon%2Foptions.cpp;h=229f4f0f943a1b55997e7dce174cc9092d7c6071;hb=f2d0ed355899d265edbcc7156dace706df2f160a;hp=4583e7b73e9a2537b5daf2e1ed906b0cc0561b9d;hpb=2c5690e3e3384b98c1b4dc78c076ae9d59eb7d22;p=awesomized%2Flibmemcached diff --git a/src/bin/common/options.cpp b/src/bin/common/options.cpp index 4583e7b7..229f4f0f 100644 --- a/src/bin/common/options.cpp +++ b/src/bin/common/options.cpp @@ -153,12 +153,23 @@ bool client_options::apply(memcached_st *memc) { } #endif // _WIN32 + extended_option *servers = nullptr; for (auto &opt : options) { if (opt.apply) { + // servers should be applied last, so they take up any behaviors previously set + if (opt.opt.val == 's' && opt.opt.name == std::string("servers")) { + servers = &opt; + continue; + } if (!opt.apply(*this, opt, memc)) { return false; } } } + if (servers) { + if (!servers->apply(*this, *servers, memc)) { + return false; + } + } return true; }