forked from inflex/alterMIME
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
593 lines (456 loc) · 19.1 KB
/
CHANGELOG
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
alterMIME CHANGELOG:
--------------------------------------------------------------------------
-Abbreviations Used:
DEV = This update was released as a DEVELOPMENT release of alterMIME
the change will be included in the next STABLE release as well.
STA = This update was released as a STABLE release of alterMIME
--------------------------------------------------------------------------
05 May 2010:
PLD-DEV: Changed the way the pretext system works, now it's the
same as the disclaimer system of specifying files
--pretext=<plaintext pretext file>
--pretext-html=<html pretext file>
--pretext-b64=<base64 pretext file>
If you have BOTH pretext and disclaimer files specified then
alterMIME will now insert both in the single run.
PLEASE NOTE - due to the streaming requirements the PRETEXT
HTML insertion routine -depends- on there being a BODY tag
present else the insertion will not occur.
29 April 2010:
PLD-DEV: Added --pretext which positions the disclaimers to the
start of the MIME segments. Currently only works for;
* plain text
* no boundaries
* HTML
12 Dec 2008:
PLD-DEV:
Fixed up occurances of strcpy, sprintf and strcat located in
mime_alter.c
24 Nov 2008:
PLD-DEV:
MIME_headers:MIME_headers_get() Added initialization code for
the crlf/lf counts to read from the ffget module. This
allows us to handle situations where we have insufficient
headers to make a good guess of the linebreak, because we
simply read from the ffget structure what the previous one
was (if any).
Updated quoted-printable encoding module (qpe.[ch]).
16 Nov 2008:
PLD-REL: 0.3.10
15 Nov 2008:
PLD-DEV:
Storing line delimeter in the alterMIME global struct. Saves
having to redefine/locate/check it all the time.
Added CR, CRLF and CRCR occurance counters in MIME_headers
Fixed up problem with AM_adapt_linebreak which caused
total stripping of delimeters
06 Nov 2008:
PLD-DEV:
Moved AM_globals structure to the mime_alter.h file so that
we can prepare for 0.4.x series which will provide an API
change forcing us to pass an AM_global struct into every
AM_* function. This will allow for multiple instances of
the alterMIME engine in a given process without clashing
issues of various global vars. Should have done this
years ago.
PLD-DEV:
Added an output filter AM_adapt_linebreak() to feed disclaimers
through so that their linebreaks match the last break type
detected with the FFGET() reading.
30 Oct 2008:
PLD-REL:
Cleaned up compile warnings (against Ubuntu's 8.10's gcc,
including fread/fwrite return values and the PLD_strlower()
signed parameter issues.
14 Oct 2008:
PLD-DEV:
qpe.c updated to handle broken Outlook issue.
07 Oct 2008:
-PLD:DEV:
Added altermime_status_flags global to allow for easy inspection of
the result of a disclaimer or xheader insertion run.
15 Aug 2008:
-PLD:DEV:
Extended the search depth of the segment-3+ insertion of disclaimers
allowing it to find potential HTML/Text disclaimer segments that may
have been burried deeper in a non-forwarded email. Insertion search
will terminate immediately if a RFC822 forwarded email header is
located.
20 Jul 2007:
-PLD:DEV:
Added closing of open file handles in AM nullify.
(this would cause files to be zeroed if one performed
an operation after nullifying attachments).
Fixed small memory leak from regex compilation in AM nullify.
13 Jul 2007:
-PLD:REL:
Release as 0.3.8
-PLD:DEV:
Updated ffget module.
Corrected some code where hard-coded buffer sizes were present rather
than properly referenced sizes.
09 Jun 2007:
-PLD:DEV:
Temporary file removal if insertion is aborted due to signed
email - Carlos Velasco
-PLD:DEV:
Added text/calendar detection to prevent mutating outlook
calendars (and others)
-PLD:DEV:
Preparing for STABLE release
09 Mar 2007:
-PLD:DEV:
Fixed bug that can cause crashing on QP decoding where the
charout size wasn't 1. Thanks to Yossi Gottlieb for suppling
the patch.
07 Mar 2007:
-PLD:DEV:
Added text/calendar detection, this allows us to implicitly
avoid adding disclaimers into these bodies by virtue of the
fact that alterMIME won't detect it as a "plain or HTML"
text body.
12 Feb 2007:
-PLD:DEV:
Patch applied for QP encoding problem of chars as hex.
(Patch provided by Julian Schneider)
30 Jan 2007:
-PLD:DEV:
Fixed missing boundary situation after BASE64 encoded
disclaimer insetion.
Fixed non-MIME BASE64 disclaimer insertion routines
(ie, for emails with only a single segment and no
boundary).
28 Jan 2007:
-PLD:DEV:
Added BASE64 _encoded_ disclaimer option so that
it's possible to insert a BASE64 pre encoded dislciamer
file into BASE64 bodies ONLY (ie, it won't be applied
to plain or QP encoded bodies).
--disclaimer-b64=
23 Jan 2007:
-PLD:DEV:
Added BASE64 disclaimer insertion routines (NAB)
Requires the use of --force-into-b64 to activate
Currently only works for text/plain and text/html
content-type segments. Using for other segment
types may cause unpredictable results (as it is the
results are not proven).
14 Jul 2006:
-PLD:DEV:
Rolled in new FFGET module with cleaner code.
Implemented FFGET_ftell / FFGET_fseek in the FFGET routines to
allow for better debugging and potential features in alterMIME
22 Jun 2006:
-PLD:DEV:
Fixed --help output to indicate that --remove=<filename regex>
is the correct notion, as apposed to the non-existant
"--remove-regex". Thanks to Alex Samorukov for pointing this out.
29 Mar 2006:
-PLD:REL:
Released as 0.3.7
27 Mar 2006:
-PLD:DEV:
Added SEGMENT 3 disclaimer insertion attempt to handle emails that
have both text and HTML representations of the email message.
02 Mar 2006:
-PLD:DEV:
Applied patch from Tim Jackson which solves a BASE64 induced
mail truncation if disclaimer insertion fails.
01 Mar 2006:
-PLD:DEV:
Added Quoted-printable encoding to disclaimers if required by
the transfer-encoding header of the MIME segment.
14 Feb 2006:
-PLD:DEV:
Fixed disclaimer insertion issue in emails with both HTML
and attachment.
27 Mar 2005:
-PLD:REL:
Release as 0.3.6
-PLD:DEV:
-Added -O2 option to Makefile for optimised binary
-Added --no-qmail-bounce parameter to alterMIME to allow people
to disable the email body search for files/attachments during
a remove/removeall operation.
-Added filename searching for the name= header parameters for
remove facility.
-Added headers-longsearch (qmail bounce) type detection for
remove facility.
24 Mar 2005:
-PLD:DEV:
-Fixed multipart[-insert] discrepency between help output and
actual functionality. --multipart-insert is the now correct
parameter.
-PLD:DEV:
-Fixed incorrect parsing of body data when a header could not
be inserted on the first segment, causing alterMIME to start
reading the body text as if it was header data. Thanks to
Pieter Vanmeerbeek for pointing this out and providing a
set of data that reliably produced the problem.
-PLD:DEV:
-Fixed help output to display 'suffix' rather than 'postfix' for
header alteration feature.
04 Feb 2005:
-PLD:DEV:
-Changed header insertion line from using a hard coded \r\n
to using the contents of the 'true blank' separator line.
(see AM_insert_Xheader)
20 Nov 2004:
-PLD:DEV:
-Fixed mistake in AM_add_disclaimer_cleanup(), where it
incorrectly tests the input file for stdin using
strcmp() causing alterMIME to not rename the new file.
04 Nov 2004:
-PLD:DEV:
Changed \n to \r\n delimeter for the X-header insertion routine
19 Oct 2004
-PLD:DEV:
Fixed up \r\n issues with UNIX created disclaimers showing up
fine in UNIX but as a single line in Windows. This one was for
Neil Wilson of ZA.
-PLD:DEV:
Added patch from Tim Bruylants to allow for forcing of
disclaimers in HTML MIME segments even if the segment doesn't
terminate with /body /html. The patch also permits the use of
disclaimers from STDIN (to STDOUT). Many thanks Tim.
Fixed misspelling of 'filname' in alterMIME help/usage
18 Sep 2004
-PLD:REL:
Release 0.3.5
-PLD:DEV:
Rewrite the AM_add_disclaimer() function, breaking it down into
smaller functions in an attempt to make it readable.
AM_add_disclaimer now calls;
AM_load_disclaimers() - Load the disclaimers required to insert.
AM_read_to_boundary() - read input file till a boundary is hit.
AM_add_disclaimer_no_boudary() - Insert into a non-boundary email.
AM_insert_disclaimer_into_segment() - Insert into a MIME segment
17 Sep 2004
-PLD:DEV:
Added content type and content transfer encoding types
to NOT insert disclaimers into. See the function AM_read_headers()
where the switch hinfo.content_type and .content_transfer_encoding
is listed.
This prevents some potential infinite loops when alterMIME tried to
read the data as headers, rather than as a MIME body.
Added BS_set_hold_limit() to limit the number of boundaries
held in the stack to a certain limit (in the case of alterMIME, 1).
This is done so that alterMIME doesn't try to traverse into
nested segments.
16 Sep 2004
-PLD:DEV:
Changed boundary tests from strstr() to BS_cmp()
Updated MIME_headers code to match the ripMIME engine
Fixed bug where some infinite loops occured while trying to
insert a HTML disclaimer
06 May 2004
-PLD:DEV:
Stopped alterMIME from inserting a disclaimer in a B64 encoded
main body.
10 Mar 2004
-PLD:REL:
Release 0.3.4
09 Mar 2004
-PLD:DEV: Fixed up header clobbering where the fields were ISO encoded
and duly un-encoded when filtered via alterMIME.
Thanks to Viktoras Rynkevicius for persuing this one.
16 Jan 2003
-PLD:DEV: Added initializers for some hinfo fields to pacify valgrind
-PLD:DEV: Added AM_done() function to clear any remaining disclaimer
malloc'd data produced from the strdup() call inside of
AM_set_disclaimer_*()
30 Nov 2003
-PLD:DEV: Implementing regex matching for attachment removal
14 Nov 2003
-PLD:REL: Released alterMIME 0.3.3
30 Oct 2003
26554
-PLD:DEV: Added x-header string filtering to prevent dubious strings
getting through, such as ones containing \n\r sequences or
0 length strings.
21 Oct 2003
-PLD:DEV: Reimplementing S/MIME detection (development)
26 Jun 2003
-PLD:DEV: Applied patch from Ludwig Pummer to fix up stdin/out streaming
for the --remove facility
11 Jun 2003
-PLD:DEV: Applied fix from Jorge Jimenez to resolve issues with HTML
disclaimer insertion in certain situations.
14 May 2003
-PLD: Fixed attachment-replace path inclusion into the MIME-headers
-PLD: Removed spurilous parameters off AM_add_disclaimer() call which
caused some segfault behavior in other external applications which were
using the alterMIME engine
04 May 2003
-PLD: Release as 0.3.1
28 April 2003
-PLD: replaced the attachment replacement code. Uses a very similar structure
to the code as used by the nullification/remove system [ with some minor
changes ]. There are still some outstanding issues, like how to cleanly
deal with the 'main' headers of each MIME, mostly in regards to the fact
that unlike the per-attachment headers, the main headers typically contain
a lot of other email-related information.
Overall the code works a lot better than the old one, despite the current
limitations.
Now, if an attachment is replaced, its old headers are also replaced.
The new headers are just Content-Type, Content-Disposition and
Content-Transfer-Encoding. There may be more headers added later
depending on the needs encountered.
Additionally, we can currently only add attachments in BASE64 encoding
format, I will extend this in the future to support QuotedPrintable
and plain-text.
27 April 2003
-PLD: Fixed header-alteration in Suffix mode problem where it would split
a doubleCR or singleCR line incorrectly, because it was looking for a LF
but didn't find one.
-PLD: Changed the nullification logic slightly so that the first MIME
segment can be 'nullified'. Rathern than being able to remove the
actual headers which specify the file details, it's been currently
chosen to clobber the filename in the headers by prefixing with either
a _ or X character and then proceeding to nullify the contents
-PLD: Nullification specification via --nullify= can be a regex expression.
This means that you can now remove multiple files, ie
--remove='\.exe$'
--remove-all has been retained, despite the fact that the feature can be
achived using --remove='.*'
26 April 2003
- Changed/replaced the AM_section1() call into AM_read_headers() in which
I then call MIMEH_parse_headers(), which does a vastly superior job of
detecting the /right/ headers.
- Replaced the AM_nullify_attachment() with a far more compact version
which does a far cleaner job of nullifying, removing the entire
attachment and headers [ except for attachments which are the entire
email body, in which case I have yet to still decide/workout how
best to handle the situation ]
25 April 2003
- Releasing as 0.2.2, this will be the last [ feature ] release for the
0.2.2 series. After this I will rip out a lot of the code dealing with
the header parsing and replace it with that which is now being used in
ripMIME - The new series will be 0.3.x
21 March 2003
- Added generic header replacement tool:
alterMIME now allows you to change headers [if they already exist] so
that you can do things like change subject headers.
A future extention will be to allow the modification of headers on all
the MIME segments rather than just the main headers.
To use:
--alter-header="header-you-want-to-change" --alter-mode=prefix|suffix|replace --alter-with="text to use"
--alter-mode= modes explanation:
prefix: prefixes the text defined with --alter-with before the current existing
text for the header
suffix: suffixes the text defined with --alter-with after the current existing
text for the header
replace: replaces all the currently existing header text with the text provided
by --alter-with
16 March 2003
- Released v0.2.1
23/02/2003
- Unified logging output routines ( all logging now goes via LOGGER )
- Added logging output mode option ( stdout / stderr / syslog )
- Added description of available options for alterMIME in verbose/help
mode
- Cleaned up altermime.c source code, placing all loose global vars into
single passed struct
22/02/2003
- Replaced strlower, XAM_strtok and zstr with a single module 'pldstr'.
- Added new modules filename-filter and libmimedecoders
- Added --disclaimer-html option which allows you to have a seperate
plaintext and HTML disclaimer
- Added --multipart option to force alterMIME to insert disclaimers into
the first level multipart block in an email, this means that you
can effective insert disclaimers into forwarded emails.
12/11/2002
- Released as 0.1.14
- Corrected a FFGET module bug which caused terminating lines without a \n or \r to
contain data from the previous line ( ie, there was no terminating \0 at
the string ending, thus the previous data in the buffer simply filled up
the rest of the buffer )
- Corrected the insertion of disclaimers in situations where a file attachment
ends without a boundary line.
- Corrected the insertion of disclaimers in situations where a single file is
attached with no email bodies.
12/05/2002
- Released as 0.1.13
- Cleaned up disclaimer insertion routines so that disclaimers are not inserted into
the incorrect MIME segment
- Used ccmalloc to test the allocation of memory when running --xheader or --disclaimer
, I'm pleased to say that both operations returned with no under or over use
of memory :-) ccmalloc is a great program tool, I highly recommend it for when
you're tracking down wierd bugs, often, just by cleaning up the memory spillages
you fix you bugs. - ccmalloc is by Armin Biere. (biere at inf.ethz.ch)
26/04/2002
- Released as 0.1.12
- Corrected segfault issue with x-header insertion, would occur once every 1000 or so emails
was caused by using snprintf() in alterMIME with one byte too high a buffer size value
this in turn cased the FFGET_FILE variable to be overwritten with a \0 byte causing
the program to crash on exit (which was rather interesting to watch).
- Improved the disclaimer insertion routines. Hopefully now it'll correctly put in the right
style of disclaimer (HTML or Plain) based on header information.
19/04/2002
- Corrected x-header insertion code, problem actually resided in the FFGET module
which was returning NULL on FFGET_fgets() one call too early.
06/03/2002
- Replaced AM_build_table() with a static decoding table at compile time
- Added FFGET library for file input and correct \n\r detections in headers
- Updated AM_insert_Xheader() routine.
22/10/2001
- Release 0.1.10
- Moved strlower() call into mime_alter codebase and
renamed it to AM_strlower. Also improved the speed
of the strlower call by removing the testing for
uppercase on each char.
- Makefile: Added strip command to make install
- mime_alter:AM_add_disclaimer: Added logic to deal with broken AOL emails [missing BODY tag]
- Thanks to Sean Kelly for supplying the mailpack.
21/10/2001
- Released 0.1.9
- Corrected boundary quotation closure issue.
20/10/2001
- Release 0.1.8
- Changed location detection algorithm for disclaimer insertion,
specifically to deal with emails which are [in effect] nested
one level down despite being new emails.
- No longer alters signed messages [for disclaimer addtion] without
being forced via --altersigned option
- Thanks to Raymond Bramwell for providing the assortment
of mailpacks showing up these intersting issues
17/10/2001
- Improved HTML disclaimer addition, prevented spurilous line addtion
in emails which had no additional attachments
15/10/2001
- Added ability to nullify all named attachments (feature Plead by Estaga)
- Improved disclaimer insertion technique so as not to break files
which didn't have </body> tag on a seperate line
- Made disclaimer addition remove the temp file after completion
09/03/2001
- Reworked replacement file section, making it buffer the headers before
writing out, this allows us to then change the headers to suit the
new file name without requiring two passes of the file.
- Got rid of the spurilous alterMIME decoding messages (why did I leave
them there in the first place!!#@$!!!
03/08/2001
- Fixed up potential sig11 issues with files being read which
didn't exist.
21/07/2001
- Fixed up disclaimer intertion routine if file did not contain
a boundary specifier.
01/07/2001
- Added xheader insertion facility (from ripMIME)
17/06/2001
- Added attachment replace ability
- Fixed up disclaimer ability to enable both HTML and plaintext
portions to be updated
05/06/2001-
- Fixed up Makefile
- Released as alterMIME 0.1.3
07/05/2001 -
- Rewrote "unable to add disclaimer" message to make more sence in
mime_alter.c
05/05/2001 -
- Added Makefile to package.
02/05/2001 -
- Initial development and release.
- Features available are:
disclaimer-addition
attachment-nullification (rendering attachment to 0 bytes)
---------------------------------------------