0.66.1 2011-04-13 Sam Varshavchik * msg2html.c (showmsgrfc2369_header): Fix memory corruption. 2011-04-11 Sam Varshavchik * tcpd/libcouriertls.c (tls_create): Remove SSLv2_method(). (tls_create): Remove "!SSLv2" from the default TLS_CIPHER_LIST. 2011-04-07 Sam Varshavchik * imap/mkimapdcert.in (prefix): Create imapd.pem with 600 perms. * imap/mkpop3dcert.in (prefix): Create pop3d.pem with 600 perms. 2011-04-07 "Stefan Hornburg \(Racke\)" * courier/module.esmtp/mkesmtpdcert.in: Create esmtp.pem with 600 perms. 0.66.0 2011-04-02 Sam Varshavchik * rfc2045/rfc3676parser.c: Detect content produced by broken mail software (I'm looking at you, Apple Mail), that spews out an entire paragraph as a single physical line of text. When an excessively long line is detected, it gets rewrapped manually. 2011-03-31 Sam Varshavchik * unicode/unicode_linebreak.c: Replace manually-maintained buffer with unicode_buf. * unicode/unicodebuf.c: Factored out unicode buffer utilities from webmail/html.c * webmail/html.c (search_tags): Receive a ubuf ptr for the key. Remove ubuf_append_0(). * rfc2045/rfc3676parser.c (count_quote_level): Revert previous patch. Do not parse > indentation in non-flowed text. * rfc2045/rfc2045reply.c (reply_contents): Remove extra space after > prefix was reformatting non-flowed text. 2011-03-30 Sam Varshavchik * webmail/html.c (open_element): Fix accounting of discardable elements. 2011-03-29 Sam Varshavchik * webmail/filter.c: Remove lots of dead code. Fix force-wrapping. 2011-03-28 Sam Varshavchik * html.c (seen_attrname): Permit '-' characters in attribute names (HTTP-EQUIV). 2011-03-27 Sam Varshavchik * html.c (seen_closing_elem): Allow : character in closing element name. (seen_opening_elem): Allow : character in opening element name. (seen_attrname): Allow : character in attribute name. * msg2html.c (do_text_line_contents): Fix memory corruption. * folder.c (get_textlink): Memory leak. * msg2html.c (showmsgrfc2369_header): Fix memory corruption/leak. 2011-03-26 Sam Varshavchik * rfc2045/rfc3676parser.c (count_quote_level): Parse > indentation even in non-flowed text. * html.c: Complete rewrite of the HTML filter. * maildir.c (opencache): Plug a memory leak. 2011-03-26 Sam Varshavchik * unicode/unicode_htmlent.c: unicode_html40ent_lookup() -- lookup HTML 4.0 entities. 2011-03-19 Sam Varshavchik * rfc2045/rfc2045reply.c (mkforward): Handle PGP-signed messages. * images/sqwebmail.css: added white-space: nowrap to several tables in order to avoid ugly wrapping during real estate shortages. * newmsg_create.c (newmsg_createdraft_do): Fix signature separator. * unicode/unicode.h: Added unicode_isspace(). * unicode/unicode_wordbreak.c: Implementation of tr29. * unicode/unicode.h: unicode_lb_set_opts(), plus derivatives: set artbirary linebreaking options. Two options that tailor the unicode linebreaking algorithm. 2011-03-16 Sam Varshavchik * rfc2045/rfc2045reply.c (mkforward): Rewrite from scratch. * rfc2045/rfc2045replyunicode.c: Remove rfc2045_makereply_unicode(), superceded by rfc2045_makereply(). * maildrop/testsuite.in (LANG): Additional test suites. * maildrop/mailbot.c (usage): Some options were missing from the usage message. 2011-03-13 Sam Varshavchik * webmail/images/sqwebmail.css: Adjust styles for quoted content. * webmail/msg2html.c (text_set_quote_level): Omit our own classes from generated HTML mail that's going to be sent to someone. * webmail/html.c (filtered_tag): Automatically add a class to BLOCKQUOTE TYPE=CITE elements. Add a nested DIV to all BLOCKQUOTE elements. 2011-03-12 Sam Varshavchik * rfc2045/Makefile.am: Removed all obsoleted rfc2646 code, now that all its users are gone. * webmail/autoresponse.c: Remove obsolete rfc2646 code, use common code shared with newmsg.c for reading and saving autoreply text. * webmail/rfc2646html.[ch]: Removed. * courier/doc/install.html: Document the webmail footer file. Always documented in the sqwebmail tree, now document it here too. * webmail/pref.c: Signature files now always get saved in UTF-8. * webmail/newmsg.c: Any sender's signature, and custom site footer, are shown when previewing the message, but get omitted from the edit text area. Signatures won't automatically appear in the editable text box when creating a new message, but will be automatically added when previewing the message and subsequently sending it. Custom site footer files must now be explicitly coded in UTF-8, and follow the format=flowed, delsp=yes plain text format. * webmail/folder.c: Update draft message formatting, to work with the new msg2html layer. * webmail/newmsg.c: msg2html layer cleanup. 2011-03-06 Sam Varshavchik * images/sqwebmail.css: Replace message-text-plain default style with sans serif font. * unicode/unicode.c (convert_flush_iconv): Save errno in case it gets clobbered by the callback function. * webmail/sqispell.c (show_part): filter() now takes a unicode stream. * webmail/newmsg_create.c (newmsg_createdraft_do): filter() now takes a unicode stream. * webmail/msg2html.c: Rewrite plain/flowed text formatted to use new rfc3676 functions. * webmail/filter.c: Input to the filter object is now unicode. 2011-03-02 Sam Varshavchik * courier/doc/courier.sgml: Clarify defaultdomain requirements. 2011-02-27 Sam Varshavchik * unicode/mkcommon.pm: Reduce unicode table block size to 256, trading in larger table size for faster lookups in the hot code path. 2011-02-26 Sam Varshavchik * unicode/unicode.h (mail): Added iterator-based conversion functions to/from unicode chars. 2011-02-24 Sam Varshavchik * unicode/unicode.c (save_unicode): Optimize buffering of unicode characters. 2011-02-17 Sam Varshavchik * webmail/folder.c (truncate_at): Only break characters at grapheme breaks. * unicode/unicode.h: Adjust unicode_wcwidth() to return 0 for BK, CR, LF, CM, NL, WJ, ZW characters. 2011-02-16 Sam Varshavchik * unicode/unicode.h: Internal implementation if tr14, linebreaking rules. 2011-02-12 Sam Varshavchik * unicode/unicode_graphemebreak.c: unicode_grapheme_break() is an implementation of TR29. * rfc822/rfc2047.c (do_encode_words_method): Avoid splitting RFC 2047-encoded works in a middle of a grapheme. 2011-02-10 Sam Varshavchik * gpglib/gpg.c (copyfp): Strip CRs from verified/decrypted content. * webmail/html.c (replacelink): Fix URL washing. 2011-01-24 Sam Varshavchik * rfc822/rfc2047.c (rfc2047_encode_callback): Rewrite broken logic. * unicode/unicode.c (deinit_iconv): Incomplete multibyte character remaining at the end of conversion was falsely being reported as a callback failure, rather than a conversion failure. 2011-01-22 Sam Varshavchik * Check if -liconv is needed to get iconv. * Clean up leftover unicode-related crud in configure scripts. 2011-01-22 Gordon Messmer * rfc1035/rfc1035mksocket.c (rfc1035_mksocket): Set IPV6_V6ONLY socket option to OFF for IPv6 sockets, if the system default is on. 2011-01-22 Sam Varshavchik * Removed the last remains of the old unicode mapping code. * unicode/unicode.c (init_default_chset): Import additional logic from the cone tree: CHARSET and MM_CHARSET environment variables override locale's charset indication. If unable to determine locale, parse lang.codeset@modifier string in LANG. * courier/sendmail.c (main): Reset CHARSET, MM_CHARSET, and LANG. * pcp/pcp.c (usage): Unicode API update. * rfc822/rfc2047.c (rfc2047_encode_str): Removed rfc2047_encode_callback_base64, invoked from rfc2047_encode_str(). Rewrite rfc2047_encode_str() to use the new unicode API. 2011-01-22 Sam Varshavchik * rfc822/rfc2047u.c: Unicode API updates. * courier/cmlm2.C (cmdset): Unicode API update. * mailbot: Unicode API update. * unicode/unicode.h: Replace unicode_x_imap_modutf7 with a #define. Eliminted unicode_x_smap_modutf7, replaced with unicode_x_imap_modutf7, a space, and blacklisted chars. * unicode/unicodecpp.C (convert_tocase): C++ binding for libmail_u_convert_tocase(). * unicode/unicode.c (init_default_chset): Map GNU libc nl_langinfo() return of "ANSI_X3.4*" to "US-ASCII". 2011-01-17 Sam Varshavchik * unicode/unicode_ultcase.c (unicode_tc): Convert test character to lowercase first, before converting to titlecase -- UnicodeData does not specify an uppercase char's titlecase, directly. * maildir/maildirsearch.h (mail): New C++ binding method - getSearchLen(). 2011-01-16 Sam Varshavchik * unicode/unicode.h: Define C++ binding for libmail_u_convert(), mail::iconvert. * maildir/maildirsearch.h (mail): Convert the C++ binding to use the unicode-aware, case-insensitive, whitespace-collapsing algorithm. 2011-01-15 Sam Varshavchik * webmail/strftime.c (strftime_unicode): Use libmail_u_convert_tobuf() instead of the obsoleted unicode functions. * webmail/msg2html.h: Renamed the character_set_follows callback as the charset_warning callback. * webmail/msg2html.c (showtexthtml): Invoke the charset_warning callback, after generating the formatted message contents, and only if the updated rfc2045_decodetextmimesection() function returned an indication of a charset conversion failure (showtextplain): Ditto. * webmail/maildir.c (execute_maildir_search): Use libmail_u_convert_toutf8() instead of the obsoleted unicode functions. (folder_toutf7): Use libmail_u_convert_tobuf() instead of the obsoleted unicode functions. (folder_fromutf7): Use libmail_u_convert_tobuf() instead of the obsoleted unicode functions. * webmail/ldaplist.c (getfilter): Use libmail_u_convert_toutf8() instead of the obsoleted unicode functions. * webmail/folder.c (show_msg_match_str): Use libmail_u_convert_fromutf8() instead of the obsoleted unicode functions. (truncate_at): Use libmail_u_convert_tou_init() and libmail_u_convert_fromu_init() instead of the obsoleted unicode functions. * webmail/auth.c (login_fromhdr): Use libmail_u_convert_toutf8() instead of the obsoleted unicode functions. * webmail/attachments.c (attachments_head): Remove code that used obsolete unicode functions. * webmail/addressbook.c (ab_add): Use libmail_u_convert_toutf8() instead of the obsolete unicode functions. (ab_listselect_fp): Use libmail_u_convert_fromutf8() instead of the obsolete unicode functions. (ab_show_utf8): Ditto. (addressbook): Ditto. * webmail/acl.c: Use libmail_u_convert_toutf8() and libmail_u_convert_fromutf8() instead of the obsolete unicode functions. * unicode/unicode.c (unicode_default_chset): New function calculates the default system unicode charset based on the global locale. (libmail_u_convert_init): Support a phony character set used to encode unicode folder names for IMAP (and SMAP). Passing the phony character set name to libmail_u_convert_init() encodes or decodes to the phony character set. For converting to the phony character set, libmail_u_convert_init() sets up an iconv conversion to UCS-2, then wraps it into a module that converts UCS-2 to the phony character set. For converting from the phony character set, libmail_u_convert_init() sets up an iconv conversion from UCS-2, then wraps it into a module that converts the phony character set to UCS-2. (libmail_u_convert_tocbuf_init): A wrapper to libmail_u_convert_init() that converts to native UCS-4, and saves it into a malloc-ed unicode_char array. (libmail_u_convert_tocbuf_toutf8_init): Convenience wrapper for converting to UTF-8. (libmail_u_convert_tocbuf_fromutf8_init): Convenience wrapper for converting from UTF-8. (libmail_u_convert_toutf8): Convenience wrapper that converts a text string to UTF-8 and returns a malloced buffer with the converted string. (libmail_u_convert_fromutf8): Convenience wrapper that converts a UTF-8 string to another charset, and returns a malloced buffer with the converted string. (libmail_u_convert_tobuf): Convenience wrapper that converts a character string and returns the converted string in a malloced buffer. (libmail_u_convert_fromu_init): Convenience wrapper that sets up a conversion of text to native unicode_chars. (libmail_u_convert_uc): Convenience wrapper for passing unicode chars through libmail_u_convert(). * rfc2045/rfc2646create.c (rfc2646create_alloc): Replace unicode struct pointer argument with a character set string name. Use libmail_u_convert_fromu_init() and libmail_u_convert_tou_init() instead of the obsolete unicode functions. * rfc2045/rfc2231.c: Replace the unicode struct pointer argument with a character set string. Use libmail_u_convert_tobuf() instead of the obsolete unicode functions. * rfc2045/rfc2045decodemimesectionu.c (rfc2045_decodetextmimesection): Add a return value indication of a failed conversion to the requested character set. * maildir/maildirinfo.c: Use libmail_u_convert_tobuf() instead of the obsoleted unicode functions. * gpglib/list.c (definit): Replace the charset field in gpg_list_info, a unicode struct ptr, with a character string. (dolist_callback): Use libmail_u_convert_fromutf8() instead of the obsolete unicode functions. * gpglib/genkey.c (libmail_gpg_genkey): libmail_gpg_genkey() takes a charset name instead of a unicode struct ptr. Use libmail_u_convert_toutf8() instead of the obsoleted unicode functions. 2011-01-09 Sam Varshavchik * imap: Replace all usage of internal unicode tables with iconv. Courier-IMAP now supports searching text given in any character set that's supported by iconv. The internal unicode library is still used for converting unicode to/from lower/uppercase, for functionality not directly available in iconv. Pretty much a rewrite of the entire search/sort/thread implementation. * rfc822/rfc822_parsedt.c: Eliminate the dependency on ctype, replaced them with macros. 2011-01-08 Sam Varshavchik * rfc822/rfc822hdr.c (rfc822hdr_namecmp): Factor out rfc822hdr_namecmp from rfc822hdr_is_addr, and make it usable, generically. * all: Major rewrite of rfc2045 parsing functions, adding an abstraction layer for reading the contents of the parsed rfc 2045 message, rather than reading from a plain file descriptor. * courier/libs/comrwmsg7bit.c (rw_rewrite_msg_7bit): New rfc2045src abstraction layer API update. * gpglib/gpg.c (dosignencode): Ditto. * imap/smap.c: New rfc2045src abstraction layer API update. * maildrop/mailbot.c (main): New rfc2045src abstraction layer API update. * pcp.c (list_msg_textplain): New rfc2045src abstraction layer API update. * rfc822/rfc822hdr.c (rfc822hdr_namecmp): Factor out rfc822hdr_namecmp from rfc822hdr_is_addr, and make it usable, generically. * webmail/msg2html.c (showtexthtml, showtextplain): New rfc2045src abstraction layer API update. * courier/submit2.C (MessageEnd): Drop checks for 8 bit content in message headers (utf-8 is coming). Removed rfcerrheader.txt, rfcerr2045.txt, rfcerr2046.txt, rfcerr2047.txt. * courier/doc/courier.sgml: Removed the documentation for BOFHBADMIME, accordingly. * pcp/pcpd.c (readnewevent): Fix uninitialized memory usage breaking pcpd. * pcp/pcp.c (list_msg_textplain): New rfc2045src abstraction layer API update. * webmail/msg2html.c (showtexthtml, showtextplain): New rfc2045src abstraction layer API update. * webmail/newmsg_newdraft.c (newmsg_newdraft): New rfc2045src abstraction layer API update. * webmail/newmsg.c (newmsg_showfp): New rfc2045src abstraction layer API update. 2011-01-04 Sam Varshavchik * rfc2045/rfc2045reply.c (mkreply): When copying a message's original headers into a DSN-formatted mailbot-generated reply, preserve the case of the original headers' names. 2011-01-03 Sam Varshavchik * rfc2045/rfc2045decodemsgtoutf8.c, rfc2045/rfc2045.h: Replace function arg and passthrough arg to rfc2045_decodemsgtoutf8() with a pointer to a structure that gives callback info. The function that receives the decoded content now takes a character string+count, instead of a single character. * rfc2045/reformime.c (doconvtoutf8_stdout): Corresponding changes. * webmail/maildir.c (do_maildir_search): Corresponding changes. * maildrop/maildropfilter.sgml: Clarify wording. * maildir/maildirsearch.c (maildir_search_start_unicode): Search was broken, how did I miss this? * folder.c (folder_initnextprev): Fix bug when displaying a message NOT after search results. * maildir.c (do_search_utf8): Search was broken for non-Latin charsets. 2011-01-02 Sam Varshavchik * rfc2045/rfc2045decodemsgtoutf8.c: Propagate all non-0 exit codes from the callback function, don't force to a negative value. * rfc2045/rfc2045decodemimesectionu.c: Add descriptive comments. * rfc2045/testsuite (Content-Type): Add additional test for proper iconv-based decoding implementation. 2011-01-01 Alessandro Vesely * courier/module.dsn/dsn.c: Adjust indentation to avoid parts of DSNs unintentionally interpreted as quoted content. 2010-12-30 Sam Varshavchik * courier.spec.in (Requires): Require /etc/cron.hourly, rather than cronie or vixie-cron, so that it'll work with both. 2010-12-18 Sam Varshavchik * courier/module.esmtp/courieresmtpd.c: An AUTH error logs "AUTH" as the failed command in syslog, rather than the last command sent from the client, which may be the password. 2010-12-12 Sam Varshavchik * unicode/Makefile.am: Updated source link to big5-iso.txt. Updated eastasianwidth.h. * maildir/maildirsearch.h: maildir_searchengine uses unicode chars internally. Replace maildir_search_start with maildir_search_start_unicode() and provide a replacement maildir_search_start_str() that widens a narrow char string to unicode char size. * rfc2045/rfc2045decodemsgtoutf8.c (rfc2045_decodemsgtoutf8): Add a pass-through opaque pointer, closure. * rfc2045/rfc2045decodemimesectionu.c (rfc2045_decodetextmimesection): Total rewrite that uses iconv, rather the built-in libunicode. * webmail/images/sqwebmail.css: Additional style sheets for search results context. * webmail/html/en-us/folder.html: Repurpose the folder list page as the search results page. * webmail/maildir.c (maildir_purgesearch): New function - remove search results file from the tmp directory. (maildir_search): Implement searching, save search results in a ":search:" file in the tmp directory. * webmail/folder.c (folder_delmsgs): Preserve search context in a redirect after deleting or moving a message. (show_msg): Display matched contexts if showing messages after a search. (folder_initnextprev): Preserve search contexts in links from the message navigation bar. When showing messages from a search results page, navigate to next/prev matched message, instead of the next/prev message in the folder. (folder_delmsg): Preserve search context in the delete/move message form. * webmail/maildir.c (maildir_loadsearch): Save which message was the last one searched, and show it on the search results page. 2010-12-11 Sam Varshavchik * webmail/folder.h (struct): New msgnum field in the MSGINFO structure. * webmail/maildir.c (maildir_read): Initialize the new msgnum field in the MSGINFO structure. * webmail/maildir.c (maildir_search): Skeleton alternative for maildir_read() that searches the maildir. Does everything but the actual search, returns the first messages from the maildir, as if all of them match the search string. * webmail/folder.c (folder_contents): If the 'search' form parameter is present, call the new maildir_search() function instead of maildir_read(). Move the code that formats a single message line into a separate function, for readability. Instead of using (first message shown + row number) as the message number, use the msgnum parameter in the MSGINFO structure. (folder_navigate): Rename as do_folder_navigate(), folder_navigate() wrapper invokes do_folder_navigate() only if the 'search' form parameter is not present, otherwise it replaces it with "Return to folder" link. * webmail/html/en-us/folder.html - the search box. 2010-12-09 Sam Varshavchik * rfc2045/rfc2045decodemsgtoutf8.c: new function: rfc2045_decodemsgtoutf8(). 2010-11-27 Alessandro Vesely * html.c: Try to fix up sanitization of ugly HTML 0.65.3 2011-02-10 Sam Varshavchik * courier/module.esmtp/esmtpiov.h: iovreset() flushes input buffer after STARTTLS (pushed into 0.65.3). 0.65.2 2010-11-06 Mr. Sam * gpglib/configure.in: Use "gpg2" if "gpg" is not found. * courier.spec.in: Use gnugp2 as a requirement if gnupg is not installed. Update vixie-cron -> cronie. 2010-10-22 Sam Varshavchik * maildrop/maildropex.sgml: Fix formatting problem with man page stylesheet. 2010-10-11 Alessandro Vesely * courier/submit.C: -rfc3848 - specify an RFC 3848-format WITH clause in the Received: header. * courier/module.esmtp/courieresmtpd.c: pass -rfc3848 to submit, trim trailing spaces from received SMTP commands. 0.65.1 2010-10-04 Sam Varshavchik * attachments.c (attach_upload): Always specify client's character set as the upload content's character set. * rfc2045/makemime.c (createsimplemime): Use charset specified in the MIME autoresponse text. 2010-09-21 Sam Varshavchik * maildrop/mailbot.c: Sanity check on the contents of a MIME-formatted autoreply template: it must specify text/plain content type, and its charset gets used as the charset of the formatted autoreply. Drop the existing C-T-E header, and document the requirement that it cannot be a quoted-printable formatted MIME autoreply. 2010-08-21 Sam Varshavchik * Makefile.am (imapd.cnf): Compatibility fixes. 2010-08-16 Sam Varshavchik * courier/module.esmtp/esmtpclient.c (get_sourceaddr): Fix macro typo. 2010-08-15 Sam Varshavchik * webmail/mailfilter.c (clrfields): Added the "noquote" option to the filter screen that sets the donotquote autoreply option. * rfc2045/rfc2045reply.c: added donotquote option, to suppress autoreply text. * maildrop/mailbot.c (main): Add the -N option to mailbot, to set the donotquote option. * maildir/maildirfilter.c: "noquote" autoreply option adds the -N option to the mailbot command line. * maildir/maildirwatch.c (maildirwatch_alloc): Use alarm() to kill the process if FAMOpen() takes more than 15 seconds to return. Should prevent a hung process if FAM/Gamin is fubared. 2010-07-11 Sam Varshavchik * pop3dserver.c: Make printed() and putchar() macros. 2010-07-01 Sam Varshavchik * esmtpd.cnf imapd.cnf pop3d.cnf (default_md): added default_md = sha1 2010-06-28 Sam Varshavchik * --with-certsdir specifies the directory where SSL cert files are installed. Based on a patch by "Elan Ruusamäe" . * rfc822/rfc822.c (rfc822_print_common_nameaddr): Prevent segfault if address decode fails. * Fix make check failure when libidn is not available. 2010-06-25 Sam Varshavchik * courier/module.esmtp/esmtpclient.c (get_sourceaddr): Check SOURCE_ADDRESS_IPV6 if the destination is an IPv6 address, and SOURCE_ADDRESS will be used only for IPv4 destinations. 2010-06-01 Mr. Sam * courier/module.fax/application-postscript.filter.in: Pass the -P option to ghostscript. * courier/module.fax/application-pdf.filter.in: Ditto. 2010-05-31 Sam Varshavchik * Rebuilt man pages with updated stylesheets. 0.65 2010-05-30 Mr. Sam * gpglib/list.c: Handle GnuPG 2 --with-colons output format changes. * gpglib/mimegpgfork.c: GnuPG 2 wants --batch when specifying passphrase-fd. * tcpd/configure.in: Check if explicit linking with libgpg-error is required. 2010-05-01 Mr. Sam * tcpd/libcouriergnutls.c (tls_connect): Fix bad call to gnutls_server_name_set(). Affects Courier compiled with GnuTLS support. 2010-04-26 Sam Varshavchik * maildrop/mailbot.c (main): Set close-on-exec bit on opened files. 2010-04-17 Sam Varshavchik * courier/doc/courier.sgml: Move the SPF section to a separate refsect2 to work around misformatting by the manpage stylesheet. 2010-04-15 Sam Varshavchik * rfc2045/rfc2045reply.c (mkreply): Fix sender's name in the reply salutation. * html/en-us/newmsg.html: Ditto. 2010-04-10 Sam Varshavchik * rfc2045/reformime.sgml: Document the -c option to reformime. 2010-03-20 "Stefan Hornburg (Racke)" * imapd.c (main): Fix typo in alert message. 2010-03-18 Hugo Monteiro * Big quota patch (with some changes). 0.64.2 2010-03-16 Alessandro Vesely * courier/module.local/local.c (rw_local_filter): Fix crash if a local mail filter produces more than bufsiz-1 bytes. 2010-03-12 Sam Varshavchik * imapd.c (main): Dummy FAM/Gamin initialization, report an error during login, upon a failure. 2010-03-10 Sam Varshavchik * imap/imapd.c (imapenhancedidle): Make FAM error more meaningful. 2010-02-25 Bernard Quatermass * pop3dserver.c (main): "disableinsecurepop3" account option disables non-SSL logins. * imapd.c (chkdisabled): "disableinsecureimap" account option disables non-SSL logins. 0.64.1 2010-02-24 Sam Varshavchik * maildrop/mailbot.c (main): Fix memory corruption if the -c option was passed to mailbot. 2010-02-02 "Hanno Böck" * courier/module.esmtp/courieresmtpd.c: Option to disable tarpitting. 2010-01-14 Josip Rodin * maildrop/main.C (run): When using system authentication on platforms where the mail directory does not use the sticky bit, use groupid set by the set-group-id bit on the binary executable, if any. 2010-01-12 Sam Varshavchik * courier/module.local/deliver.c (docommand): Do not invoke an external mail handler with a completely empty environment. Courier startup script already reset the environment, and initialized it with the default system locale, which we want the child process to inherit. * maildrop/main.C (run): In delivery mode, preserve LANG, LANGUAGE, and LC_* environment variables from the parent. 2010-01-09 Klaus Heinz * courier/configure.in: Fix typo 0.64.0 2009-12-18 Sam Varshavchik * courier/ldapaliasd.c (search_maildrop): Escape mail address in alias lookups. 2009-11-22 Sam Varshavchik * rfc822/rfc822.c: Removed rfc822_praddr(). * rfc822/rfc822_getaddr.c (rfc822_getaddr): Implement rfc822_getaddr() by calling rfc822_display_addr_tobuf(), instead of rfc822_praddr(). * rfc822/testsuite.c (doaddr): Remove rfc822_addrlist() and rfc822_namelist(). * rfc822/rfc822.c: remove rfc822_addrlist() and rfc822_namelist() * courier/module.local/deliver.c (dodel): Replace usage of rfc822_addrlist() with rfc822_display_addr_tobuf. * maildrop/reformail.C (add_from_filter): Replace usage of rfc822_addrlist() with rfc822_display_addr_tobuf. * maildrop/recipenode.C (rfc822getaddr): Replace usage of rfc822_addrlist() with rfc822_display_addr_tobuf. * maildrop/reformail.C (main): Removed the -r, -p, -P, -t, -k options, replaced by new mailbot options. * maildrop/mailbot.c (main): New options that set the corresponding parameters to rfc2045_makereply_unicode(): -e, -T, -F -S * rfc2045/rfc2045replyunicode.c (rfc2045_makereply_unicode): Added replytoenvelope setting. Added sophisticated formatting for replysalut. 2009-11-21 Sam Varshavchik * rfc822/rfc822_getaddr.c: Remove rfc822_prname() and rfc822_prname_orlist(), replaced by rfc822_display_name() with a NULL character set. * rfc822/rfc2047u.c (rfc822_display_name): Semantical change -- without an explicit name, display the address as the name. If the requested character set is NULL, do not decode RFC2047-encoded content, return it as is. * webmail/addressbook.c (addressbook): Replace rfc822_getname() by rfc822_display_name() with the character set specified as NULL. * imap/msgenvelope.c (doenva): Replace rfc822_getname() by rfc822_display_name_tobuf() with a NULL character set. 2009-11-17 Sam Varshavchik * rfc822/rfc2047u.c (rfc2047_print_unicodeaddr): Fix several formatting issues with deprecated RFC 822 distribution lists: spurious comma adter the last address, pass the space after the ':' as a separator character. * rfc822/rfc2047.c (counts2/save): Fix line-wrapping of encoded addresses. * rfc822/rfc2047u.c (rfc822_display_addr_tobuf): New function. * webmail/maildir.c (maildir_ngetinfo): Fix logic for locating the name used for salutation. * rfc2045/rfc2045reply.c (mkreply): Fix logic for locating the name used for salutation. 2009-11-14 Sam Varshavchik * webmail/folder.c: In the folder cache file, always store senders and subjects encoded using UTF-8. After upgrading, the folder index may not properly show non-Latin characters until the next message is added to the folder, and the folder cache gets rebuilt. * webmail/addressbook.c: Always use UTF-8 for local sqwebmail address books. After upgrading, it might be necessary to do a one-time conversion of the address book file to UTF-8 encoding. * rfc822/rfc822.c (rfc822_print_common): Rewrite. * rfc822/rfc2047u.c (rfc822_display_name_int): Fixed various rules for encoding names to be more MIME compliant. (rfc822_display_addr_str): Renamed from rfc822_display_addr(), for a consistent API. (rfc822_display_addr): New function, decode the wire format of a single address. Names are MIME decoded, addresses are IDN-decoded. (rfc2047_print_unicodeaddr): Do not output a dummy name for an address without one. (rfc822_display_addr_str_tobuf): New function, version of rfc822_display_addr_str() that collects the output into a buffer. * rfc822/rfc2047.c (rfc822_encode_domain): New function -- IDN-encode a domain, with an optional "user@". (rfc2047_encode_header_addr): Renamed rfc2047_encode_header(), for a consistent API. (rfc2047_encode_header_tobuf): New function, encode a header from displayed format to wire format. Names are encoded using RFC 2047, addresses using IDN. 2009-11-12 Sam Varshavchik * maildrop/maildropfilter.sgml: Typo fix. 2009-11-08 Sam Varshavchik * pcp/pcpdir.c (retrevent): Fix memory leak. * pcp/pcp.c (list): MIME-decode the subjects in the output of the list command. (list_msg_rfc822): Fix MIME-decoding of headers in the output of the retrieve command. (main): Use the default system locale character set. * rfc822/rfc2047.h: Expose raw RFC 2047 decoding function, rfc2047_decoder(). * rfc822/rfc822hdr.c (rfc822hdr_is_addr): New function. * rfc822/rfc822.c (tokenize): Tweak the logic for collecting RFC 2047 atoms. * rfc822/rfc2047u.c (rfc822_display_name): New function, replaces rfc2047_print(). (rfc822_display_name_tobuf): New function, replaces rfc2047_print(). (rfc822_display_namelist): New function, replaces rfc822_namelist(). (rfc822_display_addr): New function, replaces rfc2047_print(). (rfc2047_print_unicodeaddr): Renamed from rfc2047_print_unicode(). (rfc822_display_hdrvalue): New function, replaces rfc2047_decode(), rfc2047_decode_simple(), rfc2047_decode_enhanced(). (rfc822_display_hdrvalue_tobuf): New function, ditto. * rfc822/rfc2047.c: Removed rfc2047_decode(), rfc2047_decode_simple(), rfc2047_decode_enhanced(), rfc2047_print(). * rfc822/Makefile.am: Link against GNU IDN library. * rfc2045/rfc2045.h: Added "replydsn" option to rfc2045_makereply(), incorporates the MIME bounce format generated by mailbot. Added "subject" -- override subject of the reply. Added "dsnfrom" -- for the replydsn option. Added two callbacks used by the replydsn option. Remove rfc2045_makereply(), leaving just rfc2045_makereply_unicode(). * rfc2045/reformime.c (do_print_info): MIME-decode the content description. (main2): New -H option. * pcp/pcpdir.c (retrevent): Fix memory leak. * pcp/pcp.c (list): MIME-decode the subjects in the output of the list command. (list_msg_rfc822): Fix MIME-decoding of headers in the output of the retrieve command. (main): Use the default system locale character set. * maildrop/mailbot.c (main): Use the default character set from the system locale. (usage): Added the -n option, for debugging purposes. (opensendmail): Pass the autoreply to sendmail in a file descriptor for a temporary file on stdin, instead of piping the resulting message to sendmail, running as a child process. (savemessage): Save the input message in a temporary file, and RFC2045-parse it. (main): Use rfc2045_makereply_unicode() to prepare the autoreply message. Clarify mailbot man page as to the slightly changed requirements for the autoreply text that must be given to mailbot. * imap/thread.c (thread_ref_callback): SUBJECT for THREAD REFERENCES wasn't getting converted to UTF-8 at the right point, moved it up into search.c * imap/search.c (fill_search_header): SUBJECT search key was being MIME-decoded twice. * courier/cmlmfetch.C (doindex): Use returnaddr() to compute return address for responses to the "index" request. * courier/cmlm.C (main): Run cmlm in the default system locale. 2009-11-02 Sam Varshavchik * courier/courierd.dist: New setting: SYSLOCALE -- load default system locale. Remove the forced LC_ALL=C setting. * pcp/pcp.c: Default output charset taken from the default locale, rather than the fixed iso-8859-1. * maildrop/mailbot.c: Ditto. 0.63.0 2009-09-05 Gordon Messmer * outbox.c (imapd_sendmsg): Renamed sendmsg() to avoid library name clash. 2009-08-28 Sam Varshavchik * courier.sysvinit.in: Fix typo in init file. 2009-08-12 "Hanno Böck" * tls: change the default OpenSSL configuration to disable anonymous authentication ciphers. 2009-07-29 Sam Varshavchik * tcpd/tcpd.c (check_drop): -drop option -- drop connections from blacklisted IP addresses. * courier/module.esmtp/esmtpd.dist.in (DROP): Added DROP variable to hold the -drop option. * courier/webadmin/admin-30esmtp.html: Added interface to set the DROP setting, dropped obsolete DNSBLs. 0.62.2 2009-07-13 Sam Varshavchik * courier/module.esmtp/courieresmtpd.c: Fix null ptr deref. 0.62.1 2009-06-13 Sam Varshavchik * Various portability fixes for gcc 4.4 and newer libtool. 2009-06-01 Sam Varshavchik * courier/module.esmtp/esmtpd.dist.in (ESMTPAUTH): Clarify the description of the ESMTPAUTH option. 0.62.0 2009-05-09 Sam Varshavchik * Documentation refresh. 2009-05-02 Sam Varshavchik * courier/module.esmtp/courieresmtpd.c (iov_logerror): Do not log connection errors reported for the QUIT command. * courier/cdmsgq.C: Include authentication credentials in "newmsg" syslog entries of messages that were submitted using authenticated SMTP. Note that this changes the format of "newmsg" syslog entries. 2009-03-23 Fernando Gozalo * pop3dserver.c: s/POP3_STLS/POP3_TLS/, for correct logging. 0.61.2 2009-03-04 Mr. Sam * tcpd/libcouriergnutls.c (gen_encryption_desc): Fix off-by-1. * courier/module.local/localmail.c (save_submit_errmsg): Fix NULL ptr deref. 2009-02-22 Sam Varshavchik * courier/doc/Makefile.am (man1): dotforward.1 was listed twice. 2009-02-22 "Jürgen Walch" * courier/submit.C (getrcpts): Renamed any existing Received-SPF to Old-Received-SPF headers only if SPF is actually enabled. 0.61.1 2009-02-05 Sam Varshavchik * webmail/html.c: Fix handing of broken HTML email 2009-02-04 Mr. Sam * pcp/intl/plural.c: Fix broken version that made it into the tarball. 0.61 2009-01-27 Sam Varshavchik * webadmin: updated LDAP configuration screens. 2009-01-27 Sam Varshavchik * tcpd/libcouriergnutls.c (struct ssl_handle_t): Drop an unused variable. (set_cert): Fix cleanup upon X.509 cert import failure. 2009-01-26 Mr. Sam * rfc2646html.c (rfc2646_getpfix): Fix invalid parameter to callback function. 2008-12-02 Sam Varshavchik * imaprefs.c (dorefcreate): Clean up usage of rfc822_threadsearchmsg(). A malloc() failure wasn't checked correctly. 2008-11-25 Sam Varshavchik * maildir/maildirfilter.c (maildir_filter_saverules): Use EX_SOFTWARE when bouncing mail from sqwebmail-generated filters. * courier/module.local/deliver.c (docommand): Do not convert EX_SOFTWARE to EX_NOPERM exit codes. Use existing localmail code that suppresses backscatter blacklisting for EX_SOFTWARE-generated failures. * courier/cmlmstartmail.C (StartMail::Send): Ignore mail submission errors. 2008-11-02 Sam Varshavchik * courier/cmlmsubunsub.C (docmdsub): Make sure subscription detail record is not empty. 2008-10-15 Sam Varshavchik * courier/cdmsgq.C (msgq::queuescan3): Use a backup mx relay only for messages that should be delivered via esmtp. * courier/doc/courier.sgml: More backup MX relay documentation. 2008-10-11 Dmitry Osipov * rfc2045/rfc2045_fromfd.c: Optimize header parsing. 2008-09-20 Sam Varshavchik * maildrop/testsuite.in: Fix a build error. 2008-09-20 Sam Varshavchik * search.c: Empty MIME entities would always match any SEARCH. Reported by Dmitry Osipov. 2008-09-18 Federico Cuello * tcpd/configure.in: --without-gnutls forces suppression of GnuTLS when OpenSSL is not present. 2008-09-13 Sam Varshavchik * Documentation: add links to list archives on markmail.org 2008-08-26 Alessandro Vesely * tcpd/libcouriergnutls.c (tls_connect): Fix client certificate request settings. 2008-08-24 Mr. Sam * tcpd/libcouriergnutls.c (set_cert): Add support for certificates signed by an intermediate CA. 2008-08-07 Jonathan Kamens * courier.spec.in (BuildPreReq): Add the --without-fam option 2008-07-26 Mr. Sam * maildrop/testsuite: Put additional stuff into testsuite * maildrop/reformail.C (add_messageid): Make generated Message-ID: field longer. * maildrop/deliver.C (delivery): If child process did not fully consume stdin, but terminated with a zero exit status, ignore SIGPIPE. * maildrop/reformail.C (extract_headers): If stdin is seekable, don't waste time on discarding stdin's content. 2008-07-23 Mr. Sam * courier/submit.C (getrcpts): Clarify 534 error message text. 2008-07-22 Mr. Sam * courier/module.esmtp/esmtpd.dist.in (TLS_TRUSTCERTS): Remove TLS_PEERCERTDIR -- obsolete, replaced by TLS_TRUSTCERTS. 2008-07-21 Gordon Messmer * courier/cdfilters.C (dofilter_err): Log which filter is down. 2008-07-20 Mr. Sam * webmail: Make flowed-text formatting unicode-aware. * webmail: Update to the current version of gettext. * unicode/unicode_wcwidth.c (unicode_wcwidth): New function -- fixed lookup of EastAsianWidth unicode table. Return 2 as the width of unicodes marked "F" or "W", 1 for all others. 2008-07-19 Mr. Sam * webmail: Drop all the #if SQWEBMAIL_UNICODE -- unicode is now always turned on. 0.60 2008-07-12 Mr. Sam * Remove the root certificate bundle. The configure script checks for known locations of root certificate bundles installed on different platforms, and sets TLS_TRUSTCERTS accordingly. After upgrading, review all config files and adjust TLS_TRUSTCERTS accordingly. * courier/configure.in (EXTRACMDLIB): Drop some cruft. * courier/courierd.dist.in (TLS_TRUSTCERTS): Clarify descriptions of several settings. 2008-07-11 Mr. Sam * courier/module.esmtp/esmtpclient.c: Various bits needed to implement EXTERNAL auth. * maildir/maildirquota.sgml: Update descriptions of maildir quotas. 2008-07-07 Mr. Sam * courier/webmlmdsublist.C: Subscriber list navigation was broken :-( 2008-07-04 Mr. Sam * maildir/maildirfilter.c: Forward mail with a null return address. The lesser of three evils. All other choices may result in looping mail. Improve quoting of some strings. 2008-06-29 Mr. Sam * courier/module.esmtp/courieresmtpd.c (smtp_externalauth): Check the environment variables for subject fields set by couriertls. Advertise the AUTH EXTERNAL capability, if they are set. (ehlo): Turn off the AUTH= response, nobody should need it, anymore. (main): SASL authentication did not correctly handle the special case of "=" passed as the initial response to indicate an empty initial response. Switch to the new auth_sasl_ex() API. * imap/pop3login.c (starttls): Use the couriertls library to invoke couriertls, instead of doing it ourselves. SASL authentication did not correctly handle the special case of "=" passed as the initial response to indicate an empty initial response. Switch to the new auth_sasl_ex() API. * imap/pop3dcapa.c (pop3_externalauth): Check the environment variables for subject fields set by couriertls. Advertise the AUTH EXTERNAL capability, if they are set. * imap/imaplogin.c (starttls): Use the couriertls library to invoke couriertls, instead of doing it ourselves. * imap/capability.c (imap_externalauth): Check the environment variables for subject fields set by couriertls. Advertise the AUTH=EXTERNAL capability, if they are set. * imap/authenticate_auth.c (authenticate): SASL authentication did not correctly handle the special case of "=" passed as the initial response to indicate an empty initial response. Switch to the new auth_sasl_ex() API. * tcpd/libcouriergnutls.c (oid_name_list): Rename "email" to "emailAddress", for compatibility with OpenSSL. * tcpd/libcouriergnutls.c (verify_client): Check for the required certificate occured in the wrong spot. * tcpd/libcouriergnutls.c (tls_connect): Add call to gnutls_certificate_set_subject() to actually request the client cert. * tcpd/libcouriergnutls.c (tls_certificate_verified): Return an indication if the peer's certificate is good. * tcpd/libcouriertls.c (tls_certificate_verified): Ditto. Minor bug fixes. * tcpd/starttls.c (dump_to_fp): Parse Subject: header dumped by couriertls, export it in environment variables. * tcpd/tlsclient.c (couriertls_get_subject): Retrieve individual Subject: fields. * tcpd/tlsclient.c (couriertls_export_subject_environment): Export parsed Subject: fields to the environment. 2008-06-21 Mr. Sam * Optimize IMAP keyword implementation. Faster results in exchange for a concurrency tradeoff if two concurrent sessions attempt to update keywords for the same message at the same time -- only one will win. 2008-06-13 Mr. Sam * rfc822_getaddr.c: Backslashed special characters in address names weren't being dequoted correctly by rfc822_getname() and rfc822_getname_orlist(). 2008-05-23 Mr. Sam * courier/doc/draf*.txt - drop canned I-D verbiage from SMTP protocol extension documentation. 2008-05-18 Peter Avalos * rootcerts/configure.in: Do not override REHASH from the environment. 2008-05-17 Mr. Sam * Multiple: fix several compiler warnings 2008-05-11 Mr. Sam * pop3login.c (main): Add a timeout to the POP3 login stage 2008-05-10 Mr. Sam * pcp/Makefile.am: include the m4 subdirectory in the tarball 2008-05-08 Bernd Wurst * gdbmobj/Makefile.am (libgdbmobj_la_LIBADD): Fix makefile 2008-05-08 Mr. Sam * bdbobj/Makefile.am: same patch. Also, clean up the rest of the makefiles. 2008-04-09 Mr. Sam * tcpd/libcouriertls.c (cache_get): Fix TLS session caching. 2008-04-03 Mr. Sam * courier/module.esmtp/esmtpd.dist.in: Remove the overlooked explicit setting of TLS_PROTOCOL. 0.59 2008-03-12 Gordon Messmer * tcpd/libcouriertls.c (tls_create): Default TLS_PROTOCOL=SSL23, TLS_CIPHER_LIST=SSLv3:TLSv1:!SSLv2:HIGH:!LOW:!MEDIUM:!EXP:!NULL@STRENGTH 2008-03-09 Brian Candler * imapd.c (is_smap): Compilation failure fix. 2008-03-07 Bernd Wurst * many: update description of SSL/TLS-related settings in several configuration files. 2008-02-03 "Paweł Tęcza" * pref.c: autorenaming of the Sent folder can now be set in Preferences. 2008-01-29 "Stefan Hornburg \(Racke\)" * More portability fixes. 2008-01-28 Alessandro Vesely * rfc1035/spf.c (transform): Fix %{ir} macro 2008-01-26 Mr. Sam * imapd.c (main): New setting in the IMAP config file, IMAP_MAILBOX_SANITY_CHECK -- disable sanity check on the homedir and maildir ownership. 2008-01-24 Mr. Sam * courier/submit.C (getrcpts): Strip any trailing periods in sender or receipient addresses. 2008-01-04 Mr. Sam * all: Explicitly make stderr line-buffered. 2007-12-17 Mr. Sam * courier/doc/webmlmd.sgml: Fix couriermlm usage. 2007-12-17 Stefan Hornburg (Racke) * courier: More missing #include-s. 2007-12-15 Mr. Sam * courier/courierd.dist.in: Clarify some settings. 2007-12-13 Mr. Sam * courier/libs/comaliases2.C: Was missing a #include 2007-12-08 "Stefan Hornburg (Racke)" * imapd.c (main): Suppress spurious error message 0.58 2007-11-21 Mr. Sam * tcpd/libcouriergnutls.c (tls_connect): TLS_MIN_DH_BITS setting, invokes gnutls_dh_set_prime_bits(). Fix some bugs. 2007-11-18 Mr. Sam * tcpd/libcouriergnutls.c (tls_transfer): Fix some bugs. 2007-11-18 Mr. Sam * tcpd/libcouriergnutls.c: Fix SSL session caching bug. 2007-11-07 Mr. Sam * courier.spec.in (BuildPreReq): Drop obsolete build requirement on xpdf. 2007-11-04 Mr. Sam * Added support for GnuTLS. 2007-10-23 Mr. Sam * couriertls: code cleanup. 2007-10-16 Mr. Sam * courier/module.local/local.c (rw_del_local): Fix a memory stomp. 2007-10-14 Mr. Sam * courier/sendmail.c: Get rid of the hard 30 minute timeout. * courier/submit.h (class SubmitFile): Keep track of all files (control and data) that were opened. * courier/submit.C (class Input): Rewrite input processing to use non-blocking I/O to read standard input. When the message source is local (or dsn), get rid of the hard 30 minute timeout, and poll stdin with a 5 minute poll() timeout, at which point the timestamps on all open control and data files are pinged, to keep courierd from purging them based on their old timestamp. Continue to use a hard timeout for all non-local mail. 0.57.1 2007-10-09 Mr. Sam * imap/imapscanclient.c (do_imapscan_maildir2): Avoid a double-fclose() in marginal situations. 2007-10-07 Mr. Sam * courier/module.local/local.c (rw_del_local): "User unknown" reports complete local address, including extensions. 2007-10-06 Mr. Sam * courier/submit2.C (SubmitFile::MessageEnd): Invoke run_filter() after all control files are closed. * courier/submit.C: opt BOFHHEADERLIMIT replaces hardcoded limit of 100,000 bytes of headers per message. 2007-10-06 Jonathan Kamens * courier.spec.in: Clean up without_fax option. 2007-10-06 Mr. Sam * tcpd/starttls.c (main): Prime the OpenSSL entropy pool on platforms that don't have a ready source available. 2007-10-02 Mr. Sam * courier/Makefile.am (webmlmd_DEPENDENCIES): webmlm and webmlmd need to be linked with @NETLIBS@ 0.57 2007-09-25 "Johnny C. Lam" * liblock/lockdaemon.c (OPEN_MAX): Use OPEN_MAX, instead of hardcoded 99 2007-09-25 Mr. Sam * liblock/lockdaemon.c (OPEN_MAX): Even better, use sysconf(_SC_OPEN_MAX), where available. 2007-09-23 Anton Dobkin * folder.c (do_sharedhierlist): Missing . 2007-09-21 Mr. Sam * imap/imapd.c (chk_clock_skew): Try to autodetect clock skew. 2007-09-20 Adam Hasselbalch Hansen * Include remote port number in IMAP and POP3 logs. 2007-09-13 Mr. Sam * courier/submit.C (getrcpts): Reject <@domain.com> for a recipient's address. 2007-09-03 Mr. Sam * folder.c (redirect_hash): Use SQWEBMAIL_RANDSEED if it's set, instead of sendit.sh's inode. 2007-09-03 Pawel Tecza * sqwebmail.c: Remove hardcoded reference to TIMEOUTHARD 2007-09-02 Mr. Sam * webmail/newmsg_create.c: Global footer wasn't being added correctly do HTML-formatted mail. 2007-08-29 Mr. Sam * tcpd/tcpd.c (doit): Ignore SIGPIPE errors in couriertcpd, preventing couriertcpd from being terminated if the stderr logger crashes. 2007-08-23 Mr. Sam * rfc1035/spf.c (lookup): Looping SPF query should abort with SPF UNKNOWN, as per specs. 2007-07-29 Mr. Sam * Major code cleanup. 2007-07-26 Mr. Sam * COPYING: GPL 3 * imap/mailboxlist.c (folder_entry): Optimization: skip over folders not in the current scope, avoiding unnecessary overhead of checking their ACLs. 2007-07-20 Mr. Sam * courier/cdfilters.C (dofilter): Tolerate newline-less responses from the filter. * courier/doc/dot-courier.sgml: Document that sysexit 100 from .courier is a permanent failure. 2007-07-10 Mr. Sam * webmail/rfc2646html.c (fmtwikiline): Fixes to inferred HTML formatting. 2007-07-04 Mr. Sam * courier/webmlmd.C: fix compiler errors on some platforms. 2007-07-01 Mr. Sam * gpglib/gpg.c: Fix signing of multipart messages that contain 8 bit content. * courier: Updated PAM config files for Fedora 7 * courier/courier.c: "courier show all" and "courier clear all" commands. 2007-06-30 Mr. Sam * courier/webmaild.in (datarootdir): Fixes for automake 1.10 2007-06-30 Mr. Sam * Makefile.am: Drop the automake.fix hack -- gotten too much. 2007-06-29 Mr. Sam * courier/webmlmdcmlm.H: Rename stdin() and stdout() member functions to something else, to avoid problems on platforms where stdin and stdout are stdio.h macros. * tcpd/libcouriertls.c (tls_create): "SSL23" selects SSLv23_method(). * Cleanup of courierfilter code. 2007-06-28 Mr. Sam * folder.c (folder_delmsgs): Portability fix. 2007-06-27 Mr. Sam * cgi/cgidaemond.c: Added #include * alias handling: code cleanup. 2007-06-25 Mr. Sam * courier/cmlm2.C: Add missing include of langinfo.h 2007-06-24 Mr. Sam * couriermlm: use std::istream.good() instead of std::istream.eof() 0.56 2007-06-18 Mr. Sam * courier/module.esmtp/esmtpd.dist.in (ULIMIT): Make default ulimit larger. 2007-06-16 Mr. Sam * courier/webadmin/admin-20aliases.pl: Remove check that prevents multiple virtual domains to be aliased to the same account. 2007-06-15 Mr. Sam * courier/webmlmdsublist.C (show_list_address): Added link to a popup that shows the subscription log. 2007-05-27 Mr. Sam * tcpd/libcouriertls.c (tls_create): Setting protocol to SSL3 will disable SSL2. 2007-05-19 Mr. Sam * courier/webmlmdmod.C: Implemented webmlmd-based moderation. * courier/cmlmmoderate.C (cmdmoderate): Changed moderation response templates to use "CUT HERE" to demarcate moderator's response. 2007-05-05 Mr. Sam * courier/webmlmdsublist.C: Implement admin unsubscribe. 2007-05-04 Mr. Sam * courier/filters/courierfilter.c (start): Fix wrong argument to ll_daemon_start(). * liblock/lockdaemon.c (start1): Move lock file to filedescriptor 99, to avoid interference with courierfilter. 2007-04-29 Mr. Sam * courier/filters/perlfilter/perlfilter.c (reap_child): Fix potential race condition when shutting down perlfilter 2007-04-26 Mr. Sam * courier/cmlmcmdmisc.C: --lang parameter to couriermlm create 0.55.1 2007-04-22 Aidas Kasparas * tcpd/couriertcpd.sgml: Update IPv6 examples. 2007-04-16 Mr. Sam * maildir/maildirkeywords2.c (maildir_kwImport): Properly clean up after a malloc failure. * maildir/maildirshared.c (do_maildir_shared_sync): Plug a leak when syncing old-style shared folders. 2007-04-15 Mr. Sam * unicode/eucjp.c (c2u): Check for malloc failure. (u2c): Ditto. * unicode/shiftjis.c (c2u): Ditto. * unicode/shiftjis.c (u2c): Ditto. * unicode/ksx1001.c (c2u_euckr_doconv): Ditto. * unicode/ksx1001.c (u2c_euckr_doconv): Ditto. * maildir/maildirnewshared2.c (maildir_shared_cache_read): Clarify calling convention, and check for invalid arguments to this function. * maildir/maildirkeywords2.c (doReadKeywords2): Eliminate dead code. 2007-04-08 Mr. Sam * courier/webmlmd.C: Supply a missing definition of error() 0.55 2007-04-05 Mr. Sam * Update man pages and documentation to Docbook XML V4.4 2007-03-11 Mr. Sam * couriermlm/webmlmd: Final commit, it's ready. 2007-03-10 Mr. Sam * couriermlm: added the update command. Also updated documentation. NOTE: see "INSTALL" for update instructions. 2007-03-07 Mr. Sam * courier/module.esmtp/esmtpclient.c (authclient): Use domain name, not MX hostname, for looking up authenticated SMTP passwords in esmtpauthclient 2007-03-05 Mr. Sam * webmlmd man page. * tcpd/starttls.c (smtp_proto): Send a dummy EHLO before STARTTLS (gmail wants it). 2007-03-04 Mr. Sam * Added webmlm/webmlmd (documentation TODO). * All unicode mapping tables are now included by default. Dropped --enable-unicode and --disable-folder-utf7-encoding options. * courier/cmlmcmdmisc.C (cmdset): Only NAME= gets encoded to RFC 2047 format, all other variables get transcoded to UTF-8. 2007-02-26 Mr. Sam + couriermlm cleanup/rewrite * courier/idxheaderhtml.tmpl: mailing list index now uses UTF-8 * courier/idxheadertxt.tmpl: Ditto. **NOTE** must fix idxheaderhtml and idxheadertxt files in existing mailing lists! * courier/cmlmfetch.C (getmsginfo): RFC 2047 decode subjects and senders in mailing list archive index * courier/cmlmcmdmisc.C (cmdexport): Import/export now preserves write-only aliases (export file format change) * courier/cmlmcmdmisc.C (cmdset): List settings RFC 2047-encode non-Latin parameter values (specifically, NAME). * rfc822.c (parseaddr): rfc822a_alloc() would corrupt and misparse RFC2047-encoded atoms. Fix it. 2007-02-25 Mr. Sam * More configure script cleanup 2007-02-25 Kurt Roeckx * Clean up configure scripts 2007-02-25 Mr. Sam * rfc822/rfc822.c (parseaddr): rfc822a_alloc() would corrupt and misparse RFC2047-encoded atoms. 2007-02-24 Mr. Sam * cgi/cgidaemon.c: Factored out sqwebmail's prefork daemon logic into a standalone module. 2007-02-20 Pawel Tecza * webmail/folder.c (do_folderlist): More cleanup. * webmail/html/en-us/newmsg.html: New setting HDRMAXLEN - maximum header size. 2007-02-19 Mr. Sam * courier/doc/couriermlm.sgml: Fix typo. 2007-02-18 Mr. Sam * courier/cmlmsublist.C (openalias): Fix couriermlm lalias command. 2007-02-09 Mr. Sam * folder.c (folder_nextprev): Use one row for navigation icons, if images are being used. Suggested by Pawel. 2007-02-09 Pawel Tecza * folder.c (do_folderlist): Cleanup. 2007-02-09 "Jérôme Blion" * mailq: Added -batch option. 2007-02-03 Mr. Sam * threadlib/pthread.c: Fix error checking of return calls from pthread 2007-02-02 Mr. Sam * webmail/newmsg.c (dosendmsg): -N failure, not fail. 2007-01-18 Mr. Sam * maildrop/mailbot.c (check_dsn): Also check for precedence: list and list-id: headers. 0.54.2 2007-01-13 Lloyd Zusman * courier/cdfilters.C (filter_cmp): Fix sorting of active courier filters. 0.54.1 2007-01-08 Peter Bieringer * html/en-us/autoresponder.html: Fix typo. 2007-01-05 Mr. Sam * all: rename rw_init() to rw_init_courier(), to avoid a name clash. 0.54 2006-12-30 Flavio Stanchina * courier/doc/couriermlm.sgml: Added NODSN option in couriermlm. 2006-12-30 Mr. Sam * courier/module.esmtp/esmtpclient.c (authclient): Fix crash caused by an empty line in esmtpauthclient. 2006-12-29 Mr. Sam * cgi/cgi.c (cgiformdecode): Stop converting 0xA0 to 0x20 bytes in form posts. Messes up UTF-8 text. Hope that the original reason I did this is no longer needed. 2006-12-27 Mr. Sam * webmail/html/en-us/autoresponder.html: Fix typo. 2006-11-12 Alessandro Vesely * sqwebmail/auth.c: use address returned from authlib as return address of sent messages. 2006-11-04 Mr. Sam * rfc2045/rfc2045rewrite.c (rfc2045_rewrite_common): Make sure rewritten message always terminates with a trailing newline. 2006-11-04 Sergiy Zhuk * tcpd/tcpd.c: set max # of connections on a per-IP address basis 2006-11-04 Pawel Tecza * courier/module.dsn/dsn.c: Coding style fixes * doc/links.html: fix link to the sqwebmail list 2006-10-28 Mr. Sam * Ported the code to gcc 4.1.1 and openldap 2.3. 2006-10-09 Aidas Kasparas * rfc1035/rfc1035mxlist.c (domxlistcreate): Correctly handle partially recovered MX lists. 2006-10-01 Marcin Semeniuk * courier/module.dsn/dsn.c (print_header): Redesign how DSNs are formatted, to make them more customizable. 2006-10-01 Josip Rodin * maildrop: configure option to make courier-authlib authentication optional; -a option to maildrop. 2006-09-19 Josip Rodin * maildirmake: Clarify some error messages. * maildir/maildirmake.sgml: Documentation fixup. * maildrop/maildropex.sgml: Documentation fixup. 2006-09-19 Mr. Sam * liblock/lockmail.c (main): Save the hide of some knucklehead who changed the ownership and permissions of how lockmail gets installed by my Makefile. Max Vozeler via Debian's maildrop maintainer. 2006-09-17 Mr. Sam * maildrop/main.C (run): -f ""? I really mean it. 2006-09-05 Mr. Sam * folder.c (folder_list): Forbit rename folder if new folder name contains a dot. * mailfilter.c (mailfilter_submit): Quietly prune trailing ':' from the tail end of a header name. 2006-09-05 Pawel Tecza * webmail: Trim whitespace from login username, and new folder names. 2006-09-05 Josip Rodin * maildrop/dotlock.C (attemptlock): Clean up some error messages. 2006-09-05 Mr. Sam * deliverquota: messages created by deliverquota will use the umask setting. * imap: message files created by the IMAP server will use the umask setting. 0.53.3 2006-08-11 Alessandro Vesely * courier/libs/comtrack.c: minor bug in track_save * courier/module.local/local.c (rw_local_filter): minor bug in rw_local_filter 2006-07-30 Pawel Tecza * newmsg.c (newmsg_init): Remove redundant blank lines in new msgs. * newmsg.c (newmsg_header_rfc822): Read-only From: header shown when wbnochangingfrom=1, From: header entirely suppressed when >1. 2006-07-24 Pawel Tecza * sqwebmail.c: Add optional class name to dynamically-generated