1. 16 Oct, 2010 1 commit
  2. 12 Oct, 2010 1 commit
  3. 11 Oct, 2010 2 commits
    • * include/mailutils/util.h (mu_readlink): New function.
      (mu_unroll_symlink): Change prototype.
      * libmailutils/base/symlink.c (mu_qualify_link): Remove.
      (mu_readlink): New function.
      (mu_unroll_symlink): Rewrite.  Don't use statically allocated
      buffers.
      * libmailutils/base/locker.c (mu_locker_create): Update calls to
      mu_unroll_symlink.
      Sergey Poznyakoff authored
    • * comsat/action.c (run_user_action): Use mu_make_file_name.
      * imap4d/lsub.c (imap4d_lsub): Likewise.
      * imap4d/subscribe.c (imap4d_subscribe): Likewise.
      * imap4d/unsubscribe.c (imap4d_unsubscribe): Likewise.
      * libmailutils/base/filename.c (mu_get_full_path): Likewise.
      * libmailutils/base/tempfile.c (mu_tempfile): Likewise.
      * libmailutils/base/url.c (_url_path_default): Likewise.
      * libmu_auth/virtual.c (getpwnam_virtual)
      (mu_auth_virt_domain_by_name): Likewise.
      * libmu_sieve/extensions/vacation.c (check_db): Likewise.
      * libmu_sieve/sieve.l (_try_include): Likewise.
      * maidag/forward.c (maidag_forward): Likewise.
      
      * mh/mh.h (mh_safe_make_file_name): New proto.
      * mh/mh_init.c (mh_audit_open,mh_get_dir)
      (mh_expand_name,mh_real_install): Use mh_safe_make_file_name.
      (mh_safe_make_file_name): New function.
      * mh/folder.c (read_seq_file, _scan): Use mh_safe_make_file_name.
      * mh/mh_global.c (mh_read_profile, _mh_init_global_sequences): Likewise.
      * mh/install-mh.c (main): Likewise.
      * mh/mhn.c (normalize_path, store_handler, main): Likewise.
      * mh/repl.c (make_draft): Likewise.
      * mh/rmf.c (rmf): Likewise.
      * mh/sortm.c (swap_message): Likewise.
      * mimeview/mimetypes.l (mimetypes_open): Likewise.
      
      * lib/mailcap.c: Add error checking.
      Sergey Poznyakoff authored
  4. 10 Oct, 2010 4 commits
    • * python/libmu_py/folder.c (api_folder_set_stream): Remove.
      * python/libmu_py/message.c (api_message_set_stream): Remove.
      * python/libmu_py/stream.c (api_stream_ref, api_stream_unref): Add.
      (api_stream_sequential_readline, api_stream_sequential_write): Remove.
      Wojciech Polak authored
    • Minor fix · 4f9d95ae
      * libmailutils/base/getcwd.c: Add missing include file.
      Sergey Poznyakoff authored
    • * include/mailutils/cstr.h (mu_strcasestr): Rename to mu_c_strcasestr.
      * libmailutils/string/cstrcasestr.c: Likewise. All uses changed.
      Sergey Poznyakoff authored
    • * libmailutils/base/mutil.c (mu_hex2ul, mu_hexstr2ul): Move to string/hexstr.c.
      (mu_get_homedir, mu_get_full_path)
      (mu_expand_path_pattern): Move to base/filename.c.
      (mu_getcwd): Move to base/getcwd.c.
      (mu_tilde_expansion): Move to base/tilde.c
      (mu_cpystr): Move to string/cpystr.c.
      (mu_get_host_name): Move to base/hostname.c.
      (mu_set_user_email,mu_set_user_email_domain)
      (mu_get_user_email_domain,mu_aget_user_email_domain)
      (mu_get_user_email,mu_normalize_path): Move to base/usremail.c.
      (mu_tempfile,mu_tempname): Move to base/tempfile.c.
      (mu_spawnvp): Move to base/spawnvp.c.
      (mu_qualify_link,mu_unroll_symlink): Move to base/symlink.c.
      (mu_rfc2822_references,mu_rfc2822_msg_id)
      (mu_rfc2822_in_reply_to): Move to base/msgid.c.
      (mu_strcasestr): Move to string/cstrcasestr.c.
      (mu_string_unfold): Move to string/unfold.c.
      (mu_true_answer_p): Move to string/trueans.c.
      (mu_scheme_autodetect_p): Move to base/schemeauto.c.
      (mu_fd_wait): Move to base/fdwait.c.
      (mu_set_default_fallback,mu_decode_filter): Move to filter/decode.c.
      (__argp_base_name): Move to lib/argp_base.c.
      
      * libmailutils/base/fdwait.c: New file.
      * libmailutils/base/filename.c: New file.
      * libmailutils/base/getcwd.c: New file.
      * libmailutils/base/hostname.c: New file.
      * libmailutils/base/msgid.c: New file.
      * libmailutils/base/schemeauto.c: New file.
      * libmailutils/base/spawnvp.c: New file.
      * libmailutils/base/symlink.c: New file.
      * libmailutils/base/tempfile.c: New file.
      * libmailutils/base/tilde.c: New file.
      * libmailutils/base/usremail.c: New file.
      * libmailutils/base/Makefile.am: Add new files.
      
      * libmailutils/filter/decode.c: New file.
      * libmailutils/filter/Makefile.am: Add new files.
      
      * libmailutils/string/cpystr.c: New file.
      * libmailutils/string/cstrcasestr.c: New file.
      * libmailutils/string/hexstr.c: New file.
      * libmailutils/string/trueans.c: New file.
      * libmailutils/string/unfold.c: New file.
      * libmailutils/string/Makefile.am: Add new files.
      
      * lib/argp_base.c: New file.
      * lib/Makefile.am: Add new files.
      
      * include/mailutils/io.h: Include stdarg.h
      * include/mailutils/mutil.h: Rename to util.h.  Reorder prototypes
      and declarations in logical groups.  All uses changed.
      
      * include/mailutils/cstr.h (mu_strcasestr): New proto, moved from
      include/mailutils/mutil.h.
      Sergey Poznyakoff authored
  5. 09 Oct, 2010 2 commits
    • Sergey Poznyakoff authored
    • * configure.ac (AC_CONFIG_FILES): Add libmailutils/ subdirs.
      * include/mailutils/Makefile.am: Update references to libmailutils.
      * po/POTFILES.in: Likewise.
      * libmailutils/.gitignore: Update.
      * libmailutils/Makefile.am: Use convenience libraries in subdirs.
      
      * libmailutils/string/Makefile.am: New file.
      * libmailutils/cstrcasecmp.c: Move to libmailutils/string.
      * libmailutils/cstrlower.c: Likewise.
      * libmailutils/cstrupper.c: Likewise.
      * libmailutils/strltrim.c: Likewise.
      * libmailutils/strskip.c: Likewise.
      * libmailutils/stripws.c: Likewise.
      * libmailutils/strrtrim.c: Likewise.
      * libmailutils/asnprintf.c: Likewise.
      * libmailutils/asprintf.c: Likewise.
      * libmailutils/muctype.c: Likewise.
      * libmailutils/vasnprintf.c: Likewise.
      * libmailutils/mkfilename.c: Likewise.
      
      * libmailutils/stream/Makefile.am: New file.
      * libmailutils/dbgstream.c: Move to libmailutils/stream.
      * libmailutils/file_stream.c: Likewise.
      * libmailutils/fltstream.c: Likewise.
      * libmailutils/iostream.c: Likewise.
      * libmailutils/mapfile_stream.c: Likewise.
      * libmailutils/memory_stream.c: Likewise.
      * libmailutils/message_stream.c: Likewise.
      * libmailutils/prog_stream.c: Likewise.
      * libmailutils/rdcache_stream.c: Likewise.
      * libmailutils/socket_stream.c: Likewise.
      * libmailutils/stdio_stream.c: Likewise.
      * libmailutils/stream.c: Likewise.
      * libmailutils/stream_printf.c: Likewise.
      * libmailutils/stream_vprintf.c: Likewise.
      * libmailutils/streamcpy.c: Likewise.
      * libmailutils/streamref.c: Likewise.
      * libmailutils/tcp.c: Likewise.
      * libmailutils/temp_file_stream.c: Likewise.
      * libmailutils/xscript-stream.c
      
      * libmailutils/cfg/Makefile.am: New file.
      * libmailutils/cfg/.gitignore: New file.
      * libmailutils/cfg_driver.c: Move to libmailutils/cfg/driver.c.
      * libmailutils/cfg_format.c: Move to libmailutils/cfg/format.c.
      * libmailutils/cfg_lexer.l: Move to libmailutils/cfg/lexer.l.
      * libmailutils/cfg_parser.y: Move to libmailutils/cfg/parser.y.
      * libmailutils/gocs.c: Move to libmailutils/cfg/gocs.c.
      
      * libmailutils/diag/Makefile.am: New file.
      * libmailutils/diag/.gitignore: New file.
      * libmailutils/debug.c: Move to libmailutils/diag.
      * libmailutils/diag.c: Likewise.
      * libmailutils/gdebug.c: Likewise.
      * libmailutils/errors: Likewise.
      * libmailutils/muerrno.cin: Likewise.
      * libmailutils/syslog.c: Likewise.
      * libmailutils/dbgstderr.c: Likewise.
      * libmailutils/dbgsyslog.c: Likewise.
      
      * libmailutils/address/Makefile.am: New file.
      * libmailutils/address.c: Move to libmailutils/address.
      * libmailutils/parse822.c: Likewise.
      
      * libmailutils/mailbox/Makefile.am: New file.
      * libmailutils/mailbox.c: Move to libmailutils/mailbox.
      * libmailutils/mbx_default.c: Likewise.
      * libmailutils/mbxitr.c: Likewise.
      * libmailutils/attribute.c: Likewise.
      * libmailutils/body.c: Likewise.
      * libmailutils/envelope.c: Likewise.
      * libmailutils/folder.c: Likewise.
      * libmailutils/hdritr.c: Likewise.
      * libmailutils/header.c: Likewise.
      * libmailutils/message.c: Likewise.
      * libmailutils/msgscan.c: Likewise.
      
      * libmailutils/mailer/Makefile.am: New file.
      * libmailutils/mailer.c: Move to libmailutils/mailer.
      * libmailutils/progmailer.c: Likewise.
      
      * libmailutils/mime/Makefile.am: New file.
      * libmailutils/attachment.c: Move to libmailutils/mime.
      * libmailutils/mime.c: Likewise.
      * libmailutils/mimehdr.c: Likewise.
      
      * libmailutils/server/Makefile.am: New file.
      * libmailutils/acl.c: Move to libmailutils/server.
      * libmailutils/server.c: Likewise.
      * libmailutils/msrv.c: Likewise.
      * libmailutils/ipsrv.c: Likewise.
      
      * libmailutils/auth/Makefile.am: New file.
      * libmailutils/auth.c: Move to libmailutils/auth.
      * libmailutils/mu_auth.c: Likewise.
      * libmailutils/system.c: Likewise.
      
      * libmailutils/base/Makefile.am: New file.
      * libmailutils/base/.gitignore: New file.
      * libmailutils/alloc.c: Move to libmailutils/base.
      * libmailutils/amd.c: Likewise.
      * libmailutils/argcv.c: Likewise.
      * libmailutils/assoc.c: Likewise.
      * libmailutils/daemon.c: Likewise.
      * libmailutils/date.c: Likewise.
      * libmailutils/fgetpwent.c: Likewise.
      * libmailutils/freeitem.c: Likewise.
      * libmailutils/getpass.c: Likewise.
      * libmailutils/iterator.c: Likewise.
      * libmailutils/kwd.c: Likewise.
      * libmailutils/list.c: Likewise.
      * libmailutils/listlist.c: Likewise.
      * libmailutils/locale.c: Likewise.
      * libmailutils/locker.c: Likewise.
      * libmailutils/mailcap.c: Likewise.
      * libmailutils/md5.c: Likewise.
      * libmailutils/monitor.c: Likewise.
      * libmailutils/munre.c: Likewise.
      * libmailutils/mutil.c: Likewise.
      * libmailutils/nls.c: Likewise.
      * libmailutils/nullrec.c: Likewise.
      * libmailutils/observer.c: Likewise.
      * libmailutils/opool.c: Likewise.
      * libmailutils/parsedate.y: Likewise.
      * libmailutils/permstr.c: Likewise.
      * libmailutils/property.c: Likewise.
      * libmailutils/registrar.c: Likewise.
      * libmailutils/refcount.c: Likewise.
      * libmailutils/rfc2047.c: Likewise.
      * libmailutils/sha1.c: Likewise.
      * libmailutils/secret.c: Likewise.
      * libmailutils/ticket.c: Likewise.
      * libmailutils/url.c: Likewise.
      * libmailutils/vartab.c: Likewise.
      * libmailutils/version.c: Likewise.
      * libmailutils/wicket.c: Likewise.
      Sergey Poznyakoff authored
  6. 08 Oct, 2010 7 commits
    • * mu/Makefile.am [MU_COND_SUPPORT_POP]: Compile pop.c conditionally.
      * mu/mu.c (mutool_nosys): New function.
      (mutool_action_tab): Compile pop support conditionally.
      Sergey Poznyakoff authored
    • * maidag/forward.c (check_forward_permissions): Keep track of the
      processed files.  Refuse to process a file twice.
      (process_forward): Rewrite using streams instead of FILE.
      (maidag_forward): Accept absolute file names (mainly for testing).
      * maidag/maidag.c (forward_checks): New keyword "owner".
      (cb2_forward_file_checks): New keyword "none".
      (main): Require at least one recipient in MDA mode.
      * maidag/maidag.h (FWD_OWNER): New mask.
      * maidag/tests/forward.at: New file.
      * maidag/tests/Makefile.am (TESTSUITE_AT): Add forward.at
      * maidag/tests/testsuite.at: Include forward.at.
      Sergey Poznyakoff authored
    • * examples/mta.c (mta_send): A line number refers to the start
      of each line, not end of it.
      * mail/testsuite/mail/send.exp: Reflect this change.
      * sieve/tests/redirect.at: Likewise.
      * sieve/tests/reject.at: Likewise.
      Sergey Poznyakoff authored
    • * maidag/deliver.c (make_tmp): Return mu_message_t.
      Use mu_stream_to_message function.
      (mda): Remove.
      (maidag_stdio_delivery): Inline mda.
      * maidag/maidag.h (mda): Remove.
      Sergey Poznyakoff authored
    • * maidag/maidag.c (mda_mode,lmtp_mode,url_option): Remove.
      (maidag_mode): New variable.
      (parse_opt): The --lmtp, --url and --mda options set the delivery-mode
      configuration statement.
      (cb_delivery_mode): New callback.
      (maidag_cfg_param) <delivery-mode>: New statement.
      (main): Redo delivery mode selection.
      * maidag/maidag.h (maidag_mode): New enum.
      (maidag_mode): New extern.
      (mda_mode,lmtp_mode,url_option): Remove.
      (maidag_delivery_fn): New typedef.
      (maidag_stdio_delivery,mda): Change signature.
      (deliver_to_url, deliver_to_user): New prototypes.
      
      * maidag/deliver.c (mda): Take delivery function as a parameter.
      (maidag_stdio_delivery): Likewise.
      (deliver_to_user): Rename to deliver_to_mailbox.
      (deliver_url): Rename to do_delivery.
      (deliver): Rename to deliver_to_url.
      (deliver_to_user): New function.
      * maidag/forward.c (process_forward): Use deliver_to_user.
      * maidag/lmtp.c (dot_deliver): Likewise.
      Sergey Poznyakoff authored
  7. 07 Oct, 2010 3 commits
    • * configure.ac: Add maidag/tests
      * maidag/Makefile.am (SUBDIRS): Add tests.
      * maidag/deliver.c (make_tmp): Write a
      message delimiter.
      (is_remote_url, is_mailer_url): Remove.
      (deliver_url): Allow for URLs without user name.
      * maidag/lmtp.c (lmtp_set_privs): Empty group list
      means do not switch to any groups.
      * maidag/maidag.c (mda_mode): New variable.
      (options): New option --mda.
      (cb_group, cb2_group): Create the list even if it is empty.
      (main): Handle --mda.
      
      * maidag/tests/.gitignore: New file.
      * maidag/tests/Makefile.am: New file.
      * maidag/tests/atlocal.in: New file.
      * maidag/tests/input.msg: New file.
      * maidag/tests/lmtp.at: New file.
      * maidag/tests/mda.at: New file.
      * maidag/tests/testsuite.at: New file.
      * maidag/tests/url-mbox.at: New file.
      * maidag/tests/input.msg: New file.
      Sergey Poznyakoff authored
    • Sergey Poznyakoff authored
    • * libmailutils/fromflt.c: New file.
      * libmailutils/Makefile.am (libmailutils_la_SOURCES): Add fromflt.c
      * libmailutils/tests/testsuite.at: Include fromflt.at.
      * include/mailutils/filter.h (mu_from_filter): New filter type.
      * libmailutils/filter.c (mu_filter_get_list): Register mu_from_filter.
      
      * libmailutils/fromflt.at: New file.
      * libmailutils/tests/Makefile.am (TESTSUITE_AT): Add fromflt.at.
      * libmailutils/tests/base64d.at: Mention `filter' in the keywords.
      * libmailutils/tests/base64e.at: Likewise.
      * libmailutils/tests/fltst.c (main): Fix argc check.
      
      * libproto/mbox/mbox.c (append_message_to_stream): Use "FROM" filter.
      Sergey Poznyakoff authored
  8. 06 Oct, 2010 2 commits
    • * libmailutils/file_stream.c (mu_fd_stream_create): Mark stream as
      open, do not call mu_stream_open explicitly.
      * libmailutils/message_stream.c (mu_stream_to_message): Bugfixes,
      wrong owner given to mu_envelope_set_ calls.
      * libmailutils/stream.c (_MU_STR_FLUSH_ALL)
      (_MU_STR_FLUSH_KEEP): New macros for _stream_flush_buffer.
      (_stream_flush_buffer): Change the meaning of the last argument.
      All callers updated.
      (mu_stream_seek): Fix operation with MU_SEEK_END.
      Call _mu_stream_cleareof on success.
      (mu_stream_read): Call _stream_flush_buffer in buffered mode.
      (mu_stream_getdelim, mu_stream_readdelim): Call _stream_flush_buffer.
      * libmailutils/streamcpy.c (mu_stream_copy): Reset size if mu_stream_seek
      fails.
      * libmailutils/temp_file_stream.c (mu_temp_file_stream_create): Set
      full buffering mode by default.
      
      * maidag/mailtmp.c: Remove.
      * maidag/Makefile.am (maidag_SOURCES): Remove mailtmp.c
      * po/POTFILES.in: Likewise.
      * maidag/deliver.c (make_tmp): Rewrite.  Return mu_mailbox_t.
      All callers changed.
      * maidag/lmtp.c (lmtp_transcript): Remove static.
      (lmpt_transcript): New function.
      (lmtp_reply): Use mu_stream_t instead of FILE.
      (xlatnl): Remove.  Superseded by mu_rtrim_cset and family.
      (mtmp, mbox): Remove globals.
      (mesg): New global.
      (cfun_unknown, cfun_mail_from, cfun_rcpt_to)
      (dot_temp_fail, dot_deliver, cfun_rset)
      (cfun_lhlo, cfun_quit, cfun_help): Use mu_stream_t instead of FILE.
      (cfun_data): Rewrite.
      (cfun_dot): Remove.
      (to_fgets): Rewrite using mu_stream_t.
      (lmtp_loop): Change signature. Rewrite using mu_stream_t.
      (lmtp_connection, maidag_lmtp_server): Update accordingly.
      * maidag/maidag.c (maidag_transcript): New global.
      (options, parse_opt): New option --transcript.
      * maidag/maidag.h (maidag_transcript): New extern.
      (mail_tmp_begin, mail_tmp_add_line, mail_tmp_finish)
      (mail_tmp_destroy): Remove.
      Sergey Poznyakoff authored
    • * mu/pop.c (com_apop, com_pass): Require password in non-interactive
      mode.
      Sergey Poznyakoff authored
  9. 05 Oct, 2010 8 commits
    • * mu/shell.c (input_line_script): Use mu_getline.
      * libmu_argp/compat.c: Remove.
      * libmu_argp/Makefile.am: Remove compat.c
      * po/POTFILES.in: Likewise.
      Sergey Poznyakoff authored
    • * mu/mu.h (mutool_command) <doc>: Rename to docstring.
      <argdoc>: New member.
      * mu/pop.c (com_apop): 2nd arg (password) is optional.  If not
      supplied, ask for it using the mu_getpass function.
      (pop_comtab): Add argdocs.  Use N_ wrappers around translatable
      strings.
      * mu/shell.c (default_comtab: Add argdocs.  Use N_ wrappers around
      translatable strings.
      (print_comtab): Rewrite.
      (shell_history): Use pager.
      Sergey Poznyakoff authored
    • * libproto/pop/pop3_carrier.c (mu_pop3_set_carrier): Switch to
      MU_POP3_CONNECT state.
      * libproto/pop/pop3_disconnect.c (mu_pop3_disconnect): Check if
      the stream is actually open before trying to close it.
      Sergey Poznyakoff authored
    • * libmailutils/strskip.c (mu_str_skip_cset): New function.
      Sergey Poznyakoff authored
    • * configure.ac: Test for tcgetattr and tcsetattr.
      * gnulib.modules (getpass-gnu): Remove.
      * include/mailutils/mutil.h (mu_getpass): New proto.
      * include/mailutils/stream.h (MU_IOCTL_GET_ECHO)
      (MU_IOCTL_SET_ECHO): New ioctls.
      * include/mailutils/sys/file_stream.h (_MU_FILE_STREAM_ECHO_OFF): New flag.
      (_mu_file_stream) <echo_state>: New member.
      * libmailutils/getpass.c: New file.
      * libmailutils/Makefile.am (libmailutils_la_SOURCES): Add getpass.c.
      * libmailutils/file_stream.c (fd_done): Free echo_state.
      (fd_ioctl): Implement MU_IOCTL_GET_ECHO and MU_IOCTL_SET_ECHO.
      * mu/mu.h (mustrin): New extern.
      * mu/pop.c (com_pass): Use mu_getpass.
      * mu/shell.c (mustrin): New variable.
      (readline): Use mu_stream_getline instead of getline.
      (mutool_shell): Create mustrin.
      * pop3d/popauth.c (options): Fix typo.
      (fill_pass): Use mu_getpass.
      Sergey Poznyakoff authored
    • * mu/mu.h (mutool_shell_interactive): New extern.
      (mutool_open_pager): New proto.
      * mu/pop.c (com_list, com_top, com_retr): Use pager.
      * mu/shell.c (mutool_shell_interactive, mustrout): New
      variables.
      (print_comtab, print_help): Print to stream.
      (shell_help): Use pager if necessary.
      (mutool_open_pager): New function.
      (mutool_shell): Create mutool_stream_out and destroy it before
      returning.
      (all functions): Use mu_stream_printf instead of printf.
      Sergey Poznyakoff authored
    • * comsat/comsat.c (hostname): Change type.
      (comsat_init): Use mu_get_host_name.
      * comsat/comsat.h (hostname): Change declaration.
      * libmailutils/locker.c (lock_dotlock): Use mu_get_host_name.
      * libmailutils/mutil.c (mu_get_host_name): Rewrite.
      * pop3d/pop3d.c (pop3d_mainloop): Remove unnecessary call to
      gethostbyname.
      * pop3d/pop3d.h (MAXHOSTNAMELEN): Remove definition.
      Sergey Poznyakoff authored
    • Sergey Poznyakoff authored
  10. 04 Oct, 2010 1 commit
  11. 03 Oct, 2010 7 commits
    • * libmailutils/cfg_parser.y (split_cfg_path): New static.
      (mu_cfg_find_node): Use the same parsing algorithm as
      mu_cfg_create_subtree.  This complements 68b7dc9d.
      (mu_cfg_create_subtree): Use split_cfg_path.  Handle
      escaped '=' as a regular character.
      * mu/mu.c (args_doc): Remove spurious word.
      (main): Disable --version option in action handlers.
      * mu/query.c (query_args_doc): Use `path' instead of `keyword'.
      Sergey Poznyakoff authored
    • Sergey Poznyakoff authored
    • * mu/filter.c (filter_options): Add missing arguments.
      * mu/flt2047.c (flt2047_options): Likewise.
      Sergey Poznyakoff authored
    • * examples/http.c (main): Fix open/wait loop.
      * libmailutils/stream.c (mu_stream_wait): May be used
      on not-open streams.
      * examples/.gitignore: Add more files.
      Sergey Poznyakoff authored
    • The `mu' program is a multi-purpose tool for doing various mail-
      and mailutils-related operations.  It includes a pop3 shell,
      a coder/decoder for all filter formats supported by Mailutils,
      a utility to extract arbitrary values from the MU configuration
      files, a configuration information utility and many more, in the
      short run.  It supercedes examples/pop3client and (partially)
      mailutils-config, both of which will be removed in the future.
      
      * Makefile.am (SUBDIRS): Add mu.
      * configure.ac: Likewise.
      * po/POTFILES.in: Add new files.
      * mu/.gitignore: New file.
      * mu/Makefile.am: New file.
      * mu/filter.c: New file.
      * mu/flt2047.c: New file.
      * mu/info.c: New file.
      * mu/mu.c: New file.
      * mu/mu.h: New file.
      * mu/pop.c: New file.
      * mu/query.c: New file.
      * mu/shell.c: New file.
      Sergey Poznyakoff authored
    • One of stream flags bits indicates whether the stream is
      open or not.  The mu_stream_open function refuses to act if it
      already is.  The rest of functions (including mu_stream_close)
      refuses to act if the stream was not open.  A special function
      (mu_stream_is_open) is provided to check if the stream is in
      open state.
      
      Any stream creation function returns an already open stream.  The
      function mu_stream_open should be called only if the stream was
      previously closed by a call to mu_stream_close.
      
      * include/mailutils/stream.h (mu_stream_is_open): New proto.
      * include/mailutils/sys/stream.h (_MU_STR_OPEN): New flag.
      * libmailutils/stream.c (_mu_stream_create): Permit setting the
      _MU_STR_OPEN flag.
      (_stream_init): New static.
      (mu_stream_open): Return MU_ERR_OPEN if the stream is already open.
      (mu_stream_is_open): New function.
      (mu_stream_seek, mu_stream_read, mu_stream_readdelim)
      (mu_stream_getdelim, mu_stream_write, mu_stream_flush)
      (mu_stream_close, mu_stream_size, mu_stream_wait)
      (mu_stream_truncate): Check if the stream is open. Return MU_ERR_NOT_OPEN
      otherwise.
      
      * libmailutils/errors (MU_ERR_OPEN): Reword the diagnostics.
      
      * libmailutils/dbgstream.c (mu_dbgstream_create): Open the stream.
      * libmailutils/file_stream.c (mu_file_stream_create)
      (mu_fd_stream_create): Open the stream.
      * libmailutils/filter_iconv.c (mu_filter_iconv_create): Open the stream.
      * libmailutils/mapfile_stream.c (mu_mapfile_stream_create): Open the stream.
      * libmailutils/fltstream.c (mu_filter_stream_create): Mark the stream
      as open.
      * libmailutils/iostream.c (mu_iostream_create): Likewise.
      * libmailutils/memory_stream.c: Likewise.
      * libmailutils/message.c (_message_stream_create): Likewise.
      * libmailutils/message_stream.c (mu_message_stream_create): Likewise.
      * libmailutils/prog_stream.c (mu_prog_stream_create): Likewise.
      * libmailutils/socket_stream.c (mu_socket_stream_create): Likewise.
      * libmailutils/temp_file_stream.c (mu_temp_file_stream_create): Likewise.
      
      * libmailutils/amd.c (_amd_attach_message): Mark stream as open.
      * libmailutils/body.c (_body_get_stream): Likewise.
      * libmailutils/memory_stream.c: Likewise.
      * libmailutils/rdcache_stream.c (mu_rdcache_stream_create: Likewise.
      * libmailutils/stdio_stream.c (mu_stdio_stream_create): Likewise.
      * libmailutils/streamref.c (mu_streamref_create_abridged): Likewise.
      * libmailutils/tcp.c (mu_tcp_stream_create_with_source_ip): Likewise.
      * libmailutils/xscript-stream.c (mu_xscript_stream_create): Likewise.
      * libmu_auth/tls.c (_mu_tls_io_stream_create): Likewise.
      (_mu_tls_stream_create): Likewise.
      * libproto/pop/pop3_stream.c (mu_pop3_stream_create): Likewise.
      
      * examples/base64.c: Remove unnecessary mu_stream_open.
      * examples/http.c: Likewise.
      * examples/iconv.c: Likewise.
      * examples/msg-send.c: Likewise.
      * examples/murun.c: Likewise.
      * examples/musocio.c: Likewise.
      * examples/pop3client.c: Likewise.
      * imap4d/append.c: Likewise.
      * imap4d/io.c: Likewise.
      * imap4d/preauth.c: Likewise.
      * lib/mailcap.c: Likewise.
      * libmailutils/attachment.c: Likewise.
      * libmailutils/cfg_driver.c: Likewise.
      * libmailutils/header.c: Likewise.
      * libmailutils/mailcap.c: Likewise.
      * libmailutils/mimehdr.c: Likewise.
      * libmailutils/mutil.c: Likewise.
      * libmailutils/tests/fltst.c: Likewise.
      * libmailutils/tests/mailcap.c: Likewise.
      * libmailutils/vartab.c: Likewise.
      * libmailutils/wicket.c: Likewise.
      * libmu_argp/muinit.c: Likewise.
      * libmu_auth/ldap.c: Likewise.
      * libmu_sieve/extensions/pipe.c: Likewise.
      * libmu_sieve/extensions/spamd.c: Likewise.
      * libmu_sieve/extensions/vacation.c: Likewise.
      * libproto/imap/folder.c: Likewise.
      * libproto/mailer/smtp.c: Likewise.
      * libproto/mailer/smtp_starttls.c: Likewise.
      * libproto/mbox/mbox.c: Likewise.
      * libproto/nntp/nntp_connect.c: Likewise.
      * libproto/pop/mbox.c: Likewise.
      * libproto/pop/pop3_connect.c: Likewise.
      * libproto/pop/pop3_stls.c: Likewise.
      * maidag/mailtmp.c: Likewise.
      * mail/decode.c: Likewise.
      * mail/pipe.c: Likewise.
      * mail/send.c: Likewise.
      * mail/send.c: Likewise.
      * mail/write.c: Likewise.
      * mh/burst.c: Likewise.
      * mh/comp.c: Likewise.
      * mh/compcommon.c: Likewise.
      * mh/forw.c: Likewise.
      * mh/mh_init.c: Likewise.
      * mh/mh_whatnow.c: Likewise.
      * mh/mhl.c: Likewise.
      * mh/mhn.c: Likewise.
      * mh/repl.c: Likewise.
      * mimeview/mimeview.c: Likewise.
      * pop3d/extra.c: Likewise.
      * sieve/sieve.c: Likewise.
      * testsuite/smtpsend.c: Likewise.
      Sergey Poznyakoff authored
    • * include/mailutils/sys/smtp.h (_mu_smtp_get_streams)
      (_mu_smtp_set_streams): New protos.
      * libproto/mailer/smtp_gsasl.c (insert_gsasl_stream): Use _mu_smtp_get_streams
      and _mu_smtp_set_streams to change streams.
      * libproto/mailer/smtp_starttls.c (smtp_get_streams): Rename to
      _mu_smtp_get_streams. All callers changed.
      (smtp_set_streams): Rename to
      _mu_smtp_set_streams. All callers changed.
      Sergey Poznyakoff authored
  12. 25 Sep, 2010 2 commits
    • * guimb/scm/Makefile.am: Add sieve.scm to AM_INSTALLCHECK_STD_OPTIONS_EXEMPT.
      Sergey Poznyakoff authored
    • * include/mailutils/stream.h (MU_IOCTL_SWAP_STREAM): Remove.
      (MU_IOCTL_GET_STREAM, MU_IOCTL_SET_STREAM): New ioctls.
      * include/mailutils/sys/stream.h (_MU_SWAP_FIRST_ONLY)
      (_MU_SWAP_IOCTL_MUST_SUCCEED): Remove.
      (_mu_stream_swap_streams): Remove.
      * libmailutils/stream.c (_mu_stream_swap_streams): Remove.
      
      * libmailutils/filter_iconv.c (_icvt_ioctl): Handle MU_IOCTL_GET_STREAM,
      MU_IOCTL_SET_STREAM instead of MU_IOCTL_SWAP_STREAM.
      * libmailutils/iostream.c (_iostream_ctl): Likewise.
      * libmailutils/xscript-stream.c (_xscript_ctl): Likewise.
      
      * imap4d/auth_gsasl.c (restore_and_return): Unref the contents of str.
      (auth_gsasl): Use MU_IOCTL_GET_STREAM/MU_IOCTL_SET_STREAM to
      change the underlying transport streams.
      * imap4d/io.c (imap4d_init_tls_server): Likewise.
      * libproto/mailer/smtp_gsasl.c (insert_gsasl_stream): Likewise.
      * pop3d/extra.c (pop3d_init_tls_server): Likewise.
      
      * libproto/mailer/smtp_starttls.c (smtp_get_streams)
      (smtp_set_streams): New functions.
      (smtp_swap_streams): Remove.
      (mu_smtp_starttls): Use smtp_get_streams and smtp_set_streams
      instead of smtp_swap_streams.
      * libproto/pop/pop3_stls.c (pop3_get_streams)
      (pop3_set_streams): New functions.
      (pop3_swap_streams): Remove.
      (mu_pop3_stls): Use pop3_get_streams and pop3_set_streams.
      
      * testsuite/smtpsend.c (main): Uncomment mu_stream_unref on
      the carrier.
      Sergey Poznyakoff authored