- 08 Oct, 2010 6 commits
-
-
-
* 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
-
- 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 -
-
* 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
-
- 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
-
- 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 -
* 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 -
-
- 04 Oct, 2010 1 commit
-
-
* mu/acl.c: New file. * mu/Makefile.am: Add acl.c * po/POTFILES.in: Add acl.c * mu/mu.c (mutool_action_tab): Add acl mode. * mu/mu.h (mutool_acl): New proto. * mu/flt2047.c: Fix docstrings. * mu/pop.c: Likewise.
Sergey Poznyakoff authored
-
- 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 -
-
* 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
-
- 25 Sep, 2010 10 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 -
* libmailutils/prog_stream.c (REDIRECT_STDIN_P) (REDIRECT_STDOUT_P): Fix macros. * libmailutils/stream.c (mu_stream_open): If stream is open with MU_STREAM_APPEND, reposition to its end. (_stream_write_unbuffered): Do not signal EACCESS for MU_STREAM_APPEND streams. * mail/pipe.c (mail_pipe): Rewrite using streams instead of FILEs. * mail/send.c (fill_body): Likewise. * mail/write.c (mail_write): Likewise.
Sergey Poznyakoff authored -
* imap4d/imap4d.c (imap4d_mainloop): Take two file descriptor as arguments. All uses updated. * imap4d/imap4d.h (io_setio): Change signature. * imap4d/io.c (io_setio): Take two file descriptor as arguments. All uses updated. * pop3d/extra.c (pop3d_setio): Take two file descriptor as arguments. All uses updated. * pop3d/pop3d.c (pop3d_mainloop): Likewise. * pop3d/pop3d.h (pop3d_setio): Change signature.
Sergey Poznyakoff authored -
* examples/musocio.c: Use default stream buffer size. * imap4d/io.c: Likewise. * libmailutils/dbgstream.c: Likewise. * libmailutils/iostream.c: Likewise. * libmailutils/xscript-stream.c: Likewise. * libmu_auth/gsasl.c: Likewise. * libmu_auth/tls.c: Likewise. * libproto/pop/mbox.c: Likewise. * libproto/pop/pop3_stream.c: Likewise. * pop3d/extra.c: Likewise. * libmailutils/file_stream.c (mu_file_stream_create) (mu_fd_stream_create): File streams are fully buffered by default. * libmailutils/stdio_stream.c (mu_stdio_stream_create): Stdio streams are line buffered by default.
Sergey Poznyakoff authored -
* libmailutils/streamcpy.c (mu_stream_copy): Use the number of bytes actually read. * libmailutils/base64.c (_base64_encoder): Return mu_filter_again if not all data has been consumed on mu_filter_lastbuf. * libmailutils/message_stream.c (scan_stream): Fix calculation of body_end. (_body_obj_size): Fix calculation of body size. * libproto/mailer/smtp_data.c (_mu_smtp_data_begin): Set full buffering on the MU_TRANSPORT_OUTPUT stream.
Sergey Poznyakoff authored -
* configure.ac: Use libmuaux.a instead of libmuaux.la. * examples/Makefile.am: Likewise. * examples/cpp/Makefile.am: Likewise. * imap4d/Makefile.am: Likewise. * mapi/Makefile.am: Likewise. * mh/Makefile.am: Likewise. * pop3d/Makefile.am: Likewise. Remove old files from POTFILES.in (see c42bddb0). * po/POTFILES.in: Remove comsat/oldcfg.c. Build testsuites after the programs they are to test. * frm/Makefile.am (SUBDIRS): Put . before tests. * messages/Makefile.am: Likewise. * readmsg/Makefile.am: Likewise. * sieve/Makefile.am: Likewise. Remove leftovers from CVS times: * .cvsignore: Remove. * am/.cvsignore: Remove. * lib/.cvsignore: Remove. * po/.cvsignore
Sergey Poznyakoff authored -
It is needed for the remaining DejaGNU tests and will go away later, when they are rewritten.
Sergey Poznyakoff authored -
* mailbox/url.c (url_parse0): Take three arguments. Return in the third one a boolean indicating whether to expand %XX notations in the URL. Do not decode absolute file names and pipes. (mu_url_parse): Use this value to decide. * movemail/movemail.c (main): In emacs mode: force UNIX mbox format as a default. Send debugging output to stderr. * libmailutils/tests/url.at: Add new tests.
Sergey Poznyakoff authored -
* am/debug.m4 (MU_DEBUG_MODE): Rewrite. Use -Wdeclaration-after-statement if supported. * comsat/oldcfg.c: Remove. * comsat/Makefile.am (comsatd_SOURCES): Remove oldcfg.c. * comsat/comsat.c: Remove the obsolete --config and --convert-config options. * comsat/comsat.h (convert_config): Remove.
Sergey Poznyakoff authored
-
- 21 Sep, 2010 2 commits
-
-
* Makefile.am: Shut up cmp's stderr. * libmailutils/body.c (_body_get_stream): Set full buffering mode on the body stream. * libmailutils/errors (MU_ERR_AUTH_NO_CRED): New error code. * libproto/mailer/smtp.c (smtp_open): Do not treat ENOSYS or MU_ERR_AUTH_NO_CRED (returned by mu_smtp_auth) as errors. (smtp_send_message): Do not try to submit the message if it is bigger than the maximum imposed by the server. * libproto/mailer/smtp_auth.c (mu_smtp_auth): Return MU_ERR_AUTH_NO_CRED if neither user name nor password are supplied. * mail/send.c (mail_send0): Issue diagnostics if sending attempt has failed.
Sergey Poznyakoff authored -
* include/mailutils/cpp/pop3.h (capa): Add reread parameter. (getline): Add new prototype. (send, readline): Remove. (response, stat): Change prototype. * libmu_cpp/pop3.cc: Likewise. * include/mailutils/cpp/stream.h (read, write, readline): Change prototype. (sequential_readline, sequential_write): Remove. * libmu_cpp/stream.cc: Likewise.
Wojciech Polak authored
-
- 20 Sep, 2010 1 commit
-
-
* libproto/mailer/smtp.c: Rewrite using new SMTP API. * libproto/mailer/smtp_quit.c (mu_smtp_quit): Return immediately if already in closed state. * libmailutils/ticket.c (mu_ticket_get_cred): Return MU_ERR_FAILURE if all methods fail. * mail/send.c: Port 23321cf7 from patches-2.2 (msg_to_pipe): Return status code. (save_dead_message, send_message): New functions, extracted from mail_send0. (mail_send0): Call save_dead_message if sending failed.
Sergey Poznyakoff authored
-