diff options
| author | liuchang <[email protected]> | 2023-04-04 14:00:12 +0000 |
|---|---|---|
| committer | liuchang <[email protected]> | 2023-04-04 14:00:12 +0000 |
| commit | 199771d91feaa061dc2d19dc2b4917e63ea0930c (patch) | |
| tree | 0682a85231fa4b8705dc4c3fa191cb0ec03a9779 | |
| parent | 00d035db8063aef61076138b116fc06dde2ea4f0 (diff) | |
ignore opening ctrl_pkt, create session when receive active ctrl pktv1.1.6
| -rw-r--r-- | shaping/include/shaper_session.h | 2 | ||||
| -rw-r--r-- | shaping/src/shaper.cpp | 4 | ||||
| -rw-r--r-- | shaping/src/shaper_session.cpp | 11 |
3 files changed, 9 insertions, 8 deletions
diff --git a/shaping/include/shaper_session.h b/shaping/include/shaper_session.h index a78c3dc..1cfdf6d 100644 --- a/shaping/include/shaper_session.h +++ b/shaping/include/shaper_session.h @@ -2,6 +2,6 @@ struct shaping_flow* shaper_session_opening(struct shaping_thread_ctx *ctx, struct metadata *meta, struct ctrl_pkt_data *ctrl_data, struct raw_pkt_parser *raw_parser); struct shaping_flow* shaper_session_close(struct shaping_thread_ctx *ctx, struct metadata *meta); -struct shaping_flow* shaper_session_active(struct shaping_thread_ctx *ctx, struct metadata *meta, struct ctrl_pkt_data *ctrl_data); +struct shaping_flow* shaper_session_active(struct shaping_thread_ctx *ctx, struct metadata *meta, struct ctrl_pkt_data *ctrl_data, struct raw_pkt_parser *raw_parser); struct shaping_flow* shaper_session_reset_all(struct shaping_thread_ctx *ctx, struct metadata *meta); void shaper_session_data_free_cb(void *session_data, void *data);
\ No newline at end of file diff --git a/shaping/src/shaper.cpp b/shaping/src/shaper.cpp index 64775e0..95277f1 100644 --- a/shaping/src/shaper.cpp +++ b/shaping/src/shaper.cpp @@ -879,11 +879,11 @@ static struct shaping_flow* shaper_ctrl_pkt_session_handle(struct shaping_thread switch (ctrl_data.state) { case SESSION_STATE_OPENING: shaper_global_stat_ctrlpkt_opening_inc(ctx->global_stat); - sf = shaper_session_opening(ctx, meta, &ctrl_data, &raw_parser); + //sf = shaper_session_opening(ctx, meta, &ctrl_data, &raw_parser); break; case SESSION_STATE_ACTIVE: shaper_global_stat_ctrlpkt_active_inc(ctx->global_stat); - sf = shaper_session_active(ctx, meta, &ctrl_data); + sf = shaper_session_active(ctx, meta, &ctrl_data, &raw_parser); break; case SESSION_STATE_CLOSING: shaper_global_stat_ctrlpkt_close_inc(ctx->global_stat); diff --git a/shaping/src/shaper_session.cpp b/shaping/src/shaper_session.cpp index f45c8d7..587dca1 100644 --- a/shaping/src/shaper_session.cpp +++ b/shaping/src/shaper_session.cpp @@ -23,7 +23,7 @@ struct shaping_flow* shaper_session_opening(struct shaping_thread_ctx *ctx, stru sf = shaping_flow_new(); raw_packet_parser_get_most_inner_tuple4(raw_parser, &sf->tuple4); - shaper_rules_update(ctx, sf, ctrl_data->shaping_rule_ids, ctrl_data->shaping_rule_num); + //shaper_rules_update(ctx, sf, ctrl_data->shaping_rule_ids, ctrl_data->shaping_rule_num); session_table_insert(ctx->session_table, meta->session_id, &sf->tuple4, sf, NULL); @@ -51,17 +51,18 @@ struct shaping_flow* shaper_session_close(struct shaping_thread_ctx *ctx, struct return sf; } -struct shaping_flow* shaper_session_active(struct shaping_thread_ctx *ctx, struct metadata *meta, struct ctrl_pkt_data *ctrl_data) +struct shaping_flow* shaper_session_active(struct shaping_thread_ctx *ctx, struct metadata *meta, struct ctrl_pkt_data *ctrl_data, struct raw_pkt_parser *raw_parser) { struct shaping_flow *sf = NULL; struct session_node *node = NULL; node = session_table_search_by_id(ctx->session_table, meta->session_id); if (!node) { - return NULL; + sf = shaper_session_opening(ctx, meta, ctrl_data, raw_parser); + } else { + sf = (struct shaping_flow *)node->val_data; } - - sf = (struct shaping_flow *)node->val_data; + shaper_rules_update(ctx, sf, ctrl_data->shaping_rule_ids, ctrl_data->shaping_rule_num); return sf; |
