Feature: Update stellar-on-sapp-2.1.1.7875675
This commit is contained in:
@@ -22,7 +22,7 @@ extern "C"
|
|||||||
#define DNS_MESSAGE_TOPIC "TOPIC_DNS"
|
#define DNS_MESSAGE_TOPIC "TOPIC_DNS"
|
||||||
|
|
||||||
#define DNS_NAME_MAX (NAME_MAX + 1)
|
#define DNS_NAME_MAX (NAME_MAX + 1)
|
||||||
#define HINFO_NAME_MAX (40 + 1) /* https://www.ietf.org/rfc/rfc1010.txt */
|
// #define HINFO_NAME_MAX (40 + 1) /* https://www.ietf.org/rfc/rfc1010.txt */
|
||||||
|
|
||||||
#define DNS_CLASS_UNKNOWN 0
|
#define DNS_CLASS_UNKNOWN 0
|
||||||
#define DNS_CLASS_IN 1
|
#define DNS_CLASS_IN 1
|
||||||
|
|||||||
@@ -1242,7 +1242,6 @@ void dns_decoder_entry(struct session *ss, uint8_t *payload, size_t payload_sz,
|
|||||||
HASH_FIND_INT(per_ss_ctx->trans_hash, &message_id, current_trans);
|
HASH_FIND_INT(per_ss_ctx->trans_hash, &message_id, current_trans);
|
||||||
if(current_trans!=NULL && data_msg->type==DNS_MESSAGE_QUERY)
|
if(current_trans!=NULL && data_msg->type==DNS_MESSAGE_QUERY)
|
||||||
{
|
{
|
||||||
per_ss_ctx->trans_list_num--;
|
|
||||||
dns_message_transaction_publish(ss, DNS_MESSAGE_TRANSACTION_END, plugin_env->dns.topic_id, current_trans->trans_idx);
|
dns_message_transaction_publish(ss, DNS_MESSAGE_TRANSACTION_END, plugin_env->dns.topic_id, current_trans->trans_idx);
|
||||||
dns_decoder_session_transaction_del(per_ss_ctx, current_trans);
|
dns_decoder_session_transaction_del(per_ss_ctx, current_trans);
|
||||||
current_trans=NULL;
|
current_trans=NULL;
|
||||||
@@ -1305,8 +1304,44 @@ void dns_decoder_entry(struct session *ss, uint8_t *payload, size_t payload_sz,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int dns_decoder_transaction_end_in_closing(struct session *ss, void *per_session_ctx, void *plugin_env_str)
|
||||||
|
{
|
||||||
|
enum session_state state=session_get_current_state(ss);
|
||||||
|
if(state!=SESSION_STATE_CLOSING)
|
||||||
|
{
|
||||||
|
return DNS_DECODER_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct dns_decoder_context *per_ss_ctx=(struct dns_decoder_context *)per_session_ctx;
|
||||||
|
struct dns_decoder_plugin_env *plugin_env=(struct dns_decoder_plugin_env *)plugin_env_str;
|
||||||
|
|
||||||
|
enum session_addr_type addr_type=SESSION_ADDR_TYPE_UNKNOWN;
|
||||||
|
session_get0_addr(ss, &addr_type);
|
||||||
|
const char *ip_version=(addr_type==SESSION_ADDR_TYPE_IPV4_TCP || addr_type==SESSION_ADDR_TYPE_IPV4_UDP) ? TAG_VALUE_IP_VERSION_IPV4 : TAG_VALUE_IP_VERSION_IPV6;
|
||||||
|
const char *ip_protocol=(addr_type==SESSION_ADDR_TYPE_IPV4_TCP || addr_type==SESSION_ADDR_TYPE_IPV6_TCP) ? TAG_VALUE_IP_PROTOCOL_TCP : TAG_VALUE_IP_PROTOCOL_UDP;
|
||||||
|
|
||||||
|
size_t tag_offset=4;
|
||||||
|
const char *tag_key[tag_offset]={TAG_KEY_IP_VERSION, TAG_KEY_IP_PROTOCOL, TAG_KEY_MESSAGE_TYPE, TAG_KEY_MESSAGE_STATUS};
|
||||||
|
const char *tag_value[tag_offset]={ip_version, ip_protocol, "transaction_end", "closing"};
|
||||||
|
dns_decoder_local_file_counter_incby(plugin_env, LOCAL_STAT_COUNTER_SEND, tag_key, tag_value, tag_offset, per_ss_ctx->trans_list_num, session_get_current_thread_id(ss));
|
||||||
|
|
||||||
|
struct dns_transaction *current_trans=NULL, *tmp_trans=NULL;
|
||||||
|
HASH_ITER(hh, per_ss_ctx->trans_hash, current_trans, tmp_trans)
|
||||||
|
{
|
||||||
|
dns_message_transaction_publish(ss, DNS_MESSAGE_TRANSACTION_END, plugin_env->dns.topic_id, current_trans->trans_idx);
|
||||||
|
dns_decoder_session_transaction_del(per_ss_ctx, current_trans);
|
||||||
|
}
|
||||||
|
|
||||||
|
return DNS_DECODER_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
void dns_udp_session_ingress_packet_cb(struct session *ss, int32_t topic_id, const void *msg, void *per_session_ctx, void *plugin_env_str)
|
void dns_udp_session_ingress_packet_cb(struct session *ss, int32_t topic_id, const void *msg, void *per_session_ctx, void *plugin_env_str)
|
||||||
{
|
{
|
||||||
|
if(dns_decoder_transaction_end_in_closing(ss, per_session_ctx, plugin_env_str)==DNS_DECODER_TRUE)
|
||||||
|
{
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
size_t payload_sz=0;
|
size_t payload_sz=0;
|
||||||
uint8_t *payload=(uint8_t *)session_get0_current_payload(ss, &payload_sz);
|
uint8_t *payload=(uint8_t *)session_get0_current_payload(ss, &payload_sz);
|
||||||
if(payload_sz<DNS_HEADER_SIZE || payload==NULL)
|
if(payload_sz<DNS_HEADER_SIZE || payload==NULL)
|
||||||
@@ -1319,6 +1354,11 @@ void dns_udp_session_ingress_packet_cb(struct session *ss, int32_t topic_id, con
|
|||||||
|
|
||||||
void dns_tcp_stream_session_segment_data_cb(struct session *ss, int32_t topic_id, const void *msg, void *per_session_ctx, void *plugin_env_str)
|
void dns_tcp_stream_session_segment_data_cb(struct session *ss, int32_t topic_id, const void *msg, void *per_session_ctx, void *plugin_env_str)
|
||||||
{
|
{
|
||||||
|
if(dns_decoder_transaction_end_in_closing(ss, per_session_ctx, plugin_env_str)==DNS_DECODER_TRUE)
|
||||||
|
{
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
size_t segment_buff_sz=0;
|
size_t segment_buff_sz=0;
|
||||||
uint8_t *segment_buff=NULL;
|
uint8_t *segment_buff=NULL;
|
||||||
segment_buff=(uint8_t *)session_get0_current_payload(ss, &segment_buff_sz);
|
segment_buff=(uint8_t *)session_get0_current_payload(ss, &segment_buff_sz);
|
||||||
@@ -1440,23 +1480,14 @@ void *dns_decoder_per_session_context_new(struct session *ss, void *plugin_env_s
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void dns_decoder_per_session_context_free(struct session *ss, void *session_ctx, void *plugin_env_str)
|
void dns_decoder_per_session_context_free(struct session *ss, void *per_session_ctx, void *plugin_env_str)
|
||||||
{
|
{
|
||||||
if(session_ctx==NULL)
|
if(per_session_ctx==NULL)
|
||||||
{
|
{
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct dns_decoder_context *per_ss_ctx=(struct dns_decoder_context *)session_ctx;
|
FREE(per_session_ctx);
|
||||||
struct dns_transaction *current_trans=NULL, *tmp_trans=NULL;
|
|
||||||
HASH_ITER(hh, per_ss_ctx->trans_hash, current_trans, tmp_trans)
|
|
||||||
{
|
|
||||||
dns_decoder_session_transaction_del(per_ss_ctx, current_trans);
|
|
||||||
}
|
|
||||||
|
|
||||||
FREE(session_ctx);
|
|
||||||
|
|
||||||
struct dns_decoder_plugin_env *plugin_env=(struct dns_decoder_plugin_env *)plugin_env_str;
|
|
||||||
|
|
||||||
enum session_addr_type addr_type=SESSION_ADDR_TYPE_UNKNOWN;
|
enum session_addr_type addr_type=SESSION_ADDR_TYPE_UNKNOWN;
|
||||||
session_get0_addr(ss, &addr_type);
|
session_get0_addr(ss, &addr_type);
|
||||||
@@ -1465,6 +1496,8 @@ void dns_decoder_per_session_context_free(struct session *ss, void *session_ctx,
|
|||||||
|
|
||||||
const char *tag_key[3]={TAG_KEY_IP_VERSION, TAG_KEY_IP_PROTOCOL, "memory"};
|
const char *tag_key[3]={TAG_KEY_IP_VERSION, TAG_KEY_IP_PROTOCOL, "memory"};
|
||||||
const char *tag_value[3]={ip_version, ip_protocol, "ss_ctx"};
|
const char *tag_value[3]={ip_version, ip_protocol, "ss_ctx"};
|
||||||
|
|
||||||
|
struct dns_decoder_plugin_env *plugin_env=(struct dns_decoder_plugin_env *)plugin_env_str;
|
||||||
dns_decoder_local_file_counter_incby(plugin_env, LOCAL_STAT_COUNTER_FREE, tag_key, tag_value, 3, 1, session_get_current_thread_id(ss));
|
dns_decoder_local_file_counter_incby(plugin_env, LOCAL_STAT_COUNTER_FREE, tag_key, tag_value, 3, 1, session_get_current_thread_id(ss));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ set(TEST_MAIN ${TEST_RUN_DIR}/plugin_test_main)
|
|||||||
|
|
||||||
# assemble test env
|
# assemble test env
|
||||||
add_test(NAME INSTALL_TEST_MAIN COMMAND sh -c "rpm -i ${CMAKE_CURRENT_SOURCE_DIR}/env/sapp-4.3.57.16ea514-1.el8.x86_64.rpm --prefix=${CMAKE_CURRENT_BINARY_DIR}/sapp --force --nodeps")
|
add_test(NAME INSTALL_TEST_MAIN COMMAND sh -c "rpm -i ${CMAKE_CURRENT_SOURCE_DIR}/env/sapp-4.3.57.16ea514-1.el8.x86_64.rpm --prefix=${CMAKE_CURRENT_BINARY_DIR}/sapp --force --nodeps")
|
||||||
add_test(NAME INSTALL_STELLAR COMMAND sh -c "rpm -i ${CMAKE_CURRENT_SOURCE_DIR}/env/stellar-on-sapp-2.1.0.0e6d541-1.el8.x86_64.rpm --prefix=${CMAKE_CURRENT_BINARY_DIR}/ --force --nodeps")
|
add_test(NAME INSTALL_STELLAR COMMAND sh -c "rpm -i ${CMAKE_CURRENT_SOURCE_DIR}/env/stellar-on-sapp-2.1.1.7875675-1.el8.x86_64.rpm --prefix=${CMAKE_CURRENT_BINARY_DIR}/ --force --nodeps")
|
||||||
|
|
||||||
add_test(NAME COPY_TEST_MAIN COMMAND sh -c "cp ${TEST_RUN_DIR}/tools/plugin_test_main ${TEST_RUN_DIR}/plugin_test_main")
|
add_test(NAME COPY_TEST_MAIN COMMAND sh -c "cp ${TEST_RUN_DIR}/tools/plugin_test_main ${TEST_RUN_DIR}/plugin_test_main")
|
||||||
add_test(NAME COPY_SPEC COMMAND sh -c "cp ${CMAKE_CURRENT_SOURCE_DIR}/env/spec.toml ${TEST_RUN_DIR}/stellar_plugin/spec.toml")
|
add_test(NAME COPY_SPEC COMMAND sh -c "cp ${CMAKE_CURRENT_SOURCE_DIR}/env/spec.toml ${TEST_RUN_DIR}/stellar_plugin/spec.toml")
|
||||||
@@ -29,6 +29,7 @@ add_test(NAME UPDATE_PLUG_CONF COMMAND sh -c "cp ${PROJECT_SOURCE_DIR}/bin/${PRO
|
|||||||
set_tests_properties(INSTALL_TEST_MAIN UPDATE_SAPP_LOG COPY_CONFLIST COPY_INF COPY_TEST_MAIN COPY_SPEC UPDATE_PLUG_SO UPDATE_TEST_SO MKDIR_PLUG_CONF UPDATE_PLUG_CONF PROPERTIES FIXTURES_SETUP TestFixture)
|
set_tests_properties(INSTALL_TEST_MAIN UPDATE_SAPP_LOG COPY_CONFLIST COPY_INF COPY_TEST_MAIN COPY_SPEC UPDATE_PLUG_SO UPDATE_TEST_SO MKDIR_PLUG_CONF UPDATE_PLUG_CONF PROPERTIES FIXTURES_SETUP TestFixture)
|
||||||
|
|
||||||
# run tests
|
# run tests
|
||||||
|
add_test(NAME MKDIR_METRICS COMMAND sh -c "mkdir -p ${TEST_RUN_DIR}/metrics/")
|
||||||
add_test(NAME DNS_QUERY COMMAND ${TEST_MAIN} ${CMAKE_CURRENT_SOURCE_DIR}/case/query/query_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/case/query/ -name *.pcap|sort -V" WORKING_DIRECTORY ${TEST_RUN_DIR})
|
add_test(NAME DNS_QUERY COMMAND ${TEST_MAIN} ${CMAKE_CURRENT_SOURCE_DIR}/case/query/query_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/case/query/ -name *.pcap|sort -V" WORKING_DIRECTORY ${TEST_RUN_DIR})
|
||||||
add_test(NAME DNS_CNAME COMMAND ${TEST_MAIN} ${CMAKE_CURRENT_SOURCE_DIR}/case/cname/cname_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/case/cname/ -name *.pcap|sort -V" WORKING_DIRECTORY ${TEST_RUN_DIR})
|
add_test(NAME DNS_CNAME COMMAND ${TEST_MAIN} ${CMAKE_CURRENT_SOURCE_DIR}/case/cname/cname_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/case/cname/ -name *.pcap|sort -V" WORKING_DIRECTORY ${TEST_RUN_DIR})
|
||||||
add_test(NAME DNS_NSEC_RR COMMAND ${TEST_MAIN} ${CMAKE_CURRENT_SOURCE_DIR}/case/nsec/nsec_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/case/nsec/ -name *.pcap|sort -V" WORKING_DIRECTORY ${TEST_RUN_DIR})
|
add_test(NAME DNS_NSEC_RR COMMAND ${TEST_MAIN} ${CMAKE_CURRENT_SOURCE_DIR}/case/nsec/nsec_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/case/nsec/ -name *.pcap|sort -V" WORKING_DIRECTORY ${TEST_RUN_DIR})
|
||||||
|
|||||||
Binary file not shown.
BIN
test/env/stellar-on-sapp-2.1.1.7875675-1.el8.x86_64.rpm
vendored
Normal file
BIN
test/env/stellar-on-sapp-2.1.1.7875675-1.el8.x86_64.rpm
vendored
Normal file
Binary file not shown.
Reference in New Issue
Block a user