Log message:
pkgsrc changes:
- Updating package for p5 module Mail::IMAPClient from 3.14 to 3.16
- Splitting dependencies into "real depends" part and a recommended part
- Add Authen::SASL as recommended dependency
- Set gnu-gpl-v2 as license
Upstream changes:
version 3.17: Thu May 21 01:40:08 EDT 2009
- ran all test code and lib/Mail/IMAPClient.pm through Perl::Tidy
- plan on using perltidy to standardize format going forward
- added 13 tests to t/basic.t to cover more methods
- fix some broken tests
- update Makefile.PL to provide info about optional modules
version 3.17_05: Tue May 19 11:04:28 EDT 2009
Potential compatibility issues highlighted with '*':
- *reset LastError for every call to _imap_command_do()
- *run() - use _imap_command_do(), return arrayref in scalar context
- *tag_and_run() - return arrayref in scalar context
- *done() - use _imap_command_do(), return arrayref in scalar context
- *search() now returns empty arrayref not undef if no matches found
- _imap_command_do() made more flexible to avoid code duplication
- _list_response_parse renamed _list_or_lsub_response_parse
- updated POD with new/updated behavior
- append_string() now uses _imap_command_do() for Reconnectretry
- internally use defined return values instead of only LastError()
- run() updated to use same/similar code to _imap_command_do()
- make several return statements more consistent
- delete() now unsets current Folder attribute on success
version 3.17_04: Fri May 15 17:18:52 EDT 2009
- updated POD with new reconnect() method and Reconnectretry attr
- *new _imap_command() after renaming old one to _imap_command_do
support retrying commands X times EPIPE/ECONNRESET errors
- *added Reconnectretry attr to control number of retry
attempts (default is 0 - no reconnect/retry)
- *added reconnect() method to support Reconnectretry attr
reconnect and updated _imap_command() method
- *_imap_command_do will return undef if command given has no TAG
- fixed message_string() logic/errors for failed size() calls
- local-ize $! anywhere we use Carp routines as older versions
of Carp could cause $! to be reset
- several 'BUG?' comments -- raising red flag for future work
- minor cleanup of sort() logic
- reduce duplicate code, hopefully improved error handling:
new _list_or_lsub() for list() and lsub()
new _folders_or_subscribed() for folders() and subscribed()
+ new _list_response_preprocess() keeping old code/logic in
for now, but may remove in the future (for buggy servers?)
- some updates for migrate() but this method needs much work
- body_string() now handles fetch() errors
- tag_and_run now handles _imap_command() errors
- changed non-timeout CORE::select() timeout from 0.001 to 0.025
- minor cleanup of _read_line() error handling/debug output
- get_bodystructure() handle more fetch() errors
- expunge() handle select() errors
- restore_message() handle store() errors
- uidvalidity() handle status() errors
- uidnext() handle status() errors
- is_parent() use _list_response_preprocess() for parsing
- move() send delete_message() errors to stderr
- simplify size() method
version 3.17_03: Fri May 8 16:37:08 EDT 2009
- *added uidexpunge() for UID EXPUNGE UIDPLUS support
- *search() now DWIM: auto-escapes args, SCALAR refs not escaped
rt.cpan.org#44936 [cjhenck]
- _quote_search() provides auto-escape capability for search()
- many POD updates as well as some major reformatting (incomplete)
- login now fails if passwd and user are not defined
- _sysread(): $self was in args to 'Readmethod' twice
- authenticate() return undef on scheme eq "" or LOGIN
- "require" instead "use" Digest::HMAC_MD5 for CRAM-MD5 support
version 3.17_02: Fri May 1 16:44:21 EDT 2009
- cleanup of use/imported data
- use Socket $CRLF in many cases not \r\n per perlport/IMAP spec
- new Keepalive attr for use with new()/Socket() enables SO_KEEPALIVE
- LastError now uses Carp::confess for stack trace if Debug is true
- Maxcommandlength now defaults to 1000 per RFC2683 section 3.2.1.5
- added noop() to support IMAP NOOP
- _imap_command now sets LastError if a OK/$good response is not seen
- fixed fetch_hash() to return FLAGS as "" not () when no FLAGS set
version 3.17_01: Fri Apr 24 18:36:45 EDT 2009
- *new attribute Maxcommandlength used by fetch() to limit
length of commands sent to a server. This should removes
need for utilities like imapsync to create their own split()
functions and instead allows Mail::IMAPClient to hopefully
"do the right thing"
- remove extra 'use' calls for Carp and Data::Dumper
- _read_more() improperly initialized vector causing select
errors, thus timeouts were not working properly (now they
work...)
- *change default timeout 30s => 600s: 30s seems too short in
practice
- *explicit import of encode_base64 and decode_base64 from
MIME::Base64 note the code forces a disconnect from the
server on timeout as we can not easily recover from this
situation right now in the code
- *numerous changes of error messages, removing superfluous
text and now relying on LastError instead of $! or $@ when
appropriate
- separator():
+ now return undef if an error occured for NAMESPACE or LIST calls
+ *no longer defaults to '/' if NAMESPACE call does not succeed
- new internal _list_response_parse() method for parsing LIST
responses
- handle ECONNRESET errors on syswrite and mark connection as
Unconnected
+ error "Connection lost" changed to "Write failed"
- previously untrapped syswrite error now generate "Write
failed" errors
- fix in _imap_command where LastError would be erroneously
set on LOGOUT
- _record() no longer tries to infer errors based on data
being "recorded"
- _send_line()
+ cleanup in watching for: +|NO|BAD|BYE
+ now sets LastError when an unexpected response is seen
- _read_line()
+ handle select errors instead of ignoring them
+ forcefully _disconnect() on timeouts as this breaks app logic
+ reduced duplication of code on error handling
- added _disconnect() method to brute force drop connections
on timeout
- added _list_response_parse() to reduce duplicate code for
LIST parsing
- added _split_sequence() to support new Maxcommandlength argument
- fetch()
+ use new Maxcommandlength to split a request into multiple
subrequests then aggregate results before passing them
back to the caller
- fetch_hash(): added checks for failed IMAP commands
- parse_headers()
+ properly check if fetch fails
+ handle cases where $header and/or $field are not defined
- size():
+ return undef if LastError is set
+ fix case where SIZE is not found and return undef as expected
version 3.16: Mon Apr 6 12:03:41 CEST 2009
Fixes:
- set LastError when the imap_command receives an unexpected 'BYE' answer.
rt.cpan.org#44762 [Phil Lobbes]
- handle SIGPIPE cleanly.
rt.cpan.org#43414 [Phil Lobbes]
- improve handling of quotes in folder names
rt.cpan.org#43445 [Phil Lobbes]
- do not use $socket->eof(), because IO::Socket::SSL does not support it.
rt.cpan.org#43415 [Phil Lobbes]
- remove excessive reconfiguration of fastio in _read_line()
rt.cpan.org#43413 [Phil Lobbes]
Improvements:
- remove experied docs about automatically created calls, which
do not exist since 3.00
- remove verbose explanation about reporting bugs.
version 3.15: Fri Mar 20 13:20:39 CET 2009
Fixes:
- manual-page was using POD syntax incorrectly, which caused many
broken links on search.cpan.org
rt.cpan.org #44212 [R Hubbell]
|
Log message:
Update to 3.06:
version 3.06: Mon Apr 14 23:44:03 CEST 2008
Fixes:
- expunge without argument must use selected folder. [John W]
- expunge with folder does not select it. [John W]
- the documentation still spoke about "autogenerated methods",
but they were removed with 2.99 [John W]
- append_string needs LF -> CRLF translations, for some
servers. rt.cpan.org #35031 [Jonathan Kamens]
- append_string needs LF -> CRLF translations, for some
servers. rt.cpan.org #35032 [Jonathan Kamens]
Improvements:
- added ::setquota(), thanks to [Jappe Reuling]
version 3.05: Wed Feb 20 08:59:37 CET 2008
Fixes:
- match ENVELOPE and BODYSTRUCTURE more strict in the
grammar, to avoid confusion. [Zach Levow]
- get_envelope and get_bodystructure failed for servers which
did not return the whole answer in one piece. [Zach Levow]
- do not produce parser errors when get_envelope does not
return an envelope. [Zach Levow]
- PLAIN login response possibly solely a '+' [Zach] and [Nick]
version 3.04: Fri Jan 25 09:25:51 CET 2008
Fixes:
- read_header fix for UID on Windows Server 2003.
rt.cpan.org#32398 [Michiel Stelman]
Improvements:
- doc update on authentication, by [Thomas Jarosch]
version 3.03: Wed Jan 9 22:11:36 CET 2008
Fixes:
- LIST (f.i. used by folders()) did not return anything when the
passed argument had a trailing separator. [Gunther Heintze]
- Rfc2060_datetime() must include a zone.
rt.cpan.org#31971 [David Golden]
- folders() uses LIST, and then calls a STATUS on each of the
names found. This is superfluous, and will cause problems when
the STATUS fails... for instance because of ACL limitations
on the sub-folder.
rt.cpan.org#31962 [Thomas Jarosch]
- fixed a zillion of problems in the BodyStructure parser. The
original author did not understand parsing, nor Perl.
- part numbering wrong when nested messages contained multiparts
Improvements:
- implementation of DIGEST-MD5 authentication [Thomas Jarosch]
- removed call for status() in Massage(), which hopefully speeds-up
things without destroying anything. It removed a possible deep
recursion, which no-one reported (so should be ok to remove it)
- simplified folders() algorithm.
- merged folder commands, like subscribe into one.
- added unsubscribe()
rt.cpan.org#31268 [G Miller]
- lazy-load Digest::HMAC_MD5
version 3.02: Wed Dec 5 21:33:17 CET 2007
Fixes:
- Another attempt to get get FETCH UID right. Patch by [David Golden]
version 3.01: Wed Dec 5 09:55:43 CET 2007
Changes:
- removed version number from ::BodyStructure
Fixes:
- quote password at login.
rt.cpan.org#31035 [Andy Harriston]
- empty return of flags command should be empty list, not undef.
rt.cpan.org#31195 [David Golden]
- UID command does not work with folder management commands
rt.cpan.org#31182 [Robbert Norris]
- _read_line simplifications avoids timeouts.
rt.cpan.org#31221 [Robbert Norris]
- FETCH did not detect the UID of a message anymore.
[David Golden]
Improvements:
- proxyauth for SUN/iPlanet/NetScape IMAP servers.
patch by rt.cpan.org#31152 [Robbert Norris]
- use grep in stead of map in one occasion in MessageSet.pm
[Yves Orton]
version 3.00: Wed Nov 28 09:56:54 CET 2007
Fixes:
- "${peek}[]" should be "$peek\[]" for perl 5.6.1
rt.cpan.org#30900 [Gerald Richter]
version 2.99_07: Wed Nov 14 09:54:46 CET 2007
Fixes:
- forgot to update the translate grammar.
version 2.99_06: Mon Nov 12 23:21:58 CET 2007
Fixes:
- body structure can have any number of optional parameters.
Patch by [Gerald Richter].
- get_bodystructure did not take the output correctly [Gerald Richter]
- parser of body-structure did not handle optional body parameters
Patch by [Gerald Richter], rt.cpan.org#4479 [Geoffrey D. Bennet]
version 2.99_05: Mon Nov 12 00:17:42 CET 2007
Fixes:
- pod error in MessageSet.pm
- folders() without argument failed. [Gerald Richter]
Improvements:
- better use of format syntax in date formatting.
- Rfc2060_datetime also contains the time.
- append_file() now has options to pass flags and time of file
in one go. [Thomas Jarosch]
version 2.99_04: Sat Nov 10 20:55:18 CET 2007
Changes:
- Simplified initiation of IMAP object with own Socket with a new
option: RawSocket [Flavio Poletti]
Fixes:
- fixed read_line [Flavio Poletti]
- fixed test-run in t/basic.t [Flavio Poletti]
version 2.99_03: Thu Nov 1 12:36:44 CET 2007
Fixes:
- Remove note about optional Parse::RecDescent by Makefile.PL;
it is not optional anymore
Improvements:
- When syswrite() returns 0, that might be caused by an error
as well. Take the timeout/maxtemperrors track.
rt.cpan.org#4701 [C Meyer]
- add NTLM support for logging-in, cleanly intergrated. Requires
the user to install Authen::NTLM.
version 2.99_02: Fri Oct 26 11:47:35 CEST 2007
The whole Mail::IMAPClient was rewritten, hopefully without
breaking the interface. Nearly no line was untouched.
The following things happened:
- use warnings, use strict everywhere
- removed many lines which were commented out, over the years
- $self->_debug if $self->Debug checked debug flag twice
- $self->LogError calls where quite inconsequent wrt $@ and carp
- consequent layout, changed sporadic tabs in blanks
- consequent calling convensions
- \0x0d\0x0a is always \r\n
- zillions of minor syntactical improvements
- a few major algorithmic rewrites to simplify the code, still
many oppotunities for improvements.
- expanded "smart" accessor methods, search abbreviations,
and autoloaded methods into separate subs. In total much
shorter, and certainly better understandable!
- fixed many potential bugs.
- labeled some weird things with #????
Over 1000 lines (30%!) and 25kB smaller in size
Needs to be tested!!!! Volunteers?
Fixes:
- Exchange 2007 only works with new parameter: IgnoreSizeErrors
rt.cpan.org#28933 [Dregan], #5297 [Kevin P. Fleming]
- Passed socket did not get selected.
debian bug #401144, rt.cpan.org# [Alexander Zanger],
#8480 [Karl Gaissmaier], #8481 [Karl Gaissmaier],
#7298 [Herbert Engelmann]
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=401144
- Seperator not correctly extracted from list command.
rt.cpan.org#9236 [Eugene Koontz], #4662 [Rasjid]
- migrate() Massage'd foldername twice
rt.cpan.org#20703 [Peter J. Holzer]
- migrate() could loop because error in regexp.
rt.cpan.org#20703 [Peter J. Holzer]
- migrate() append_string result not tested.
rt.cpan.org#8577 [guest]
- Failing fetch() returned undef, not empty list.
rt.cpan.org#18361 [Robert Terzi]
- Fix "use of uninitialised" warning when expunge is called
rt.cpan.org#15002 [Matt Jackson]
- Fix count subfolders in is_parent, regexp did not take care
of regex special characters in foldername and seperator.
rt.cpan.org#12883 [Mike Porter]
- In fetch_hash(), the capturing of UID was too complicated
(and simply wrong)
rt.cpan.org#9341 [Gilles Lamiral]
- overload in MessageSet treated the 3rd arg (reverse) as
message-set.
- do not send the password on a different line as the username
in LOGIN. Suggested by many people, amongst them
rt.cpan.org#4449 [Lars Uffmann]
- select() with $timeout==0 (no timeout) returns immediately.
Should be 'undef' as 4th select parameter.
rt.cpan.org#5962 [Colin Robertson] and [Jules Agee]
- examine() remembers Massage()d folder name, not the unescaped
version. rt.cpan.org#7859 [guest]
Improvements:
- PREAUTH support by rt.cpan.org#17693 [Danny Siu]
- Option "SupportedFlags", useful when the source supports
different flags than the peer in migrate().
Requested by rt.cpan.org#12961 [Don Christensen]
- Fast_io did not clear $@ on unimportant errors.
rt.cpan.org#9835 [guest] and #11220 [Brian Helterline]
- Digest::HMAC_MD5 and MIME::Base64 are now prerequisits.
rt.cpan.org#6391 [David Greaves]
- PLAIN (SASL) authentication added, option Proxy
rt.cpan.org#5706 [Carl Provencher]
- removed Bodystructure.grammar and IMAPClient.cleanup from dist.
- reworked Bodystructure and MessageSet as well.
- EnableServerResponseInLiteral now autodetect (hence ignored)
version 2.99_01:
After 4 years of silence, Mark Overmeer took maintenance. David
Kernen could not be reached. Please let him contact the new
maintainer.
A considerable clean-up took place, fixing bug and adapting the
distribution to current best practices.
- use "prompt" in Makefile.PL, to please CPAN-testers
- removed old Parse::RecDescent grammars
- include Artistic and Copying (GPL) into COPYRIGHT file
- remove INSTALL_perl5.80
- removed all the seperate Makefile.PLs and test directories
- removed the hard-copy of all involved RFCs: there are better
sources for those.
- converted tests to use "Test::More"
- Authmechanism eq 'LOGIN' understood.
- test for CRAM-MD5 removed, because conflicts with test params
from Makefile.PL
- test for fast-io removed, it is Perl core functionality
- require IO::Socket::INET 1.26 to avoid Port number work-around.
- Parse::RecDescent is required, and the grammars are pre-parsed
in the distribution. This makes the whole installation process
a lot easier.
- Update Todo, and many other texts.
- added pod tester in t/pod.t
- cleaned-up the rt.cpan.org bug-list from spam. The next
release will contain fixes for the real reports.
|