diff --git a/bin/tsg_log_field.conf b/bin/tsg_log_field.conf index 30fba73..bc1dea0 100644 --- a/bin/tsg_log_field.conf +++ b/bin/tsg_log_field.conf @@ -51,4 +51,6 @@ STRING common_server_location 42 STRING quic_sni 43 STRING ssl_ja3_hash 44 STRING common_data_center 45 -STRING common_l7_protocol 46 \ No newline at end of file +STRING common_l7_protocol 46 +STRING common_tcp_client_isn 47 +STRING common_tcp_server_isn 48 \ No newline at end of file diff --git a/src/tsg_send_log.cpp b/src/tsg_send_log.cpp index 91c5167..f3b4cff 100644 --- a/src/tsg_send_log.cpp +++ b/src/tsg_send_log.cpp @@ -318,6 +318,7 @@ int TLD_append_streaminfo(struct tsg_log_instance_t *instance, struct TLD_handle char nest_addr_buf[1024]; char *addr_proto=NULL; struct timespec tv; + unsigned int client_isn=0,server_isn=0; int size=sizeof(unsigned long long); long common_con_duration_ms=0; unsigned long long create_time=0; @@ -482,7 +483,21 @@ int TLD_append_streaminfo(struct tsg_log_instance_t *instance, struct TLD_handle } TLD_append(_handle, _instance->id2field[LOG_COMMON_DIRECTION].name, (void *)(long)direction, TLD_TYPE_LONG); - + + size=sizeof(unsigned int); + ret=MESA_get_stream_opt(a_stream, MSO_TCP_ISN_C2S, &client_isn, &size); + if(ret==0) + { + TLD_append(_handle, _instance->id2field[LOG_COMMON_TCP_CLIENT_ISN].name, (void *)(long)client_isn, TLD_TYPE_LONG); + } + + size=sizeof(unsigned int); + ret=MESA_get_stream_opt(a_stream, MSO_TCP_ISN_S2C, &server_isn, &size); + if(ret==0) + { + TLD_append(_handle, _instance->id2field[LOG_COMMON_TCP_SERVER_ISN].name, (void *)(long)server_isn, TLD_TYPE_LONG); + } + return 0; } diff --git a/src/tsg_send_log_internal.h b/src/tsg_send_log_internal.h index 8504203..ba5b03b 100644 --- a/src/tsg_send_log_internal.h +++ b/src/tsg_send_log_internal.h @@ -72,6 +72,8 @@ typedef enum _tsg_log_field_id LOG_SSL_JA3_FINGERPRINT, LOG_COMMON_DATA_CENTER, LOG_COMMON_L7_PROTOCOL, + LOG_COMMON_TCP_CLIENT_ISN, + LOG_COMMON_TCP_SERVER_ISN, LOG_COMMON_MAX }tsg_log_field_id_t;