diff --git a/src/my_app b/src/my_app deleted file mode 100755 index 8d68b8b..0000000 Binary files a/src/my_app and /dev/null differ diff --git a/src/my_check_params.cpp b/src/my_check_params.cpp index ac479f0..e45634d 100644 --- a/src/my_check_params.cpp +++ b/src/my_check_params.cpp @@ -14,7 +14,8 @@ // -10 - Пользователь выбрал тип атаки порт сканнинг, но не ввел нужные параметры // -20 - Пользователь выбрал тип атаки флуд, но не ввел нужные параметры // -100 - неизвестная ошибка -// -101 - неизвестная опция, следует предложить вызвать флаг помощи +// -101 - неизвестная опция или потерян аргумент, следует предложить вызвать флаг помощи +// -600 - пользователь ввел токен, но не id или наоборот // Какие-то еще коды? int my_check_params(int argc, char** argv) { @@ -60,20 +61,20 @@ int my_check_params(int argc, char** argv) { opts.telegram_token = optarg; break; case 'h': - std::cout << "Usage: " << argv[0] << " [options]\n" - << "Required:\n" - << " -a, --attack TYPE Type of attack (scan|flood)\n" - << " -d, --domain DOMAIN Target domain\n" - << " -i, --ip IP Target IP\n" - << " -p, --port PORT Port. Required only for flood type!\n" - << "Optional:\n" - << " -l, --log FILE Log file\n" - << " -t, --telegram ID Telegram ID\n" - << " -b, --token TOKEN Telegram bot token\n"; + // std::cout << "Usage: " << argv[0] << " [options]\n" + // << "Required:\n" + // << " -a, --attack TYPE Type of attack (scan|flood)\n" + // << " -d, --domain DOMAIN Target domain\n" + // << " -i, --ip IP Target IP\n" + // << " -p, --port PORT Port. Required only for flood type!\n" + // << "Optional:\n" + // << " -l, --log FILE Log file\n" + // << " -t, --telegram ID Telegram ID\n" + // << " -b, --token TOKEN Telegram bot token\n"; status = 0; break; case '?': - std::cerr << "Unknown option!\n.--help for info\n"; + // std::cerr << "Unknown option!\n.--help for info\n"; status = -101; break; default: @@ -84,34 +85,33 @@ int my_check_params(int argc, char** argv) { // Проверка обязательных параметров - if (status != 0) + if (status != 0 && status != -101) { if (opts.attack_type != "flood" && opts.attack_type != "scan") { - std::cerr << "Error: Missing required parameters!\n--help for more info\n"; + // std::cerr << "Error: Missing required parameters!\n--help for more info\n"; status = -1; } else if (opts.attack_type == "scan" && (opts.domain.empty() || opts.ip.empty())) { - std::cerr << "Error: Missing required parameters!\n--help for more info\n"; + // std::cerr << "Error: Missing required parameters!\n--help for more info\n"; status = -10; } else if (opts.attack_type == "flood" && (opts.domain.empty() || opts.ip.empty() || opts.port.empty())) { - std::cerr << "Error: Missing required parameters!\n--help for more info\n"; + // std::cerr << "Error: Missing required parameters!\n--help for more info\n"; status = -20; } + else if ((!opts.telegram_id.empty() && opts.telegram_token.empty()) || (opts.telegram_id.empty() && !opts.telegram_token.empty())) { + status = -600; + } else if (opts.attack_type == "scan" && !opts.domain.empty() && !opts.ip.empty()) { - std::cerr << "Error: Missing required parameters!\n--help for more info\n"; + // std::cerr << "Error: Missing required parameters!\n--help for more info\n"; status = 1; } else if (opts.attack_type == "flood" && !opts.domain.empty() && !opts.ip.empty() && !opts.port.empty()) { - std::cerr << "Error: Missing required parameters!\n--help for more info\n"; + // std::cerr << "Error: Missing required parameters!\n--help for more info\n"; status = 2; } // Какие-то еще коды? } - - - - return status; } \ No newline at end of file