1. 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
  2. 17 Dec, 2013 1 commit
  3. 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
  4. 20 Oct, 2013 1 commit
  5. 22 Aug, 2013 1 commit
  6. 13 Aug, 2013 1 commit
  7. 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
  8. 19 Jun, 2013 1 commit
  9. 25 May, 2013 2 commits
    • * imap4d/io.c (imap4d_tokbuf_decrlf): Rewrite to run in
      O(n).
      * libmailutils/server/ipsrv.c (mu_ip_tcp_accept): Return 0 on
      EINTR (unless srv->f_intr tells otherwise) and EAGAIN.  The caller
      will retry.
      (mu_ip_server_accept): output a diagnostic message before
      returning error.
      Sergey Poznyakoff authored
    • * mu/Makefile.am (mailutils-config): Fix sed expression
      * mu/mailutils-config.in: Replace MUNAME once and assign
      it to the variable.
      Sergey Poznyakoff authored
  10. 12 Apr, 2013 1 commit
    • * mh/show.c: New file.
      * NEWS: Document changes.
      * libmailutils/stream/message_stream.c (copy_trimmed_value): Fix
      string length calculation to allow for empty lines.
      * mh/.gitignore: Update.
      * mh/Makefile.am: Build show.
      * mh/TODO: Document show.
      * mh/mh_getopt.h: Add new option codes.
      * mh/mh_init.c (mh_expand_name): Change handling of the
      last argument. All callers updated.
      (mh_draft_name): Remove.
      Sergey Poznyakoff authored
  11. 07 Apr, 2013 1 commit
  12. 03 Apr, 2013 1 commit
  13. 02 Apr, 2013 2 commits
  14. 01 Apr, 2013 3 commits
    • Sergey Poznyakoff authored
    • * include/mailutils/msgset.h (mu_msgset_sget_mailbox): New proto.
      * include/mailutils/sys/msgset.h (_MU_MSGSET_MODE): New macro.
      * libmailutils/msgset/Makefile.am: Add getmbox.c
      * libmailutils/msgset/getmbox.c: New file.
      * libmailutils/msgset/addset.c: Use _MU_MSGSET_MODE.
      * libmailutils/msgset/create.c: Likewise.
      * libmailutils/msgset/foreachmsg.c: Likewise.
      * libmailutils/msgset/foreachnum.c: Likewise.
      * libmailutils/msgset/negate.c: Likewise.
      * libmailutils/msgset/subset.c: Likewise.
      * libmailutils/msgset/trans.c: Likewise.
      
      * mh/mh.h (mh_private_sequences_iterate): New proto.
      * mh/mh_sequence.c (format_closure) <delim>: New member.
      (format_sequence): Use delim to avoid outputting leading space.
      (save_sequence): Initialize delim.
      (mh_private_sequences_iterate): New function.
      * mh/rmm.c (main): Remove message numbers from sequences.
      * mh/tests/rmm.at: Update.
      Sergey Poznyakoff authored
    • * libmailutils/base/amd.c (_amd_update_message): Return
      immediately if the message is not modified. Always use
      initialized value of flg.
      Sergey Poznyakoff authored
  15. 30 Mar, 2013 4 commits
    • Sergey Poznyakoff authored
    • * mh/msgchk.c (checkmail): take into account various
      possible return codes.
      Sergey Poznyakoff authored
    • * include/mailutils/imap.h (mu_imap_search): New proto.
      * libproto/imap/search.c: New file.
      * include/mailutils/sys/imap.h (MU_IMAP_CLIENT_SEARCH_RX): New state.
      * libproto/imap/fetch.c: Fix debugging categories
      * libproto/imap/mbox.c (_imap_messages_recent)
      (_imap_message_unseen): Use search if information is not
      readily available.
      * libproto/imap/status.c (_mu_imap_status_name_table): Comment
      out UNSEEN: its semantics is entirely different from what we
      need.
      * libproto/imap/Makefile.am: Add new file.
      * mu/imap.c: Implement search.
      
      * include/mailutils/sys/mailbox.h (_mu_mailbox) <_get_atime>: New method.
      * include/mailutils/mailbox.h (mu_mailbox_access_time): New proto.
      * libproto/mbox/mbox.c (_mailbox_mbox_init): Initialize
      >_get_atime.
      * libmailutils/mailbox/mailbox.c (mu_mailbox_access_time): New function.
      
      * libmailutils/datetime/utcoff.c (mu_utc_offset): Rewrite using tzset.
      
      * mh/msgchk.c: Implement --date.
      Check for new mail using both recent and unseen messages.
      Sergey Poznyakoff authored
    • * mh/msgchk.c: New file.
      * mh/Makefile.am: Build msgchk.
      * mh/mh_getopt.h: Update.
      * mh/.gitignore: Update.
      * mh/TODO: Update.
      Sergey Poznyakoff authored
  16. 27 Mar, 2013 1 commit
  17. 25 Mar, 2013 3 commits
  18. 21 Mar, 2013 1 commit
  19. 16 Feb, 2013 1 commit
    • The "< file" construct tests if file is executable and begins with
      the shell interpreter magic (#!/ or #! /).  If so, this file is
      executed and its output is collected.  This provides a way for
      building aliases on the fly.
      
      * mh/mh_alias.l (buffer_ctx) <exec_p>: New member.
      (exec_p): New static variable.
      (push_source): If the file is executable and begins with
      the "#!/" magic, run it and collect its output.
      (pop_source): Use exec_p to decide how to close the file.
      * mh/tests/ali.at: Test executable file inclusion.
      * NEWS: Update.
      Sergey Poznyakoff authored
  20. 03 Jan, 2013 1 commit
    • * include/mailutils/sys/body.h (_mu_body)<rawstream>: New member.
      * include/mailutils/sys/message.h (_mu_message)<rawstream>: New member.
      * libmailutils/mailbox/body.c: Rewrite. Return the specially crafted
      "body-stream" for user I/O operations. Writes to that stream trigger
      creation of a temporary stream (write-through mode) which will be used
      for subsequent I/O.
      * libmailutils/mailbox/msgbody.c (mu_message_get_body): Use msg->rawstream.
      * libmailutils/mailbox/msgheader.c (message_header_fill): Do not
      call mu_message_get_streamref, as that can result in endless recursion.
      Use msg->rawstream instead.
      * libmailutils/mailbox/msgref.c (_mu_message_free): Destroy both
      rawstream and outstream.
      * libmailutils/mailbox/msgstream.c (mu_message_set_stream): Set
      rawstream.
      (mu_message_get_stream): Create outstream as needed.
      (mu_message_get_streamref): If the message has been modified,
      create the outstream and return it to the caller. This way, the
      modifications become visible via the stream interface.
      * libmailutils/tests/Makefile.am: Add new testcases.
      * libmailutils/tests/testsuite.at: Likewise.
      * libmailutils/tests/modmesg.c: New file.
      * libmailutils/tests/modmesg00.at: New file.
      * libmailutils/tests/modmesg01.at: New file.
      * libmailutils/tests/modmesg02.at: New file.
      * libmailutils/tests/modmesg03.at: New file.
      * mh/mhn.c: Fix message reference counting.
      Sergey Poznyakoff authored
  21. 13 Dec, 2012 1 commit
  22. 19 Nov, 2012 1 commit
    • * imap4d/imap4d.c: Avoid gcc warnings.
      * libmailutils/tests/imapio.c (main): Fix format specifier.
      * maidag/mailquota.c (dbm_retrieve_quota): Likewise.
      * mail/quit.c (mail_mbox_close): Likewise.
      * mail/mail.c (options): Fix improper initialization.
      * mu/mu.h (mu_getans): Add proto.
      * mu/util.c: Include netinet/in.h
      Sergey Poznyakoff authored
  23. 12 Nov, 2012 1 commit
    • Also fix iterator synchronization after removing an element and
      improve Sieve API.
      
      * include/mailutils/header.h (mu_header_get_itemptr): New proto.
      * include/mailutils/iterator.h (mu_iterator_advance): Remove.
      (mu_iterator_delitem): New proto.
      (mu_iterator_set_delitem): New proto.
      * include/mailutils/sieve.h (mu_sieve_register_t) <opt_args>: New member.
      (mu_sieve_register_test_ext)
      (mu_sieve_register_action_ext): New protos.
      * include/mailutils/sys/iterator.h (_mu_iterator) <curitem_p>: Remove.
      <delitem>: New member. All uses updated.
      
      * libmailutils/base/iterator.c (mu_iterator_set_delitem): New function.
      
      * libmailutils/mailbox/hdritr.c: Implement bidirectional iteration.
      Implement itrctl method.
      * libmailutils/mailbox/header.c: Likewise.
      
      * libmailutils/base/assoc.c: Use delitem method instead of curitem_p.
      (mu_iterator_delitem): New function.
      * libmailutils/base/opool.c
      * libmailutils/diag/debug.c
      * libmailutils/list/iterator.c
      * libmailutils/list/pop.c
      * libmailutils/list/remove.c
      * libmailutils/list/removenth.c
      * libmailutils/mailbox/imapenv.c
      * libmailutils/mailbox/mbxitr.c
      * libproto/pop/pop3_iterator.c
      
      * libmu_sieve/extensions/Makefile.am: Add editheader.c
      * libmu_sieve/extensions/editheader.c: New file.
      
      * libmu_sieve/prog.c (mu_sv_code_command): Allow for optional positional
      arguments.
      * libmu_sieve/register.c (mu_sieve_test_lookup)
      (mu_sieve_action_lookup): Return NULL if a record with
      empty (NULL) handler is found.
      (mu_sieve_register_test_ext)
      (mu_sieve_register_action_ext): New functions.
      (mu_sieve_register_test)
      (mu_sieve_register_action): Rewrite as wrappers to the above.
      * libmu_sieve/util.c (mu_sieve_vlist_do): Allow for SVT_STRING
      argument.
      * sieve/tests/Makefile.am: Add new testcases.
      * sieve/tests/testsuite.at: Include new testcases.
      * sieve/tests/addheader.at: New testcase.
      * sieve/tests/delheader.at: New testcase.
      
      * NEWS: Update.
      * doc/rfc/README: Update.
      Sergey Poznyakoff authored
  24. 08 Aug, 2012 1 commit
    • * libmailutils/mailbox/header.c (HEADER_STREAMMOD): New flag.
      (mu_header_fill): Read data back from mstream if it was
      modified.
      (mu_header_destroy): Destroy mstream.
      (header_write): Rewrite from scratch. Allow for writing at
      arbitrary offsets.
      * examples/header.c: New commands: "overwrite" and "append",
      for testing the new functionality.
      Sergey Poznyakoff authored
  25. 07 Aug, 2012 1 commit
  26. 06 Aug, 2012 2 commits
  27. 04 Aug, 2012 1 commit
  28. 29 Jul, 2012 1 commit
    • * imap4d/imap4d.c (tls_required): Remove.
      (tls_mode): New variable.
      (imap4d_srv_config) <tls>: Remove.
      (imap4d_srv_config) <tls_mode>: New member.
      (imap4d_srv_param): Change the definition of the "tls" statement.
      Mark "tls-required" as deprecated.
      (imap4d_mainloop): Change type of the tls argument.
      Initialize session and pass it to each handler.
      * imap4d/imap4d.h (imap4d_session): New struct.
      (imap4d_command) <func>: Change signature. All uses changed.
      (tls_mode): New enum.
      (tls_required): Remove.
      (tls_available): New global.
      * imap4d/io.c (io_setio): Don't call tls_encryption_on, leave it to
      the caller.
      * imap4d/login.c (imap4d_login): Use session.
      * imap4d/starttls.c (tls_available): Global. Present even if !WITH_TLS
      (tls_encryption_on): Change signature. All callers updated.
      Sergey Poznyakoff authored
  29. 28 Jul, 2012 2 commits
    • * include/mailutils/smtp.h (mu_smtp_get_reply_iterator)
      (mu_smtp_cmd,mu_smtp_test_param): New protos.
      * libproto/mailer/Makefile.am (libmu_mailer_la_SOURCES): Add
      smtp_cmd.c
      * libproto/mailer/smtp_cmd.c: New file.
      * libproto/mailer/smtp_io.c (mu_smtp_get_reply_iterator): New function.
      * libproto/mailer/smtp_param.c (mu_smtp_set_param): Accept NULL
      parameter value.
      (mu_smtp_test_param): New function.
      * mu/Makefile.am [MU_COND_SUPPORT_SMTP]: Add smtp.c to MODULES.
      (mu_SOURCES): Add getans.c, getyn.c and util.c
      * mu/getans.c: New file.
      * mu/getyn.c: New file.
      * mu/smtp.c: New file.
      * mu/util.c: New file.
      * mu/mu.h (port_from_sa): New proto.
      * mu/pop.c (port_from_sa): Move to util.c
      Sergey Poznyakoff authored
    • * am/tls.m4 (MU_CHECK_GNUTLS): Newer GNU TLS does not require
      libgcrypt. It is required only for v. 2.11 and prior versions.
      Sergey Poznyakoff authored