diff --git a/args.c b/args.c index c7ac2c0..7f01001 100644 --- a/args.c +++ b/args.c @@ -1,5 +1,4 @@ #include "config.h" -#include "raw_replacements.h" #include #include #include @@ -12,38 +11,6 @@ static char custom_fake_buf[MAX_FAKE_SIZE]; -static const struct section_config_t default_section_config = { - .frag_sni_reverse = 1, - .frag_sni_faked = 0, - .fragmentation_strategy = FRAGMENTATION_STRATEGY, - .faking_strategy = FAKING_STRATEGY, - .faking_ttl = FAKE_TTL, - .fake_sni = 1, - .fake_sni_seq_len = 1, - .fake_sni_type = FAKE_PAYLOAD_DEFAULT, - .frag_middle_sni = 1, - .frag_sni_pos = 1, - .fakeseq_offset = 10000, - .synfake = 0, - .synfake_len = 0, - .quic_drop = 0, - - .seg2_delay = 0, - - .domains_str = defaul_snistr, - .domains_strlen = sizeof(defaul_snistr), - - .exclude_domains_str = "", - .exclude_domains_strlen = 0, - - .fake_sni_pkt = fake_sni_old, - .fake_sni_pkt_sz = sizeof(fake_sni_old) - 1, // - 1 for null-terminator - .fake_custom_pkt = custom_fake_buf, - .fake_custom_pkt_sz = 0, - - .sni_detection = SNI_DETECTION_PARSE, -}; - struct config_t config = { .threads = THREADS_NUM, .queue_start_num = DEFAULT_QUEUE_NUM, @@ -268,7 +235,7 @@ int parse_args(int argc, char *argv[]) { goto invalid_opt; sect_config = &config.custom_configs[config.custom_configs_len++]; - *sect_config = default_section_config; + *sect_config = (struct section_config_t)default_section_config; section_iter = SECT_ITER_INSIDE; break; diff --git a/config.h b/config.h index 086a289..f3d6683 100644 --- a/config.h +++ b/config.h @@ -5,6 +5,8 @@ #define USER_SPACE #endif +#include "raw_replacements.h" + typedef int (*raw_send_t)(const unsigned char *data, unsigned int data_len); /** * Sends the packet after delay_ms. The function should schedule send and return immediately @@ -91,6 +93,37 @@ for (struct section_config_t *section = &config.default_config + config.custom_c #define CONFIG_SECTION_NUMBER(section) (int)((section) - &config.default_config) +#define default_section_config { \ + .frag_sni_reverse = 1, \ + .frag_sni_faked = 0, \ + .fragmentation_strategy = FRAGMENTATION_STRATEGY, \ + .faking_strategy = FAKING_STRATEGY, \ + .faking_ttl = FAKE_TTL, \ + .fake_sni = 1, \ + .fake_sni_seq_len = 1, \ + .fake_sni_type = FAKE_PAYLOAD_DEFAULT, \ + .frag_middle_sni = 1, \ + .frag_sni_pos = 1, \ + .fakeseq_offset = 10000, \ + .synfake = 0, \ + .synfake_len = 0, \ + .quic_drop = 0, \ + \ + .seg2_delay = 0, \ + \ + .domains_str = defaul_snistr, \ + .domains_strlen = sizeof(defaul_snistr), \ + \ + .exclude_domains_str = "", \ + .exclude_domains_strlen = 0, \ + \ + .fake_sni_pkt = fake_sni_old, \ + .fake_sni_pkt_sz = sizeof(fake_sni_old) - 1, \ + .fake_custom_pkt = custom_fake_buf, \ + .fake_custom_pkt_sz = 0, \ + .sni_detection = SNI_DETECTION_PARSE, \ +} + #define MAX_THREADS 16 #ifndef THREADS_NUM diff --git a/kargs.c b/kargs.c index 953118f..0e596b3 100644 --- a/kargs.c +++ b/kargs.c @@ -1,5 +1,4 @@ #include "config.h" -#include "raw_replacements.h" #include "types.h" #include #include "types.h" @@ -8,37 +7,6 @@ static char custom_fake_buf[MAX_FAKE_SIZE]; -static const struct section_config_t default_section_config = { - .frag_sni_reverse = 1, - .frag_sni_faked = 0, - .fragmentation_strategy = FRAGMENTATION_STRATEGY, - .faking_strategy = FAKING_STRATEGY, - .faking_ttl = FAKE_TTL, - .fake_sni = 1, - .fake_sni_seq_len = 1, - .fake_sni_type = FAKE_PAYLOAD_DEFAULT, - .frag_middle_sni = 1, - .frag_sni_pos = 1, - .fakeseq_offset = 10000, - .synfake = 0, - .synfake_len = 0, - .quic_drop = 0, - - .seg2_delay = 0, - - .domains_str = defaul_snistr, - .domains_strlen = sizeof(defaul_snistr), - - .exclude_domains_str = "", - .exclude_domains_strlen = 0, - - .fake_sni_pkt = fake_sni_old, - .fake_sni_pkt_sz = sizeof(fake_sni_old) - 1, // - 1 for null-terminator - .fake_custom_pkt = custom_fake_buf, - .fake_custom_pkt_sz = 0, - .sni_detection = SNI_DETECTION_PARSE, -}; - struct config_t config = { .threads = THREADS_NUM, .queue_start_num = DEFAULT_QUEUE_NUM, @@ -52,7 +20,7 @@ struct config_t config = { .custom_configs_len = 0 }; -static struct section_config_t *const def_section = &config.default_config; +#define def_section (&config.default_config) static int unumeric_set(const char *val, const struct kernel_param *kp) { int n = 0, ret;