diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/tsg_entry.cpp | 2 | ||||
| -rw-r--r-- | src/tsg_proxy.cpp | 18 | ||||
| -rw-r--r-- | src/tsg_sync_state.cpp | 16 | ||||
| -rw-r--r-- | src/tsg_sync_state.h | 3 |
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; |
