1---------------------------
2A history of updates in EPS
3<vol@inter7.com>
4---------------------------
5
6Jul 2 2001 v0.0
7  * Planning phase
8
9Jul 9 2001 v0.0
10  * Development begins
11  * vol@inter7.com gets a coffee
12
13Jul 17 2001 v0.1
14  * vol@inter7.com gets frustrated
15
16Jul 18 2001 v0.1
17  * Major re-write of most of the code
18    for efficiency and functionality
19  * Added extreme memory debugging (MEM_DEBUG)
20  * Created TECHS file with list of API functions
21
22Aug 6 2001 v0.2
23  * Header and atom parsing completed
24  * Internal header data storage begins
25  * Found that I needed to strip WSP on both
26    sides of strings.  Added functionality.
27  * Internal header processing completed
28  * Added processing time debugging (COUNT_DEBUG)
29  * Added multipart recognition
30
31Aug 7 2001 v0.2
32  * Removed header_strip_wsp function
33  * Stripped WSP on either end of atoms in header_parse_atom
34    Somehow these changes made time shoot up from 0.12 seconds
35    on a 240k email to 2.4 seconds.
36
37Aug 14 2001 v0.2
38  * Began work on FILE_BUFFER buffer scheme (for stable release)
39  * Began designing filtering language
40  * Removed header_internal stuff.  Should be higher-level.
41  * Added email_content_type for multipart processing (PROCESS_MULTIPART)
42
43Aug 16 2001 v0.2
44  * Added email_mime_version for multipart processing
45  * Fixed up email_header_internal
46  * Began higher-level API functions in eps.c
47
48Aug 27 2001 v0.2
49  * Created a tools directory with a sample code
50  * Began archiving tool to store email messages by ID
51
52Aug 29 2001 v0.2
53  * Began etrack tool
54  * Updated header.c to remove that annoying space
55    from the front of the original header data
56
57Aug 30 2001 v0.2
58  * Created email address evaluation code
59  * Added INTERFACE_NONE
60
61Sept 13 2001 v0.2
62  * Havent updated CHANGELOG in a while
63  * Added address_evalute and address_evaluate_one
64  * Created eps calls for address functions
65  * Upgraded EPS to v0.3
66
67Sept 16 2001 v0.3
68  * Updated rfc2822_remove_comments for escaped comment characters
69
70Oct 08 2001 v0.3
71  * Sillyness with STORE_ORIGINAL definition which caused mismatching
72    of memory objects fixed.
73
74Oct 09 2001 v0.3
75  * Created eFilter tool.  Fixed some memory deallocation problems
76    with address evaluation functions.
77  * Added eps_mime_kill() call
78
79Oct 10 2001 v0.3
80  * Updated eps_rewind() again
81    Wasn't fixing EOF and BRK status
82  * Created eps_dup() and eps_dup2() for duplicating the temporary
83    file descriptors
84
85Oct 12 2001 v0.3
86  * Made doc directory
87  * Began doc/HOWTO
88  * Renamed TECHS to doc/API
89  * Upgraded to v0.4
90
91Oct 12 2001 v0.4
92  * Added eps_reset()
93
94Jan 5 2002 v0.4
95  * Moved some definitions over to rfc2822.h
96  * Created structure.c for creation of email content
97  * Added structure_message_id() for unique message-id creation
98    Generates based on a string prefix, unix time, and pid
99
100Jan 6 2002 v0.4
101  * Added eps_message_id() which calls structure_message_id()
102
103Jan 8 2002 v0.4
104  * Created qmail.c for outgoing mail via qmail-inject
105
106Jan 15 2002 v0.4
107  * More MIME attachment work, will need to add memory mapping
108
109Jan 16 2002 v0.4
110  * Got the bulk of MIME attachment stuff working.  Again, allocating memory
111    for attachments is an ugly idea.
112
113Jan 17 2002 v0.4
114  * Ran tests with autoresponder code MIME code.  Looks good.
115  * Packaged EPS v0.4
116  * Began work on memory mapping
117
118Feb 25 2002 v0.4
119  * Began work on thread-safe EPS
120  * Discovered bug in address.c handling of addresses. Fixed.
121
122Mar 27 2002 v0.5
123  * EPS is now thread-safe
124  * Packaged EPS v0.5
125  * Released EPS v0.5
126  * Upgraded to v0.6
127
128Mar 29 2002 v0.6
129  * Created sample multipart types in mess directory
130  * Added INTERFACE_STREAM
131
132Apr 2 2002 v0.6
133  * Update int_stdin to accept pointer to a file descriptor for INTERFACE_STREAM
134
135Apr 4 2002 v0.6
136  * Added INTERFACE_MIME_STREAM (not yet implemented)
137  * Added INTERFACE_MIME_ALLOC (not yet implemented as a flag)
138  * Added INTERFACE_MMAP (not yet implemented)
139
140Apr 18 2002 v0.6
141  * Updated eps.c eps_next_mime() not to allow for streamed MIME
142  * Added mime_init_stream (for streaming)
143  * Added mime_next_header (for streaming)
144  * Added mime_next_line   (for streaming)
145  * Created interface.h containing interface flags
146  * Added break handling flags to interface.h
147  * Created content.h containing content-type flags
148
149Apr 20 2002 v0.6
150  * Added some more DEBUG define lines
151  * Updated email_is_boundary to recognize MIME ending boundary
152  * Found small problem with address resolution to fix later
153  * Updated doc/API a bit for new MIME handlers
154
155Jun 18 2002 v0.6
156  * Updated content type tables in content.h and content.c
157  * Added content_parse function to content.c
158  * Updated various source files using old CONTENT_* structure
159    to the new content structure
160  * Packaged v0.6
161  * Upgraded source to version v0.7
162
163Jun 18 2002 v0.7
164  * Mistake in content.c/content.h for multipart processing fixed
165  * mime_init_stream called mfree() instead of mime_free() --woops!
166
167Jun 26 2002 v0.7
168  * Started work on encoding/decoding of transfer-encodings functions
169
170Jul 2 2002 v0.7
171  * ONE YEAR ANNIVERSARY -- Started EPS on Jul 2 2001!
172  * Fixed email_content_type memcpy bug
173
174Jul 23 2002 v0.7
175  * BASE64 decoding functions added
176
177Jul 26 2002 v0.7
178  * Updated eps_dealloc() to call mime_kill() to fix potential memory leak
179  * Updated eps_header_free() not to deallocate NO_HEADER
180
181Aug 13 2002 v0.7
182  * Updated mime_new_instance() to set default encoding, and disposition
183
184Aug 20 2002 v0.7
185  * Updated email_content_type for header NULL checking to fix segfaults
186  * Updated content_parse for data NULL checking to fix segfaults
187  * Upgraded source to version v0.8
188
189Aug 20 2002 v0.8
190  * Updated mime.c internal header checking for header NULL checking to fix segfaults
191  * Updated source to remove PROCESS_MULTIPART
192  * Updated source to remove HEADER_INTERNAL
193
194Aug 27 2002 v0.8
195  * Fixed rfc2822* functions to do proper pointer checking to
196    fix crashes
197  * Updated header.c for some crashes where atom structure isnt
198    allocated.
199  * Moved some documentation files such as LICENSE, to the doc directory
200  * Packaged v0.8
201  * Upgraded source to version v0.9
202
203Aug 29 2002 v0.9
204  * Made a few removals of old definitions in content.h
205  * Added INTERFACE_FAST_BUFFER using new buffering system (16 times faster!)
206  * Packaged v0.9
207  * Upgraded source to version v1.0
208
209Aug 30 2002 v1.0
210  * Started v1.0 off of the v0.9 source code with new buffering, unrolling,
211    and interface code.
212  * Fixed rfc2822_remove_comments for some extra syntax checking
213  * Updated variable sizes from int to unsigned long to avoid value overflows
214    with new line buffering code.
215  * Updated header.c for new functionality and no eps structure passing
216  * Added boundary code for multiple boundaries
217  * Updated mime code to support multiple boundries
218  * Tested new code for speed changes with 10.1 meg email file:
219    EPS v0.9 - ~8-9 seconds
220    EPS v1.0 - ~0.5 seconds
221
222Sep 03 2002 v1.0
223  * Added new address_evaluate_one code
224  * Added new address_evaluate code with group address parsing
225  * Added eps_restart
226  * Added eps_is_eof
227  * Made many changes to doc directory file contents
228  * Added boundary_fetch
229  * Added boundary member to mime_t
230  * Added base64 decoding and encoding functions
231
232Sep 05 2002 v1.0
233  * Updated mess/mime_digest
234
235Sep 13 2002 v1.0
236  * Updated content.c for i = 0 bug; should have been i = 1
237    to skip NULL default entry
238
239Sep 18 2002 v1.0
240  * Added orig member to mime_t structure which will contain
241    latest boundary line directly from email.
242
243Sep 19 2002 v1.0
244  * Made a few changes to the rolling code
245
246Sep 20 2002 v1.0
247  * Packaged v1.0
248  * Upgraded source to version v1.1
249
250Sep 20 2002 v1.1
251  * Updated buffer.c for -1 fd (no reading, just buffer reads)
252  * Finished INTERFACE_BUFFER
253
254Sep 21 2002 v1.1
255  * Fixed boundary bug in rewrite.c
256  * Updated restart code for INTERFACE_BUFFER
257  * Updated doc/license (duh)
258
259Sep 22 2002 v1.1
260  * Modified INTERFACE_BUFFER to take dbuffer structure
261
262Sep 29 2002 v1.1
263  * Modified line code for no memsets
264
265Oct 01 2002 v1.1
266  * Modified Makefile to install to normal EPS directories
267  * Packaged v1.1
268  * Upgraded source to version v1.2
269
270Oct 01 2002 v1.2
271  * Moved encode/decode/rewrite to epstools package where they belong
272  * Packaged v1.2
273  * Upgraded source to version v1.3
274
275Oct 02 2002 v1.3
276  * Added 'last buffer pointer' to buffer structure
277
278Oct 04 2002 v1.4
279  * Packaged v1.3
280  * Upgraded source to version v1.4
281
282Nov 02 2002 v1.4
283  * rolling functions added (roll.c; not sure when this code was created,
284    so Im adding it here) to re-write structured headers per RFC2822.
285
286Nov 05 2002 v1.4
287  * Updated memory debugging code to use external library (not packaged with EPS)
288  * Updated Makefile to remove some of the old test programs no longer included
289
290Nov 07 2002 v1.4
291  * Updated doc/howto a bit
292  * Updated rfc2822.c for rfc2822_is_sep indicating (partially)
293    a list of characters we use as seperators
294  * Updated roll_fd() to use rfc2822_is_sep instead of rfc2822_is_wsp
295
296Nov 09 2002 v1.4
297  * Removed content-type 'raw' (thanks to the guys at bogofilter)
298  * Added 'binary' encoding identification (handlers not yet made)
299  * Apparently no handlers needed for binary content-type media type
300  * Removed some ugly debugging code from buffer.c
301
302Nov 11 2002 v1.4
303  * Added quoted-printable decoder code
304  * Updated Makefile for easier updates
305  * Removed BINS variable from Makefile
306
307Jan 23 2003 v1.4
308  * Updated mess/mime_alternative for invalid boundary line in MIME data
309  * Added mess/text_plain
310  * Added mess/text_html
311
312Jan 27 2003 v1.4
313  * Updated header_parse to allow for whitespace in header names
314
315Feb 27 2003 v1.4
316  * Updated MIME default disposition to not include DIS_INLINE
317
318Apr 07 2003 v1.4
319  * Added 'grow' member to line_t structure for variable reallocation size
320  * Added 'h_content_type' member to eps_t structure for content-type string
321
322May 12 2003 v1.4
323  * Updated header files with include idefs
324  * Updated qp decoder (so it actually worked :)
325
326May 14 2003 v1.4
327  * Updated base64_encode to send CRLF instead of just LF
328
329May 15 2003 v1.4
330  * Fixed memory leak in eps_next_header()
331  * Renamed occurances of unroll to unfold
332  * Renamed occurances of roll to fold
333  * Packaged EPS v1.4
334
335May 15 2003 v1.5
336  * Renamed all 'struct name_t' to 'typedef struct'
337  * Removed all external memory debugging function support
338  * Removed 'COUNT_DEBUG' functions
339  * Cleaned up some function declarations for non-existant functions
340  * Made a few of the rfc2822 functions inline
341
342May 21 2003 v1.5
343  * Added mime_is_eof macro for determining last MIME part or EOF
344    during MIME processing
345  * Updated mime_next_header to use eps->h for automatic deallocation
346  * Updated a few memcpy() to be memmove()
347
348May 29 2003 v1.5
349  * Added h_content_type to mime header
350