summaryrefslogtreecommitdiff
path: root/decoders/mail/mail_decoder_module.h
blob: 4ba55150519d91d8b03916edbf26741c4b440214 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#ifndef __MAIL_DECODER_MODULE_H__
#define __MAIL_DECODER_MODULE_H__

#include "mail_decoder_util.h"

#define MAIL_EXDATA_NAME            "MAIL_EXDATA"

#define PORT_SMTP	25
#define PORT_POP3	110
#define PORT_IMAP4	143

#define FLAGSTR_USRNAME	"USERNAME"
#define FLAGSTR_PASSWRD	"PASSWARD"
#define FLAGSTR_FROM	"FROM"
#define FLAGSTR_TO		"TO"
#define FLAGSTR_CC		"CC"
#define FLAGSTR_BCC		"BCC"
#define FLAGSTR_DATE	"DATE"
#define FLAGSTR_SUB		"SUBJECT"
#define FLAGSTR_CONT	"CONTENT"
#define FLAGSTR_ATCHNAME	"ATTACH_NAME"
#define FLAGSTR_ATCCONT		"ATTACH_CONTENT"
#define FLAGSTR_OTHER		"OTHER"
#define FLAGSTR_FROM_CMD	"FROM_CMD"
#define FLAGSTR_TO_CMD		"TO_CMD"
#define FLAGSTR_EHLO_CMD	"EHLO_CMD"
#define FLAGSTR_REPLY_TO	"REPLY_TO"
#define FLAGSTR_MIME_OTHER	"MIME_OTHER"
#define FLAGSTR_ALL			"ALL"

#define PROFLAG_MAXNUM		8
#define PROFLAG_MAILPASS		0x01
#define PROFLAG_MAILSEND		0x02
#define PROFLAG_MAILRECV		0x04
#define PROFLAG_MAILSUB		0x08
#define PROFLAG_MAILCONT		0x10
#define PROFLAG_MAILOTHER		0x20
#define PROFLAG_MAILDATE		0x40
#define PROFLAG_MAILPENDING	0x80
#define PROFLAG_MAILINIT		0x100
#define PROFLAG_MAILEND		0x200

typedef struct __userdef_region
{
	char region_name[128];
	long long region_flag;
	int region_len;
}userdef_region_t;

struct mail_proto_tag_t
{    
	char buf[8];
};

typedef struct _mail_local_info
{
	unsigned short plugid;
	unsigned int trans_decode_on;
	unsigned int callback_per_line;
	unsigned long long protocol_flag;
	void * runtime_log;
	userdef_region_t user_region[64];
	int user_region_num;
	int proto_identify_id;
}stMailLocalInfo;

struct mail_session_ctx {
    enum MAIL_PROTOCOL protocol;

    int is_droped;
    struct smtp_parser *smtp_parser;

    struct session        *sess_ref;
};

struct mail_decoder {
    int exdata_id;

    struct mail_topics topics;
    struct mq_runtime *mq;
    struct mq_schema *mq_schema;
    struct module_manager *mod_mgr;
    // tobe delete
    stMailLocalInfo mail_local_info;
};

#endif