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