diff --git a/utils/remote.cc b/utils/remote.cc index 07d62697a..8aa326843 100644 --- a/utils/remote.cc +++ b/utils/remote.cc @@ -2954,8 +2954,16 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo break; case 953: - args.insert_or_assign(TR_KEY_seed_ratio_limit, tr_num_parse(optarg_sv).value()); - args.insert_or_assign(TR_KEY_seed_ratio_limited, true); + if (auto const val = tr_num_parse(optarg_sv)) + { + args.insert_or_assign(TR_KEY_seed_ratio_limit, *val); + args.insert_or_assign(TR_KEY_seed_ratio_limited, true); + } + else + { + fmt::print(stderr, "Argument to '-gsr'/'--global-seedratio' should be a number"); + status |= EXIT_FAILURE; + } break; case 954: @@ -2963,8 +2971,16 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo break; case 958: - args.insert_or_assign(TR_KEY_idle_seeding_limit, tr_num_parse(optarg_sv).value()); - args.insert_or_assign(TR_KEY_idle_seeding_limit_enabled, true); + if (auto const val = tr_num_parse(optarg_sv)) + { + args.insert_or_assign(TR_KEY_idle_seeding_limit, *val); + args.insert_or_assign(TR_KEY_idle_seeding_limit_enabled, true); + } + else + { + fmt::print(stderr, "Argument to '-gisl'/'--global-idle-seeding-limit' should be an integer"); + status |= EXIT_FAILURE; + } break; case 959: @@ -3061,15 +3077,22 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo break; case 930: - if (targs != nullptr) + if (auto const val = tr_num_parse(optarg_sv)) { - targs->insert_or_assign(TR_KEY_peer_limit, tr_num_parse(optarg_sv).value()); + if (targs != nullptr) + { + targs->insert_or_assign(TR_KEY_peer_limit, *val); + } + else + { + sargs->insert_or_assign(TR_KEY_peer_limit_global, *val); + } } else { - sargs->insert_or_assign(TR_KEY_peer_limit_global, tr_num_parse(optarg_sv).value()); + fmt::print(stderr, "Argument to '-pr'/'--peers' should be an integer"); + status |= EXIT_FAILURE; } - break; default: @@ -3084,6 +3107,7 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo switch (c) { case 712: + if (auto const val = tr_num_parse(optarg_sv)) { auto* list = args.find_if(TR_KEY_tracker_remove); if (list == nullptr) @@ -3091,13 +3115,26 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo list = args.insert_or_assign(TR_KEY_tracker_remove, tr_variant::make_vector(1)) .first.get_if(); } - list->emplace_back(tr_num_parse(optarg_sv).value()); + list->emplace_back(*val); + } + else + { + fmt::print(stderr, "Argument to '-tr'/'--tracker-remove' should be an integer"); + status |= EXIT_FAILURE; } break; case 950: - args.insert_or_assign(TR_KEY_seed_ratio_limit, tr_num_parse(optarg_sv).value()); - args.insert_or_assign(TR_KEY_seed_ratio_mode, TR_RATIOLIMIT_SINGLE); + if (auto const val = tr_num_parse(optarg_sv)) + { + args.insert_or_assign(TR_KEY_seed_ratio_limit, *val); + args.insert_or_assign(TR_KEY_seed_ratio_mode, TR_RATIOLIMIT_SINGLE); + } + else + { + fmt::print(stderr, "Argument to '-sr'/'--seedratio' should be a number"); + status |= EXIT_FAILURE; + } break; case 951: @@ -3109,8 +3146,16 @@ int process_args(char const* rpcurl, int argc, char const* const* argv, RemoteCo break; case 955: - args.insert_or_assign(TR_KEY_seed_idle_limit, tr_num_parse(optarg_sv).value()); - args.insert_or_assign(TR_KEY_seed_idle_mode, TR_IDLELIMIT_SINGLE); + if (auto const val = tr_num_parse(optarg_sv)) + { + args.insert_or_assign(TR_KEY_seed_idle_limit, *val); + args.insert_or_assign(TR_KEY_seed_idle_mode, TR_IDLELIMIT_SINGLE); + } + else + { + fmt::print(stderr, "Argument to '-isl'/'--idle-seeding-limit' should be an integer"); + status |= EXIT_FAILURE; + } break; case 956: