summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--infra/packet_manager/packet_manager.c4
-rw-r--r--infra/session_manager/session_manager.c4
-rw-r--r--infra/session_manager/session_manager_rte.c10
-rw-r--r--infra/stellar_core.c2
-rw-r--r--test/session_debugger/session_debugger.c2
5 files changed, 15 insertions, 7 deletions
diff --git a/infra/packet_manager/packet_manager.c b/infra/packet_manager/packet_manager.c
index 0238ec0..46153cb 100644
--- a/infra/packet_manager/packet_manager.c
+++ b/infra/packet_manager/packet_manager.c
@@ -5,8 +5,6 @@
#include "packet_manager.h"
#include "fieldstat/fieldstat_easy.h"
-
-
#define PACKET_MANAGER_LOG_ERROR(format, ...) STELLAR_LOG_ERROR(__thread_local_logger, "packet manager", format, ##__VA_ARGS__)
#define PACKET_MANAGER_LOG_FATAL(format, ...) STELLAR_LOG_FATAL(__thread_local_logger, "packet manager", format, ##__VA_ARGS__)
#define PACKET_MANAGER_LOG_INFO(format, ...) STELLAR_LOG_INFO(__thread_local_logger, "packet manager", format, ##__VA_ARGS__)
@@ -460,7 +458,7 @@ static void on_polling(struct module_manager *mod_mgr, void *args)
struct packet_manager *module_to_packet_manager(struct module *mod)
{
assert(mod);
- assert(strcmp(module_get_name(mod), PACKET_MANAGER_MODULE_NAME) == 0);
+ assert(strcmp(module_get_name(mod), PACKET_MANAGER_MODULE_NAME) == 0);
return (struct packet_manager *)module_get_ctx(mod);
}
diff --git a/infra/session_manager/session_manager.c b/infra/session_manager/session_manager.c
index d2f99cf..21fb779 100644
--- a/infra/session_manager/session_manager.c
+++ b/infra/session_manager/session_manager.c
@@ -525,14 +525,14 @@ void session_manager_clean(struct session_manager *sess_mgr, uint16_t thread_id)
struct session_manager *module_to_session_manager(struct module *mod)
{
assert(mod);
- assert(strcmp(module_get_name(mod), SESSION_MANAGER_MODULE_NAME) == 0);
+ assert(strcmp(module_get_name(mod), SESSION_MANAGER_MODULE_NAME) == 0);
return module_get_ctx(mod);
}
struct module *session_manager_on_init(struct module_manager *mod_mgr)
{
assert(mod_mgr);
- struct module *pkt_mgr_mod= module_manager_get_module(mod_mgr, PACKET_MANAGER_MODULE_NAME);
+ struct module *pkt_mgr_mod = module_manager_get_module(mod_mgr, PACKET_MANAGER_MODULE_NAME);
struct packet_manager *pkt_mgr = module_to_packet_manager(pkt_mgr_mod);
assert(pkt_mgr);
struct mq_schema *mq_sche = module_manager_get_mq_schema(mod_mgr);
diff --git a/infra/session_manager/session_manager_rte.c b/infra/session_manager/session_manager_rte.c
index 51e3cc7..e424faf 100644
--- a/infra/session_manager/session_manager_rte.c
+++ b/infra/session_manager/session_manager_rte.c
@@ -192,6 +192,16 @@ static void tcp_update(struct session_manager_rte *sess_mgr_rte, struct session
{
// len > 0 is SYN with data (TCP Fast Open)
tcp_reassembly_set_recv_next(half->tcp_reass, len ? half->seq : half->seq + 1);
+
+ if (unlikely(flags & TH_ACK))
+ {
+ // current packet is SYN-ACK (S2C), if C2S has not received SYN-ACK, set C2S recv_next
+ struct tcp_half *peer = &sess->tcp_halfs[FLOW_TYPE_C2S];
+ if (type == FLOW_TYPE_S2C && peer->history == 0 && tcp_reassembly_get_recv_next(peer->tcp_reass) == 0)
+ {
+ tcp_reassembly_set_recv_next(peer->tcp_reass, half->ack);
+ }
+ }
}
seg = tcp_reassembly_expire(half->tcp_reass, sess_mgr_rte->now_ms);
diff --git a/infra/stellar_core.c b/infra/stellar_core.c
index cbab9f5..bdb730e 100644
--- a/infra/stellar_core.c
+++ b/infra/stellar_core.c
@@ -53,7 +53,7 @@ static void *worker_thread(void *arg)
struct packet_io *pkt_io = st->pkt_io;
struct module_manager *mod_mgr = st->mod_mgr;
struct mq_runtime *mq_rt = mq_runtime_new(st->mq_schema);
- struct module *pkt_mgr_mod= module_manager_get_module(mod_mgr, PACKET_MANAGER_MODULE_NAME);
+ struct module *pkt_mgr_mod = module_manager_get_module(mod_mgr, PACKET_MANAGER_MODULE_NAME);
struct packet_manager *pkt_mgr = module_to_packet_manager(pkt_mgr_mod);
snprintf(thread_name, sizeof(thread_name), "stellar:%d", thread_id);
diff --git a/test/session_debugger/session_debugger.c b/test/session_debugger/session_debugger.c
index cad4316..e3a151e 100644
--- a/test/session_debugger/session_debugger.c
+++ b/test/session_debugger/session_debugger.c
@@ -434,7 +434,7 @@ error_out:
struct module *session_debugger_on_init(struct module_manager *mod_mgr)
{
assert(mod_mgr);
- struct module *sess_mgr_mod=module_manager_get_module(mod_mgr, SESSION_MANAGER_MODULE_NAME);
+ struct module *sess_mgr_mod = module_manager_get_module(mod_mgr, SESSION_MANAGER_MODULE_NAME);
struct session_manager *sess_mgr = module_to_session_manager(sess_mgr_mod);
assert(sess_mgr);
struct logger *logger = module_manager_get_logger(mod_mgr);