1. 05 Nov, 2008 2 commits
    • * maidag/forward.c: New file.
      * maidag/Makefile.am (maidag_SOURCES): Add forward.c.
      * maidag/deliver.c (deliver_url): Call maidag_forward for local
      users.
      * maidag/maidag.c (forward_file, forward_file_checks): New
      variables.
      (maidag_cfg_param): New keywords forward-file and
      forward-file-checks.
      * maidag/maidag.h (FWD_IWGRP, FWD_IWOTH, FWD_LINK, FWD_DIR_IWGRP)
      (FWD_DIR_IWOTH, FWD_ALL): New defines.
      (forward_file, forward_file_checks): New variables.
      (enum maidag_forward_result): New data type.
      (maidag_forward): New prototype.
      Sergey Poznyakoff authored
    • * maidag/deliver.c (mda): Pass msg as a 1st argument to deliver.
      (deliver_to_user): Remove 1st argument.
      (deliver): Change type of the 1st argument to mu_message_t.
      * maidag/lmtp.c (dot_deliver): Pass msg as a 1st argument to
      deliver.
      * maidag/maidag.c (sieve_test): Change type of the 2nd argument to
      mu_message_t.
      * maidag/maidag.h (sieve_test, deliver): Pass mu_message_t,
      instead of mu_message_t.
      
      * mailbox/mailer.c (mu_mailer_create_from_url): Set default debug
      level.
      * sql/mysql.c (mu_mysql_connect): Avoid coredumps if conn->server
      is NULL.
      Sergey Poznyakoff authored
  2. 28 Oct, 2008 1 commit
    • This makes it possible to `deliver' mails to mailers without
      explicitly specifying `remote+mailer' mailbox URLs.  In
      particular, it is handy for implementing mailing lists using
      `prog' mailers (as with Mailman).
      
      * maidag/deliver.c (notify_action): Do nothing if biff_user_name
      is empty.
      (deliver_to_user): Remove `name' argument.  Allow for auth==NULL.
      (is_remote_url): Use case-sensitive comparison.
      (is_mailer_url): New function.
      (deliver_url): Handle mailer URLs as if they were corresponding
      `remote+' mailbox URLs.  This allows to handle mailing lists.
      * maidag/lmtp.c (lmtp_groups): New global.
      (lmtp_set_privs): New function. Sets primary and
      supplementary group privileges.
      (maidag_lmtp_server): Call lmtp_set_privs.
      * maidag/maidag.c (lmtp_group): Remove.  It is superceded by
      lmtp_groups.
      (maidag_cfg_param): Allow to specify supplementary groups.
      * maidag/maidag.h (lmtp_group): Replace with lmtp_groups.
      Sergey Poznyakoff authored
  3. 18 Oct, 2008 1 commit
    • * NEWS: Update.
      * doc/texinfo/libmuauth.texi: Update.
      * doc/texinfo/mailutils.texi: Update.
      * doc/texinfo/programs.texi: Update.
      
      * include/mailutils/mailbox.h (mu_mailbox_create_from_url): New
      function.
      * include/mailutils/mutil.h (mu_aget_user_email_domain): New
      function.
      * libproto/include/address0.h: Remove obsolete comment.
      * libproto/remote/mbox.c (remote_mbox_append_message): If
      recipient address is not given, try to construct it from the URL.
      * mailbox/mailbox.c (mu_mailbox_create_from_url): New function.
      * mailbox/mutil.c (mu_aget_user_email_domain): New function.
      
      * maidag/deliver.c (deliver_to_user): Mailbox and auth must be
      freed by the caller.
      (deliver_url): New function.
      (deliver): Rewrite to allow for delivering to mailboxes explicitly
      specified by URLs (--url command line option).
      * maidag/maidag.c (options): New option --url.
      (main): Handle --url.
      * maidag/maidag.h (url_option): New global.
      * maidag/mailquota.c (check_quota): Return if auth == NULL.
      Sergey Poznyakoff authored
  4. 19 Aug, 2008 1 commit
    • * auth/gsasl.c: Remove deprecated data types.
      * imap4d/auth_gsasl.c (retrieve_password): Minor fix.
      
      * imap4d/imap4d.c, imap4d/imap4d.h, imap4d/namespace.c,
      lib/tcpwrap.c, libcfg/acl.c, libcfg/auth.c, libcfg/common.c,
      libcfg/ldap.c, libcfg/sieve.c, libcfg/sql.c, maidag/maidag.c,
      mail.local/main.c, mailbox/gdebug.c, mailbox/msrv.c,
      mimeview/mimeview.c, pop3d/bulletin.c, pop3d/pop3d.c,
      pop3d/pop3d.h, sieve/sieve.c: Reflect changes to the configuration
      system.
      
      * mailbox/Makefile.am (AM_LFLAGS): New variable.
      (EXTRA_DIST) Add cfg_lexer.l.
      (libmailutils_la_SOURCES): Add alloc.c and opool.c
      (BUILT_SOURCES): Add cfg_lexer.c.
      (cfg_lexer.c): New goal.
      * mailbox/alloc.c, mailbox/opool.c: New files.
      * mailbox/cfg_lexer.c: Remove.
      * mailbox/cfg_lexer.l: New file.
      * mailbox/.cvsignore: Add cfg_lexer.c.
      
      * include/mailutils/Makefile.am: Add alloc.h and opool.h
      * include/mailutils/alloc.h: New file.
      * include/mailutils/opool.h: New file.
      
      * include/mailutils/cfg.h (mu_cfg_lexer_t,mu_cfg_alloc_t)
      (mu_cfg_free_t): Remove types.
      (MU_CFG_STRING, MU_CFG_LIST, MU_CFG_ARRAY): New defines.
      (mu_config_value_t): New data type.
      (struct mu_cfg_node): Change type of `label'.
      (struct mu_cfg_tree): Remove `alloc', `free'.
      New member `pool'.
      (mu_cfg_parse): Simplify the signature by removing superfluous
      arguments.
      (mu_cfg_tie_in): Remove.
      (mu_cfg_lexer_pool): New function.
      (mu_cfg_find_node, mu_cfg_find_node_label): Remove.
      (mu_cfg_callback_t): Change signature.
      (MU_CFG_LIST_MASK): New define.
      (MU_CFG_LIST_OF, MU_CFG_TYPE, MU_CFG_IS_LIST): New defines.
      (mu_cfg_get_debug): New function.
      (mu_cfg_assert_value_type, mu_cfg_string_value_cb): New functions.
      (mu_cfg_tree_set_alloc, mu_cfg_tree_alloc): Remove.
      * mailbox/cfg_driver.c: Adapt for new node structure.
      (mu_cfg_assert_value_type, mu_cfg_string_value_cb): New function.
      * mailbox/cfg_format.c: Adapt for new node structure.
      * mailbox/cfg_parser.y: Adapt for changes in cfg data types and
      lexer.
      
      * include/mailutils/mailutils.h: Include alloc.h and opool.h
      * include/mailutils/mu_auth.h (mu_authorization_add_module)
      (mu_authentication_add_module): New prototypes.
      
      * include/mailutils/syslog.h (mu_string_to_syslog_facility)
      (mu_string_to_syslog_priority): First argument is const char *.
      * mailbox/syslog.c: Likewise.
      
      * include/mailutils/types.hin (mu_opool_t): New type.
      * mailbox/list.c (mu_list_get_comparator): Add missing return
      statement.
      Sergey Poznyakoff authored
  5. 03 Mar, 2008 1 commit
  6. 14 Jan, 2008 1 commit
    • * include/mailutils/syslog.h (mu_log_facility, mu_log_tag): New
      declarations.
      (MU_LOG_TAG): New define.
      * mailbox/gocs.c (mu_gocs_logging_init): Set mu_log_tag.
      * mailbox/syslog.c (mu_log_facility, mu_log_tag): New variables.
      * libcfg/common.c (mu_logging_param): New statement `tag'.
      * comsat/comsat.c, imap4d/imap4d.c, imap4d/login.c,
      maidag/maidag.c, mail.local/main.c, pop3d/pop3d.c, pop3d/user.c,
      sieve/sieve.c: Use MU_LOG_TAG in openlog, and
      program_version in mu_m_server_create calls.
      Sergey Poznyakoff authored
  7. 13 Jan, 2008 1 commit
    • * configure.ac: Define DEFAULT_TEXT_DOMAIN
      * comsat/comsat.c, dotlock/dotlock.c, frm/frm.c, frm/from.c,
      guimb/main.c, imap4d/imap4d.c, maidag/maidag.c, mail/mail.c,
      mail.local/main.c, mail.remote/mail.remote.c, messages/messages.c,
      mh/ali.c, mh/anno.c, mh/burst.c, mh/comp.c, mh/fmtcheck.c,
      mh/folder.c, mh/forw.c, mh/inc.c, mh/install-mh.c, mh/mark.c,
      mh/mhl.c, mh/mhn.c, mh/mhparam.c, mh/mhpath.c, mh/pick.c,
      mh/refile.c, mh/repl.c, mh/rmf.c, mh/rmm.c, mh/scan.c, mh/send.c,
      mh/sortm.c, mh/whatnow.c, mh/whom.c, mimeview/mimeview.c,
      movemail/movemail.c, pop3d/pop3d.c, pop3d/popauth.c,
      readmsg/readmsg.c, sieve/sieve.c,
      Use MU_APP_INIT_NLS instead of mu_init_nls.
      * mailbox/nls.c (mu_init_nls): Do not call textdomain.
      Sergey Poznyakoff authored
  8. 05 Jan, 2008 1 commit
    • function type.
      (mu_m_server_destroy, mu_m_server_set_prefork)
      (mu_m_server_configured_count, mu_m_server_end): New functions.
      * mailbox/msrv.c (struct _mu_m_server.prefork): New member.
      (mu_m_server_set_prefork): New function.
      (m_srv_conn): Use prefork to decide whether to proceed with a
      connection.
      
      * lib/tcpwrap.c, lib/tcpwrap.h (mu_tcp_wrapper_prefork): New
      function.
      
      * imap4d/imap4d.c, maidag/lmtp.c, maidag/maidag.c,
      pop3d/pop3d.c: Use m-server prefork to handle TCP wrappers.
      
      * po/POTFILES.in: Add more files.
      Sergey Poznyakoff authored
  9. 04 Jan, 2008 1 commit
    • * mailbox/msrv.c: New file.
      * mailbox/Makefile.am: Add msrv.c.
      * include/mailutils/server.h (mu_tcp_server_conn_fp): Take
      sockaddr as argument
      (mu_tcp_server_create,mu_tcp_server_get_sockaddr): Likewise.
      (mu_m_server_*): New prototypes.
      * include/mailutils/types.hin (mu_m_server_t): New type.
      * mailbox/acl.c: Fix debugging output.
      (mu_sockaddr_to_str, mu_sockaddr_to_astr): New functions.
      
      * mailbox/tcpsrv.c: Handle AF_INET and AF_UNIX sockets.
      * examples/echosrv.c: Update mu_tcp_server_* calls.
      * examples/config/Makefile.am: Remove comsat.conf and
      mailutils.rc.
      
      * imap4d/imap4d.c, imap4d/imap4d.h, imap4d/signal.c,
      maidag/lmtp.c, maidag/maidag.c, maidag/maidag.h, pop3d/extra.c,
      pop3d/pop3d.c, pop3d/pop3d.h, pop3d/signal.c: Rewrite using
      m-server.
      
      * include/mailutils/cfg.h (mu_offsetof): Bug fix.
      * mailbox/cfg_driver.c (dup_container): Bugfix. Offset was not
      copied.
      (mu_cfg_section_add_params): If identifier starts with a dot, it
      is hidden, i.e. its substatements are copied directly into the
      parent structure.
      * mailbox/cfg_lexer.c (isword): Take care of opening braces.
      (default_lexer): Several fixes.
      * mailbox/cfg_parser.y (mu_cfg_parse): Initialize debugging level
      from global settings.
      (_scan_tree_helper): Ensure debugging object has correct locus
      information before calling the section parser.
      (mu_cfg_scan_tree): If no debugging object is supplied, use the
      one from diag.c
      * mailbox/daemon.c (mu_daemon_create_pidfile): Return a meaningful
      error code.
      * mailbox/debug.c (mu_debug_create): Initialize printer to NULL.
      (mu_debug_vprintf): If printer is NULL, use
      mu_debug_default_printer.
      (mu_debug_check_level): Bugfix.
      
      * mailbox/server.c: Minor indentation fix.
      * mailbox/syslog.c (mu_diag_syslog_printer): Chop off \r as well.
      * mailbox/folder.c (mu_folder_create_from_record): Bugfixes.
      
      * include/mailutils/debug.hm4 (mu_sockaddr_to_str)
      (mu_sockaddr_to_astr): New functions.
      
      * include/mailutils/.cvsignore: Add debug.h
      
      * po/POTFILES.in: Update.
      Sergey Poznyakoff authored
  10. 30 Dec, 2007 1 commit
    • * frm/testsuite/frm/test.exp: Call mu_init with -noflags option.
      Use --mail-folder option when necessary.
      * messages/testsuite/messages/test.exp: Likewise.
      * readmsg/testsuite/readmsg/test.exp: Likewise.
      * sieve/testsuite/lib/sieve.exp: Likewise.
      * sieve/testsuite/sieve/action.exp: Likewise.
      * sieve/testsuite/scripts/fileinto.sv: Use +file, instead of
      %file.
      
      * imap4d/imap4d.c: Register mailbox formats before parsing
      configuration.
      * imap4d/util.c (util_wcard_match): Replaced with a more efficient
      implementation, based on wildmat from GNU Radius.
      * imap4d/testsuite/imap4d/list.exp: Expect two non-mailbox files
      to appear in the list output (see libproto/mbox/folder.c, 2007-12-28).
      
      * libargp/common.c: New option --mail-folder.
      * libcfg/common.c: New statement mailbox/folder
      
      * libproto/maildir/folder.c (_maildir_is_scheme): Never return
      MU_FOLDER_ATTRIBUTE_DIRECTORY bit: maildir folders cannot contain
      subfolders.
      * libproto/maildir/mbox.c (maildir_msg_init): Bugfix: use full
      file name.
      Print additional diagnostics if stat fails.
      * libproto/mbox/folder.c (list_helper): Take additional argument,
      record, specifying a mu_record_t object to match entries
      against. If it is NULL, mu_registrar_lookup is used.
      Fix descending into subdirectories.
      
      * maidag/deliver.c (deliver): Split off deliver_to_user function;
      call it with user privileges. This fixes privileges of any created
      maildir folders.
      * maidag/maidag.c (set_debug_flags): Bugfix.
      
      * mail/mail.c (main): Open the mailbox with MU_STREAM_CREAT flag.
      
      * mailbox/amd.c (amd_open): Do not initialize amd->mtime to
      trigger initial scanning.
      (_amd_message_save): Check rename return value.
      (amd_is_updated): Do not check for msg_count==0, rely on the
      timestamp.
      
      * mailbox/mailbox.c (mu_mailbox_set_default_proto): Accept an
      argument without trailing semicolon.
      * mailbox/mbx_default.c (mu_set_mail_directory): Accept NULL
      argument.
      (mu_set_mailbox_pattern): Likewise.
      (mu_mailbox_create_default): Use FOLDER or MAIL environment
      variables only if _mu_mailbox_pattern is not set. In other words,
      setting mail-spool in the configuration file overrides these
      variables.
      Sergey Poznyakoff authored
  11. 19 Dec, 2007 1 commit
    • * configure.ac (MU_LIB_REMOTE): New substitution variable.
      (AC_CONFIG_FILES): Add libproto/remote/Makefile.
      * imap4d/copy.c, imap4d/create.c, imap4d/delete.c, imap4d/fetch.c,
      imap4d/imap4d.c, imap4d/list.c, imap4d/lsub.c, imap4d/rename.c,
      imap4d/subscribe.c, imap4d/unsubscribe.c, imap4d/util.c: Spelling
      fixes.
      * include/mailutils/cfg.h (mu_cfg_error_count): New variable.
      * include/mailutils/gocs.h (struct mu_gocs_mailbox):  New member
      mailbox_pattern
      * include/mailutils/libargp.h (mu_rcfile_lint): New variable.
      * include/mailutils/mailbox.h (mu_set_mailbox_pattern): New
      function.
      (mu_mail_directory): Removed.
      (mu_mailbox_url): New function.
      * include/mailutils/mutil.h (mu_normalize_mailbox_url): Remove.
      * include/mailutils/registrar.h (mu_0_6_registrar_lookup): Remove.
      
      * libargp/common.c: New options --rcfile-lint and
      --mailbox-pattern.
      * libargp/muinit.c: Handle --rcfile-lint.
      * libcfg/common.c: New statement mailbox-pattern
      * libmu_scm/mu_mailbox.c (mu-mail-directory): Deprecated.
      (mu-user-mailbox-url): New function.
      
      * libproto/remote: New directory.
      * libproto/remote/folder.c: New file.
      * libproto/remote/mbox.c: New file.
      * libproto/remote/.cvsignore: New file.
      
      * libproto/Makefile.am (SUBDIRS): Add remote
      * libproto/mbox/folder.c, libproto/mbox/url.c: Indentation and
      spelling fixes.
      * maidag/Makefile.am (maidag_LDADD): Add MU_LIB_REMOTE.
      * maidag/maidag.c: Register mu_remote_mbox_record.
      * mailbox/cfg_parser.y (mu_cfg_error_count): New variable.
      (mu_cfg_format_error,_mu_cfg_vperror): Increment
      mu_cfg_error_count.
      * mailbox/debug.c (mu_debug_check_level): Do not mask out
      inheritance bit.
      * mailbox/gocs.c (mu_gocs_mailbox_init): Set mailbox pattern.
      * mailbox/mailbox.c (_create_mailbox): Bugfix.
      * mailbox/mbx_default.c (mu_set_mailbox_pattern): New finction.
      (mu_set_mail_directory): Rewrite.
      (user_mailbox_name): Rewrite.
      * mailbox/mutil.c (mu_normalize_mailbox_url): Remove.
      * mailbox/registrar.c (mu_0_6_registrar_lookup): Remove.
      * guimb/scm/sieve-core.scm (sieve-main): Use mu-user-mailbox-url.
      Sergey Poznyakoff authored
  12. 15 Dec, 2007 1 commit
  13. 11 Dec, 2007 2 commits
    • pop3d/pop3d.c: Call mu_tcpwrapper_cfg_init.
      
      * include/mailutils/cfg.h (mu_cfg_section_add_container)
      (mu_cfg_section_add_params, mu_create_canned_section)
      (mu_create_canned_param, mu_get_canned_container): New functions.
      * lib/tcpwrap.c (mu_tcpwrapper_cfg_init): New function.
      * lib/tcpwrap.h (TCP_WRAPPERS_CONFIG): Change definition.
      * mailbox/cfg_driver.c (mu_create_canned_section)
      (mu_create_canned_param): Change prototypes.
      (add_parameters): Rename to mu_cfg_section_add_params, make
      extern. All callers changed.
      Sergey Poznyakoff authored
    • (struct mu_cfg_param.offset): New member
      (mu_offsetof): New define
      (mu_cfg_section_fp): Change signature
      (struct mu_cfg_section.label,target): New members.
      (struct mu_cfg_section.data): Remove.
      (struct mu_cfg_section.children): New member, instead of
      param and subsec which are removed.
      (mu_cfg_scan_tree): Change signature.
      (mu_config_register_section): Change signature.
      (mu_parse_config): Change signature.
      (mu_parse_config_tree): Rename to mu_cfg_tree_reduce.
      (mu_get_config): New proto.
      
      * include/mailutils/libcfg.h (mu_parse_config_files): Change
      prototype.
      
      * dotlock/dotlock.c, imap4d/imap4d.c, lib/tcpwrap.h,
      libargp/muinit.c, libcfg/auth.c, libcfg/common.c, libcfg/gsasl.c,
      libcfg/init.c, libcfg/ldap.c, libcfg/pam.c, libcfg/radius.c,
      libcfg/sieve.c, libcfg/sql.c, libcfg/tls.c, libcfg/virtdomain.c,
      maidag/maidag.c, mail.local/main.c, mail.remote/mail.remote.c,
      mailbox/cfg_format.c, mailbox/cfg_parser.y, mimeview/mimeview.c,
      movemail/movemail.c, pop3d/pop3d.c, readmsg/readmsg.c,
      sieve/sieve.c: Reflect changes to the cfg framework.
      
      * mailbox/Makefile.am (libmailutils_la_SOURCES): Add cfg_driver.c.
      * mailbox/cfg_driver.c: New file.
      * mailbox/cfg_lexer.c: Move driver part into a separate file.
      
      * examples/Makefile.am (AM_LDFLAGS): Remove libmuaux
      * examples/echosrv.c: Remove getopt.h
      Sergey Poznyakoff authored
  14. 05 Dec, 2007 1 commit
    • * imap4d/Makefile.am, mu_daemon_argp_parser (LDADD): Add
      TCPWRAP_LIBRARIES.
      * imap4d/imap4d.c: Include tcpwrap.h
      (imap4d_mainloop): Check the connection using tcp wrappers.
      * imap4d/preauth.c: Fix a typo in the comment.
      * maidag/maidag.h: Include tcpwrap.h
      * maidag/maidag.c, maidag/lmtp.c: Add TCP wrappers support.
      * pop3d/pop3d.c: Include tcpwrap.h
      (pop3d_mainloop): Check the connection using tcp wrappers.
      * lib/Makefile.am: Add tcpwrap.c and tcpwrap.h
      * lib/tcpwrap.c: New file.
      * lib/tcpwrap.h: New file.
      * libargp/common.c (mu_daemon_argp_parser): Bugfix.
      Sergey Poznyakoff authored
  15. 04 Dec, 2007 1 commit
    • has a docstring which is displayed as a comment before it.
      A docstring is also added to the configuration group structure,
      for use in future.
      
      * include/mailutils/cfg.h (struct mu_cfg_param): New members
      `docstring' and `argname'.
      (struct mu_cfg_section): New member `docstring'.
      (mu_cfg_format_docstring): New function.
      * include/mailutils/libargp.h (mu_help_config_mode): New
      declaration.
      * libargp/cmdline.h (mu_help_config_mode): Remove.
      * libargp/muinit.c (mu_app_init): Better format the initial
      comment.
      * mailbox/cfg_format.c (mu_cfg_data_type_string): Use NLS.
      (mu_cfg_format_docstring): New function.
      (format_param,format_section): Use mu_cfg_format_docstring.
      * mailbox/cfg_lexer.c (mu_config_create_container): Initialize
      allocated memory chunk with zeros.
      (dup_container): Duplicate docstring.
      (mu_build_container): Document include statement.
      
      * dotlock/dotlock.c, imap4d/imap4d.c, libargp/tls.c,
      libcfg/auth.c, libcfg/common.c, libcfg/gsasl.c, libcfg/ldap.c,
      libcfg/pam.c, libcfg/radius.c, libcfg/sieve.c, libcfg/sql.c,
      libcfg/tls.c, libcfg/virtdomain.c, maidag/maidag.c,
      mail.local/main.c, mail.remote/mail.remote.c, mimeview/mimeview.c,
      movemail/movemail.c, pop3d/pop3d.c, readmsg/readmsg.c,
      sieve/sieve.c: Document configuration file statements.
      
      * pop3d/pop3d.h (expire): Change type to unsigned int.
      
      * po/POTFILES.in: Add missing files.
      Sergey Poznyakoff authored
  16. 03 Dec, 2007 1 commit
    • struct mu_gocs_virtual mu_virtual_module_config
      
      * include/mailutils/cfg.h (MU_PARSE_CONFIG_GLOBAL)
      (MU_PARSE_CONFIG_VERBOSE, MU_PARSE_CONFIG_DUMP): New defines.
      (mu_cfg_tree_create,mu_cfg_tree_set_debug,mu_cfg_tree_set_alloc)
      (mu_cfg_tree_alloc,mu_cfg_tree_free)
      (mu_cfg_tree_create_node,mu_cfg_tree_add_node): New functions.
      * include/mailutils/gocs.h (struct mu_gocs_virtual): New data
      type.
      * include/mailutils/libargp.h (struct mu_argp_node_list): New data
      type.
      (mu_argp_node_list_init, mu_argp_node_list_add)
      (mu_argp_node_list_new, mu_argp_node_list_finish): New functions.
      * libargp/cmdline.h: New header.
      * libargp/Makefile.am (libmuargp_a_SOURCES): Add cmdline.h.
      
      * dotlock/dotlock.c, imap4d/imap4d.c, libargp/auth.c,
      libargp/cmdline.c, libargp/common.c, libargp/compat.c,
      libargp/gsasl.c, libargp/mu_argp.c, libargp/muinit.c,
      libargp/pam.c, libargp/radius.c, libargp/sieve.c, libargp/sql.c,
      libargp/tls.c, libargp/virtdomain.c, libcfg/common.c,
      libcfg/init.c, libcfg/virtdomain.c, maidag/maidag.c,
      mail.local/main.c, mail.remote/mail.remote.c, mimeview/mimeview.c,
      movemail/movemail.c, pop3d/pop3d.c, readmsg/readmsg.c,
      sieve/sieve.c: Change option parsing, usig mu_cfg_tree_ functions.
      
      * mailbox/argcv.c: Fix a typo in comment.
      * mailbox/cfg_lexer.c (mu_parse_config_tree): New function.
      (_mu_parse_config): Rewrite using mu_parse_config_tree.
      * mailbox/cfg_parser.y (mu_cfg_format_error,_mu_cfg_vperror)
      (debug_print_node): Use default diag debug_t object, if the passed
      one is NULL. Reset locus after formatting.
      (mu_cfg_postorder): Return immediately if node == NULL.
      (mu_cfg_tree_create,mu_cfg_tree_set_debug,mu_cfg_tree_set_alloc)
      (mu_cfg_tree_alloc,mu_cfg_tree_free,mu_cfg_tree_create_node)
      (mu_cfg_tree_add_node): New functions.
      * mailbox/gocs.c (mu_gocs_store): Make sure no capa/data tuple
      gets registered twice.
      Sergey Poznyakoff authored
  17. 29 Nov, 2007 1 commit
    • imap4d/auth_gss.c, imap4d/authenticate.c, imap4d/bye.c,
      imap4d/close.c, imap4d/imap4d.c, imap4d/login.c, imap4d/search.c,
      imap4d/signal.c, imap4d/starttls.c, imap4d/util.c, maidag/lmtp.c,
      maidag/maidag.c, maidag/script.c, mail.local/main.c,
      mail.local/script.c, pop3d/apop.c, pop3d/bulletin.c,
      pop3d/extra.c, pop3d/lock.c, pop3d/logindelay.c, pop3d/pop3d.c,
      pop3d/quit.c, pop3d/signal.c, pop3d/user.c, libsieve/util.c: Use
      mu_diag_output instead of syslog.
      
      * sieve/sieve.c: New option --no-program-name, for testsuite.
      * sieve/testsuite/lib/sieve.exp: Call sieve with the
      --no-program-name option.
      
      * mailbox/cfg_lexer.c, mailbox/cfg_parser.y: Improve debugging.
      * mailbox/diag.c: New file.
      * mailbox/gdebug.c (mu_debug_level_from_string): New function.
      * mailbox/muerror.c (mu_verror, mu_error): Rewrite using mu_diag
      functions.
      * mailbox/syslog.c (mu_diag_level_to_syslog): New function.
      (mu_diag_syslog_printer): New function.
      
      * mh/mh_argp.c (mh_argp_parse): Set prigram name using
      mu_set_program_name.
      * mh/mh_init.c (mu_error_printer): No longer needed.
      * movemail/movemail.c (movemail_error_printer): No longer needed.
      
      * include/mailutils/Makefile.am (pkginclude_HEADERS): Add diag.h
      * include/mailutils/diag.h: New file.
      * include/mailutils/cfg.h (mu_cfg_lexer_t): Take mu_debug_t as its
      second argument.
      * include/mailutils/error.h: Include diag.h
      (mu_program_name,mu_set_program_name): Remove. Already declared in
      diag.h.
      (mu_error_set_print): Deprecated.
      
      * mailbox/Makefile.am (libmailutils_la_SOURCES): Add diag.c
      Sergey Poznyakoff authored
  18. 28 Nov, 2007 2 commits
    • mailbox/cfg_parser.y (mu_cfg_tree_t):
      New data type.
      (mu_cfg_perror_t): Remove
      (mu_cfg_parse): Change prototype.
      (mu_cfg_perror): Change type.
      (mu_cfg_format_error): New function.
      (mu_cfg_destroy_tree): Change signature.
      (mu_cfg_callback_t): Take mu_debug_t as its first argument,
      instead of mu_cfg_locus_t. The mu_debug_t is to be used for error
      reporting and debugging diagnostics. The cfg_lexer is responsible
      for storing the necessary locus data into it before calling
      callbacks.
      (mu_cfg_section_fp): Take an additional argument.
      (mu_cfg_scan_tree): Simplified prototype. The mu_cfg_tree_t passed
      as its first argument already contains all necessary data that
      were passed as arguments previously.
      (mu_parse_config): First two args are consts.
      
      * include/mailutils/libcfg.h, imap4d/imap4d.c, libcfg/auth.c,
      libcfg/common.c, libcfg/ldap.c, libcfg/sieve.c, libcfg/sql.c,
      maidag/maidag.c, mail.local/main.c, mimeview/mimeview.c,
      pop3d/pop3d.c, sieve/sieve.c: Reflect changes to the cfg
      framework.
      
      * mailbox/debug.c (mu_debug_vprintf): Make sure the locus info is
      formatted on the first call.
      Sergey Poznyakoff authored
    • to set their default mu_debug_t objects basing on these settings.
      
      * include/mailutils/Makefile.am: Add debug.hin. Build debug.h from
      it.
      * include/mailutils/debug.hm4: New file.
      * include/mailutils/debug.h: Remove generated file.
      * scripts/Makefile.am (EXTRA_DIST): Add debugdef.m4
      * scripts/debugdef.m4: New file.
      
      * include/mailutils/gocs.h (struct mu_gocs_debug): New data type.
      (mu_gocs_register_std): Argument is const.
      (mu_gocs_debug_init): New function.
      * include/mailutils/libargp.h (mu_debug_cmdline): New extern.
      * include/mailutils/libcfg.h (mu_debug_cfg_capa): New extern.
      * libargp/cmdline.c: Add mu_debug_cmdline
      * libargp/common.c: Add debug settings.
      * libargp/mu_argp.c (struct cap_buf.capa): Remove const qualifier.
      * libcfg/common.c (mu_locking_param): Remove superfluous `lock-'
      prefix from the statement names.
      (mu_debug_param): New parameter group.
      * libcfg/init.c: Add mu_debug_param.
      * mailbox/gocs.c (mu_gocs_debug_init): New function.
      
      * mailbox/Makefile.am (libmailutils_la_SOURCES): Add gdebug.c
      * mailbox/gdebug.c: New file
      * mailbox/debug.c (mu_debug_printf, mu_debug_vprintf)
      (mu_debug_check_level): New functions.
      (mu_debug_printv, mu_debug_print): Rewrite using new basic calls.
      
      * comsat/comsat.c, dotlock/dotlock.c, examples/muauth.c,
      mail.remote/mail.remote.c: Add debug capability.
      * frm/frm.c, frm/from.c, guimb/main.c, imap4d/imap4d.c,
      mail/mail.c, mail.local/main.c, messages/messages.c,
      pop3d/pop3d.c, readmsg/readmsg.c: Add locking and debug capabilities.
      
      * examples/mimetest.c, examples/msg-send.c, frm/common.c,
      libargp/auth.c, libmu_scm/mu_message.c, mail/send.c, mh/send.c,
      mimeview/mimeview.c, movemail/movemail.c, sieve/sieve.c: Update
      invocation of mu_debug_set_level.
      
      * libproto/imap/folder.c, libproto/imap/mbox.c,
      libproto/include/folder0.h, libproto/include/mailbox0.h,
      libproto/include/mailer0.h, libproto/mailer/sendmail.c,
      libproto/mailer/smtp.c, libproto/mbox/mbox.c,
      libproto/nntp/folder.c, libproto/nntp/nntp_debug.c,
      libproto/pop/mbox.c, libproto/pop/pop3_debug.c, mailbox/amd.c,
      mailbox/mailer.c, mailbox/message.c, mailbox/mu_auth.c: Use
      MU_DEBUG[0-9] for debugging.
      
      * mailbox/muerror.c: Include string.h
      * mailbox/syslog.c (syslog_to_n): Remove unused variable.
      * mailbox/assoc.c (struct _mu_assoc_elem): name is not const.
      * mailbox/cfg_lexer.c: Quoted strings can be continued to the
      following line either by using a trailing backslash or by
      concatenating strings together, as in C.
      * mailbox/mailbox.c (_create_mailbox): Initialize debug object
      using global "mailbox" level.
      (mu_mailbox_create): Fix bug introduced on 2007-11-26.
      
      * include/mailutils/libsieve.h (mu_sieve_set_debug_level): Change
      prototype.
      (mu_sieve_set_debug_object): New prototype.
      * libsieve/sieve.y (mu_sieve_machine_init): Initialize debug
      object from "sieve" global level.
      (mu_sieve_set_debug_level): Set only debug_level.
      (mu_sieve_set_debug_object): New function.
      
      * maidag/maidag.c: Remove explicit setting of debug object. Add
      "debug" group, which provides the required functionality.
      (set_debug_flags): Likewise. This function and the corresponding
      command line option are fading out in favor of global debug
      settings.
      Sergey Poznyakoff authored
  19. 24 Nov, 2007 1 commit
    • * imap4d/login.c, pop3d/user.c: Print user db source along with
      the login name.
      * include/mailutils/debug.h (mu_debug_set_print): Change
      prototype.
      (mu_debug_printer_fp): New data type.
      (mu_debug_default_printer): New extern.
      (mu_debug_syslog_printer,mu_debug_stderr_printer): New prototypes.
      
      * libproto/include/debug0.h (struct _mu_debug): Remove unused
      `buffer' and `buflen'. Add `stream'. Change signature of `_print' and
      rename it to `printer'.
      * mailbox/debug.c: Rewrite debugging support.
      (mu_debug_default_printer): New global.
      
      * mailbox/gocs.c (mu_gocs_logging_init): Initialize
      mu_debug_default_printer.
      
      * mailbox/memory_stream.c (_memory_truncate): Bugfix.
      (_memory_get_transport2): Implement method.
      
      * mailbox/Makefile.am (libmailutils_la_SOURCES): Add dbgstderr.c
      and dbgsyslog.c
      * mailbox/dbgstderr.c, mailbox/dbgsyslog.c: New files.
      * maidag/maidag.c, mail.local/main.c, sieve/sieve.c: Remove
      _mu_debug_printer, the default implementation will do.
      
      * mailbox/mu_auth.c: Improve debugging.
      
      * libsieve/comparator.c, libsieve/load.c, libsieve/sieve.l:
      Include ctype.h
      
      * include/mailutils/libargp.h: Remove option declarations.
      * include/mailutils/mu_auth.h (struct mu_auth_data): New member
      `source'.
      (mu_auth_set_debug): New proto.
      * libargp/common.c: Define option values. New option --debug-auth.
      * libargp/auth.c, libargp/gsasl.c,
      libargp/pam.c, libargp/radius.c, libargp/sieve.c, libargp/sql.c,
      libargp/tls.c, libargp/virtdomain.c: Define option values.
      Sergey Poznyakoff authored
  20. 17 Nov, 2007 1 commit
    • * include/mailutils/gocs.h, include/mailutils/pam.h,
      include/mailutils/radius.h, include/mailutils/syslog.h: New files
      * lib/argpinit.c, lib/muinit.c, lib/muinit.h: New files.
      * libsieve/conf.c: New file.
      
      * libcfg: New directory
      * libcfg/libcfg.h, libcfg/auth.c, libcfg/common.c, libcfg/init.c,
      libcfg/gsasl.c, libcfg/pam.c, libcfg/radius.c, libcfg/sieve.c,
      libcfg/sql.c, libcfg/tls.c, libcfg/virtdomain.c,
      libcfg/.cvsignore: New files.
      
      * libargp: New directory
      * libargp/auth.c, libargp/cmdline.h, libargp/common.c,
      libargp/gsasl.c, libargp/mu_argp.h, libargp/mu_argp.c,
      libargp/pam.c, libargp/radius.c, libargp/sieve.c, libargp/sql.c,
      libargp/tls.c, libargp/virtdomain.c, libargp/.cvsignore: New
      files.
      
      * mailbox/.cvsignore: Add cfg_parser.c and cfg_parser.h.
      * Makefile.am (SUBDIRS): Add libargp and libcfg.
      * configure.ac (MU_APP_LIBRARIES): New variable
      (MU_COMMON_INCLUDES): add libargp and libcfg
      (AC_CONFIG_FILES): Add libargp and libcfg.
      
      * auth/gsasl.c, auth/pam.c, auth/radius.c, auth/sql.c, auth/sql.h,
      auth/tls.c, auth/virtual.c, comsat/comsat.h, frm/frm.h,
      guimb/guimb.h, imap4d/imap4d.h, include/mailutils/gsasl.h,
      include/mailutils/libsieve.h, include/mailutils/mailutils.h,
      include/mailutils/mu_auth.h, include/mailutils/tls.h,
      include/mailutils/sql.h, maidag/maidag.h, mail/mail.h,
      mail.local/mail.local.h, mailbox/daemon.c, mailbox/system.c,
      mh/mh_argp.c, mh/mh_getopt.h, pop3d/pop3d.h,
      readmsg/readmsg.h: Remove argp stuff
      
      * comsat/comsat.c, config/mailutils-config.c, dotlock/dotlock.c,
      examples/muauth.c, examples/muemail.c, frm/frm.c, frm/from.c,
      guimb/main.c, imap4d/idle.c, imap4d/imap4d.c, imap4d/util.c,
      imap4d/version.c, maidag/lmtp.c, maidag/maidag.c,
      maidag/mailquota.c, mail/mail.c, mail/send.c, mail/version.c,
      mail.local/mailquota.c, mail.local/main.c,
      mail.remote/mail.remote.c, mailbox/mu_auth.c, messages/messages.c,
      mimeview/mimeview.c, movemail/movemail.c, pop3d/extra.c,
      pop3d/pop3d.c, pop3d/popauth.c, readmsg/readmsg.c, sieve/sieve.c:
      Use mu_app_init for parsing command line and
      configuration files.
      * comsat/Makefile.am, config/Makefile.am, dotlock/Makefile.am,
      examples/Makefile.am, frm/Makefile.am, guimb/Makefile.am,
      imap4d/Makefile.am, maidag/Makefile.am, mail/Makefile.am,
      mail.local/Makefile.am, mail.remote/Makefile.am,
      mailbox/Makefile.am, messages/Makefile.am, mimeview/Makefile.am,
      movemail/Makefile.am, pop3d/Makefile.am, readmsg/Makefile.am,
      sieve/Makefile.am: Use MU_APP_LIBRARIES.
      
      * include/mailutils/Makefile.am: Add new files.
      * include/mailutils/argp.h: Remove.
      * include/mailutils/cfg.h: New file.
      * include/mailutils/daemon.h (MODE_INTERACTIVE,MODE_DAEMON): New
      defines (from removed argp.h).
      (mu_gocs_daemon): New decl.
      * include/mailutils/error.h (mu_program_name): New variable
      (mu_set_program_name): New function.
      * lib/Makefile.am (libmuaux_la_SOURCES): Add new files.
      * libsieve/Makefile.am (libsieve_la_SOURCES): Remove argp.c, add
      conf.c instead.
      * libsieve/argp.c: Remove.
      
      * mailbox/cfg_parser.y (mu_cfg_parse_boolean): New function.
      * mailbox/mu_argp.c: Remove.
      
      * mailbox/muerror.c (mu_program_name): New variable
      (mu_set_program_name): New function
      (mu_default_error_printer): Print program name before diagnostic
      string.
      * mailbox/mutil.c (mu_sql_decode_password_type): New function.
      * mh/mh_whom.c (mh_alias_expand): Bugfix
      * po/POTFILES.in: Update
      * testsuite/lib/mailutils.exp (mu_init): Pass --no-site-rcfile
      --no-user-rcfile to all programs.
      Sergey Poznyakoff authored
  21. 10 Nov, 2007 1 commit
    • * frm/common.c, imap4d/sync.c, libsieve/runtime.c,
      mh/scan.c: Update declaration of observable actions  .
      * imap4d/select.c, imap4d/status.c, mh/anno.c, mh/forw.c,
      mh/repl.c: Use mu_mailbox_sync instead of
      mu_mailbox_save_attributes.
      * include/mailutils/mailbox.h (mu_mailbox_sync): New function.
      (mu_mailbox_save_attributes): Deprecated.
      * include/mailutils/message.h (mu_message_get_qid)
      (mu_message_set_qid): New functions.
      * include/mailutils/observer.h (MU_EVT_MESSAGE_APPEND): New event.
      (mu_observer_set_action_data): New function. Registers
      action-specific data.
      (mu_observable_notify): Get call-specific data as the third
      argument.
      * include/mailutils/types.hin (mu_message_qid_t): New data type.
      * libproto/imap/folder.c, libproto/imap/mbox.c,
      libproto/include/amd.h, libproto/maildir/mbox.c,
      libproto/mailer/sendmail.c, libproto/mailer/smtp.c,
      libproto/mbox/mboxscan.c, libproto/mh/mbox.c,
      libproto/nntp/mbox.c, libproto/pop/mbox.c, mailbox/folder.c,
      mailbox/mailer.c : Update calls to mu_observable_notify.
      * libproto/include/mailbox0.h (struct _mu_mailbox): Rename
      _save_attributes to _sync.
      * mailbox/amd.c: Likewise
      (_quick_get_message): New member.
      (MAILBOX_NOTIFY): Remove.
      * libproto/include/message0.h (struct _mu_message): New member
      _get_qid.
      * libproto/include/observer0.h (struct _mu_observer): New member
      _action_data.
      * libproto/mbox/mbox.c: Implement mbox_message_qid. Update calls
      to mu_observable_notify.
      (mbox_append_message): Report MU_EVT_MESSAGE_APPEND
      * mailbox/observer.c (mu_observer_destroy): Call _destroy with
      _action_data as its third argument.
      (mu_observer_action, mu_observable_notify): Takes third argument
      (call data)
      (mu_observer_set_action, mu_observer_set_destroy): Update signature.
      (mu_observer_set_action_data): New function.
      
      * libproto/mbox/mbox0.h, mail.local/main.c: Minor change.
      
      * mail.local/Makefile.am (mail_local_LDADD): Add MU_LIB_MAILER
      
      * mailbox/file_stream.c (_file_open): Fix handling of
      MU_STREAM_APPEND. Remove assertion.
      
      * mailbox/mailbox.c (mu_mailbox_quick_get_message): New function
      (mu_mailbox_sync): New function
      (mu_mailbox_get_size): Implement brute-force approach in case the
      mailbox does not provide a method.
      
      * mailbox/message.c (mu_message_get_qid, mu_message_set_qid): New
      function.
      
      * maildag/: New directory. A general-purpose mail delivery agent.
      * maildag/deliver.c: New file.
      * maildag/lmtp.c: New file.
      * maildag/maidag.c: New file.
      * maildag/maidag.h: New file.
      * maildag/mailtmp.c: New file.
      * maildag/mailquota.c: New file.
      * maildag/script.c: New file.
      * maildag/util.c: New file.
      * maildag/Makefile.am: New file.
      * maildag/.cvsignore: New file.
      Sergey Poznyakoff authored