This version extends the log messages to show why a blacklist is
matched. It also fixes a few minor bugs.
Added a filter to sendrecv so input containing "\r\n" will be
translated into CRLF without being interpreted as a line
terminator (so multiple commands can be sent in a single "packet")
and input containing "\0" will be translated into NULL bytes
so NULL characters don't have to be embedded in the test scripts.
Added support for the RSET command to smtpdummy.
Added a "priority" field to the input file for dnsdummy to force
some responses to be sent after others, no matter what order
they were received.
Fixed nihdns_mx() to query names for A records using the query
types configured for MX queries, not A queries. Thanks to Eric
Shubert for reporting this one.
Changed smtp_filter() and middleman() to discard any buffered
input after TLS is started. This prevents the injection of
commands into a secure session by sending extra input in the
same packet as the "STARTTLS" command. Not really a security
problem but good practice anyway. Thanks to Eric Shubert for
reporting this one.
Fixed a bug in examine_entry() that was cutting off 1-3 characters
from the end of target_entry every time it was called.
Changed check_ip_in_rdns_keyword() to return the line number of
the matching file as its return value and the name of the
matchine file in a reference variable.
Added reject_reason and strlen_reject_reason to struct rejection_data
to allow the triggered filter to return some text to indicate
why it triggered.
Changed set_rejection() to accept new parameters to set reason
text within the rejection structure if available.
Changed set_rejection() to accept a new parameter to append to
the rejection text if available.
Added reset_rejection() to change either the rejection text or
the reason text within an existing rejection_data structure
without erasing previously-set values.
Changed nihdns_rbl(), check_dnsrbl() and check_rhsbl() not to
accept a format string or build part of the rejection message.
That job belongs to the caller(s).
Changed filter_rdns_blacklist(), filter_rdns_blacklist_file(),
filter_rdns_blacklist_dir(), filter_ip_blacklist(),
filter_ip_in_rdns_blacklist(), filter_dns_rbl(), filter_dns_rhsbl(),
filter_sender_blacklist(), filter_sender_rhsbl() and
filter_recipient_blacklist() to save the reason for their
rejection in the reject_reason variable in rejection_data.
Changed the log messages showing ALLOWED/DENIED to always output
the "reason:" field and fill it with the text returned by the
triggered filter so the sysadmin can figure out what happened
or "(empty)" if no text was saved. Thanks to Eric Shubert for
suggesting this one.
Changed the way DNS timeout values are read from the configuration
file, the command line, /etc/resolv.conf and the environment
so that values given in the config file or on the command line
are not overridden by values in /etc/resolv.conf or the
environment. Thanks to Teodor Milkov for reporting this one.
Changed the reject-empty-rdns filter, the IP-related black/whitelist
filters and the IP-related RBL filters to skip their tests if
the incoming IP address is 0.0.0.0. This is for connections
from IPv6 hosts -- those filters can be skipped until full IPv6
support can be added. Thanks to Daniel Anliker for suggesting
this.
Changed the way the flag FILTER_DECISION_TRANSIENT_DO_NOT_FILTER
is handled by smtp_filter() and middleman() so a transient
non-rejection (e.g a recipient whitelist) isn't held over to
later recipients. The interaction between the recipient whitelist
and the graylist filter was fixed in version 4.0.0 but an issue
still remained between recipient whitelists and other non-transient
rejections like the missing rDNS filter. Thanks to bischowski
for reporting this one.
Changed smtpdummy to use memchr() instead of strchr() so testing
input with NULL bytes will work correctly.
While here, remove paches for ancient Darwin.
Changes to the Cyrus IMAP Server since 2.4.12
* Bug #3565 - fix gcc compiler warnings - thanks Dilyan Palauzov
<dilyan.palauzov@aegee.org>
* Bug #2685 - rename annots in delayed folder delete. Avoids
annotations "reappearing" when a folder is recreated
* Bug #3566 - actually fix in a backward compatible way. 2.4.12 broke
older versions of bison
* Lots of small cleanups from CMU as they prepared to build RSS into
their 2.4 build. Thanks Ken
* Bug #3591/#3609 - fix crash in mupdate on partition move
* Bug #3610 - fix replication of partition move
* Bug #3564 - document the way prefork interacts with multiple
network protocols
* Bug #3586 - allow rename of "\Noselect" if subfolders exist
* A handful of small cleanups (#3593, #3594, #3595) from David Carter
<dpc22@cam.ac.uk>. Very much appreciated
* Disabled duplicate_check DEBUG level log messages by default.
Thanks Philip Prindeville <philipp@redfish-solutions.com>
* Bug #3608 - log mailbox name in more sync failure cases
* Bug #3615 - fix proxyd_disable_mailbox_referrals. Thanks Andrew
Morgan <morgan@orst.edu>
* Bug #3611 - fix crash in sync_mailbox_full if expunge fails
* Backported some nice fixes from master, including safer thread/sort
(there were some crashes on bad messages before)
* Fixed infinite loop on suppress_capabilities with substrings of
other capabilities. Ouch.
* Fixed LIST and LSUB again - this time to make LIST "" "*%" work
without breaking other things
* Bug #3588 - make XFER not break if the wrong server name was used.
The start of making murder safer
* Bug #3603 - tidied up usage of kick_mupdate so it never gets called
on standard murder backends
* Bug #3604 - always suppress the DELETED.* mailbox names, even if
delete_mode is immediate. It means a config change or different
frontend won't show undeletable mailboxes
* Bug #3602 - allow UpperCase in service names to work
Pantomine defines a structure named "timezone" which clashes with the
system definition. It was renamed to "timezonePantomine". While
technically it may result in change in the pkg binary, no PKGREVISION
bump is necessary because it's functionally the same as the previous
version, assuming it actually built on the platform in question.
According to the commit on 2009-12-15, the previous version of mail/cue
(20090209) was patched to support OpenSSL 1.0. However, mail/cue still
uses MD2 which is not built by default by OpenSSL 1.0. The update to
version 20100426 on 2011-11-27 did not improve the situation.
Until mail/cue is fixed upstream or patched here to avoid using MD2, it is
being marked NOT-FOR-DRAGONFLY.
Builtin librarys like com_err should only be used if there is are proper
buildlink3.mk and builtin.mk files for the library, otherwise part of the
point of having the buildlink/builtin system is lost.
There no point in having a buildlink/builtin files for com_err as
currently only three packages use it by itself (mail/cyrus-imapd*) and
using the package suppled library only adds 72K to the package size.
== Tue Apr 26 09:59:56 UTC 2011 Mikel Lindsaar <mikel@rubyx.com>
* Remove ActiveSupport from the dependencies, load Active Support if present, or use internals if not
* Created v2.2 branch for all 2.2 related commits
* Update activesupport require to use inflector - closes#217
* Version bump to 2.3 and gem release
- add an explicit expunge when closing an IMAP mailbox, for servers that
incorrectly do not do this when the mailbox is closed. Thanks: Nicolas
Pomarède.
- fix incorrect section reference for `mailboxes` parameter in documentation.
Thanks: Ross Boylan.
- fix getmail_fetch broken in 4.21.0. Thanks: Chris Donoghue.
Module Name: pkgsrc
Committed By: sbd
Date: Wed Dec 7 20:39:19 UTC 2011
Modified Files:
pkgsrc/mail/cyrus-imapd: Makefile
pkgsrc/mail/cyrus-imapd23: Makefile
pkgsrc/mail/cyrus-imapd24: Makefile
Log Message:
If a package Makefile is going to try and detect a builtin libraray it
should honor the PREFER* variables.
Changes from previous:
version 3.30: Fri Nov 11 09:37:00 EST 2011
- rt.cpan.org#72347: Starttls array ref argument dereferenced twice
[Jonathan Buhacoff]
- during connect(): Port now defaults 143 or 993 if $self->Ssl
[Kodi Arfer]
- stop reconnect deep recursion if server disconnects on login
[Luca Ferrario]
- reconnect() now returns 1 on success; on error undef or 0=recursive
- handle EBADF from syswrite in _send_bytes
- rt.cpan.org#67263: add RFC4978 IMAP COMPRESS Extension support
[SDIZ]
+ new method: compress()
+ new attributes: Compress Readmoremethod
- general code cleanup:
+ new() now always returns $self or undef (never $sock any more)
+ Socket() now always return a socket or undef
+ login() now always return $self or undef
+ _read_more() will now use Readmoremethod if set
- missing second arg '' for encode_base64 causing AUTHENTICATE
PLAIN to fail on lines longer than 76 characters
[Yoshiho Yoshida]
version 3.29: Tue Aug 9 00:33:52 EDT 2011
- rt.cpan.org#69876: ENVELOPE as part of fetch_hash convenience method
[Chris Huttman]
+ added Mail::IMAPClient::BodyStructure::Envelope->parse_string($str)
convenience method for handling ENVELOPE data from fetch_hash
- rt.cpan.org#68310: folders() should not call exists()/STATUS
[Gilles Lamiral]
- affects folders() and subscribed() methods
+ use selectable() instead of exists() in call
- consider removing extra call to folders()/subscribed()
+ ensure separator is set properly in folders()
+ selectable now properly checks for \Noselect flag
+ update folders() POD to match implementation behavior
- rt.cpan.org#68648: [patch]: CAPABILITY after authenticate
[Stef Simoens]
+ delete cache after State set to Authenticate
- State() is no longer an auto-generated method
- rt.cpan.org#68755: provided socket loses blocking in 3.19-3.28
[Martin Schmitt]
version 3.28: Fri Mar 4 00:17:38 EST 2011
- rt.cpan.org#66004: internaldate() return undef if no internaldate in reply
[Jason Long]
- rt.cpan.org#66367: fetch_hash uses Escaped_results() in 3.26/3.27
(redo) rt.cpan.org#63524: fetch_hash() parse errors
[Mathias Reitinger]
+ fetch_hash: only Escape() data in parenthesized list
+ update fetch_hash test and add a new test
- do not touch CRLF in Escape()/Unescape()
- added Escape() method
- rt.cpan.org#66287: flags results truncated due to Maxcommandlength
[Erik Colson]
- rt.cpan.org#65694: SASL PLAIN: bad order of login data
[Willi Mann]
version 3.27: Sun Feb 13 14:37:27 EST 2011
- rt.cpan.org#65694: migrate fails
[Erik Colson]
- rt.cpan.org#65470: uninitialized warning in message_to_file
[Gilles Lamiral, Mark Hedges]
- rt.cpan.org#61835: (DOC) in LIST context undef may be returned
[Stefan Völkel]
+ warn/highlight behavior in docs Errors section
- updated documentation
+ migrate() documentation fixed
+ moved Custom Authentication Mechanisms toward end
+ recommended use of scalar context due to historical API behavior
version 3.26: Mon Jan 31 22:15:04 EST 2011
- *require Perl 5.8.1 as constant use is invalid on 5.6
- rt.cpan.org#63524: fetch_hash() parse errors
[Brian Kroth]
+ fixed handling of LITERAL values in response
+ fixed handling of field names with a dash (e.g. X-SAVEDATE)
+ fetch_hash now uses Escaped_results() method
- *fixed Escaped_results() to properly join LITERAL data with
the data that comes before and after it
- *rt.cpan.org#60945: append_file() does not interpret $date as expected
[Jason Long]
$date should now be 1 (to use the file mtime) or a valid RFC3501 date
- *rt.cpan.org#61292: memory consumption with message_string()/append()
rt.cpan.org#61806: Major problem with one function in IMAPClient
[Gilles Lamiral, Casey Duquette]
+ use @_ / $_[<num>] in critical places to avoid pass by
value memory overhead
+ use in memory files in a few critical places as that code
path in Mail::IMAPClient is significantly more efficient
with internal memory usage
+ *new (undocumented/do-not-use-without-good-reason)
attribute Maxappendstringlength used by append() and
append_string() holds the size (in bytes, default 1 MiB)
that triggers when message SCALAR(s) passed to these
methods will be treated as an in memory file. This
attribute will likely be removed in a future version.
+ *append() and append_string() now call append_file() and
use an im memory file when length($message) is greater
than Maxappendstringlength; other minor code cleanup
+ *message_string() now calls message_to_file() and uses an
in memory file
+ refactor message_to_file() to use internal _imap_uid_command()
+ update _read_line() to be more efficient w/CPU in critical
section by pulling isa() checks out of main loop also
conserve memory by not storing an extra copy of LITERAL
data if the data was put into a filehandle from the caller
+ Memory/working set (KB) comparison (Perl 5.10 cygwin Win7):
- test: message_string on 6.1M msg and then append 6.1M msg
version | start | after message_string | after append
--------+-------+----------------------+-------------
2.2.9 | 7624 | 74404 | 131896
3.25 | 7716 | 74408 | 156532
3.26 | 7684 | 33372 | 42608
- minor arg cleanup of noop() and tag_and_run()
- rt.cpan.org#63444: relax get_envelope(), allow empty reply-to
[Nikolay Kravchenko]
- rt.cpan.org#61068: append_string can invalidate a good $date
- rt.cpan.org#60045: Logout error if delay between BYE and tagged OK
[Armin Wolfermann]
no longer set an error when this happens
- rt.cpan.org#61062: migrate() errors
[Johan Ekenberg]
+ rewrote migrate() to be functional and simple
- Update README and cleanup several old or out of date files
version 3.25: Fri May 28 00:07:40 EDT 2010
- fix body_string parsing bug and added tests in t/body_string.t
[Heiko Schlittermann]
- rt.cpan.org#57661: uninitialized value warning in IMAPClient::thread
[Max Bowsher]
- rt.cpan.org#57337: Correctly handle multiparts in BodyStructure.pm
[Robert Norris]
fixes in Mail::IMAPClient::BodyStructure::bodystructure for
bugs still in release 3.24
- rt.cpan.org#57659: install fails when using cPanel GUI
[Ken Parisi]
hack Makefile.PL to use alarm() and timeout prompt() gracefully
- relax t/basic.t logout() error check (allow 'BYE' instead of 'OK')
- left examples/idle.pl out of MANIFEST for 3.24
version 3.24: Fri May 7 17:02:35 EDT 2010
- rt.cpan.org#48912: wrong part numbers in multipart messages
[Dmitry Bigunyak, Gabor Leszlauer]
- fix Mail::IMAPClient::BodyStructure::bodystructure to
properly assign parts for messages using multipart and also
include .TEXT parts as well (still not including top level
HEADER and TEXT though - bug?)
- allow _load_module() to set $@ and LastError if module load fails
- rt.cpan.org#55527: [no] disconnect during DESTROY
[Stefan Seifert]
- updated logout documentation to correctly state that DESTROY
is not used to force an automatic logout on DESTROY despite
documentation that indicated otherwise
- update append* documentation to match current implementation
- rt.cpan.org#55898: append_file can send too many bytes
[Jeremy Robst]
- avoid append_file corner cases operating on lines instead of buffers
- use binmode on filehandle in append_file
- add tests to t/basic.t for append_file
- rt.cpan.org#57048: _quote_search() using $_ in loop instead of $v
[Matthaus Kiem]
- added examples/idle.pl program showing use of idle and idle_data
- idle_data() should not read/block after server returns data
[Marc Thielemann]
- idle_data() _get_response regexp updated to not match errors
- idle_data() now uses a timeout of 0 by default as documented
- _get_response() now checks for defined($code) to allow $code==0
thing happens from time to time with python27 as with python26.
Whatever's going on apparently strikes randomly, so changing something
and rebuilding successfully doesn't prove that you've fixed it.
* Introduce scripts option to install optional scripts.
Changelog:
Version 1.4.26:
- A new version of the msmtpq script fixes serious bugs. To update to the new
version of the script, you need to remove the old msmtpQ symlink, change
msmtpQ to msmtpq in your MUA config, and use msmtp-queue for queue management.