- 18 Apr, 2017 1 commit
-
-
Until now, mu_header_set_value called with replace=0 prepended the header to the header list, if a header with such name was already present. This has been changed. Now, if the header with the requested name is already present, its action is as follows: 1. If repl is 0, return MU_ERR_EXISTS 2. Otherwise, replace the header with the new value. If the header is not present, it is appended to the end of the header list, instead of putting it at the beginning. This change is incompatible and breaks the tests, that relied on a particular field ordering. These are fixed as well. The use of mu_header_set_value throughout the sources has been revised to ensure that single-instance headers are never added twice. This change also facilitates the second part of this commit, which fixes creation of the multipart/alternative message by the mail utility. * libmailutils/mailbox/header.c (mu_header_set_value): Fix semantics. If the replace parameter is not set and the header field with the given name already exists, return MU_ERR_EXISTS without changing anything. If adding new header, append it to the end of the header list, instead of pushing it to the top. * configure.ac: Raise shared library revision number. * libmu_scm/mu_message.c (mu-message-set-header) (mu-message-set-header-fields): call mu_header_set_value explicitly if repl is not set. * libmu_sieve/extensions/moderator.c: Force replace header mode when needed. * libmu_sieve/extensions/vacation.c: Likewise. * mh/mh_init.c (mh_annotate): Prepend the annotation header. * mh/mhn.c: Force replace header mode when needed. * mh/repl.c: Likewise. * mh/send.c: Likewise. * libmailutils/tests/modmesg01.at: Change expected header order. * libmailutils/tests/modmesg03.at: Likewise. * mh/tests/mhn.at: Likewise. * mh/tests/send.at: Likewise. * sieve/tests/moderator.at: Likewise. * sieve/tests/redirect.at: Likewise. * sieve/tests/reject.at: Likewise. * sieve/tests/vacation.at: Likewise. * examples/mta.c (message_finalize): Append X-Authentication-Warning, instead of setting it. Make sure Content-Disposition is not set for parts of a multipart/ alternative MIME message. Some mail readers (notably, yahoo), misinterpret it. * libmailutils/mime/attachment.c (at_hdr): Use mu_header_set_value to set Content-Type and Content-Disposition. * libmailutils/mime/mime.c (_mime_set_content_type): If the content type is set to multipart/alternative, remove the Content-Disposition headers from the message parts. * mail/send.c (saveatt): Don't set content-disposition for multipart/alternative, it is now done by the library. (add_attachments): Warn about ignored headers. Append only Received and X-* headers, replace others. (parse_headers): Append headers. (compose_header_set): Use mu_header_append if COMPOSE_APPEND is requested. * mail/util.c (util_header_expand): Use mu_header_append.
Sergey Poznyakoff authored
-
- 13 Apr, 2017 2 commits
-
-
* libmailutils/base/assoc.c (merge_sort): Fix last argument in call to cmp.
Sergey Poznyakoff authored -
The new option --alternative is provided to change the content type of the composed message to multipart/alternative. The ~/ escape toggles the type between multipart/mixed and multipart/alternative. In messages of multipart/alternative type, the Content-Disposition header of all attachments is reset to "inline". * libmailutils/mime/mime.c (mu_mime_create): Bugfix: honour the MU_MIME_MULTIPART_ALT flag. * mail/mail.c: New option --alternative. * mail/mail.h (compose_env) <attlist,mime>: New members. (multipart_alternative): New global. (send_attach_file): Change return value. (escape_toggle_multipart_type): New proto. * mail/send.c (multipart_alternative): New global. Keep the list of attachments in compose_env_t. Make sure it is freed when no longer used. Implement the ~/ escape. * mail/table.c: New escape ~/ * mail/util.c: Use mu_strerror instead of strerror. * NEWS: Document changes to the mail utility * doc/texinfo/programs.texi: Likewise.
Sergey Poznyakoff authored
-
- 11 Apr, 2017 1 commit
-
-
The subcommands are re-implemented as standalone binaries installed to pkglibexecdir. The main binary acts as a dispatcher. * configure.ac: Build mu/libexec/Makefile * include/mailutils/.gitignore: Ignore gitinfo.h * include/mailutils/opt.h (mu_parseopt_help_stream_create): New proto. * libmailutils/cli/cli.c (mu_cli_ext): Honor MU_PARSEOPT_PROG_NAME setting. * libmailutils/opt/help.c (mu_parseopt_create_help_stream): New function. (mu_program_help,mu_program_usage) (mu_program_version): Use it. * mu/Makefile.am: Move commands to separate executables under libexec. * mu/mu.c: Rewrite. * mu/dispatch.c: Remove. * mu/help.c: Remove. * mu/libexec/.gitignore: New file. * mu/libexec/Makefile.am: New file. * mu/libexec/getopt.c: New file. * mu/getans.c: Move to mu/libexec. * mu/getarg.c: Likewise. * mu/getyn.c: Likewise. * mu/util.c: Likewise. * mu/verbose.c: Likewise. * mu/shell.c: Likewise. * mu/mu.h: Remove. * mu/libexec/mu.h: New file. * mu/acl.c: Move to mu/libexec; Rewrite as a standalone program. * mu/cflags.c: Likewise. * mu/dbm.c: Likewise. * mu/filter.c: Likewise. * mu/flt2047.c: Likewise. * mu/imap.c: Likewise. * mu/info.c: Likewise. * mu/ldflags.c: Likewise. * mu/logger.c: Likewise. * mu/pop.c: Likewise. * mu/query.c: Likewise. * mu/send.c: Likewise. * mu/smtp.c: Likewise. * mu/stat.c: Likewise. * mu/wicket.c: Likewise. * mu/mu-setup.awk: Remove. * po/POTFILES.in: Update.
Sergey Poznyakoff authored
-
- 10 Apr, 2017 1 commit
-
-
* libmailutils/cfg/parser.y (mu_cfg_find_node): Fix spurious error diagnostics when the node is not found.
Sergey Poznyakoff authored
-
- 09 Apr, 2017 2 commits
-
-
-
* NEWS: Describe the change. * doc/texinfo/mailutils.texi: Remove description of sieve2scm * doc/texinfo/programs.texi: Likewise. * scheme/Makefile.am: Remove sieve2scm. * scheme/mimeheader.scm: Remove. * scheme/numaddr.scm: Remove. * scheme/redirect.scm: Remove. * scheme/reject.scm: Remove. * scheme/sieve-core.scm: Remove. * scheme/sieve2scm.scmi: Remove. * scheme/vacation.scm: Remove.
Sergey Poznyakoff authored
-
- 08 Apr, 2017 2 commits
-
-
-
* include/mailutils/acl.h (mu_acl_set_session_id): Remove proto. * include/mailutils/server.h (mu_session_id): Remove extern. (mu_sid): New proto. * libmailutils/server/sid.c: New file. * libmailutils/server/Makefile.am: Add sid.c * libmailutils/server/ipsrv.c (mu_ip_tcp_accept) (mu_ip_udp_accept): Remove calls to mu_acl_set_session_id. (mu_ip_server_accept): Make sure output to mu_strerr is filtered so that session ID is prepended to each line. (mu_ip_server_loop): Remove. * libmailutils/server/msrv.c (mu_m_server_check_acl): Remove call to mu_acl_set_session_id. * libmailutils/server/server.c (mu_session_id): Remove variable. * imap4d/imap4d.c (get_client_address, set_strerr_flt) (clr_strerr_flt): Remove unused functions. (imap4d_connection): Simplify. * pop3d/pop3d.c: Likewise.
Sergey Poznyakoff authored
-
- 07 Apr, 2017 1 commit
-
-
* doc/texinfo/gendocs_template: Fix links. * doc/texinfo/html.init: Fix the Documentation link.
Sergey Poznyakoff authored
-
- 06 Apr, 2017 2 commits
-
-
* mu-aux/mailutils.m4: Don't use packed version representation, because of eventual numerical overflows. Compare versions number by number. Define the following additional constants: MAILUTILS_VERSION_MAJOR, MAILUTILS_VERSION_MINOR, and MAILUTILS_VERSION_PATCH. * NEWS: Document changes.
Sergey Poznyakoff authored -
* Makefile.am: Minor change. * include/mailutils/Makefile.am (gitinfo.h): Build only if $(srcdir) and $(builddir) are the same. * mu-aux/gitinfo.pl: Rename to mu-aux/gitinfo * configure.ac (GITINFO): Reflect this change * mu-aux/Makefile.am: Likewise.
Sergey Poznyakoff authored
-
- 05 Apr, 2017 1 commit
- 04 Apr, 2017 1 commit
-
-
* mu-aux/gencl: New option --email. * Makefile.am: Simplify the ChangeLog command. Use the --email option.
Sergey Poznyakoff authored
-
- 03 Apr, 2017 2 commits
-
-
* mu-aux/gencl: Don't use Time::ParseDate. Work over bug in Text::Wrap 2012.0818. New option --ignore-errors (-i). Ensure consistent error code. * Makefile.am (dist-hook): Relax checking for intermediate releases.
Sergey Poznyakoff authored -
* mu-aux/gencl: Rewritten as a replacement for gitlog-to-changelog. * ChangeLog.amend: More spell fixes. * Makefile.am: Use gencl instead of gitlog-to-changelog. * doc/ChangeLog.CVS: Spell checking * gnulib.modules: Remove gitlog-to-changelog.
Sergey Poznyakoff authored
-
- 24 Mar, 2017 1 commit
-
-
* libmailutils/tests/.gitignore: Update. * libmailutils/tests/xscript.at: New file. * libmailutils/tests/xscript.c: New file. * libmailutils/tests/Makefile.am: Add new files. * libmailutils/tests/testsuite.at: Include new testcase.
Sergey Poznyakoff authored
-
- 23 Mar, 2017 2 commits
-
-
* include/mailutils/debug.h (MU_ASSERT): Prefix local variable name with two underscores to diminish the probability of shadowing.
Sergey Poznyakoff authored -
* Makefile.am: Mark ChangeLog as noinst_DATA to trigger its rule. Rewrite the ChangeLog rule using a wrapper over gitlog-to-changelog, which rewrites the file only when needed. (dist-hook): Fail if there are uncommitted changes. * mu-aux/gencl: New file. * maint.mk: Remove.
Sergey Poznyakoff authored
-
- 22 Mar, 2017 1 commit
-
-
* libmailutils/stream/xscript-stream.c (print_transcript): Print closing double-quote after user name in LOGIN statement.
Sergey Poznyakoff authored
-
- 21 Mar, 2017 5 commits
-
-
* Makefile.am (alpha,alphacheck): Update rules. * mu-aux/gitinfo.pl: Obtain more data.
Sergey Poznyakoff authored -
-
* libmailutils/base/lcall.c (mu_lc_all_free): Use str->flags to determine what fields need to be freed. (mu_parse_lc_all): Force retrieving language and territory if charset is requested. Use this to provide a default value, in case charset cannot be determined. Deallocate the surplus data afterwards. * libmailutils/base/locale.c (mu_charset_lookup): Bugfix. * mail/util.c (util_rfc2047_decode): Avoid memory leak.
Sergey Poznyakoff authored -
The tests failed if MU_DEFAULT_SCHEME were set to anything, but mbox. * imap4d/tests/atlocal.in (make_config): set .mailbox.mailbox-type=mbox. * imap4d/list.c (imap4d_list): Use %s as the format.
Sergey Poznyakoff authored -
* libmailutils/cfg/driver.c (mu_cfg_field_map): Use correct enumeration function depending on the element type. Return meaningful error.
Sergey Poznyakoff authored
-
- 20 Mar, 2017 3 commits
-
-
Intermediate tarballs have the same version number as initial alpha version, to which is appended a suffix "-N", where N is the number of commits between the current git HEAD and the original alpha release. Additionally, the --version (or -version, for MH) output has been changed to include the N and the git description (for all releases, but stable). * .gitignore: Update. * Makefile.am: Remove git-describe and git-describe.h goals. (alpha, alphacheck): Rewrite. * configure.ac (GITINFO): New subst variable. * include/mailutils/Makefile.am (gitinfo.h): New built source. * libmailutils/cli/cli.c: Include gitinfo.h (mu_version_hook): Rewrite. * mh/mh_getopt.c: Include gitinfo.h (mh_version_hook): Rewrite. * mu-aux/gitinfo.pl: New file. * mu-aux/Makefile.am (EXTRA_DIST): Add gitinfo.pl * mu/Makefile.am (mu-setup.c): Add dependency * testsuite/testsuite.inc (MUT_VERSION): Account for changes in version output.
Sergey Poznyakoff authored -
* pop3d/cmd.c (command_table_head): Remove. Use command_table instead. All uses changed. * pop3d/stls.c (pop3d_stls): Fail if TLS is not requested.
Sergey Poznyakoff authored -
* include/mailutils/iterator.h (mu_itrctl_req) <mu_itrctl_count>: New request type. * libmailutils/base/assoc.c (itrctl): Support mu_itrctl_count. * libmailutils/list/iterator.c (list_itrctl): Likewise. * libmailutils/mailbox/hdritr.c (hdr_itrctl): Likewise. * libmailutils/mailbox/mbxitr.c (mbx_itrctl): Likewise. * libmailutils/base/opool.c (opitr_itrctl): New function - support mu_itrctl_count. (mu_opool_get_iterator): Register opitr_itrctl. * libmailutils/diag/debug.c (list_itrctl): Return 1-based position indices on mu_itrctl_tell. Support mu_itrctl_count.
Sergey Poznyakoff authored
-
- 19 Mar, 2017 1 commit
-
-
* libmailutils/cfg/driver.c (parse_mapping): Fix expected value type. * libmu_auth/sql.c (get_field): Remove left-over mu_assoc_ref call (see 622bc770).
Sergey Poznyakoff authored
-
- 18 Mar, 2017 1 commit
-
-
The new implementation allows for per-server certificates. * libmu_auth/Makefile.am: Build tls support depending on the value of MU_COND_GNUTLS. * libmu_auth/notls.c: New file. * libmu_auth/tls.c: Rewrite. * libmu_auth/tlsiostr.c: New file. * libmu_auth/tlsvar.c: New file. * libmu_auth/tlsconf.c: New file. * include/mailutils/sys/tls-stream.h (_mu_tls_stream): New members: session_type, conf, cred. (mu_tls_io_stream_create): New proto. * include/mailutils/tls.h (mu_tls_module_config): Remove definition. (mu_tls_config): New structure. (mu_tls_server_stream_create): Remove proto. (mu_tls_cert_file_checks) (mu_tls_key_file_checksr) (mu_tls_ca_file_checks): New globals (MU_TLS_CERT_FILE_CHECKS) (MU_TLS_KEY_FILE_CHECKS) (MU_TLS_CA_FILE_CHECKS): New defines. (mu_tls_stream_create): New proto. (mu_tls_config_status): New constants. (mu_tls_check_config): Remove. (mu_tls_config_check): New function. * include/mailutils/server.h (mu_m_server_preflight_fp): New typedef. (mu_m_server_set_preflight): New proto. * libmailutils/diag/debcat (tls): New category. * libmailutils/server/ipsrv.c (mu_ip_server_get_data): New function. * libmailutils/server/msrv.c (_mu_m_server) <preflight>: New method. (mu_m_server_set_preflight): New function. (mu_m_server_destroy): Destroy the srvlist. (open_connection): New function. (mu_m_server_run): Remove from srvlist only those servers that failed to open. Run preflight check, if registered. * include/mailutils/cfg.h (mu_cfg_section): New member: data. * libmailutils/cfg/driver.c (dup_container): Copy the "data" pointer. (mu_cfg_section_add_params): Preserve original pointer and offset when necessary. * libmailutils/cfg/parser.y (_scan_tree_helper): Use the section data pointer (if set) as data target. * configure.ac (MU_COND_GNUTLS): New conditional. * imap4d/commands.c: Remove #ifdef WITH_TLS preprocessor conditional. * imap4d/imap4d.c (tls_mode): Remove variable. (imap4d_srv_config): Move definition to the header file. Remove #ifdef WITH_TLS preprocessor conditionals. Rename the tls configuration statement to tls-mode. Add new subsection .server.tls; Remove the legacy tls-required configuration statement. (imap4d_mainloop): Change signature: take a pointer to the struct imap4d_srv_config as the 3rd argument, Use the cfg->tls_mode member to decide on TLS state. (main): Call mu_tls_cfg_init. Install server preflight checker. * imap4d/imap4d.h: Remove #ifdef WITH_TLS preprocessor conditionals. (imap4d_srv_config): Moved from imap4d.c New member: tls_conf (imap4d_session): New member: tls_conf (global_tls_conf): New global. (io_setio, imap4d_init_tls_server): Change prototypes. * imap4d/io.c (io_setio): Change signature: take a pointer to the struct mu_tls_config as the 3rd argument. Rewrite TLS support. (imap4d_init_tls_server): Take a pointer to the struct mu_tls_config. * imap4d/starttls.c (tls_available, tls_done): Remove globals. (global_tls_conf): New global. (imap4d_starttls): Keep TLS state in the session. (tls_encryption_on): Likewise. (starttls_init): Rewrite as a mserver preflight check function. * pop3d/capa.c: Remove #ifdef WITH_TLS preprocessor conditional. (capa_stls): Rewrite. * pop3d/cmd.c (global_tls_conf): New global. (stls_preflight): New function. (pop3d_error_string): Rewrite using char ** array. * pop3d/extra.c (pop3d_setio): Take a pointer to struct mu_tls_config as the 3rd argument. Decide on TLS using it. (pop3d_init_tls_server): Take a pointer to struct mu_tls_config. * pop3d/pop3d.c: Rename the tls configuration statement to tls-mode. Add new subsection .server.tls; Remove the legacy tls-required configuration statement. (pop3d_mainloop) Take a pointer to struct mu_tls_config as the 3rd argument. Decide on TLS using it. (main): Call mu_tls_cfg_init. Install server preflight check. * pop3d/pop3d.h (pop3d_session): New member tls_conf. (pop3d_srv_config): New definition. (global_tls_conf): New extern. * pop3d/stls.c: Rewrite TLS support. * NEWS: Document new features. * configure.ac: Version 3.2.90. * doc/texinfo/programs.texi: Update.
Sergey Poznyakoff authored
-
- 11 Mar, 2017 2 commits
-
-
- 06 Mar, 2017 1 commit
-
-
* libmailutils/mime/mimehdr.c (mu_mime_param_free): Check if argument is NULL.
Sergey Poznyakoff authored
-
- 18 Feb, 2017 1 commit
-
-
* libmailutils/base/rfc2047.c (mu_rfc2047_encode): Limit length of encoded word to 75 bytes. * libmailutils/filter/qpflt.c: Treat '?' as special character in Q encoder. * libmailutils/tests/encode2047.at: Add more tests. * libmailutils/tests/encode2047.c: Use mailutils string I/O
Sergey Poznyakoff authored
-
- 17 Feb, 2017 2 commits
-
-
* libmailutils/stream/stream.c (mu_stream_destroy): Free buffer space. (mu_stream_set_buffer,mu_stream_getdelim): Use stdlib allocation functions instead of mu wrappers.
Sergey Poznyakoff authored -
The approach used so far failed to recognize ambiguous abbreviations located in different groups. It also didn't work when MU_PARSEOPT_NO_SORT was requested. This commit fixes it by keeping an additional array of indices to long options. The array is sorted so that its elements produce a lexicographically ascending list of long options. * include/mailutils/opt.h (mu_parseopt): New members po_longcnt, po_longidx keep a sorted array of indices to po_optv with long options. * libmailutils/opt/opt.c (find_long_option): Iterate over po_longidx. (parseopt_init): Initialize and sort po_longidx. (mu_parseopt_free): Free po_longidx. * libmailutils/tests/parseopt.c: Add three more potentially ambiguous options * libmailutils/tests/parseopt26.at: New testcase. * libmailutils/tests/parseopt27.at: New testcase. * libmailutils/tests/Makefile.am: Add new testcases. * libmailutils/tests/testsuite.at: Likewise.
Sergey Poznyakoff authored
-
- 05 Feb, 2017 1 commit
- 30 Jan, 2017 3 commits
-
-
The new node type mu_sieve_node_end is introduced to explicitly mark end of the parse tree. When generating code, this node triggers insertion of _mu_i_sv_instr_source/_mu_i_sv_instr_line before the end of code marker. This, in turn, ensures that a correct location is reported for implicit keep, if logging is enabled. * libmu_sieve/sieve-priv.h (mu_sieve_node_end): New node type. (mu_sieve_node_list): New type (from struct node_list in sieve.y) * libmu_sieve/sieve.y (node_list_add): New function. (input production): Add mu_sieve_node_end at the end of the tree.
Sergey Poznyakoff authored -
* maidag/maidag.c (sieve_debug_flags) (sieve_enable_log): Remove. * maidag/script.c (apply_script): Check for mu_script_sieve_log.
Sergey Poznyakoff authored
-