summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author李佳 <[email protected]>2019-05-31 14:46:33 +0800
committer李佳 <[email protected]>2019-05-31 14:46:33 +0800
commitabb4b9f9cf08b728a836234eb8d567bcdbe8def0 (patch)
tree91e5709b9db79d9d4248137b473f63723c9d1f9e
parent974fbefce7bc7963291ea74f781605838dcf0d49 (diff)
1.修复conflist, inf文件中有空格而导致的读取错误.
-rw-r--r--dealpkt/deal_tcp.c6
-rw-r--r--entry/sapp_main.c4
-rw-r--r--plugin/src/plugin.c24
-rw-r--r--test_so/test_app_sapp.c29
4 files changed, 52 insertions, 11 deletions
diff --git a/dealpkt/deal_tcp.c b/dealpkt/deal_tcp.c
index 4960dd8..f0eec88 100644
--- a/dealpkt/deal_tcp.c
+++ b/dealpkt/deal_tcp.c
@@ -1653,7 +1653,7 @@ static int tcp_deal_ack(struct streaminfo *a_tcp,struct mesa_tcp_hdr *this_tcphd
//pdetail->clientbytes = pdetail_pr->C2S_ack_seq - pdetail_pr->C2S_first_ack_seq;
if(G_TCP_DEDUCE_FLOW_STAT_PROJECT_ID != -1){
pdetail_pr->deduce_flow_stat->C2S_data_byte = pdetail->serverbytes; /* ���������˸������ṹ���еı��� */
- pdetail_pr->deduce_flow_stat->C2S_data_pkt = pdetail->serverpktnum;/* ���������˸������ṹ���еı��� */
+ pdetail_pr->deduce_flow_stat->C2S_all_pkt = pdetail->serverpktnum;/* ���������˸������ṹ���еı��� */
pdetail_pr->deduce_flow_stat->S2C_all_byte = pdetail_pr->C2S_ack_seq - pdetail_pr->C2S_first_ack_seq; /* �ƶϳ��Ľ��, all��data��һ����, ��û��pkt */
pdetail_pr->deduce_flow_stat->S2C_data_byte = pdetail_pr->C2S_ack_seq - pdetail_pr->C2S_first_ack_seq; /* �ƶϳ��Ľ��, all��data��һ����, ��û��pkt */
@@ -1663,7 +1663,7 @@ static int tcp_deal_ack(struct streaminfo *a_tcp,struct mesa_tcp_hdr *this_tcphd
//pdetail->serverbytes = pdetail_pr->C2S_ack_seq - pdetail_pr->C2S_first_ack_seq;
if(G_TCP_DEDUCE_FLOW_STAT_PROJECT_ID != -1){
pdetail_pr->deduce_flow_stat->S2C_data_byte = pdetail->clientbytes; /* ���������˸������ṹ���еı��� */
- pdetail_pr->deduce_flow_stat->S2C_data_pkt = pdetail->clientpktnum;/* ���������˸������ṹ���еı��� */
+ pdetail_pr->deduce_flow_stat->S2C_all_pkt = pdetail->clientpktnum;/* ���������˸������ṹ���еı��� */
pdetail_pr->deduce_flow_stat->C2S_all_byte = pdetail_pr->S2C_ack_seq - pdetail_pr->S2C_first_ack_seq;
pdetail_pr->deduce_flow_stat->C2S_data_byte = pdetail_pr->S2C_ack_seq - pdetail_pr->S2C_first_ack_seq;
@@ -3541,7 +3541,7 @@ int tcp_flow_stat_init(void)
if(project_req_id >= 0){
G_TCP_DEDUCE_FLOW_STAT_PROJECT_ID = project_req_id;
}else{
- /* �����ļ�û��'tcp_flow_stat'��, �رմ˹��� */
+ /* �����ļ�û��'tcp_deduce_flow_stat'��, �رմ˹��� */
G_TCP_DEDUCE_FLOW_STAT_PROJECT_ID = -1;
}
diff --git a/entry/sapp_main.c b/entry/sapp_main.c
index e504a07..c8f3bb5 100644
--- a/entry/sapp_main.c
+++ b/entry/sapp_main.c
@@ -80,8 +80,12 @@ static void signal_take_over(void)
int main(int argc, char *argv[])
{
if((argc == 2) && (strncasecmp(argv[1], "-v", 2) == 0)){
+#ifdef GIT_VERSION
const char *sapp_version = GIT_VERSION;
printf("Platform version: %s\n", sapp_version);
+#else
+ printf("Can't get version, because no found git info!\n");
+#endif
exit(0);
}
diff --git a/plugin/src/plugin.c b/plugin/src/plugin.c
index 21021e6..71624ba 100644
--- a/plugin/src/plugin.c
+++ b/plugin/src/plugin.c
@@ -141,12 +141,18 @@ char* g_plugin_entryname[PLUGIN_MAX_ENTRYNUM] =
int g_plugin_version_VERSION_20170511;
- /* ɾ��ĩβ�Ļ��з�"\r\n" */
-static void plugin_del_tail_rn(char *data, int max_len)
+ /* ɾ����ͷ�Ŀո�,tab, �Լ�ĩβ�Ļ��з�, �ո�, tab�� "\r\n " */
+static void plugin_del_blank_rn(char *data, int max_len)
{
- int i;
+ int i;
+
+ while((' ' == *data) || ('\t' == *data)){
+ memmove(data, data+1, max_len);
+ max_len--;
+ }
+
for(i = 0; i < max_len; i++){
- if(('\r' == data[i]) || ('\n' == data[i])){
+ if(('\r' == data[i]) || ('\n' == data[i]) || ('\t' == data[i]) || (' ' == data[i])){
data[i] = '\0';
return;
}
@@ -156,6 +162,7 @@ static void plugin_del_tail_rn(char *data, int max_len)
}
+
/****************************************************************************
������:reset_cwd()
���ܣ��л���ǰ·��
@@ -425,7 +432,7 @@ int check_plug_conf(char* filename,int plugtype)
break;
}
- plugin_del_tail_rn(config_buf, strlen(config_buf));
+ plugin_del_blank_rn(config_buf, sizeof(config_buf));
//��һ���ַ�����"[",��������
if(memcmp(config_buf,KEYWORD_SPECIAL1,strlen(KEYWORD_SPECIAL1)) != 0)
@@ -534,7 +541,7 @@ int process_conf_entryname()
len = strlen(buf_entryname);
buf_entryname[len-2] = '\0';
#else
- plugin_del_tail_rn(buf_entryname, strlen(buf_entryname));
+ plugin_del_blank_rn(buf_entryname, sizeof(buf_entryname));
#endif
if('\0' == buf_entryname[0]){
continue;
@@ -1267,9 +1274,10 @@ int process_conflist(char* filename,int plug_type)
{
continue;
}
+ plugin_del_blank_rn(buf_confname, sizeof(buf_confname));
- len = strlen(buf_confname);
- buf_confname[len-1] = '\0';
+ // /len = strlen(buf_confname);
+ /////buf_confname[len-1] = '\0';
if(plug_type == PLUGTYPE_PROTOCOL)
{
diff --git a/test_so/test_app_sapp.c b/test_so/test_app_sapp.c
index bc7f644..3fedae5 100644
--- a/test_so/test_app_sapp.c
+++ b/test_so/test_app_sapp.c
@@ -723,6 +723,35 @@ char testtcpApp_allpkt(struct streaminfo *pstream,void **pme, int thread_seq,voi
return APP_STATE_GIVEME;
}
+
+char test_tcp_deduce_flow_stat(struct streaminfo *pstream,void **pme, int thread_seq,void *a_packet)
+{
+ int tcp_deduce_flow_id;
+
+ if(pstream->pktstate== OP_STATE_CLOSE)
+ {
+ tcp_deduce_flow_id = project_customer_register("tcp_deduce_flow_stat", "struct");
+ if(-1 == tcp_deduce_flow_id){
+ printf("'tcp_deduce_flow_stat' is disable, no statistics\n");
+ return APP_STATE_DROPME;
+ }
+
+ struct tcp_flow_stat *tflow_project = (struct tcp_flow_stat *)project_req_get_struct(pstream, tcp_deduce_flow_id);
+ if(tflow_project){
+ printf("tcp_deduce_flow_stat:C2S_data_pkt:%u, C2S_data_byte=%llu,S2C_data_pkt:%u,S2C_data_byte=%llu\n",
+ tflow_project->C2S_data_pkt,
+ tflow_project->C2S_data_byte,
+ tflow_project->S2C_data_pkt,
+ tflow_project->S2C_data_byte);
+
+ }
+ }
+
+ return APP_STATE_GIVEME;
+}
+
+
+
char tcpall_valid_after_kill(struct streaminfo *pstream,void **pme, int thread_seq,void *a_packet)
{
unsigned char mopt = 1;