summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFiles
2011-03-30Implement IPv6 support.Sergey Poznyakoff53
* am/ipv6.m4: New file. * examples/sa.c: New file. * include/mailutils/cidr.h: New file. * include/mailutils/sockaddr.h: New file. * libmailutils/cidr/Makefile.am: New file. * libmailutils/cidr/fromsa.c: New file. * libmailutils/cidr/fromstr.c: New file. * libmailutils/cidr/match.c: New file. * libmailutils/cidr/tosa.c: New file. * libmailutils/cidr/tostr.c: New file. * libmailutils/sockaddr/Makefile.am: New file. * libmailutils/sockaddr/copy.c: New file. * libmailutils/sockaddr/create.c: New file. * libmailutils/sockaddr/free.c: New file. * libmailutils/sockaddr/fromnode.c: New file. * libmailutils/sockaddr/insert.c: New file. * libmailutils/sockaddr/ipaddr.c: New file. * libmailutils/sockaddr/str.c: New file. * libmailutils/sockaddr/unlink.c: New file. * libmailutils/sockaddr/url.c: New file. * libmailutils/tests/cidr.c: New file. * configure.ac: Call MU_ENABLE_IPV6. Build libmailutils/sockaddr and libmailutils/cidr. * examples/.gitignore: Add mblconv and sa * examples/Makefile.am: (noinst_PROGRAMS): Add sa. * examples/aclck.c: Use new ACL API. * examples/echosrv.c: Use new mserv API. * include/mailutils/Makefile.am (pkginclude_HEADERS): Add cidr.h and sockaddr.h * include/mailutils/acl.h (mu_acl_append, mu_acl_prepend) (mu_acl_insert): Change signatures. * include/mailutils/debug.h (mu_sockaddr_to_str): Remove proto. * include/mailutils/mailutils.h: Include cidr.h and sockaddr.h * include/mailutils/server.h (mu_ip_server_create): Change signature. (mu_ip_server_get_sockaddr): Likewise. (mu_m_server_set_default_address) (mu_m_server_get_default_address): Remove. * include/mailutils/stream.h (mu_tcp_stream_create_from_sa): New proto. * include/mailutils/types.hin (mu_cidr, mu_sockaddr): New structs. * include/mailutils/url.h (MU_URL_IPV6): New flag. (MU_URL_PARSE_DSLASH_OPTIONAL): New parse flag. * libmailutils/Makefile.am: Descend into cidr and sockaddr. Link in libcidr and libsockaddr. * libmailutils/diag/debug.c (mu_debug_log_begin): Flush mu_strerr. * libmailutils/diag/errors (MU_ERR_NONAME) (MU_ERR_BADFLAGS,MU_ERR_SOCKTYPE) (MU_ERR_FAMILY,MU_ERR_SERVICE): New errors. * libmailutils/server/acl.c: Rewrite API using mu_cidr. * libmailutils/server/ipsrv.c: Rewrite AI using mu_sockaddr. * libmailutils/server/msrv.c: Likewise. * libmailutils/stream/tcp.c: Likewise. * libmailutils/tests/.gitignore: Add cidr. * libmailutils/tests/Makefile.am (noinst_PROGRAMS): Add cidr. * libmailutils/tests/url-parse.c: Support command line options to tune the parsing. * libmailutils/tests/url.at: Pass options to url-parse. * libmailutils/url/create.c (getkn): Return meaningful error code. (_mu_url_ctx_parse_host): Accept IPv6 addresses. Set the MU_URL_IPV6 flag if one is given. (_mu_url_ctx_parse): Unless MU_URL_PARSE_DSLASH_OPTIONAL flag is given, request :// after scheme part. (mu_url_create): Add MU_URL_PARSE_DSLASH_OPTIONAL flag. * libmu_cfg/acl.c: Use new ACL API. * mu/acl.c: Likewise. * libproto/mailer/smtp.c (smtp_open): Use mu_tcp_stream_create_from_sa * libproto/pop/mbox.c (pop_open): Likewise. * mu/imap.c (com_connect): Likewise. * mu/pop.c (com_connect): Likewise. * testsuite/smtpsend.c (main): Likewise.
2011-03-30Minor fixSergey Poznyakoff1
* mh/tests/comp.at: Remove trailing whitespace before comparisons
2011-03-23New filter "c-escape".Sergey Poznyakoff5
* libmailutils/filter/c-escape.c: New file. * include/mailutils/filter.h (mu_c_escape_filter): New extern. * libmailutils/filter/Makefile.am (libfilter_la_SOURCES): Add c-escape.c * libmailutils/filter/filter.c (mu_filter_get_list): Add mu_c_escape_filter to the list.
2011-03-17More bugfixes.Sergey Poznyakoff18
* examples/mblconv.c (main): Return 0. * examples/murun.c (main): Fix iteration body. * imap4d/append.c: Do not pass constructed string as format argument to io_completion_response, use %s instead. * imap4d/close.c: Likewise. * imap4d/create.c: Likewise. * imap4d/delete.c: Likewise. * imap4d/rename.c: Likewise. * imap4d/status.c: Likewise. * libmailutils/base/mutil.c (mutil_parse_field_map): Fix return code in case of wordsplit failure. * libmailutils/cfg/parser.y (GETSNUM): Initialize sign. * libmailutils/stream/streamref.c (_streamref_ctl) <MU_IOCTL_SEEK_LIMITS>: Initialize lim. * libmailutils/string/wordsplit.c: Typecast format width arguments to int. * libmu_sieve/extensions/vacation.c (check_db): Initialize days. Pass correct time value to test_and_update_prop. * libproto/pop/mbox.c (pop_create_pop3_message): Fix return code. * mail/mail.c (do_and_quit): Pass the command to util_do_command via the %s format. * mail/unset.c (mail_unset): Likewise. * mh/mh_fmtgram.y (function production): LIkewise for mu_error. * mu/logger.c (mutool_logger): Fix return code in case of mu_stdstream_strerr_create failure.
2011-03-17Bugfixes.Sergey Poznyakoff14
* comsat/action.c (action_echo): Set omit_newline. * libmailutils/mailbox/mbx_default.c: Return 0 on success. Fix memory overrun. * libproto/mailer/smtp.c (smtp_open): Protect tls-related code with #ifdef WITH_TLS. * libproto/pop/mbox.c (pop_open): Likewise. * mu/imap.c (com_connect): Likewise. * mh/mhn.c (split_args): Preserve quotes. (mhn_compose_command): Handle type arguments (%a escape). (mhn_show_command): Likewise. (store_handler): Fix call to mh_getyn. (edit_mime): Pass typeargs to mhn_compose_command. Fix test for missing filename. * mh/tests/ali.at (ali04): The test wrongly assumed that the `root' group has some members. * mh/tests/folder.at: Always sort the output from find. * mh/tests/rmf.at: Likewise. * mh/tests/mhn.at: Likewise. Filter out timestamps from the tar output produced by mhn. * tests/testsuite.at (MH_SETUP): Define moreproc. * mh/tests/mhparam.at: Account for changes in mh_profile
2011-03-10message_stream: deduce default envelope address from the current user emailSergey Poznyakoff2
* libmailutils/stream/message_stream.c: Unless specified otherwise, set envelope address based on the current user email. * mh/tests/burst.at: Remove all X-Envelope headers before comparison.
2011-03-09mail: bugfixSergey Poznyakoff1
* mail/mailline.c (ml_readline_internal): Remove trailing \n.
2011-03-07New global variable mu_site_rcfile keeps the name of the site-wide ↵Sergey Poznyakoff6
configuration file. * include/mailutils/gocs.h (mu_site_rcfile): New extern. * include/mailutils/libcfg.h (MU_CONFIG_FILE): Remove. (mu_register_cfg_capa): Remove proto. (mu_libcfg_register_capa): New proto. * libmailutils/cfg/gocs.c (mu_site_rcfile): New variable. * libmu_argp/muinit.c (mu_app_init): Use mu_site_rcfile instead of MU_CONFIG_FILE. Destroy parse_tree when no longer needed. * libmu_cfg/init.c (cfg_capa_table): Static. (find_cfg_capa): Likewise. (reserved_name): Treat names starting with dot as reserved. (mu_libcfg_register_capa): New function. (mu_libcfg_parse_config): Use mu_site_rcfile instead of MU_CONFIG_FILE. * mu/query.c (mutool_query): Use mu_site_rcfile instead of MU_CONFIG_FILE.
2011-03-05Simplify mu_cfg_tree_reduce.Sergey Poznyakoff8
This function used to handle include/program statements, which is useless now, as these are expanded by mu_cfg_tree_postprocess. * include/mailutils/cfg.h (mu_cfg_tree_reduce): Change signature. (mu_format_config_tree): Change signature. (mu_config_clone_root_container): New proto. (mu_config_register_section): Rename to mu_config_root_register_section. mu_config_container_register_section. All uses changed. (mu_config_root_register_section): New proto. * libmailutils/cfg/driver.c (prog_parser) (_cb_include): Remove unnecessary code. (mu_build_container): Simplify. All uses updated. (mu_cfg_tree_reduce): Simplify invocation. All uses updated. * libmu_argp/muinit.c (mu_app_init): Re-implement --config-help support. * sieve/sieve.c (sieve_cfg_param): Fix docstring for "debug". * sieve/tests/testsuite.at (MUT_SIEVE_DEFAULT_OPTIONS): New variable. (MUT_SIEVE_CMDLINE): Include MUT_SIEVE_DEFAULT_OPTIONS. (MUT_SIEVE_COMPILE): Pass MUT_SIEVE_DEFAULT_OPTIONS to sieve.
2011-03-05Introduce "parser hints", to provide better control over configuration parsing.Sergey Poznyakoff6
* include/mailutils/cfg.h (mu_cfg_parse_hints): New struct. (mu_cfg_tree_postprocess): Change signature. Last argument is struct mu_cfg_parse_hints *. (MU_CFG_PARSE_SITE_RCFILE,MU_CFG_PARSE_CUSTOM_RCFILE) (MU_CFG_PARSE_PROGRAM): New flags. (mu_cfg_parse_config): New proto. * libmailutils/cfg/lexer.l (mu_get_config): Fix call to mu_cfg_tree_postprocess. * libmailutils/cfg/parser.y (do_include): Takes hints as 2nd argument. (mu_cfg_tree_postprocess): Likewise. (mu_cfg_parse_config): New function. * libmu_cfg/init.c (mu_libcfg_parse_config): Rewrite as a wrapper over mu_cfg_parse_config. * libmu_argp/muinit.c (mu_app_init): Update. * mu/query.c: New option --program. (mutool_query): Use mu_cfg_parse_config interface.
2011-03-04mu: improve query interface.Sergey Poznyakoff4
* include/mailutils/cfg.h (mu_cfg_node) <parent>: New member. (MU_CFG_FMT_VALUE_ONLY) (MU_CFG_FMT_PARAM_PATH): New flags. * libmailutils/cfg/format.c (format_path): New static. (format_node,format_node_end): Handle new flags. (mu_cfg_format_node): Clear MU_CFG_FMT_VALUE_ONLY if the requested node is mu_cfg_node_statement. * libmailutils/cfg/parser.y: Set node parents. (mu_cfg_find_node): Fix coredump. * mu/query.c: New options --value and --path.
2011-03-04BugfixesSergey Poznyakoff2
* libmailutils/server/acl.c (_run_entry): Fix log output. * mu/shell.c: Fix compilation without readline.
2011-02-19Minor changes.Sergey Poznyakoff2
* libmu_scm/Makefile.am (DOT_X_FILES, DOT_DOC_FILES): Add mu_debug.x and mu_debug.doc. * mail/send.c (fill_body): Remove extra \n after null message body diagnostics.
2011-01-21Scheme: add primitives for manipulating the MU debug levels.Sergey Poznyakoff7
* include/mailutils/debug.h (mu_debug_get_iterator): New proto. * libmailutils/diag/debug.c (mu_debug_get_iterator): New function. * libmu_scm/Makefile.am (lib_LTLIBRARIES): Add mu_debug.c. * include/mailutils/guile.h (mu_scm_debug_init): New proto. * libmu_scm/mu_scm.c (mu-register-format): Bugfix. (mu_scm_init): Call mu_scm_debug_init.
2011-01-19BugfixSergey Poznyakoff2
* libmailutils/base/amd.c: Add more debugging info. Always check the return from amd_pool_open and amd_check_message (which returns int now) and act accordingly.
2011-01-16Add useful debugging hooks.Sergey Poznyakoff11
* libmailutils/diag/bt.c: New file. * libmailutils/diag/wd.c: New file. * libmailutils/diag/Makefile.am (libdiag_la_SOURCES): Add bt.c and wd.c * include/mailutils/debug.h (mu_gdb_bt, mu_wd): New protos. * include/mailutils/util.h (mu_getmaxfd): New protos. * libmailutils/base/getmaxfd.c: New file. * libmailutils/base/Makefile.am (libbase_la_SOURCES): Add getmaxfd.c * libmailutils/server/acl.c: Use mu_getmaxfd. * libmailutils/stream/prog_stream.c: Likewise. * mh/mh_whatnow.c: Likewise. * libmu_scm/mu_body.c (mu-body?): Bugfix.
2011-01-15libmailutils: bugfixSergey Poznyakoff1
* libmailutils/mime/attachment.c (_attachment_setup): Remove improper initialization of msg. (mu_message_encapsulate): Initialize info->msg.
2011-01-15imap4d: redo signal handlingSergey Poznyakoff13
Previously implemented way of signal handling was unsafe because of the use of unsafe functions in signal handlers. It also allowed for recursive invocations of MU calls not supposed to handle recursion (such as mu_mailbox_expunge, for example). This changeset fixes it. * imap4d/imap4d.c (imap4d_child_signal_setup): Change signal set. (imap4d_mainloop): Set a jump point for signal handling. Restore default handling for SIGILL, SIGBUS, SIGFPE, SIGSEGV, SIGSTOP. (master_jmp): New variable. (imap4d_master_signal): New function. (main): Redo signal handling. * imap4d/imap4d.h (child_jmp): New extern. (imap4d_enter_critical,imap4d_leave_critical): New protos. * imap4d/signal.c (imap4d_master_signal): Move to imap4d.c (imap4d_enter_critical,imap4d_leave_critical): New functions. (imap4d_child_signal): Rewrite. * imap4d/append.c: Protect critical sections. * imap4d/bye.c: Likewise. * imap4d/close.c: Likewise. * imap4d/copy.c: Likewise. * imap4d/delete.c: Likewise. * imap4d/expunge.c: Likewise. * imap4d/rename.c: Likewise. * imap4d/select.c: Likewise. * imap4d/status.c: Likewise. * scheme/Makefile.am (sievemod_DATA): Add guimb.scmi.
2011-01-14imap4d: don't issue spurious unsolicited responses after EXPUNGE.Sergey Poznyakoff3
* imap4d/expunge.c (imap4d_expunge): Clear attribute table before resynching. * imap4d/imap4d.h (imap4d_sync_invalidate): New extern. * imap4d/sync.c (invalidate_attr_table): Rename to imap4d_sync_invalidate; make extern. All callers updated.
2011-01-09imap4d: complement 435f1918df.Sergey Poznyakoff1
* imap4d/bye.c (imap4d_bye0): Set iostream to NULL, to avoid further delivery of the SIGPIPE.
2011-01-08guimb: further improvementsSergey Poznyakoff5
* libmu_scm/mu_body.c (mu-body?): New function. * libmu_scm/mu_mailbox.c (mu-mailbox?): New function. * libmu_scm/mu_message.c (mu-message?): New function. * libmu_scm/mu_mime.c (mu-mime?): New function. * scheme/guimb.scmi (guimb-process-mailbox): guimb-message returns a message to be appended to the output mailbox.
2011-01-07Reincarnate guimb as a pure Scheme program.Sergey Poznyakoff8
* libmu_scm/mailutils.scm.in: Move to libmu_scm/mailutils/mailutils.scm.in. Use the MAILUTILS_SCM_LIBRARY_ROOT environment variable to load libraries from the specified location (to be used in tests). * libmu_scm/mailutils/.gitignore: New file. * libmu_scm/mailutils/Makefile.am: New file. * libmu_scm/Makefile.am (SUBDIRS): Add mailutils (mailutils.scm): Remove goal and associated variables. * scheme/guimb.scmi: New file. Reincarnation of guimb. * scheme/Makefile.am: Build guimb from guimb.scmi. * scheme/sieve2scm.scmi (sieve-version): Use mu-package and mu-version global variables. * configure.ac (AC_CONFIG_FILES): Add libmu_scm/mailutils/Makefile.
2011-01-06Minor changes in scheme-related code.Sergey Poznyakoff3
* libmu_scm/mu_scm.c (_mu_scm_bugreport, mu-bugreport): New variable. (format_table): Add pops and imaps. * scheme/reject.scm: Minor changes. * scheme/sieve2scm.scmi: Minor changes.
2011-01-02Update copyright years.Sergey Poznyakoff1186
Happy GNU year!
2010-12-31Remove guimb.Sergey Poznyakoff19
It was inoperational since 2009-03-27 and nobody complained, so it seems to not be reclaimed at all. FWIW, it will be easy to recreate it entirely in Scheme, should the need be. * guimb/.gitignore: Remove. * guimb/Makefile.am: Remove. * guimb/collect.c: Remove. * guimb/guimb.h: Remove. * guimb/main.c: Remove. * guimb/util.c: Remove. * Makefile.am (GUIMB_DIR): Remove. [MU_COND_LIBMU_SCM] (SCHEME_DIR): New variable. (SUBDIRS): Add SCHEME_DIR instead of GUIMB_DIR. * configure.ac (MU_GUILE_SIEVE_MOD_DATA): Remove substitution. (AC_CONFIG_FILES): Remove guimb and guimb/scm, add scheme * guimb/scm/.gitignore: move to scheme/.gitignore * guimb/scm/Makefile.am: move to scheme/Makefile.am * guimb/scm/README: move to scheme/README * guimb/scm/mimeheader.scm: move to scheme/mimeheader.scm * guimb/scm/numaddr.scm: move to scheme/numaddr.scm * guimb/scm/redirect.scm: move to scheme/redirect.scm * guimb/scm/reject.scm: move to scheme/reject.scm * guimb/scm/sieve-core.scm: move to scheme/sieve-core.scm * guimb/scm/sieve.scm.in: move to scheme/sieve2scm.scmi * guimb/scm/vacation.scm: move to scheme/vacation.scm
2010-12-31imap4d: further improvements.Sergey Poznyakoff1
* imap4d/sync.c (notify): Do not emit FETCH replies for recent messages.
2010-12-31imap4d: bugfixes.Sergey Poznyakoff2
* imap4d/imap4d.c (idle_timeout): Initialize to the default value. (Needed for inetd mode) * imap4d/sync.c: Revamp table handling.
2010-12-30Provide a function for quick retrieval of message lines.Sergey Poznyakoff11
* include/mailutils/message.h (mu_message_quick_lines): New proto. (mu_message_set_lines): Change signature of the 2nd argument. * include/mailutils/sys/message.h (_mu_message) <lines>: Change signature. * libmailutils/diag/errors (MU_ERR_INFO_UNAVAILABLE): New error code. * libmailutils/mailbox/message.c (mu_message_set_lines): Change signature of the 2nd argument. (mu_message_lines): Update call to the _lines method. (mu_message_quick_lines): New function. * libproto/pop/mbox.c (_POP3_MSG_LINES): New flag. (_pop3_message)<message_lines>: New member. (pop_create_pop3_message): New function. (pop_scan): Use LIST to obtain scan listing. (pop_message_lines): New function. (pop_create_message): Set _lines method. (pop_get_message): Use pop_create_pop3_message. * mail/from.c (hdr_quick_lines): New function. (compile_headline): New escape %L * pop3d/capa.c (pop3d_capa): Show XLINES capability if configured. * pop3d/list.c (pop3d_list): Optionally output the number of lines in the message. * pop3d/pop3d.c (pop3d_xlines): New global. (pop3d_cfg_param): New statement "scan-lines". * pop3d/pop3d.h (pop3d_xlines): New extern.
2010-12-29amd: bugfixes; speed up expunging.Sergey Poznyakoff1
* libmailutils/base/amd.c (_amd_message_delete): Remove. (amd_array_expand): Fix element size. (amd_array_shrink): Rewrite. (amd_expunge): Shrink the array once, after everything has been expunged. Generate MU_EVT_MAILBOX_MESSAGE_EXPUNGE for each expunged message.
2010-12-29Make sure debugging calls don't dump core even if mu_strerr is not initialized.Sergey Poznyakoff1
* libmailutils/diag/debug.c (mu_debug_log, mu_debug_log_begin): Call mu_diag_init.
2010-12-29Bugfixes.Sergey Poznyakoff4
* libmailutils/url/create.c (_mu_url_create_internal): Fix parsing of the '|' shortcuts. * libmailutils/tests/url.at: Fix '|' test. Add 'prog://' test. * movemail/movemail.c (set_program_id): Call mu_stdstream_strerr_setup to flush changes. * frm/common.c: Minor changes
2010-12-28frm: minor cleanup.Sergey Poznyakoff1
* frm/common.c (select_message, msg_index): Remove; use action data instead. (action): Use action data to get the selection function and message index. (frm_scan): Pass these data in action closure.
2010-12-28imap4d: speed up asynchronous mailbox notifications.Sergey Poznyakoff10
* imap4d/imap4d.h (util_format_attribute_flags): New prototype. * imap4d/sync.c: Rewrite using flag table to keep attribute flags, mu_mailbox_translate to convert uids to message numbers and MU_EVT_MAILBOX_MESSAGE_EXPUNGE event to report expunged messages. * imap4d/util.c (_imap4d_attrlist): Remove \Recent (util_attribute_to_type): Handle \Recent separately. (util_format_attribute_flags): New function. (util_print_flags): Rewrite as an extra entry point to the above. mailboxes: New event MU_EVT_MAILBOX_MESSAGE_EXPUNGE. * include/mailutils/observer.h: Rearrange and partially rename event constants (all uses updated): MU_EVT_MESSAGE_APPEND => MU_EVT_MAILBOX_MESSAGE_APPEND MU_EVT_AUTHORITY_FAILED => MU_EVT_FOLDER_AUTHORITY_FAILED (MU_EVT_MAILBOX_MESSAGE_EXPUNGE): New event. * libproto/mbox/mbox.c: Generate MU_EVT_MAILBOX_MESSAGE_EXPUNGE. * libproto/pop/mbox.c: Likewise. * libmailutils/base/amd.c: Likewise.
2010-12-28mh,maildir: speed up scanning.Sergey Poznyakoff4
* include/mailutils/sys/amd.h (_amd_message_append, amd_sort): New protos. * libmailutils/base/amd.c (amd_array_expand): Call memmove only if there is actually something to move. (_amd_message_append, amd_sort): New functions. * libproto/maildir/mbox.c (maildir_scan_dir): Append new messages to the end of the array, and sort it afterwards. This avoids unnecessary memory moves, which improves performance considerably, especially on large mailboxes. * libproto/mh/mbox.c (mh_scan0): Likewise.
2010-12-28Various fixesSergey Poznyakoff8
* libmu_sieve/extensions/vacation.c (build_mime): Remove superfluous seek. (test_and_update_prop): days==0 means "forever", i.e. send a replay to each user only once. (vacation_reply): If :file tag is given, treat the argument as the name of a file containing the reply message. (vacation_tags): Add "sender" and "file" tags. * libmu_sieve/extensions/moderator.c: Always unref transport stream after passing it to mu_stream_to_message. * maidag/lmtp.c: Likewise. * mh/mh_stream.c: Likewise. * mh/prompter.c: Likewise. * mh/burst.c (flush_stream): Remove extra unnref. * sieve/sieve.c: Likewise. * testsuite/smtpsend.c: Likewise.
2010-12-27vacation: remove dependency on DBM; other minor fixes.Sergey Poznyakoff3
* libmu_sieve/extensions/vacation.c: Use _sget accessors where possible. Use mu_property_t instead of db database. * libmu_sieve/sieve.y (mu_sieve_get_mailer): Verbosely report errors. * libmailutils/base/locker.c (mu_locker_create): Create the locker if the file name part of its full name does not exist.
2010-12-26Bugfixes.Sergey Poznyakoff3
* libmu_auth/tls.c (_tls_ioctl): Fix typo (opcode used instead of code). * mu/filter.c (mutool_filter): Reference mu_strin to prevent it from destroying. * testsuite/smtpsend.c (main): Call mu_stdstream_setup.
2010-12-25pop client and movemail: bugfixesSergey Poznyakoff2
* libproto/pop/mbox.c (pop_close): Destroy the cached data. (pop_destroy): Avoid freeing the same data twice. (pop_body_get_stream,pop_body_size,pop_body_lines): Owner is mu_message_t. (pop_create_body): Change the owner of the created mu_body_t object. * movemail/movemail.c: Correctly close both mailboxes if unhandled errors occur.
2010-12-24Minor bugfixSergey Poznyakoff1
* mail/escape.c (run_editor): Fix a typo.
2010-12-23movemail: minor improvements.Sergey Poznyakoff3
* libmailutils/base/list.c (list_itrctl): Accept mu_itrctl_set_direction and mu_itrctl_qry_direction even if mu_iterator_first has not been called yet. * movemail/movemail.c: Rewrite using iterators. * libmailutils/mailer/mailer.c (safe_address_create): Bugfix.
2010-12-23Bugfix (complements 6bd92d3c07).Sergey Poznyakoff1
* libmu_sieve/util.c (mu_sieve_error, mu_sieve_debug) (mu_sieve_log_action): Format location only if locus.mu_file is not NULL.
2010-12-23mailbox iterator: implement reverse direction and itrctl.Sergey Poznyakoff2
* libmailutils/mailbox/mbxitr.c (mailbox_iterator)<backwards>: New member. (mbx_first): Position to the last message if itr->backwards is set. (mbx_next): Decrement index if itr->backwards is set. (mbx_finished_p): Take into account iteration direction. (mbx_itrctl): new method. (mu_mailbox_get_iterator): Set itrctl method.
2010-12-23movemail: various improvements.Sergey Poznyakoff1
New configuration options allow to specify the maximum number of messages to be copied and control the actions of movemail when an error occurs while appending a message. * movemail/movemail.c (ONERROR_OPTION,MAX_MESSAGES_OPTION): New option codes. (options): New options --onerror and --max-messages. (max_messages_option, onerror_flags): New variable. (ONERROR_SKIP, ONERROR_DELETE, ONERROR_COUNT): New defines. (parse_opt): Handle ONERROR_OPTION. (cb_onerror): New callback. (movemail_cfg_param): New configuration statements: "max-messages" and "onerror". (move_message): Delete the message if ONERROR_DELETE is set. (main): Handle the limit on the number of processed messages and onerror flags. Use mu_mailbox_expunge instead of mu_mailbox_flush. This preserves the attributes of not processed options (in case max_messages_option is not 0) and speeds up the things considerably, especially on huge mailboxes.
2010-12-23mailer: minor improvementSergey Poznyakoff1
Be more liberal when guessing sender and recipient names. Tolerate deviations from RFC822. * libmailutils/mailer/mailer.c (copy_fragment) (recover_email, safe_address_create): New functions. (_set_from, _set_to): Use safe_address_create.
2010-12-23Bugfixes.Sergey Poznyakoff2
* frm/common.c [!HAVE_LIBFRIBIDI] (puts_bidi): Fix definition. * libproto/pop/mbox.c (pop_destroy): Fix coredump (occurred if the mailbox has not been scanned).
2010-12-23BugfixesSergey Poznyakoff4
* libmailutils/base/lcall.c (mu_parse_lc_all): Allow for arg==NULL. * mh/Makefile.am: Define mhlibdir. * mh/pick.y (match_header): Use sget accessors. * mh/repl.c: Accept -noquery silently.
2010-12-23mail: fix the "shell" ("!") command.Sergey Poznyakoff3
* mail/mail.h (mail_execute): Change signature. All callers updated. * mail/shell.c (expand_bang): Change signature. Take the string to be expanded as the 2nd and the last command as 3rd arguments. Always allocate the return string, even if there's nothing to expand. (mail_execute): fix memory management. * mail/escape.c: Update. * mail/escape.c: Update calls to mail_execute.
2010-12-23Follow-up to the previous commit.Sergey Poznyakoff1
* libmu_sieve/util.c: Update.
2010-12-23Bugfixes.Sergey Poznyakoff2
* libmailutils/stream/logstream.c (_log_ctl): Handle MU_IOCTL_SYSLOGSTREAM, pass it to the transport stream. * libmu_sieve/sieve.l (pop_source): Restore input_stream. * libmu_sieve/util.c (mu_sieve_error, mu_sieve_debug) (mu_sieve_log_action): Set location information on the errstream.
2010-12-23sieve: test "list" extension test.Sergey Poznyakoff3
* sieve/tests/list.at: New file. * sieve/tests/Makefile.am (TESTSUITE_AT): Add list.at. * sieve/tests/testsuite.at: Include list.at.

Return to:

Send suggestions and report system problems to the System administrator.