Mercurial > dovecot > core-2.2
annotate src/lib-mail/message-parser.h @ 9:21c8e080150d HEAD
fixes, seems to be somewhat working now.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Thu, 22 Aug 2002 15:12:35 +0300 |
parents | 1b34ec11fff8 |
children | 82b7de533f98 |
rev | line source |
---|---|
0 | 1 #ifndef __MESSAGE_PARSER_H |
2 #define __MESSAGE_PARSER_H | |
3 | |
4 typedef struct _MessagePart MessagePart; | |
5 typedef struct _MessagePosition MessagePosition; | |
6 typedef struct _MessageSize MessageSize; | |
7 | |
8 struct _MessagePosition { | |
9 off_t physical_pos; | |
10 off_t virtual_pos; | |
11 }; | |
12 | |
13 struct _MessageSize { | |
14 size_t physical_size; | |
15 size_t virtual_size; | |
16 unsigned int lines; | |
17 }; | |
18 | |
19 struct _MessagePart { | |
20 MessagePart *parent; | |
21 MessagePart *next; | |
22 MessagePart *children; | |
23 | |
9
21c8e080150d
fixes, seems to be somewhat working now.
Timo Sirainen <tss@iki.fi>
parents:
5
diff
changeset
|
24 MessagePosition pos; /* absolute position from beginning of message */ |
0 | 25 MessageSize header_size; |
26 MessageSize body_size; | |
27 | |
28 unsigned int multipart:1; | |
29 unsigned int multipart_digest:1; | |
30 unsigned int message_rfc822:1; | |
31 unsigned int text:1; /* content-type: text/.. */ | |
32 unsigned int binary:1; /* content-transfer-encoding: binary */ | |
33 | |
34 void *user_data; | |
35 }; | |
36 | |
37 /* NOTE: name and value aren't \0-terminated */ | |
38 typedef void (*MessageHeaderFunc)(MessagePart *part, | |
39 const char *name, unsigned int name_len, | |
40 const char *value, unsigned int value_len, | |
41 void *user_data); | |
42 | |
43 /* func is called for each field in message header. */ | |
5
1b34ec11fff8
Message data is parsed in blocks (no longer entirely mmap()ed). Several
Timo Sirainen <tss@iki.fi>
parents:
0
diff
changeset
|
44 MessagePart *message_parse(Pool pool, IOBuffer *inbuf, |
0 | 45 MessageHeaderFunc func, void *user_data); |
46 | |
47 /* Call func for each field in message header. Fills the hdr_size. | |
48 part can be NULL, just make sure your header function works with it. | |
49 This function doesn't use temp. mempool so your header function may save | |
5
1b34ec11fff8
Message data is parsed in blocks (no longer entirely mmap()ed). Several
Timo Sirainen <tss@iki.fi>
parents:
0
diff
changeset
|
50 return values to it. When finished, inbuf will point to beginning of |
1b34ec11fff8
Message data is parsed in blocks (no longer entirely mmap()ed). Several
Timo Sirainen <tss@iki.fi>
parents:
0
diff
changeset
|
51 message body. */ |
1b34ec11fff8
Message data is parsed in blocks (no longer entirely mmap()ed). Several
Timo Sirainen <tss@iki.fi>
parents:
0
diff
changeset
|
52 void message_parse_header(MessagePart *part, IOBuffer *inbuf, |
0 | 53 MessageSize *hdr_size, |
54 MessageHeaderFunc func, void *user_data); | |
55 | |
56 #endif |