1. 08 Apr, 2017 1 commit
    • * 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
  2. 07 Apr, 2017 1 commit
  3. 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
  4. 05 Apr, 2017 1 commit
  5. 04 Apr, 2017 1 commit
  6. 03 Apr, 2017 2 commits
  7. 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
  8. 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
  9. 22 Mar, 2017 1 commit
  10. 21 Mar, 2017 5 commits
  11. 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
  12. 19 Mar, 2017 1 commit
  13. 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
  14. 11 Mar, 2017 2 commits
  15. 06 Mar, 2017 1 commit
  16. 18 Feb, 2017 1 commit
  17. 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
  18. 05 Feb, 2017 1 commit
  19. 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
    • * lib/sieve.c (_sieve_action_log): Log source location
      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
  20. 26 Jan, 2017 4 commits
  21. 24 Jan, 2017 4 commits
    • * imap4d/list.c (list_fun): Ignore names that contain delimiter
      as part of their name (untranslatable names);
      Don't insert spurious separators.
      (list_ref): Make sure a pathnames are properly separated from
      namespace prefixes.
      (imap4d_list): Fix eventual use of uninitialized pfx.
      * imap4d/namespace.c (prefix_translate_name): Allow for NS_OTHER
      prefixes ending with a delimiter.
      (extract_username): Return NULL if prefix without trailing delimiter
      was used.
      * imap4d/tests/atlocal.in (make_config): Add more namespace prefixes.
      * imap4d/tests/list.at: Add more tests.
      * libmailutils/string/expvar.c (exp_getvar): Return MU_WRDSE_UNDEF if
      the variable is defined, but has NULL value.
      Sergey Poznyakoff authored
    • * imap4d/namespace.c (namespace_get_name): Return NULL if name
      is the same as the returned prefix
      Sergey Poznyakoff authored
    • * imap4d/namespace.c (prefix_translate_name): Remove the url
      parameter. All uses changed.
      (namespace_translate_name): Likewise.
      (i_translate_name): Rename to translate_name. Remove the url
      and ns parameters. All uses changed.
      * imap4d/imap4d.h (namespace_translate_name): Change signature.
      Sergey Poznyakoff authored
    • This avoids problems with escaping pathnames that contain characters
      specific for URLs
      
      * imap4d/select.c (imap4d_select0): Don't use mailbox URL.
      * lib/manlock.c (manlock_open_mailbox_from_record): New function.
      * lib/muaux.h (manlock_open_mailbox_from_record): New proto.
      Sergey Poznyakoff authored