1. 22 Nov, 2011 1 commit
    • The new format, called "C", allows programmers to create input data
      for use by mu load using conventional means.  It represents both key and
      content as C strings (hence its name), with usual C (literal and octal)
      escapes to represent non-printable characters.
      
      * mu/dbm.c (IOBUF_REREAD,IOBUF_EOF): New constants.
      (iobuf) <state>: New member.
      (input_eof): New macro.
      (input_getline): Use iobuf.state to detect EOF.
      (input_ungetline): Reset state only if it is 0.
      (format_tab): New format "C".
      (write_quoted_string,C_writer,C_read_datum)
      (C_reader): New functions to implement the C dump format.
      * libmailutils/tests/testsuite.at: Minor change.
      Sergey Poznyakoff authored
  2. 21 Nov, 2011 2 commits
    • Sergey Poznyakoff authored
    • * configure.ac (check_dbm_impl): Fix improper usage of expr in BDB=* case.
      * include/mailutils/dbm.h (mu_dbm_create_from_url)
      (mu_dbm_create): Take default safety flags as the last argument.
      * libmailutils/base/filesafety.c (_check_linkwrdir): Check for both
      hard and symbolic links.  Fix the latter check.
      * libmailutils/tests/fsaf.at: Add check for softlink in a writable dir.
      * libmu_dbm/create.c (mu_dbm_create): Take default file safety as the
      last argument.
      * libmu_dbm/dbm.c (mu_dbm_create_from_url): Likewise.
      * maidag/mailquota.c (dbm_retrieve_quota): Update call to mu_dbm_create.
      Impose MU_FILE_SAFETY_ALL by default.
      * mu/dbm.c (open_db_file): Update call to mu_dbm_create.  No checks
      by default.
      * pop3d/apop.c (pop3d_apopuser): Update call to mu_dbm_create.  Use
      apop_database_safety as the default checks.
      * pop3d/bulletin.c (read_bulletin_db,write_bulletin_db): Update calls to
      mu_dbm_create.  Use DEFAULT_GROUP_DB_SAFETY as default.
      * pop3d/logindelay.c (open_stat_db): Update call to mu_dbm_create.
      Use DEFAULT_GROUP_DB_SAFETY as default.
      * pop3d/pop3d.c (apop_database_safety): Initialize to MU_FILE_SAFETY_ALL.
      (apop_database_safety_set): Remove.
      * pop3d/pop3d.h (apop_database_safety_set): Remove.
      * pop3d/popauth.c (open_db_file): Update call to mu_dbm_create.  Use
      safety_flags by default.
      Sergey Poznyakoff authored
  3. 20 Nov, 2011 1 commit
  4. 19 Nov, 2011 4 commits
    • * include/mailutils/list.h (mu_list_slice_dup,mu_list_slice)
      (mu_list_slice2_dup,mu_list_slice2): New protos.
      * libmailutils/list/slice.c: New file.
      * libmailutils/list/slice2.c: New file.
      * libmailutils/list/Makefile.am: Add slice.c and slice2.c
      * libmailutils/tests/list.at: Add slicing tests.
      * libmailutils/tests/listop.c: New command: "slice"
      Sergey Poznyakoff authored
    • * include/mailutils/imap.h (mu_imap_response_action_t): New typedef.
      (mu_imap_foreach_response): New proto.
      (MU_IMAP_CB_PERMANENT_FLAGS,MU_IMAP_CB_MESSAGE_COUNT)
      (MU_IMAP_CB_RECENT_COUNT,MU_IMAP_CB_FIRST_UNSEEN)
      (MU_IMAP_CB_UIDNEXT,MU_IMAP_CB_UIDVALIDITY)
      (MU_IMAP_CB_OK,_MU_IMAP_CB_MAX): New constants.
      (mu_imap_callback_t): New typedef.
      (mu_imap_callback,mu_imap_register_callback_function): New protos.
      (MU_IMAP_RESPONSE_ALERT,MU_IMAP_RESPONSE_BADCHARSET)
      (MU_IMAP_RESPONSE_CAPABILITY,MU_IMAP_RESPONSE_PARSE)
      (MU_IMAP_RESPONSE_PERMANENTFLAGS,MU_IMAP_RESPONSE_READ_ONLY)
      (MU_IMAP_RESPONSE_READ_WRITE,MU_IMAP_RESPONSE_TRYCREATE)
      (MU_IMAP_RESPONSE_UIDNEXT,MU_IMAP_RESPONSE_UIDVALIDITY)
      (MU_IMAP_RESPONSE_UNSEEN): New constants.
      (mu_imap_response_codes): New extern.
      * include/mailutils/sys/imap.h (_mu_imap) <callback>: New member.
      (_mu_imap_collect_flags, _mu_imap_list_at): New protos.
      * libproto/imap/resplist.c (_mu_imap_list_at): New function.
      * libproto/imap/callback.c: New file.
      * libproto/imap/resproc.c: New file.
      * libproto/imap/Makefile.am: Add new files.
      * libproto/imap/capability.c: Rewrite using mu_imap_foreach_response.
      * libproto/imap/id.c: Likewise.
      * libproto/imap/select.c: Likewise.
      Sergey Poznyakoff authored
  5. 18 Nov, 2011 7 commits
    • * include/mailutils/imap.h (mu_imap_status): New proto.
      (_mu_imap_status_name_table): New declaration.
      * include/mailutils/sys/imap.h (mu_imap_client_state)
      <MU_IMAP_STATUS_RX>: New state.
      * libproto/imap/status.c: New file.
      * libproto/imap/Makefile.am (libmu_imap_la_SOURCES): Add status.c
      * mu/imap.c: Implement "status"
      Sergey Poznyakoff authored
    • * include/mailutils/imap.h (mu_imap_stat): New structs.
      (MU_IMAP_STAT_DEFINED_FLAGS,MU_IMAP_STAT_PERMANENT_FLAGS)
      (MU_IMAP_STAT_MESSAGE_COUNT,MU_IMAP_STAT_RECENT_COUNT)
      (MU_IMAP_STAT_FIRST_UNSEEN,MU_IMAP_STAT_UIDNEXT)
      (MU_IMAP_STAT_UIDVALIDITY):  New flags.
      (mu_imap_select): New proto.
      * include/mailutils/imapio.h (mu_imap_flag_to_attribute)
      (mu_imap_format_flags): New protos.
      * include/mailutils/sys/imap.h (mu_imap_client_state)
      <MU_IMAP_SELECT_RX>: New state.
      (_mu_imap) <mbox_name,mbox_writable,mbox_stat>: New members.
      * libmailutils/imapio/flags.c: New file.
      * libmailutils/imapio/Makefile.am: Add flags.c
      * libproto/imap/select.c: New file.
      * libproto/imap/Makefile.am: Add select.c
      * libproto/imap/err.c (_mu_imap_seterrstr)
      (_mu_imap_clrerrstr, mu_imap_strerror): Allow for imap==NULL.
      * libproto/imap/id.c (mu_imap_id): Set errstr on MU_ERR_BADREPLY
      * libproto/imap/login.c (mu_imap_login): Likewise.
      * libproto/imap/resplist.c (_mu_imap_list_element_is_string): New function.
      * mu/imap.c: Implement examine and select.
      Sergey Poznyakoff authored
    • * libproto/imap/capability.c (mu_imap_capability): Use mu_list_map to
      create the capability list.
      * libproto/imap/id.c (_id_convert): Likewise for ID pairs.
      Sergey Poznyakoff authored
    • * include/mailutils/list.h (MU_LIST_MAP_OK)
      (MU_LIST_MAP_SKIP,MU_LIST_MAP_STOP): New constants.
      (mu_list_mapper_t): New typedef.
      (mu_list_map): New proto.
      * libmailutils/list/gmap.c: New file.
      * libmailutils/list/map.c: New file.
      * libmailutils/list/Makefile.am: Add gmap.c and map.c
      * libmailutils/tests/listop.c: New command "map".
      * libmailutils/tests/list.at: Test the list mapping.
      Sergey Poznyakoff authored
    • * configure.ac: Build libmailutils/list/Makefile
      * include/mailutils/sys/list.h (DESTROY_ITEM): New define.
      (_mu_list_insert_item): New proto.
      * libmailutils/Makefile.am (SUBDIRS): Add list.
      (libmailutils_la_LIBADD): Add list/liblist.la
      * libmailutils/base/Makefile.am (libbase_la_SOURCES): Remove list sources.
      * libmailutils/base/list.c: Split into smaller files (see below).
      * libmailutils/base/listlist.c: Move to libmailutils/list/listlist.c
      * libmailutils/list/Makefile.am: New file.
      * libmailutils/list/append.c: New file.
      * libmailutils/list/array.c: New file.
      * libmailutils/list/clear.c: New file.
      * libmailutils/list/count.c: New file.
      * libmailutils/list/create.c: New file.
      * libmailutils/list/destroy.c: New file.
      * libmailutils/list/do.c: New file.
      * libmailutils/list/empty.c: New file.
      * libmailutils/list/get.c: New file.
      * libmailutils/list/getcomp.c: New file.
      * libmailutils/list/insert.c: New file.
      * libmailutils/list/intersect.c: New file.
      * libmailutils/list/iterator.c: New file.
      * libmailutils/list/locate.c: New file.
      * libmailutils/list/prepend.c: New file.
      * libmailutils/list/remove.c: New file.
      * libmailutils/list/replace.c: New file.
      * libmailutils/list/setcomp.c: New file.
      * libmailutils/list/setdestr.c: New file.
      Sergey Poznyakoff authored
    • * include/mailutils/imapio.h (mu_imapio_reply_string): New proto.
      * libmailutils/imapio/replstr.c: New file.
      * libmailutils/imapio/Makefile.am: Add replstr.c
      Sergey Poznyakoff authored
  6. 17 Nov, 2011 2 commits
    • * include/mailutils/imapio.h: New file.
      * include/mailutils/sys/imapio.h: New file.
      * libmailutils/imapio/create.c: New file.
      * libmailutils/imapio/getline.c: New file.
      * libmailutils/imapio/literal.c: New file.
      * libmailutils/imapio/printf.c: New file.
      * libmailutils/imapio/qstring.c: New file.
      * libmailutils/imapio/send.c: New file.
      * libmailutils/imapio/trace.c: New file.
      * libmailutils/imapio/words.c: New file.
      * libmailutils/imapio/xscript.c: New file.
      
      * configure.ac: Build libmailutils/imapio/Makefile
      * include/mailutils/Makefile.am (pkginclude_HEADERS): Add imapio.h.
      * include/mailutils/imapio.h: New file.
      * include/mailutils/sys/Makefile.am (sysinclude_HEADERS): Add imapio.h.
      * include/mailutils/sys/imapio.h: New file.
      * include/mailutils/types.hin (mu_imapio_t): New data type.
      * libmailutils/Makefile.am (SUBDIRS): Add imapio.
      
      * libmailutils/tests/Makefile.am: Build imapio
      * libmailutils/tests/imapio.c: New source.
      * libmailutils/tests/wsp.c: Handle escape argument
      Sergey Poznyakoff authored
    • * include/mailutils/wordsplit.h (mu_wordsplit) <ws_escape>: New member.
      (MU_WRDSF_ESCAPE): New flag.
      (mu_wordsplit_general_unquote_copy): New function.
      * libmailutils/string/wordsplit.c: Remove empty nodes after whitespace
      trimming.  If MU_WRDSF_ESCAPE is set, remove only backslashes appearing
      in front of a character in ws_escape.
      * libmailutils/tests/wordsplit.at: Test new features.
      Sergey Poznyakoff authored
  7. 15 Nov, 2011 2 commits
    • * python/libmu_py/Makefile.am (libmu_py_la_SOURCES): Add errno.c
      * python/libmu_py/errno.c: New file.
      * python/libmu_py/libmu_py.c (_mu_py_module_name): New function.
      (_mu_py_attach_module): Use _mu_py_module_name to allocate FQ
      module name instead of taking the risk of using fixed size buffer.
      Don't call Py_InitModule if methods is NULL.
      (mu_py_attach_modules): Call _mu_py_attach_errno.
      * python/libmu_py/libmu_py.h (_mu_py_attach_errno): New proto.
      * python/mailutils/error.py: Re-export everything from c_api.errno.
      Remove hardcoded definitions of error codes.
      Sergey Poznyakoff authored
    • * libmu_cfg/tls.c (SSL_KEY_FILE_CHECKS): Mask out
      MU_FILE_SAFETY_OWNER_MISMATCH bit.
      * mu/shell.c: Handle SIGPIPE and SIGINTR.
      Sergey Poznyakoff authored
  8. 12 Nov, 2011 1 commit
  9. 10 Nov, 2011 3 commits
  10. 09 Nov, 2011 4 commits
  11. 08 Nov, 2011 2 commits
  12. 07 Nov, 2011 2 commits
  13. 06 Nov, 2011 1 commit
  14. 05 Nov, 2011 3 commits
    • * pop3d/pop3d.c (pop3d_mainloop): start in AUTHORIZATION if tls
      is established.
      Sergey Poznyakoff authored
    • * .gitmodules: Add imprimatur.
      * Makefile.am: Likewise.
      * configure.ac: Likewise.
      * doc/Makefile.am: Likewise.
      * bootstrap.conf: Comment out make in doc/texinfo
      * doc/texinfo/Makefile.am: Rewrite.
      * doc/texinfo/fdl.texi: Minor change.
      * doc/texinfo/getdate.texi: Minor change.
      * doc/texinfo/mailutils.texi: begin rewrite.
      * doc/texinfo/mu-mh.texi: Minor change.
      * doc/texinfo/programs.texi: begin rewrite.
      * doc/texinfo/sieve.texi: Minor change.
      * doc/texinfo/usage.texi: Minor change.
      
      * libmailutils/cfg/lexer.l: Allow for @ in unquoted strings
      * pop3d/bulletin.c: Relax safety checks for bulletin.db
      * pop3d/logindelay.c: Relax safety checks for stat.sb
      * pop3d/pop3d.h (DEFAULT_GROUP_DB_SAFETY): New define.
      Sergey Poznyakoff authored
  15. 04 Nov, 2011 4 commits
    • * libproto/pop/mbox.c (pop_scan): Make sure MU_EVT_MESSAGE_ADD is delivered
      when it is already possible to retrieve the message.
      * mail/mail.c (default_setup) <headline>: Use %L instead of %l.
      
      * mu/logger.c (logger_options)<priority>: Minor fix.
      Sergey Poznyakoff authored
    • * comsat/comsat.c (comsat_prefork,comsat_connection): Change signatures.
      * imap4d/imap4d.c: Implement imaps.
      * imap4d/imap4d.h (io_setio): Change signature.
      (tls_encryption_on): New proto.
      * imap4d/io.c (io_setio): Change signature.  Initialize TLS stream if
      requested.
      * imap4d/starttls.c (tls_encryption_on): New function.
      * include/mailutils/server.h (mu_srv_config): New struct.
      (mu_m_server_conn_fp, mu_m_server_prefork_fp): Remove typedefs.
      (mu_m_server_handler_fp): New typedef.
      (mu_m_server_set_conn): Change signature.
      (mu_m_server_set_prefork): Change signature.
      (mu_m_server_set_app_data_size)
      (mu_m_server_set_config_size): New prototype.
      (mu_m_server_cfg_init): Change signature.
      * include/mailutils/tls.h (mu_init_tls_libs): Change signature.
      * lib/tcpwrap.c: Include tcpwrap.h
      (mu_tcp_wrapper_daemon): Fix declaration.
      (mu_tcp_wrapper_prefork): Change signature.
      * lib/tcpwrap.h (mu_tcp_wrapper_prefork): Change signature
      * libmailutils/server/msrv.c (_mu_m_server) <conn,prefork>: Change
      data type.  All uses updated.
      <app_data_size>: New member.
      (m_srv_config): Remove struct.  Replaced with mu_srv_config from tls.h
      (mu_m_server_set_conn): Change signature.
      (mu_m_server_set_prefork): Change signature.
      (mu_m_server_set_app_data_size)
      (mu_m_server_set_config_size): New functions.
      (add_server): Allocate app_data_size additional bytes of data.
      (mu_m_server_cfg_init): Take one argument.
      * libmu_auth/tls.c (mu_tls_module_init): Update call to mu_init_tls_libs.
      Don't call mu_file_safety_check with NULL argument.
      (mu_init_tls_libs): Rewrite.  Prepare x509 here, instead of
      doing it each time a TLS stream is created.
      (mu_deinit_tls_libs): Free x509, if exists.
      (_tls_server_open): Update call to mu_init_tls_libs.
      Remove x509 initialization.
      * libmu_cfg/tls.c (cb2_safety_checks): Fix typos.
      * maidag/lmtp.c (lmtp_connection): Change signature.
      * maidag/maidag.c (main): Update call to mu_m_server_cfg_init.
      * maidag/maidag.h (lmtp_connection): Change signature.
      * pop3d/extra.c (pop3d_setio): Initialize TLS stream, if requested.
      * pop3d/pop3d.c: Implement pops.
      * pop3d/pop3d.h (pop3d_setio): Change prototype.
      Sergey Poznyakoff authored
    • * include/mailutils/sys/tls-stream.h (_mu_tls_stream_s): Remove.
      * libmailutils/diag/errors (MU_ERR_BAD_RESUMPTION): Remove. Use EAGAIN
      instead.
      (MU_ERR_DISABLED): New error code.
      * libmu_auth/tls.c (_tls_server_open): Return MU_ERR_DISABLED
      when needed.
      (_mu_tls_stream_create): Implement error_string method.
      * libproto/maildir/mbox.c (maildir_msg_init): Fix return value.
      Sergey Poznyakoff authored
    • Remove --tls option.  Make TLS stream open methods call mu_init_tls_libs.
      It is now not necessary to call this function explicitly, unless the
      application wishes to ensure TLS is initialized (e.g. pop3d or imap4d).
      
      * include/mailutils/libargp.h (mu_tls_cmdline): Remove.
      * libmu_argp/tls.c
      * libmu_argp/Makefile.am (libmu_argp_a_SOURCES): Remove tls.c
      * libmu_argp/cmdline.c (all_cmdline_capa): Remove tls.c
      * libmu_auth/tls.c [WITH_TLS] (mu_tls_module_config): Enable by default.
      (mu_check_tls_environment): Return 0 if TLS is disabled.
      (mu_init_tls_libs): Always call gnutls_global_init, otherwise any call
      to TLS library (especially, handshake) can produce a coredump.
      * libmu_cfg/tls.c: Fix description string for tls.enable.
      * mh/mh_init.c (mh_init): Remove call to mu_init_tls_libs, now unnecessary.
      * python/libmu_py/registrar.c: Likewise.
      * testsuite/smtpsend.c: Likewise.
      Sergey Poznyakoff authored
  16. 01 Nov, 2011 1 commit