diff options
Diffstat (limited to 'src/qq_file_entry.h')
| -rw-r--r-- | src/qq_file_entry.h | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/src/qq_file_entry.h b/src/qq_file_entry.h new file mode 100644 index 0000000..23e6a32 --- /dev/null +++ b/src/qq_file_entry.h @@ -0,0 +1,125 @@ +#ifndef __QQ_FILE_ENTRY_H__ +#define __QQ_FILE_ENTRY_H__ + +#include <pthread.h> + +#include <MESA/DocumentAnalyze.h> + +#define CONF_FILENAME "./conf/qq_file_trans.conf" +#define QQ_DEBUG_FILEPATH "./qq_files" +#define MODULE_NAME "QQ_FILE" + +#define MAX_QQ_FEATURE_NUM 16 +#define MAX_AND_RULE 32 + +#define PACKET_MIN_LEN_QQNUM 16 +#define PACKET_MIN_LEN_TCPNAME 551 +#define PACKET_MIN_LEN_UDPNAME 535 + +#define TCPFILE_START_CHAR04 0x04 +#define TCPFILE_END_CHAR04 0x03 +#define TCPFILE_HDR_LEN04 53 + +#define TCPFILE_START_CHAR0c 0x0c +#define TCPFILE_HDR_LEN0c 22 + +typedef enum __QQ_PACKET_TYPE +{ + QQ_PACKET_NOT=0, + QQ_PACKET_QQNUM, + QQ_PACKET_TCPFILE, + QQ_PACKET_TCPFILENAME, + QQ_PACKET_UDPFILE, + QQ_PACKET_UDPFILE_END, + QQ_PACKET_UDPFILENAME, + QQ_PACKET_OTHER, +}QQ_PACKET_TYPE_t; + +typedef enum __QQ_STATE +{ + QQ_STATE_INIT=0, + QQ_STATE_QQNUM, + QQ_STATE_FNAME, + QQ_STATE_FCONT_START, + QQ_STATE_FCONT, + QQ_STATE_FCONT_END, +}QQ_STATE_t; + +typedef enum __FEATURE_INDEX +{ + FINDEX_TCPPROT=0, + FINDEX_TCPNUM, + FINDEX_TCPNAME, + FINDEX_TCPFILE, + FINDEX_TCPFILE_END, + FINDEX_UDPPROT, + FINDEX_UDPNUM, + FINDEX_UDPNAME, + FINDEX_UDPFILE, + FINDEX_UDPFILE_END, + + FINDEX_NUM, +}FEATURE_INDEX_T; + +enum __FIELD_STAT_ID +{ + STAT_ID_NEW_SESSION, + STAT_ID_DEL_SESSION, + STAT_ID_SESSION_NUM, + STAT_ID_NUM, +}; + +typedef struct __trans_file_info +{ + char *buf; + unsigned int len; + unsigned int max_len; + long long prot_flag; + + int block_seq; //���ݰ�����ţ�������ʱ���ش������UDP + unsigned short block_len; //һ��С��Ĵ�С������һ����һ�����Ĵ�С�����TCP + unsigned short file_seq; //һ��С��Ĵ�С������һ����һ�����Ĵ�С�����TCP +}trans_file_info_t; + +typedef struct __qq_proto_pme +{ + void *connector_hdl; + char filename[512]; + int filename_len; + QQ_STATE_t qq_state; + unsigned int qqnum[2]; + unsigned int qqnum_from; + unsigned int qqnum_to; + + trans_file_info_t fileinfo; + + int thread_id; + unsigned int file_dir; + unsigned int total_file_len; + unsigned int curr_file_len; + char pending_flag; + char end_flag; + char compress_flag; + char tcp_flag; + unsigned int random; +}qq_proto_pme_t; + +typedef struct __qq_global_info +{ + void *runtime_log; + void *stat_handle; + docanalyze_instance_t instanse; + char *feature[FINDEX_NUM][MAX_QQ_FEATURE_NUM][MAX_AND_RULE]; + unsigned int ftlen[FINDEX_NUM][MAX_QQ_FEATURE_NUM][MAX_AND_RULE]; + unsigned int ftoff[FINDEX_NUM][MAX_QQ_FEATURE_NUM][MAX_AND_RULE]; + unsigned int rulenum[FINDEX_NUM][MAX_QQ_FEATURE_NUM]; //ÿһ�������ڲ����������� + unsigned int fnum[FINDEX_NUM]; + + int project_id; + int stat_trig; + int stat_id[STAT_ID_NUM]; + int debug_sw; +}qq_global_info_t; + +#endif + |
