From 798e0f8b84af0fc8be1623d34249aaca2bc15bcc Mon Sep 17 00:00:00 2001 From: dnomd343 Date: Sat, 3 Sep 2022 23:37:17 +0800 Subject: [PATCH] update: global help message --- include/help.h | 11 +++++++++ src/help.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/local.c | 56 +++++------------------------------------- src/server.c | 50 ++++++-------------------------------- 4 files changed, 90 insertions(+), 93 deletions(-) create mode 100644 include/help.h create mode 100644 src/help.c diff --git a/include/help.h b/include/help.h new file mode 100644 index 0000000..c430a76 --- /dev/null +++ b/include/help.h @@ -0,0 +1,11 @@ +#ifndef _HELP_H_ +#define _HELP_H_ + +#define VERSION "0.9.0" + +extern char *local_help_msg; +extern char *server_help_msg; + +void is_show_help(int argc, char **argv, char *help_msg); + +#endif diff --git a/src/help.c b/src/help.c new file mode 100644 index 0000000..462de90 --- /dev/null +++ b/src/help.c @@ -0,0 +1,66 @@ +#include +#include +#include +#include "help.h" + +char *server_help_msg = "\n\ +ss-bootstrap-server\n\ +\n\ + A simple program to make the original shadowsocks support SIP003 plugins.\n\ +\n\ + -s Host name or IP address of your remote server.\n\ + -p Port number of your remote server.\n\ + -b Local address to bind.\n\ + -l Port number of your local server.\n\ +\n\ + -c Path to JSON config file.\n\ + -k Password of your remote server.\n\ + -m Encrypt method.\n\ + -t Socket timeout in seconds.\n\ + --fast-open Enable TCP fast open (with Linux kernel 3.7+).\n\ + --plugin Enable SIP003 plugin.\n\ + --plugin-opts Set SIP003 plugin options.\n\ + --shadowsocks Set shadowsocks server program.\n\ + --no-udp Do not use UDP proxy.\n\ + -h, --help Print this message.\n\ +\n\ +"; + +char *local_help_msg = "\n\ +ss-bootstrap-local\n\ +\n\ + A simple program to make the original shadowsocks support SIP003 plugins.\n\ +\n\ + -s Host name or IP address of your remote server.\n\ + -p Port number of your remote server.\n\ + -b Local address to bind.\n\ + -l Port number of your local server.\n\ +\n\ + -c Path to JSON config file.\n\ + -k Password of your remote server.\n\ + -m Encrypt method.\n\ + -t Socket timeout in seconds.\n\ + --fast-open Enable TCP fast open (with Linux kernel 3.7+).\n\ + --plugin Enable SIP003 plugin.\n\ + --plugin-opts Set SIP003 plugin options.\n\ + --shadowsocks Set shadowsocks local program.\n\ + --no-udp Do not use UDP proxy.\n\ + -h, --help Print this message.\n\ +\n\ +"; + +void show_help(char *help_msg) { + printf("%s", help_msg); + exit(0); // exit normally +} + +void is_show_help(int argc, char **argv, char *help_msg) { // output help when necessary + if (argc <= 1) { // with only one argument + show_help(help_msg); + } + for (int i = 0; i < argc; ++i) { + if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) { // include `-h` or `--help` + show_help(help_msg); + } + } +} diff --git a/src/local.c b/src/local.c index b8675fe..480fce6 100644 --- a/src/local.c +++ b/src/local.c @@ -3,59 +3,15 @@ #include #include "common.h" #include "process.h" +#include "help.h" #include "log.h" -#define SHADOWSOCKS_DEFAULT "sslocal" - -char *help_msg = -"\ -\n\ -ss-bootstrap-local\n\ -\n\ - A simple program to make the original shadowsocks support SIP003 plugins.\n\ -\n\ - -s Host name or IP address of your remote server.\n\ - -p Port number of your remote server.\n\ - -b Local address to bind.\n\ - -l Port number of your local server.\n\ -\n\ - -c Path to JSON config file.\n\ - -k Password of your remote server.\n\ - -m Encrypt method.\n\ - -t Socket timeout in seconds.\n\ - --fast-open Enable TCP fast open (with Linux kernel 3.7+).\n\ - --plugin Enable SIP003 plugin.\n\ - --plugin-opts Set SIP003 plugin options.\n\ - --shadowsocks Set shadowsocks local program.\n\ - --no-udp Do not use UDP proxy.\n\ - -h, --help Print this message.\n\ -\n\ -"; - -void show_help() { // show help message - printf("%s", help_msg); - exit(0); // exit normally -} - int main(int argc, char *argv[]) { - int i; - - log_debug("%s", "shadowsocks-bootstrap log level debug"); - log_info("%s", "shadowsocks-bootstrap log level info"); - log_warn("%s", "shadowsocks-bootstrap log level warn"); - log_error("%s", "shadowsocks-bootstrap log level error"); - log_fatal("%s", "shadowsocks-bootstrap log level fatal"); + is_show_help(argc, argv, local_help_msg); + log_info("Shadowsocks bootstrap local (%s)", VERSION); -// if (argc <= 1) { -// show_help(); -// } -// for (i = 0; i < argc; ++i) { -// if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) { -// show_help(); -// } -// } -// args_decode(argc, argv); -// params_load(SHADOWSOCKS_DEFAULT); // default file name -// start_bootstrap(SHADOWSOCKS_DEFAULT, is_udp_proxy); // local or server mode + args_decode(argc, argv); + params_load("sslocal"); // default file name + start_bootstrap("sslocal", is_udp_proxy); // local or server mode return 0; } diff --git a/src/server.c b/src/server.c index ad2d959..2aba205 100644 --- a/src/server.c +++ b/src/server.c @@ -3,51 +3,15 @@ #include #include "common.h" #include "process.h" - -#define SHADOWSOCKS_DEFAULT "ssserver" - -char *help_msg = -"\ -\n\ -ss-bootstrap-server\n\ -\n\ - A simple program to make the original shadowsocks support SIP003 plugins.\n\ -\n\ - -s Host name or IP address of your remote server.\n\ - -p Port number of your remote server.\n\ - -b Local address to bind.\n\ - -l Port number of your local server.\n\ -\n\ - -c Path to JSON config file.\n\ - -k Password of your remote server.\n\ - -m Encrypt method.\n\ - -t Socket timeout in seconds.\n\ - --fast-open Enable TCP fast open (with Linux kernel 3.7+).\n\ - --plugin Enable SIP003 plugin.\n\ - --plugin-opts Set SIP003 plugin options.\n\ - --shadowsocks Set shadowsocks server program.\n\ - --no-udp Do not use UDP proxy.\n\ - -h, --help Print this message.\n\ -\n\ -"; - -void show_help() { // show help message - printf("%s", help_msg); - exit(0); // exit normally -} +#include "help.h" +#include "log.h" int main(int argc, char *argv[]) { - int i; - if (argc <= 1) { - show_help(); - } - for (i = 0; i < argc; ++i) { - if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) { - show_help(); - } - } + is_show_help(argc, argv, server_help_msg); + log_info("Shadowsocks bootstrap server (%s)", VERSION); + args_decode(argc, argv); - params_load(SHADOWSOCKS_DEFAULT); // default file name - start_bootstrap(SHADOWSOCKS_DEFAULT, is_udp_proxy); // local or server mode + params_load("ssserver"); // default file name + start_bootstrap("ssserver", is_udp_proxy); // local or server mode return 0; }