diff options
| -rw-r--r-- | src/tsg_action.cpp | 25 | ||||
| -rw-r--r-- | src/tsg_entry.cpp | 2 |
2 files changed, 23 insertions, 4 deletions
diff --git a/src/tsg_action.cpp b/src/tsg_action.cpp index b1c0f34..7eace33 100644 --- a/src/tsg_action.cpp +++ b/src/tsg_action.cpp @@ -222,13 +222,26 @@ static int get_response_pages(struct Maat_rule_t *p_result, struct compile_user_ return payload_len; } -static int set_tcp_flags(char *packet, int ip_tcp_hdr_len) +static int set_tcp_rst_flags(char *packet, int ip_tcp_hdr_len) { struct tcphdr *tcp=(struct tcphdr *)(packet+(ip_tcp_hdr_len-20)); // tcp header=20 bytes tcp->rst=1; + tcp->ack=1; tcp->psh=0; + tcp->fin=0; + + return 0; +} + +static int set_tcp_fin_flags(char *packet, int ip_tcp_hdr_len) +{ + struct tcphdr *tcp=(struct tcphdr *)(packet+(ip_tcp_hdr_len-20)); // tcp header=20 bytes + + tcp->fin=1; tcp->ack=1; + tcp->psh=0; + tcp->rst=0; return 0; } @@ -426,9 +439,15 @@ static int http_build_response_packet(const struct streaminfo *a_stream, struct { dictator_free(a_stream->threadnum, payload); payload=NULL; - } + } + + set_tcp_fin_flags(message, ip_tcp_hdr_len); + http_send_reponse_packet(a_stream, message, 0, v4_or_v6, ip_tcp_hdr_len, 0); //fin + + reverse_ip_tcp_header(message, ip_tcp_hdr_len, v4_or_v6); + http_send_reponse_packet(a_stream, message, 0, v4_or_v6, ip_tcp_hdr_len, 0); //fin - set_tcp_flags(message, ip_tcp_hdr_len); + set_tcp_rst_flags(message, ip_tcp_hdr_len); http_send_reponse_packet(a_stream, message, 0, v4_or_v6, ip_tcp_hdr_len, 0); //rst reverse_ip_tcp_header(message, ip_tcp_hdr_len, v4_or_v6); diff --git a/src/tsg_entry.cpp b/src/tsg_entry.cpp index c7b88c1..4ec6375 100644 --- a/src/tsg_entry.cpp +++ b/src/tsg_entry.cpp @@ -1818,7 +1818,7 @@ extern "C" int TSG_MASTER_INIT() MESA_load_profile_int_def(tsg_conffile, "RESET", "SEED2", &g_tsg_para.reset.seed2, 13); MESA_load_profile_int_def(tsg_conffile, "RESET", "FLAGS", &g_tsg_para.reset.th_flags, 0x14); MESA_load_profile_int_def(tsg_conffile, "RESET", "DIR", &g_tsg_para.reset.dir, DIR_DOUBLE); - MESA_load_profile_int_def(tsg_conffile, "RESET", "REMEDY", &g_tsg_para.reset.remedy, 0); + MESA_load_profile_int_def(tsg_conffile, "RESET", "REMEDY", &g_tsg_para.reset.remedy, 1); MESA_load_profile_int_def(tsg_conffile, "SYSTEM","DEFAULT_POLICY_ID", &g_tsg_para.default_compile_id, 0); MESA_load_profile_int_def(tsg_conffile, "SYSTEM","DEFAULT_POLICY_SWITCH", &g_tsg_para.default_compile_switch, 0); |
