1. 27 Apr, 2015 1 commit
    • Setting non-existing variable in bin/mail at the start of the session
      caused further calls to set (without arguments) to malfunction.  This
      reveiled bugs in list mapping functions.
      
      On the other hand, invoking completion after "set var=" caused bin/mail
      to coredump.
      
      * libmailutils/list/gmap.c (mu_list_gmap): Initialize rc.
      * libmailutils/list/map.c: Always initialize *res.
      * mail/mailvar.c (mailvar_list_copy): The call to mu_list_map
      does not necessarily create the list. Create it, if it doesn't.
      (mailvar_iterate_next): Redo the loop: check if there are items
      to iterate over.
      Sergey Poznyakoff authored
  2. 02 Mar, 2015 2 commits
  3. 08 Dec, 2014 1 commit
  4. 07 Dec, 2014 1 commit
  5. 06 Dec, 2014 1 commit
    • * libmailutils/mailbox/fsfolder.c: Fix debugging categories
      * libproto/maildir/mbox.c (maildir_opendir)
      (maildir_msg_finish_delivery)
      (maildir_scan0): Log errors.
      (maildir_flush,maildir_deliver_new): Return EACCES if the mailbox is read-only.
      Sergey Poznyakoff authored
  6. 05 Dec, 2014 1 commit
    • New imap4d statement "retain-groups" instructs it to retain the
      named supplementary user groups when switching to the user
      privileges (previously, imap4d just switched to <user>:mail).
      Read-only mailboxes are handled graciously: SELECT succeeds on
      such mailboxes, bug marks them explicitly as read-only.
      
      * imap4d/imap4d.c (user_retain_groups): New global.
      New config statement "retain-groups".
      (mu_get_user_groups): New function.
      (imap4d_session_setup0): Use mu_switch_to_privs instead of
      just setuid.
      * imap4d/list.c (imap4d_list): Fix handling of
        LIST "" "/path/to/mbox"
      * imap4d/select.c (imap4d_select0): Retry opening in read-only
      mode if failed to open for read-write.
      * libproto/maildir/mbox.c (maildir_mkfilename)
      (mk_info_filename): Change return value and signature. All uses
      changed.
      (maildir_scan0): Don't shuffle messages if mailbox is opened
      read-only.
      * libproto/maildir/folder.c: Update call to maildir_mkfilename.
      * libproto/maildir/maildir.h (maildir_mkfilename): Change
      prototype.
      Sergey Poznyakoff authored
  7. 03 Dec, 2014 1 commit
  8. 14 Aug, 2014 1 commit
  9. 10 Aug, 2014 1 commit
    • * imap4d/search.c (imap4d_search0): Use parsebuf.err_mesg if defined,
      otherwise fall back to the general "parse error" message.
      * include/mailutils/datetime.h (MU_DATETIME_INTERNALDATE): Use %e for
      day. Day can be one-digit decimal.
      * libmailutils/datetime/scantime.c (mu_scan_datetime): Skip initial
      ws for %e.
      * mu/imap.c (com_search): Print newline after the "no matches" message.
      Sergey Poznyakoff authored
  10. 27 Jul, 2014 1 commit
    • This patch adds a convenience library libmuscript that provides scripting
      capability easy to use in MU applications. Currently used by maidag and
      inc.
      
      * include/mailutils/util.h (mu_stpcpy): 2nd arg is const.
      * libmailutils/string/stpcpy.c: Likewise.
      
      * lib/.gitignore: Update.
      * lib/Makefile.am: New library libmuscript.a
      * lib/muscript.h: New file.
      * lib/muscript_priv.h: New file.
      * lib/script.c: New file.
      * maidag/guile.c: Rename to ...
      * lib/guile.c: ... this
      * maidag/python.c: Rename to ...
      * lib/python.c: ... this
      * maidag/sieve.c: Rename to ...
      * lib/sieve.c: ... this
      
      * maidag/Makefile.am (maidag_LDADD): Add libmuscript.a
      (maidag_SOURCES): Update.
      * maidag/maidag.c (script_handler): Change type to mu_script_t.
      * maidag/maidag.h: Include muscript.h
      * maidag/script.c: Rewrite via libmuscript
      
      * mh/Makefile.am (inc_LDADD): New variable.
      * mh/inc.c (options): New options --language and --script.
      (mh_option): New options -language and -script.
      (incdat) <handler,descr>: New members.
      (incmbx): Optionally process each message through a script. If it is
      marked as deleted upon return, don't incorporate it.
      (main): Set mh as the default mailbox scheme.
      Initialize scripting subsystem and deallocate it when finished.
      * mh/mh_getopt.h (ARG_LANG, ARG_SCRIPT): New constants.
      Sergey Poznyakoff authored
  11. 26 Jul, 2014 1 commit
    • * bootstrap.conf: Create and populate lib/gnu, if necessary.
      * configure.ac (MU_APP_COMMON_INCLUDES): Update.
      (AC_CONFIG_FILES): Build lib/gnu/Makefile
      * lib/Makefile.am (libmuaux_a_SOURCES): Add all objects from gnu/
      * po/POTFILES.in: Update.
      
      * examples/.gitignore: Update.
      Sergey Poznyakoff authored
  12. 17 Jul, 2014 2 commits
  13. 07 Jul, 2014 3 commits
  14. 05 Jul, 2014 1 commit
    • * libmailutils/filter/xml.c: New file.
      * include/mailutils/filter.h (mu_xml_filter): New extern.
      * libmailutils/filter/Makefile.am (libfilter_la_SOURCES): Add xml.c
      * libmailutils/filter/filter.c (mu_filter_get_list): Register mu_xml_filter.
      
      * libmailutils/tests/xml.at: New file.
      * libmailutils/tests/Makefile.am: Add xml.at
      * libmailutils/tests/testsuite.at: Likewise.
      Sergey Poznyakoff authored
  15. 01 Jul, 2014 1 commit
    • * include/mailutils/filter.h (mu_htmlent_filter): New extern.
      * libmailutils/filter/Makefile.am: Add htmlent.c
      * libmailutils/filter/filter.c (mu_filter_get_list): Register mu_htmlent_filter.
      * libmailutils/filter/htmlent.c: New file.
      * libmailutils/tests/htmlent.at: New testcase.
      * libmailutils/tests/Makefile.am: Add new testcase.
      * libmailutils/tests/testsuite.at: Likewise.
      Sergey Poznyakoff authored
  16. 17 Jun, 2014 1 commit
    • Without this, `mk_info_filename' generates filenames of the following
      form when the flag set is empty:
      
          1402217787.M664911P5957Q143.hostname:2
      
      The original Maildir spec (http://cr.yp.to/proto/maildir.html),
      however, mandates that filenames must be of the form `uniq:info', with
      `info' starting with "2,"--including a comma.
      
      This patch removes the "cleanup" performed by `mk_info_filename' as
      that there is no rationale for it in mailutils' source code history,
      and as it breaks Gnus' "nnmaildir" backend (Cf.  `nnmaildir--add-flag').
      
      * libproto/maildir/mbox.c (mk_info_filename): Keep comma at the end of
      filename when the flags suffix is empty.
      Damien Diederen authored
  17. 21 May, 2014 1 commit
  18. 15 Apr, 2014 1 commit
  19. 26 Feb, 2014 5 commits
  20. 06 Feb, 2014 2 commits
    • * mh/mh_getopt.c (mh_getopt): Correctly handle traditional options
      that begin with "no" (e.g. "notify").
      * mh/inc.c (mh_option): Accept -notify (single-dash).
      Sergey Poznyakoff authored
    • * include/mailutils/mailbox.h (mu_mailbox_set_notify)
      (mu_mailbox_unset_notify): New protos.
      * include/mailutils/sys/mailbox.h (_mu_mailbox) <notify_user>
      <notify_fd,notify_sa>: New members.
      * libmailutils/mailbox/Makefile.am (libmailbox_la_SOURCES): Add
      biffnotify.c
      * libmailutils/mailbox/biffnotify.c: New file.
      * libmailutils/mailbox/mailbox.c (_mailbox_create_from_record): Initialize
      notify_fd.
      (mu_mailbox_destroy): Free notify_sa.
      (mu_mailbox_close): Close notify_fd.
      (mu_mailbox_flush): Rewrite to handle append-only mailboxes effectively.
      * libmailutils/server/msrv.c (server_cfg_param): Fix docstring.
      * libmailutils/stream/file_stream.c (fd_open): Open fd read-write if
      both MU_STREAM_APPEND and MU_STREAM_READ are requested.
      * libproto/mbox/mbox.c (mbox_expunge0): Rescan the mailbox if
      messages_count == 0. Special handling for append-only mailboxes.
      * maidag/deliver.c: Use library notification mechanism.
      * mh/inc.c: New option --notify.
      * movemail/movemail.c: Likewise.
      Sergey Poznyakoff authored
  21. 05 Feb, 2014 1 commit
  22. 04 Feb, 2014 3 commits
  23. 24 Dec, 2013 1 commit
    • The bug was introduced in commit 6e2a3758.
      
      The ACLs allow administrators to limit access to IMAP services to
      particular users or users belonging to particular groups.
      
      * imap4d/authenticate.c (imap4d_auth_capability): Take session
      pointer as argument.  Don't report authentication capabilities
      if tls is required.
      (imap4d_authenticate): Fix conditional.
      * imap4d/capability.c (imap4d_capability): Update call to
      imap4d_auth_capability.
      * imap4d/imap4d.c (cb_tls_required): Set tls_mode.
      (auth_deny_user_list,auth_allow_user_list)
      (auth_deny_group_list,auth_allow_group_list): New statics.
      (check_user_groups,imap_check_group_list): New static functions.
      (imap4d_cfg_param) <allow-users,deny-users>
      <allow-groups,deny-groups>: New configuration statements.
      (imap4d_session_setup0): Check allow/deny lists.
      * imap4d/imap4d.h (imap4d_auth_capability): Change signature.
      
      * pop3d/pop3d.c (cb_tls_required): Set tls_mode.
      
      * bootstrap (gnulib_extra_files): Update.
      Sergey Poznyakoff authored
  24. 17 Dec, 2013 1 commit
  25. 30 Nov, 2013 1 commit
    • * libproto/imap/appmsg.c (mu_imap_append_message): Fix conditional.
      * libproto/imap/mbox.c (_imap_mbx_append_message): Fix error checking.
      * libproto/imap/url.c (_mu_imap_url_init)
      (_mu_imaps_url_init): Set _get_path member.  This allows the user
      to specify an URL without explicit path, implying INBOX.
      Sergey Poznyakoff authored
  26. 20 Oct, 2013 1 commit
  27. 22 Aug, 2013 1 commit
  28. 13 Aug, 2013 1 commit
  29. 17 Jul, 2013 1 commit
    • * pop3d/pop3d.h (ERR_SYS_LOGIN): New error code.
      * pop3d/capa.c (pop3d_session_init): Advertise the AUTH-RESP-CODE
      capability.
      * pop3d/cmd.c (error_table) <ERR_BAD_LOGIN>: Mark with the
      AUTH response code.
      <ERR_SYS_LOGIN>: New entry.
      * pop3d/user.c (pop3d_user): Use mu_get_auth to obtain
      the user's identity. On error, the error code is ERR_BAD_LOGIN
      or ERR_SYS_LOGIN, depending on its return and return from
      mu_authenticate.
      Sergey Poznyakoff authored