summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/tsg_entry.cpp2
-rw-r--r--src/tsg_proxy.cpp18
-rw-r--r--src/tsg_sync_state.cpp16
-rw-r--r--src/tsg_sync_state.h3
4 files changed, 21 insertions, 18 deletions
diff --git a/src/tsg_entry.cpp b/src/tsg_entry.cpp
index 3fed2bf..50dfcaa 100644
--- a/src/tsg_entry.cpp
+++ b/src/tsg_entry.cpp
@@ -1121,7 +1121,7 @@ int session_state_control_packet(const struct streaminfo *a_stream, void *payloa
}
int is_ctrl_pkt=0;
- const void *raw_pkt = get_rawpkt_from_streaminfo(a_stream);
+ const void *raw_pkt = get_current_rawpkt_from_streaminfo(a_stream);
int ret=get_opt_from_rawpkt(raw_pkt, RAW_PKT_GET_IS_CTRL_PKT, (void *)&is_ctrl_pkt);
if(ret<0 || is_ctrl_pkt==0)
{
diff --git a/src/tsg_proxy.cpp b/src/tsg_proxy.cpp
index 3c29b2a..dec7aa6 100644
--- a/src/tsg_proxy.cpp
+++ b/src/tsg_proxy.cpp
@@ -237,7 +237,7 @@ static int tsg_proxy_rawpkt_info_get(const void *raw_pkt, struct tsg_proxy_tcp_o
void tsg_proxy_tcp_parse(struct tsg_proxy_tcp_attribute *tcp_attr, struct pkt_info *pktinfo, const struct streaminfo *stream)
{
- const void *raw_pkt = get_rawpkt_from_streaminfo(stream);
+ const void *raw_pkt = get_current_rawpkt_from_streaminfo(stream);
if (!raw_pkt)
{
@@ -609,11 +609,17 @@ void tsg_proxy_update_policy_fill(const struct streaminfo *stream, struct update
update_segment_sids(&cmsg->tcp_ack_sids, segment_ids->sid_list+1, segment_ids->sz_sidlist-1); // delete intercept sid
update_segment_sids(&cmsg->tcp_ack_sids, server->sid_list.sid_list, server->sid_list.sz_sidlist);
- if (client->wscale_set && server->wscale_set) {
- cmsg->tcp_wsacle_exist = 1;
- cmsg->tcp_wsacle_client = client->wscale;
- cmsg->tcp_wsacle_server = server->wscale;
- }
+ cmsg->tcp_wsacle_set_client = client->wscale_set;
+ cmsg->tcp_wsacle_set_server = server->wscale_set;
+ if (client->wscale_set)
+ {
+ cmsg->tcp_wsacle_client = client->wscale;
+ }
+
+ if (server->wscale_set)
+ {
+ cmsg->tcp_wsacle_server = server->wscale;
+ }
tsg_proxy_cmsg_subscriber_fill(session_attr, cmsg);
tsg_proxy_cmsg_asn_fill(session_attr, cmsg);
diff --git a/src/tsg_sync_state.cpp b/src/tsg_sync_state.cpp
index b228629..38ea187 100644
--- a/src/tsg_sync_state.cpp
+++ b/src/tsg_sync_state.cpp
@@ -177,16 +177,12 @@ static void mpack_append_cmsg_value(mpack_writer_t *writer, struct proxy_cmsg *c
mpack_write_u32(writer, cmsg->tcp_ack);
mpack_write_u16(writer, cmsg->tcp_mss_client);
mpack_write_u16(writer, cmsg->tcp_mss_server);
- if (cmsg->tcp_wsacle_exist == 1)
- {
- mpack_write_u8(writer, cmsg->tcp_wsacle_client);
- mpack_write_u8(writer, cmsg->tcp_wsacle_server);
- }
- else
- {
- mpack_write_u8(writer, 0);
- mpack_write_u8(writer, 0);
- }
+
+ mpack_write_u8(writer, cmsg->tcp_wsacle_set_client);
+ mpack_write_u8(writer, cmsg->tcp_wsacle_set_server);
+ mpack_write_u8(writer, cmsg->tcp_wsacle_client);
+ mpack_write_u8(writer, cmsg->tcp_wsacle_server);
+
mpack_write_u8(writer, cmsg->tcp_sack_client);
mpack_write_u8(writer, cmsg->tcp_sack_server);
mpack_write_u8(writer, cmsg->tcp_ts_client);
diff --git a/src/tsg_sync_state.h b/src/tsg_sync_state.h
index 4b391e5..3021ecc 100644
--- a/src/tsg_sync_state.h
+++ b/src/tsg_sync_state.h
@@ -52,7 +52,8 @@ struct cmsg_buff
struct proxy_cmsg
{
uint8_t tcp_info_packet_cur_dir;
- uint8_t tcp_wsacle_exist;
+ uint8_t tcp_wsacle_set_client;
+ uint8_t tcp_wsacle_set_server;
uint8_t tcp_wsacle_client;
uint8_t tcp_wsacle_server;
uint8_t tcp_sack_client;