Ignore unacceptable options in RPC request instead of throwing error.

This change allows RPC client to send same options for the different
type of downloads.
pull/20/head
Tatsuhiro Tsujikawa 2012-05-17 22:52:39 +09:00
parent 7785ea8c4b
commit 68eb1b6737
2 changed files with 6 additions and 4 deletions

View File

@ -96,8 +96,8 @@ void gatherOption
}
const SharedHandle<OptionHandler>& handler = optionParser->find(pref);
if(!handler || !pred(handler)) {
throw DL_ABORT_EX
(fmt("%s option cannot be used in this context.", optionName.c_str()));
// Just ignore the unacceptable options in this context.
continue;
}
const String* opval = downcast<String>((*first).second);
if(opval) {

View File

@ -507,7 +507,8 @@ void RpcMethodTest::testChangeOption_withNotAllowedOption()
opt->put(PREF_MAX_OVERALL_DOWNLOAD_LIMIT->k, "100K");
req.params->append(opt);
RpcResponse res = m.execute(req, e_.get());
CPPUNIT_ASSERT_EQUAL(1, res.code);
// The unacceptable options are just ignored.
CPPUNIT_ASSERT_EQUAL(0, res.code);
}
void RpcMethodTest::testChangeOption_withoutGid()
@ -567,7 +568,8 @@ void RpcMethodTest::testChangeGlobalOption_withNotAllowedOption()
opt->put(PREF_ENABLE_RPC->k, "100K");
req.params->append(opt);
RpcResponse res = m.execute(req, e_.get());
CPPUNIT_ASSERT_EQUAL(1, res.code);
// The unacceptable options are just ignored.
CPPUNIT_ASSERT_EQUAL(0, res.code);
}
void RpcMethodTest::testNoSuchMethod()