- 23 Dec, 2010 1 commit
-
-
* mail/mail.h (mail_execute): Change signature. All callers updated. * mail/shell.c (expand_bang): Change signature. Take the string to be expanded as the 2nd and the last command as 3rd arguments. Always allocate the return string, even if there's nothing to expand. (mail_execute): fix memory management. * mail/escape.c: Update. * mail/escape.c: Update calls to mail_execute.
Sergey Poznyakoff authored
-
- 11 Dec, 2010 5 commits
-
-
-
* libmailutils/base/argcvjoin.c (mu_argcv_join): Fix a memory allocation error. * libmailutils/base/msgid.c (concat): Remove. (mu_rfc2822_references,mu_rfc2822_in_reply_to): Use mu_argcv_join to concatenate strings.
Sergey Poznyakoff authored -
* libmailutils/base/amd.c (amd_envelope_date): Remove the trailing newline from the ctime output.
Sergey Poznyakoff authored -
-
* libmailutils/base/spawnvp.c (mu_spawnvp): Use fork and _exit, unconditionally. * libmailutils/stdstream/basestr.c (mu_stdstream_setup): Borrow descriptors 0, 1, 2. * mail/mail.h (compose_env) <filename, file, ofile>: Remove. <compstr>: New member. * mail/alias.c: Use MU streams instead of stdlib. * mail/alt.c: Likewise. * mail/copy.c: Likewise. * mail/decode.c: Likewise. * mail/echo.c: Likewise. * mail/envelope.c: Likewise. * mail/eq.c: Likewise. * mail/escape.c: Likewise. * mail/followup.c: Likewise. * mail/from.c: Likewise. * mail/inc.c: Likewise. * mail/mail.c: Likewise. * mail/mailline.c: Likewise. * mail/mailvar.c: Likewise. * mail/msgset.y: Likewise. * mail/print.c: Likewise. * mail/quit.c: Likewise. * mail/reply.c: Likewise. * mail/retain.c: Likewise. * mail/send.c: Likewise. * mail/setenv.c: Likewise. * mail/shell.c: Likewise. * mail/size.c: Likewise. * mail/source.c: Likewise. * mail/summary.c: Likewise. * mail/top.c: Likewise. * mail/unset.c: Likewise. * mail/util.c: Likewise. * mail/version.c: Likewise. * mail/write.c: Likewise. * mail/z.c: Likewise.
Sergey Poznyakoff authored
-
- 10 Dec, 2010 2 commits
-
-
This is the default behavior now. The reverse can be requested by a special MU_IOCTL_FD,MU_IOCTL_FD_SET_BORROW ioctl. * include/mailutils/stream.h (MU_STREAM_FD_AUTOCLOSE): Remove. This is the default behavior now. (MU_IOCTL_FD): New ioctl. (MU_IOCTL_FD_GET_BORROW, MU_IOCTL_FD_SET_BORROW): New opcodes. * include/mailutils/sys/file_stream.h (_MU_FILE_STREAM_FD_BORROWED): New flag. * libmailutils/stream/file_stream.c (fd_close): Close the fd unless _MU_FILE_STREAM_FD_BORROWED bit is set. (fd_open): Clear the _MU_FILE_STREAM_FD_BORROWED bit. (fd_ioctl): Handle MU_IOCTL_FD. (mu_file_stream_create): Remove MU_STREAM_FD_AUTOCLOSE. * ibmailutils/base/version.c (mu_print_options): Set borrow mode on the temporary stdout stream. * libmailutils/cfg/driver.c (mu_cfg_tree_reduce): Set borrow mode on the temporary stderr stream. * libmailutils/stdstream/strerr.c (mu_stdstream_strerr_create): Set borrow mode on the stderr stream. * libmailutils/tests/tempfile.c: set borrow mode on the temporary stream, because it may be reopened later (verify mode). * examples/mta.c: Remove MU_STREAM_FD_AUTOCLOSE. * imap4d/io.c: Likewise. * libmailutils/stream/prog_stream.c: Likewise. * libmailutils/stream/socket_stream.c: Likewise. * libmailutils/stream/temp_file_stream.c: Likewise. * maidag/lmtp.c: Likewise. * pop3d/extra.c: Likewise. These will disappear when the corresponding utilities are rewritten to use MU stdstream: * mail/escape.c (quote0): set borrow mode on the output stream. * mimeview/mimeview.c (display_file): set borrow mode on the input stream. Likewise, these will disappear when MH uses MU stdstream: * mh/anno.c (main): Set borrow mode on the input stream. * mh/mh_init.c (mh_real_install): Likewise. * mh/mh_whatnow.c (_whatnow): Likewise. * mh/mhl.c (open_output): Set borrow mode on the output stream. * mh/mhn.c (mhn_show,store_handler): Likewise.
Sergey Poznyakoff authored -
* examples/mta.c: Use MU_STREAM_FD_AUTOCLOSE. * imap4d/io.c: Likewise. * libmailutils/stream/file_stream.c: Likewise. * libmailutils/stream/prog_stream.c: Likewise. * libmailutils/stream/socket_stream.c: Likewise. * libmailutils/stream/temp_file_stream.c: Likewise. * maidag/lmtp.c: Likewise. * pop3d/extra.c: Likewise. * imap4d/preauth.c: Do not use MU_STREAM_AUTOCLOSE. Instead unref the transport stream after creating the derived one. * libmailutils/base/rfc2047.c: Likewise. * libmailutils/stream/fltstream.c: Likewise. * libmailutils/tests/fltst.c: Likewise. * libmu_auth/ldap.c: Likewise. * libmu_auth/tls.c: Likewise. * libmu_sieve/extensions/vacation.c: Likewise. * libproto/pop/pop3_stream.c: Likewise. * mail/decode.c: Likewise. * mh/mhn.c: Likewise. * libmailutils/filter/filter_iconv.c: Do not handle MU_STREAM_AUTOCLOSE. * libmailutils/stream/rdcache_stream.c: Likewise. * libmailutils/stream/streamref.c: Likewise. * libmailutils/stream/xscript-stream.c: Likewise. * include/mailutils/stream.h (MU_STREAM_AUTOCLOSE): Rename to MU_STREAM_FD_AUTOCLOSE.
Sergey Poznyakoff authored
-
- 07 Dec, 2010 1 commit
-
-
Two interfaces are provided: mu_prog_stream_create offers full control over the program execution environment (i.e. running privileges, cwd, resource limits) via a set of hints. A simpler interface, mu_command_stream_create, runs the command in the current environment. mu_filter_prog_stream_create is removed, because its functionality can be achieved by a correspondingly crafted set of hints to mu_prog_stream_create. * include/mailutils/prog.h: New file. * include/mailutils/mailutils.h: Include mailutils/prog.h * include/mailutils/Makefile.am (pkginclude_HEADERS): Add prog.h * include/mailutils/stream.h (mu_prog_stream_create) (mu_filter_prog_stream_create): Remove prototypes. * include/mailutils/sys/prog_stream.h (_mu_prog_stream): Change structure. (_mu_prog_limit_codes, _mu_prog_limit_flags): New externs. * include/mailutils/util.h (mu_set_user_privileges) (mu_switch_to_privs): New prototypes. * lib/userprivs.c: Move to libmailutils/base. * lib/Makefile.am (libmuaux_a_SOURCES): Remove userprivs.c * libmailutils/base/Makefile.am (libbase_la_SOURCES): Add userprivs.c * libmailutils/base/userprivs.c (mu_set_user_privileges): New function. (mu_switch_to_privs): Rewrite as another entry point to mu_set_user_privileges. * libmailutils/stream/prog_stream.c (_mu_prog_limit_flags) (_mu_prog_limit_codes): New global variables. (start_program_filter): Use hints to control execution environment. (_prog_stream_create): Save hints. (mu_prog_stream_create): Change signature. (mu_command_stream_create): New function (corresponds to the prior mu_prog_stream_create). (mu_filter_prog_stream_create): Remove function. * comsat/action.c (action_exec): Use new mu_prog_stream_create calling convention. * examples/murun.c: Rewrite. * mh/mhn.c (show_internal): Use new mu_prog_stream_create calling convention. * mh/tests/mhn.at: Reflect changes to mhn. * imap4d/preauth.c: Use mu_command_stream_create. * libmu_sieve/extensions/pipe.c * mail/decode.c * mail/pipe.c * mail/send.c * mh/mhl.c * mu/shell.c * mail/mail.h: Include mailutils/prog.h * mh/mh.h * po/POTFILES.in: Add libmailutils/base/userprivs.c.
Sergey Poznyakoff authored
-
- 06 Dec, 2010 2 commits
-
-
The mu_stream_ioctl function gets two argument that identify the ioctl in question: "family", which identifies a family of ioctls in question, and "opcode", which indicates the requested operation within that family. * include/mailutils/stream.h: Define ioctl families and opcodes. (mu_stream_ioctl): Change signature. * include/mailutils/sys/stream.h (_mu_stream)<ctl>: Change signature. * include/mailutils/log.h (mu_severity_from_string) (mu_severity_to_string): New protos. * libmailutils/stream/stream.c (mu_stream_ioctl): Change signature. * libmailutils/filter/filter_iconv.c: Rewrite ioctl support. * libmailutils/stream/file_stream.c: Likewise. * libmailutils/stream/fltstream.c: Likewise. * libmailutils/stream/iostream.c: Likewise. * libmailutils/stream/logstream.c: Likewise. * libmailutils/stream/mapfile_stream.c: Likewise. * libmailutils/stream/memory_stream.c: Likewise. * libmailutils/stream/nullstream.c: Likewise. * libmailutils/stream/prog_stream.c: Likewise. * libmailutils/stream/rdcache_stream.c: Likewise. * libmailutils/stream/streamref.c: Likewise. * libmailutils/stream/syslogstream.c: Likewise. * libmailutils/stream/tcp.c: Likewise. * libmailutils/stream/xscript-stream.c: Likewise. * libmu_auth/tls.c: Likewise. * comsat/action.c: Change calls to mu_stream_ioctl. * imap4d/auth_gsasl.c: Likewise. * imap4d/io.c: Likewise. * imap4d/util.c: Likewise. * libmailutils/base/getpass.c: Likewise. * libmailutils/cfg/parser.y: Likewise. * libmailutils/mailbox/body.c: Likewise. * libmailutils/mime/mime.c: Likewise. * libmailutils/stdstream/dbgstream.c: Likewise. * libmailutils/stdstream/strerr.c: Likewise. * libmu_sieve/runtime.c: Likewise. * libmu_sieve/sieve.y: Likewise. * libmu_sieve/util.c: Likewise. * libproto/imap/trace.c: Likewise. * libproto/mailer/smtp_data.c: Likewise. * libproto/mailer/smtp_starttls.c: Likewise. * libproto/mailer/smtp_trace.c: Likewise. * libproto/pop/pop3_stls.c: Likewise. * libproto/pop/pop3_stream.c: Likewise. * libproto/pop/pop3_trace.c: Likewise. * maidag/lmtp.c: Likewise. * mail/source.c: Likewise. * mu/logger.c: Likewise. * pop3d/extra.c: Likewise. * pop3d/retr.c: Likewise. * TODO: Update. * doc/texinfo/nullstream.texi: Update.
Sergey Poznyakoff authored -
* include/mailutils/stream.h (MU_LOGSTREAM_ADVANCE_LOCUS_LINE) (MU_LOGSTREAM_ADVANCE_LOCUS_COL): Rename to MU_IOCTL_.*. All uses updated. (MU_IOCTL_LOGSTREAM_SUPPRESS_SEVERITY) (MU_IOCTL_LOGSTREAM_SUPPRESS_SEVERITY_NAME): New ioctls. * include/mailutils/sys/logstream.h (_mu_log_stream)<threshold>: New member. * include/mailutils/syslog.h (mu_log_severity_threshold): New extern. * libmailutils/cfg/parser.y (_cfg_default_printer): Remove leftover static function. * libmailutils/stream/logstream.c (mu_severity_from_string) (mu_severity_to_string): New functions. (_log_write): Fix double free. Implement severity suppression. (_log_ioctl): Handle MU_IOCTL_LOGSTREAM_SUPPRESS_SEVERITY. * libmu_cfg/common.c (mu_logging_param): New parameter "severity".
Sergey Poznyakoff authored
-
- 05 Dec, 2010 1 commit
-
-
The mu_debug_t object and associated functions have been removed. New debugging functions are based on the logstream interface. * include/mailutils/debug.hm4: Remove. * include/mailutils/debug.h: New file. * include/mailutils/Makefile.am (BUILT_SOURCES,EXTRA_DIST): Remove debug.h, debug.hm4. * mu-aux/debugdef.m4: Remove. * mu-aux/debcat.awk: New file. * mu-aux/Makefile.am (EXTRA_DIST): Replace debugdef.m4 with debcat.awk. * include/mailutils/sys/dbgstream.h: Remove. * include/mailutils/sys/debug.h: Remove. * include/mailutils/sys/Makefile.am (sysinclude_HEADERS): Remove debug.h and dbgstream.h, add debcat.h * include/mailutils/sys/.gitignore: Add debcat.h. * libmailutils/diag/dbgstderr.c: Remove. * libmailutils/diag/dbgsyslog.c: Remove. * libmailutils/diag/gdebug.c: Remove. * libmailutils/diag/debcat: New file. * libmailutils/diag/Makefile.am (libdiag_la_SOURCES): Remove these sources. * libmailutils/diag/debug.c: Rewrite from scratch. * libmailutils/diag/diag.c: Rewrite from scratch. * libmailutils/diag/syslog.c (mu_diag_syslog_printer): Remove function. (mu_log_syslog, mu_log_print_severity): New variables. * libmailutils/stream/dbgstream.c: Remove. * libmailutils/stream/Makefile.am (libstream_la_SOURCES): Remove dbgstream.c.. * libmailutils/stdstream/Makefile.am (libstdstream_la_SOURCES): Add dbgstream.c. * libmailutils/stream/logstream.c (_mu_severity_str): Change strings to lower case. (_log_write): Improve handling of unrecognized escapes. (_log_ctl): Handle MU_LOGSTREAM_ADVANCE_LOCUS_LINE and MU_LOGSTREAM_ADVANCE_LOCUS_COL. * libmailutils/mailbox/folder.c (mu_folder_has_debug) (mu_folder_get_debug, mu_folder_set_debug): Remove functions. * mu-aux/debcat.awk: New file. * libmailutils/stdstream/dbgstream.c: New file. * comsat/action.c: Use new debug/log functions. * comsat/comsat.c: Likewise. * examples/aclck.c: Likewise. * examples/echosrv.c: Likewise. * examples/msg-send.c: Likewise. * examples/nntpclient.c: Likewise. * examples/numaddr.c: Likewise. * frm/common.c: Likewise. * imap4d/imap4d.c: Likewise. * imap4d/io.c: Likewise. * imap4d/util.c: Likewise. * libmailutils/auth/mu_auth.c: Likewise. * libmailutils/base/amd.c: Likewise. * libmailutils/cfg/driver.c: Likewise. * libmailutils/cfg/format.c: Likewise. * libmailutils/cfg/lexer.l: Likewise. * libmailutils/cfg/parser.y: Likewise. * libmailutils/mailbox/mailbox.c: Likewise. * libmailutils/mailbox/mbx_default.c: Likewise. * libmailutils/mailer/mailer.c: Likewise. * libmailutils/mailer/progmailer.c: Likewise. * libmailutils/server/acl.c: Likewise. * libmailutils/server/ipsrv.c: Likewise. * libmailutils/server/msrv.c: Likewise. * libmailutils/tests/wicket.c: Likewise. * libmu_argp/auth.c: Likewise. * libmu_argp/cmdline.c: Likewise. * libmu_argp/common.c: Likewise. * libmu_auth/ldap.c: Likewise. * libmu_cfg/acl.c: Likewise. * libmu_cfg/auth.c: Likewise. * libmu_cfg/common.c: Likewise. * libmu_cfg/ldap.c: Likewise. * libmu_cfg/sieve.c: Likewise. * libmu_cfg/sql.c: Likewise. * libmu_scm/mu_message.c: Likewise. * libmu_sieve/prog.c: Likewise. * libmu_sieve/runtime.c: Likewise. * libproto/imap/trace.c: Likewise. * libproto/mailer/mbox.c: Likewise. * libproto/mailer/prog.c: Likewise. * libproto/mailer/sendmail.c: Likewise. * libproto/mailer/smtp.c: Likewise. * libproto/mailer/smtp_trace.c: Likewise. * libproto/mbox/folder.c: Likewise. * libproto/mbox/mbox.c: Likewise. * libproto/nntp/folder.c: Likewise. * libproto/nntp/nntp_debug.c: Likewise. * libproto/pop/mbox.c: Likewise. * libproto/pop/pop3_trace.c: Likewise. * maidag/guile.c: Likewise. * maidag/lmtp.c: Likewise. * maidag/maidag.c: Likewise. * maidag/util.c: Likewise. * mail/mail.c: Likewise. * mail/mailvar.c: Likewise. * mail/send.c: Likewise. * mail/source.c: Likewise. * mh/mh_argp.c: Likewise. * mh/send.c: Likewise. * mimeview/mimeview.c: Likewise. * movemail/movemail.c: Likewise. * mu/wicket.c: Likewise. * pop3d/extra.c: Likewise. * pop3d/pop3d.c: Likewise. * readmsg/readmsg.c: Likewise. * sieve/sieve.c: Likewise. * testsuite/mimetest.c: Likewise. * libmu_sieve/sieve-priv.h (mu_sieve_machine) <parse_error_printer> <error_printer, debug_printer, debug>: Remove. <errstream>: New member. (mu_sv_compile_error, mu_sv_print_value_list) (mu_sv_print_tag_list): Change prototypes. * libmu_sieve/actions.c: Use new sieve debug functions. * libmu_sieve/extensions/list.c: Likewise. * libmu_sieve/extensions/moderator.c: Likewise. * libmu_sieve/extensions/pipe.c: Likewise. * libmu_sieve/extensions/spamd.c: Likewise. * libmu_sieve/extensions/timestamp.c: Likewise. * libmu_sieve/extensions/vacation.c: Likewise. * libmu_sieve/sieve.y : Likewise. * libmu_sieve/sieve.l: Likewise. * libmu_sieve/tests.c: Likewise. * libmu_sieve/util.c: Rewrite diagnostic support. * /maidag/sieve.c: Use new debug/log and sieve diagnostic functions. * mu/mu.c (main): Remove call to mu_stdstream_setup. It is called by mu_app_init now. * libmailutils/base/wicket.c (mu_wicket_stream_match_url): Change signature. * libmailutils/cfg/gocs.c (mu_gocs_logging_init): Rewrite. * libmailutils/mailbox/message.c (mu_message_save_to_mailbox): Remove mu_debug_t argument. * libmailutils/stdstream/basestr.c (mu_stdstream_setup): Minor fixes. * libmailutils/stdstream/strerr.c (mu_stdstream_strerr_create): Do not install filter stream if tag is NULL. (mu_stdstream_strerr_setup): New function. * libmu_argp/muinit.c (mu_app_init): Set mu_log_tag. Call mu_stdstream_setup. * libmu_scm/mu_dbgport.c: Rewrite port support. * include/mailutils/acl.h (mu_acl_get_debug) (mu_acl_set_debug): Remove prototypes. * include/mailutils/auth.h (mu_wicket_stream_match_url): Change signature. * include/mailutils/cfg.h (mu_cfg_locus_t): Remove typedef, use struct mu_locus instead. (mu_cfg_locus): Remove declaration. (mu_cfg_node)<locus>: Change type. (mu_cfg_node)<debug>: Remove. (mu_cfg_vperror,mu_cfg_perror) (mu_cfg_parse_error,mu_cfg_format_error): Remove prototypes. (mu_cfg_callback_t): Change signature. All uses updated. (mu_cfg_get_debug): Remove prototype. (mu_cfg_assert_value_type, mu_cfg_string_value_cb): Change signature. (mu_cfg_tree_set_debug): Remove prototype. (mu_cfg_tree_create_node): Change signature. * include/mailutils/diag.h (MU_DIAG_): Redefine via MU_LOG_ constants. (mu_diag_get_debug,mu_diag_set_debug): Remove. (mu_diag_cont_vprintf, mu_diag_cont_printf) (mu_diag_at_locus): New functions. * include/mailutils/folder.h (mu_folder_has_debug) (mu_folder_get_debug, mu_folder_set_debug): Remove prototypes. * include/mailutils/gocs.h (mu_gocs_logging): Remove structure. (mu_gocs_debug)<errpfx>: Remove. * include/mailutils/guile.h (mu_scm_make_debug_port): Change prototype. * include/mailutils/mailbox.h (mu_mailbox_has_debug) (mu_mailbox_get_debug,mu_mailbox_set_debug): Remove. * include/mailutils/mailer.h (mu_mailer_get_debug) (mu_mailer_set_debug): Remove. * include/mailutils/message.h (mu_message_save_to_mailbox): Change signature. * include/mailutils/mu_auth.h (mu_auth_set_debug): Remove proto. * include/mailutils/nntp.h (mu_nntp_set_debug): Remove. * include/mailutils/progmailer.h (mu_progmailer_set_debug): Remove proto. * include/mailutils/server.h (mu_ip_server_set_debug) (mu_ip_server_get_debug): Remove proto. * include/mailutils/sieve.h (mu_sieve_locus_t): Remove. Use struct mu_locus instead. (mu_sieve_printf_t, mu_sieve_parse_error_t): Remove. (mu_sieve_action_log_t): Change signature. (mu_sieve_machine_init): Change signature. (mu_sieve_machine_init_ex): New function. (mu_sieve_get_diag_stream) (mu_sieve_set_diag_stream): New functions. (mu_sieve_set_data): New function. (mu_sieve_get_locus): Change signature. (mu_sieve_set_error,mu_sieve_set_parse_error) (mu_sieve_set_debug,mu_sieve_set_debug_object): Remove protos. * include/mailutils/stdstream.h (mu_stdstream_strerr_setup): New proto. * include/mailutils/stream.h (MU_LOGSTREAM_ADVANCE_LOCUS_LINE) (MU_LOGSTREAM_ADVANCE_LOCUS_COL): New ioctls. (mu_dbgstream_create): Change signature. * include/mailutils/sys/folder.h (_mu_folder) <debug>: Remove. * include/mailutils/sys/mailbox.h (_mu_mailbox) <debug>: Remove. * include/mailutils/sys/mailer.h (_mu_mailer) <debug>: Remove. * include/mailutils/sys/nntp.h (_mu_nntp) <debug>: Remove. * include/mailutils/syslog.h (mu_log_syslog) (mu_log_print_severity): New externs. * include/mailutils/types.hin (_mu_debug, mu_debug_t): Remove. * lib/tcpwrap.h: Remove unused prototypes. * imap4d/imap4d.h: Include mailutils/stdstream.h * mail/mail.h: Likewise. * pop3d/pop3d.h: Likewise. * mh/comp.c (main): Bugfix. * po/POTFILES.in: Update. * TODO: Update.
Sergey Poznyakoff authored
-
- 02 Dec, 2010 3 commits
-
-
* libmailutils/filter/inline-comment.c: Recognize multi-char comment sequences. Implement encode mode. * libmailutils/tests/inline-comment.at: Test the new modes. * mail/escape.c (quote0): Re-implement using inline-comment encode mode. * mail/mailvar.c (mailvar_tab): Fix a typo.
Sergey Poznyakoff authored -
* TODO: Update. * gnulib.modules: Remove strtok_r * imap4d/auth_gsasl.c (auth_gsasl_capa_init): Use mu_wordsplit instead of strtok. * imap4d/imap4d.h (strtok_r): Remove declaration. * lib/mailcap.c (mime_context) <no_ask_str>: Remove. All uses updated. (mime_context_fill): Use mu_wordsplit instead of strtok. (mime_context_write_input): Tolerate ENOSYS return from mu_stream_seek. (display_stream_mailcap): Use mu_wordsplit instead of strtok. * libmailutils/diag/gdebug.c (mu_debug_level_from_string) (mu_global_debug_from_string): Use mu_wordsplit instead of strtok. * libmu_cfg/sieve.c (_add_path): Likewise. * libmu_sieve/extensions/list.c: Likewise. * mail/escape.c (quote0): Likewise. * mail/util.c (util_header_expand): Likewise. (util_rfc2047_decode): Use mu_parse_lc_all. * mh/mh_init.c (mh_charset): Use mu_parse_lc_all. * frm/common.c (get_charset): Use mu_parse_lc_all. * libmailutils/base/lcall.c: New file. * libmailutils/base/Makefile.am (libbase_la_SOURCES): Add lcall.c * libmailutils/string/strlst.c: New file. * libmailutils/string/Makefile.am (libstring_la_SOURCES): Add strlst.c. * include/mailutils/cstr.h: Include mailutils/types.h (mu_string_split): New proto. * include/mailutils/nls.h (MU_LC_LANG, MU_LC_TERR) (MU_LC_CSET,MU_LC_MOD): New flags. (mu_lc_all): New struct. (mu_parse_lc_all, mu_lc_all_free): New protos. (mu_charset_lookup): New proto (from util.h). * include/mailutils/util.h (mu_charset_lookup): Move to nls.h * libmailutils/base/tempfile.c (mu_tempname): Shut up compiler warning.
Sergey Poznyakoff authored
- 25 Nov, 2010 1 commit
-
-
* include/mailutils/util.h (mu_make_file_name_suf): New proto. (mu_make_file_name): Replace with a macro. (MU_TEMPFILE_TMPDIR,MU_TEMPFILE_SUFFIX) (MU_TEMPFILE_MKDIR): New flags. (mu_tempfile_hints): New struct. (mu_tempfile): Change signature. * libmailutils/base/tempfile.c (mu_create_temp_file): New function. (mu_tempfile): Rewrite from scratch. Change signature. All callers changed. * libmailutils/string/mkfilename.c (mu_make_file_name): Remove. (mu_make_file_name_suf): New function. * libmailutils/stream/streamcpy.c (mu_stream_copy): Don't return EIO on EOF. * libmailutils/stream/file_stream.c (mu_fd_stream_create): If MU_STREAM_SEEK is set, position fd to 0. * guimb/collect.c: Update calls to mu_tempfile. * lib/mailcap.c: Likewise. * libmailutils/base/amd.c (_amd_tempfile): Rewrite using mu_tempfile. * libmailutils/tests/tempfile.c: New file. * libmailutils/tests/Makefile.am (noinst_PROGRAMS): Add tempfile.
Sergey Poznyakoff authored
-
- 12 Nov, 2010 1 commit
-
-
Replace 'Mirddin.farlep.net' with 'example.net' throughout the testsuite. Change expected message/part sizes accordingly. Files changed: * imap4d/testsuite/imap4d/fetch.exp * mail/testsuite/mail/folder.exp * mail/testsuite/mail/read.exp * mail/testsuite/mail/write.exp * mh/tests/scan.at * readmsg/tests/all.at * testsuite/maildir/mbox1/new/1284628225.M20118P3883Q2.Trurl * testsuite/maildir/mbox1/new/1284628225.M21284P3883Q3.Trurl * testsuite/maildir/mbox1/new/1284628225.M22502P3883Q4.Trurl * testsuite/mh/mbox1/3 * testsuite/mh/mbox1/4 * testsuite/mh/mbox1/5 * testsuite/mime.at * testsuite/spool/mbox * testsuite/spool/mbox1 * testsuite/spool/relational.mbox
Sergey Poznyakoff authored
-
- 02 Nov, 2010 1 commit
-
-
It is not needed because the --version option shows a terse info about the license, as well as a link to its full text.
Sergey Poznyakoff authored
-
- 28 Oct, 2010 1 commit
-
-
The wordsplit module (borrowed from another project of mine, called 'grecs') provides a flexible and powerful mechanism for parsing input in a way similar to posix-shell. In particular, the POSIX function wordexp is a subset of the wordsplit functionality. The argcv module is now deprecated. * include/mailutils/wordsplit.h: New file. * include/mailutils/Makefile.am (pkginclude_HEADERS): Add wordsplit.h * libmailutils/string/wordsplit.c: New file. * libmailutils/string/Makefile.am (libstring_la_SOURCES): Add wordsplit.c. * include/mailutils/argcv.h (mu_argcv_join): New proto. (mu_argcv_get, mu_argcv_get_n, mu_argcv_get_np) (mu_argcv_unquote_char, mu_argcv_quote_char) (mu_argcv_quoted_length, mu_argcv_unquote_copy) (mu_argcv_quote_copy): Mark as deprecated. * include/mailutils/mailutils.h: Include wordsplit.h. * libmailutils/tests/wsp.c: New file. * libmailutils/tests/.gitignore: List wsp. * libmailutils/tests/wordsplit.at: New file. * libmailutils/tests/Makefile.am (noinst_PROGRAMS): Add wsp (TESTSUITE_AT): Add wordsplit.at. * libmailutils/tests/argcv.c: Define MU_ARCGV_DEPRECATED to avoid deprecation warnings. * libmailutils/tests/testsuite.at: Include wordsplit.at. * libmailutils/base/argcvfree.c: New file. * libmailutils/base/argcvjoin.c: New file. * libmailutils/base/argcvrem.c: New file. * libmailutils/base/Makefile.am (libbase_la_SOURCES): Add new files. * libmailutils/base/argcv.c: Define MU_ARCGV_DEPRECATED to avoid deprecation warnings. (argcv_string, argcv_free, argv_free) (mu_argcv_remove): Rewrite in separate modules. * comsat/comsat.h: Include wordsplit.h. * imap4d/imap4d.h: Likewise. * mail/mail.h: Likewise. * mh/mh.h: Likewise. * readmsg/readmsg.h: Likewise. * comsat/action.c: Use wordsplit. * imap4d/fetch.c: Likewise. * lib/mailcap.c: Likewise. * libmailutils/auth/mu_auth.c: Likewise. * libmailutils/base/mutil.c: Likewise. * libmailutils/cfg/format.c: Likewise. * libmailutils/cfg/lexer.l: Likewise. * libmailutils/cfg/parser.y: Likewise. * libmailutils/diag/gdebug.c: Likewise. * libmailutils/mailer/mailer.c: Likewise. * libmailutils/server/acl.c: Likewise. * libmailutils/stream/prog_stream.c: Likewise. * libmailutils/tests/listop.c: Likewise. * libmailutils/url/create.c: Likewise. * libmu_auth/ldap.c: Likewise. * libmu_auth/radius.c: Likewise. * libmu_sieve/sieve.l: Likewise. * libproto/mailer/mbox.c: Likewise. * libproto/mailer/smtp.c: Likewise. * libproto/mailer/smtp_gsasl.c: Likewise. * mail/mailline.c: Likewise. * mail/mailvar.c: Likewise. * mail/send.c: Likewise. * mail/util.c: Likewise. * mh/folder.c: Likewise. * mh/mh_alias.y: Likewise. * mh/mh_argp.c: Likewise. * mh/mh_init.c: Likewise. * mh/mh_list.c: Likewise. * mh/mh_msgset.c: Likewise. * mh/mh_sequence.c: Likewise. * mh/mh_whatnow.c: Likewise. * mh/mh_sequence.c: Likewise. * mh/mh_whatnow.c: Likewise. * mh/mhn.c: Likewise. * mh/send.c: Likewise. * movemail/movemail.c: Likewise. * mu/shell.c: Likewise. * readmsg/readmsg.c: Likewise. * testsuite/smtpsend.c: Likewise. * pop3d/popauth.c: Use wordsplit. Use simplified input format (username and password delimited by any amount of whitespace). Read/produce old format if invoked with the --compatibility option. * examples/aclck.c: Use wordsplit instead of argcv. * examples/header.c: Likewise. * examples/mta.c: Likewise. * examples/.gitignore: Remove pop3client. * examples/Makefile.am: Remove pop3client. * po/POTFILES.in: Add new files.
Sergey Poznyakoff authored
-
- 27 Oct, 2010 1 commit
-
-
*gnulib.modules (snprintf, vasprintf): Remove. *sieve/tests/reject.at: Use AT_PACKAGE_VERSION instead of the hardcoded version number. *lib/mu_asprintf.h: Remove. * imap4d/auth_gss.c: Replace asprintf with mu_asprintf and vasprintf by mu_vasnprintf. * guimb/guimb.h: Likewise. * imap4d/imap4d.h: Likewise. * imap4d/unsubscribe.c: Likewise. * lib/Makefile.am * lib/mailcap.c: Likewise. * libmu_argp/muinit.c: Likewise. * maidag/deliver.c: Likewise. * maidag/maidag.h: Likewise. * mail/escape.c: Likewise. * mail/mail.c: Likewise. * mail/mail.h: Likewise. * mail/util.c: Likewise. * mail/write.c: Likewise. * mh/burst.c: Likewise. * mh/forw.c: Likewise. * mh/mh.h: Likewise. * mh/mh_alias.l: Likewise. * mh/mh_format.c: Likewise. * mh/mh_getopt.c: Likewise. * mh/mh_init.c: Likewise. * mh/mh_msgset.c: Likewise. * mh/mh_sequence.c: Likewise. * mh/mh_whatnow.c: Likewise. * mh/mhn.c: Likewise. * mh/send.c: Likewise. * mimeview/mimetypes.l: Likewise. * mimeview/mimetypes.y: Likewise. * mimeview/mimeview.c: Likewise. * movemail/movemail.c: Likewise. * mu/ldflags.c: Likewise. * pop3d/expire.c: Likewise. * pop3d/pop3d.h: Likewise. * sieve/sieve.c: Likewise.
Sergey Poznyakoff authored
-
- 10 Oct, 2010 1 commit
-
-
* 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
-
- 09 Oct, 2010 1 commit
-
-
- 08 Oct, 2010 1 commit
-
-
* 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
-
- 03 Oct, 2010 1 commit
-
-
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
-
- 25 Sep, 2010 1 commit
-
-
* 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
-
- 21 Sep, 2010 1 commit
-
-
* 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
-
- 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
-
- 14 Sep, 2010 1 commit
-
-
* configure.ac: Add readmsg/tests/ * readmsg/Makefile.am: New file. * readmsg/tests/.gitignore: New file. * readmsg/tests/Makefile.am: New file. * readmsg/tests/all.at: New file. * readmsg/tests/atlocal.in: New file. * readmsg/tests/hdr.at: New file. * readmsg/tests/nohdr.at: New file. * readmsg/tests/testsuite.at: New file. * readmsg/tests/twomsg.at: New file. * readmsg/tests/weed.at: New file. * readmsg/testsuite: Remove. * testsuite/testsuite.inc (AT_SKIP_TEST): New macro. * testsuite/spool/mbox1: Remove trailing whitespace after Received headers. * imap4d/testsuite/imap4d/fetch.exp: Reflece changes in mbox1. * mail/testsuite/mail/read.exp: Likewise. * mail/testsuite/mail/write.exp: Likewise. * mailbox/testsuite/Mime: Likewise.
Sergey Poznyakoff authored
-
- 13 Sep, 2010 1 commit
-
-
* include/mailutils/sys/stream.h (_MU_STR_EVENT_SET): Rename to _MU_STR_EVENT_SET. (_MU_STR_EVENT_CLR): Rename to _MU_STR_EVENT_CLRFLAG. (_MU_STR_EVENT_FILLBUF, _MU_STR_EVENT_FLUSHBUF): New event codes. (_MU_STR_EVMASK): New macro. (_mu_stream) <cur>: Replace with pos, indicating current position in the buffer. (event_cb): Change signature. (mu_stream_read_unbuffered): Remove. (mu_stream_write_unbuffered): Remove. * mailbox/iostream.c (mu_iostream_create): Provide the readdelim method only if the underlying input transpor stream provides it. * mailbox/streamref.c (mu_streamref_create_abridged): Likewise. * mailbox/stream.c (_stream_event): New macro. (mu_stream_read_unbuffered): Rename to static _stream_read_unbuffered. (mu_stream_write_unbuffered): Rename to static _stream_write_unbuffered. (_stream_advance_buffer, _stream_buffer_offset) (_stream_orig_level): Remove macros. (_stream_buffer_freespace): Rewrite. (_stream_curp): New macro. (_stream_fill_buffer): Make sure the `offset' indicates the offset int the transport, corresponding to the beginning of the current buffer. (_stream_flush_buffer): Essentially rewritten. (mu_stream_seek): Reflect changes to the _mu_stream structure. Optimize calls to the seek method. (_stream_skip_input_bytes): Likewise. (mu_stream_read, _stream_scandelim, mu_stream_write): Rewrite using new _mu_stream structure. * mailbox/xscript-stream.c: Rewrite using stream events. * mailbox/base64.c (_base64_encoder): Bugfix. * libproto/pop/pop3_stream.c (_pop3_event_cb): Update signature to match the changes above. * examples/mimetest.c (main): Add more error checking. * mail/testsuite/mail/write.exp: Minor fix.
Sergey Poznyakoff authored
-
- 09 Sep, 2010 2 commits
-
-
-
New ioctls MU_IOCTL_GET_TRANSPORT_BUFFER and MU_IOCTL_SET_TRANSPORT_BUFFER return and modify bufferization mode in the lowest level transport stream. Both server and client programs use this to switch to full buffering before sending large amounts of data. This has a particular impact on the output speed and CPU usage when TLS is in use. * include/mailutils/stream.h (MU_IOCTL_GET_TRANSPORT_BUFFER) (MU_IOCTL_SET_TRANSPORT_BUFFER): New ioctls. (MU_TRANSPORT_INPUT, MU_TRANSPORT_OUTPUT): New constants. (MU_TRANSPORT_VALID_TYPE): New macro. (mu_buffer_query): New struct. (mu_stream_get_buffer): New proto. * libmu_auth/tls.c (_tls_io_ioctl): Return ENOSYS if op is not supported. (_tls_ioctl): Support MU_IOCTL_[GS]ET_TRANSPORT_BUFFER. * mailbox/file_stream.c (fd_ioctl): Support MU_IOCTL_[GS]ET_TRANSPORT_BUFFER. Return ENOSYS if op is not supported. * mailbox/filter_iconv.c (_icvt_ioctl): Likewise. * mailbox/iostream.c (_iostream_ctl): Likewise. * mailbox/mapfile_stream.c (_mapfile_ioctl): Likewise. * mailbox/memory_stream.c (_memory_ioctl): Likewise. * mailbox/rdcache_stream.c (rdcache_ioctl): Likewise. * mailbox/xscript-stream.c (_xscript_ctl): Likewise. * mailbox/prog_stream.c (_prog_ioctl): Return ENOSYS if op is not supported. * mailbox/tcp.c (_tcp_ioctl): Likewise. * mailbox/stream.c (mu_stream_default_buffer_size): New global. (mu_stream_seek): Do not call seek method if the requested offset is the same as the current one. (mu_stream_set_buffer): Size==0 means use the default value. (mu_stream_get_buffer): New function. (mu_stream_truncate): Flush the buffer before truncating. * mailbox/mime.c (mime_reset_state): New function. (_mime_body_stream_seek): Rewrite using mime_reset_state. (_mime_body_stream_ioctl): Return ENOSYS if op is not supported. (create_mime_body_stream): Reset mime state (_mime_body_stream_seek may not be called due to the optimization in mu_stream_seek. * mailbox/header.c (header_parse): Exit correctly if the buffer is not terminated with a \n. * libproto/mbox/mbox.c (mbox_open): Enforce full buffering on the mailbox stream. * libproto/pop/mbox.c (pop_header_fill): Minor fix. * libproto/pop/pop3_stream.c (_POP3F_DONE) (_POP3F_CHBUF): New constants. (mu_pop3_stream)<done>: Remove. Replaced with flags. <oldbuf>: New member. (_pop3_event_cb): If _POP3F_CHBUF flag is set, restore the initial buffering mode on the transport stream. (mu_pop3_filter_create): Save away current buffering mode and enforce full buffering while transferring bulk data. * mail/from.c (hdr_from): Check return value from mu_message_get_header. * mail/mail.c (main): Allow for MAILRC having empty value. Always close the mailbox before exiting. * pop3d/pop3d.c (pop3d_cfg_param): New statement output-buffer-size. * pop3d/pop3d.h (pop3d_output_bufsize): New global. * pop3d/retr.c (pop3d_send_payload): New function. (pop3d_retr): Rewrite using pop3d_send_payload. Save away current buffering mode and enforce full buffering while transferring bulk data. * pop3d/top.c (pop3d_top_: Likewise.
Sergey Poznyakoff authored
-
- 08 Sep, 2010 6 commits
-
-
* mailbox/msgscan.c: New file. * mailbox/Makefile.am (libmailutils_la_SOURCES): Add it. * include/mailutils/body.h (mu_body_set_get_stream): New prototype. * include/mailutils/message.h (MU_SCAN_SEEK, MU_SCAN_SIZE): New defines. (mu_message_scan): New structure. (mu_stream_scan_message): New prototype. (mu_message_set_get_stream): New prototype. * include/mailutils/stream.h (mu_stream_copy): Change signature: takes 4 arguments now. * include/mailutils/sys/body.h (_mu_body) <_get_stream>: New method. * include/mailutils/sys/message.h (_mu_message) <_get_stream>: New method. * mailbox/body.c (_body_get_stream): Call _get_stream, if provided. * mailbox/message.c (_message_get_stream): Call _get_stream, if provided. * mailbox/stream.c (_stream_flush_buffer): Avoid infinite recursion: call stream->seek directly. * mailbox/streamcpy.c (mu_stream_copy): Return the number of bytes actually copied in the fourth argument. All uses updated. * mailbox/streamref.c (streamref_return): Do not propagate internal flags. (_streamref_readdelim): Ensure there is enough buffer space for the mu_stream_readdelim call. * libproto/pop/mbox.c: Finish client implementation. * mail/print.c (mail_print_msg): Close pager before returning on error.
Sergey Poznyakoff authored -
If a stream takes another stream(s) as a transport, it always increases its reference count. This means that when that stream is destroyed the underlying stream is not destroyed by default (its refcount is decreased, that's all). To force destruction of the underlying stream, the caller must explicitly unreference it after creating the stream that uses it (or give its creation function the MU_STREAM_AUTOCLOSE flag, if it supports flags). Similarly, if a stream uses a non-stream object (e.g. a file descriptor) as the transport, it will not destroy it, unless it has been created with the MU_STREAM_AUTOCLOSE flag. This differs from the previous behavior. The MU_STREAM_NO_CHECK and MU_STREAM_NO_CLOSE flags are removed. * examples/base64.c (main): Call mu_filter_create with the MU_STREAM_AUTOCLOSE flag. * examples/mimetest.c (message_display_parts): Likewise. * examples/murun.c (main): Unref the input stream after passing it to mu_filter_prog_stream_create. * imap4d/fetch.c (fetch_io): Update arguments to mu_filter_create and mu_memory_stream_create. * imap4d/preauth.c (decode64_buf) (do_preauth_ident): Update arguments to mu_memory_stream_create and mu_tcp_stream_create. * imap4d/util.c (util_setio): Update arguments to mu_filter_create and mu_stdio_stream_create. * include/mailutils/stream.h (MU_STREAM_NO_CLOSE) (MU_STREAM_NO_CHECK): Remove. (MU_STREAM_AUTOCLOSE): New flag. (mu_iostream_create): Remove the `flags' argument. * libmu_argp/muinit.c (mu_app_init): Update arguments to mu_stdio_stream_create. * libmu_auth/ldap.c: Update arguments to mu_memory_stream_create and mu_filter_create. * libmu_auth/tls.c (_tls_io_close, _tls_close): Always try to close the transport stream. Rely on refcount to protect it. (_tls_io_done, _tls_done): Likewise, always unreference it. (_mu_tls_io_stream_create): Increase reference counter on the transport stream, unless MU_STREAM_AUTOCLOSE is requested. (_mu_tls_stream_create): Rewrite using the new MU_STREAM_AUTOCLOSE logic. * libmu_sieve/extensions/spamd.c (spamd_connect_tcp): Update arguments to mu_tcp_stream_create. (spamd_connect_tcp): Update arguments to mu_socket_stream_create and mu_filter_create. * libmu_sieve/extensions/vacation.c (build_mime): Update arguments to mu_filter_create. * mail/decode.c (display_submessage): Update arguments to mu_filter_create. * mailbox/attachment.c (mu_message_save_attachment): Update arguments to mu_filter_create. * mailbox/cfg_driver.c (mu_cfg_tree_reduce): Update arguments to mu_stdio_stream_create. * mailbox/dbgstream.c (_dbg_done): Use MU_STREAM_AUTOCLOSE bit to decide whether to destroy the debug object. (mu_dbgstream_create): Use MU_STREAM_AUTOCLOSE instead of MU_STREAM_NO_CLOSE. * mailbox/file_stream.c (fd_close): Use MU_STREAM_AUTOCLOSE bit to decide whether to close the descriptor. (mu_file_stream_create): Force MU_STREAM_AUTOCLOSE bit. * mailbox/filter.c (filter_create_rd, filter_create_wr): Change substream creation logic. * mailbox/filter_iconv.c (_icvt_close): Always try to close the transport stream. Rely on refcount to protect it. (_icvt_done): Ditto for destroying it. (mu_filter_iconv_create): Increase refcount on the transport stream, unless MU_STREAM_AUTOCLOSE is requested. * mailbox/fltstream.c (filter_done): Always dereference the transport stream. Rely on refcount to protect it. (filter_close): Ditto for closing it. (mu_filter_stream_create): Increase refcount on the transport stream, unless MU_STREAM_AUTOCLOSE is requested. * mailbox/iostream.c (_iostream_close) : Always try to close the transport stream. Rely on refcount to protect it. (_iostream_done): Ditto for closing it. (mu_iostream_create): Remove the use of MU_STREAM_NO_CLOSE. * mailbox/mimehdr.c (mu_mimehdr_decode_param): Remove the use of MU_STREAM_NO_CLOSE. * mailbox/mutil.c (mu_decode_filter) Change substream creation logic. * mailbox/prog_stream.c (_prog_open): Use MU_STREAM_AUTOCLOSE bit in arguments to mu_stdio_stream_create. (mu_filter_prog_stream_create): Increase refcount on the transport (input) stream. * mailbox/rfc2047.c (mu_rfc2047_decode): Dereference in_stream after passing it to mu_decode_filter. Pass MU_STREAM_AUTOCLOSE in flags to mu_filter_create. * mailbox/socket_stream.c (mu_socket_stream_create): Force MU_STREAM_AUTOCLOSE bit. * mailbox/streamref.c (_streamref_close): Always close the transport stream (refcount will protect it, if necessary). (mu_streamref_create_abridged): Mask out the MU_STREAM_AUTOCLOSE bit. * mailbox/temp_file_stream.c (mu_temp_file_stream_create: Force MU_STREAM_AUTOCLOSE bit. * mailbox/xscript-stream.c (_xscript_close): Always close the transport stream (refcount will protect it, if necessary). (mu_xscript_stream_create): Increase refcounts on both underlying streams, unless MU_STREAM_AUTOCLOSE is set. * pop3d/extra.c (pop3d_setio): Remove uses of MU_STREAM_NO_CLOSE. * examples/nntpclient.c: Remove uses of MU_STREAM_NO_CHECK/MU_STREAM_NO_CLOSE. * examples/pop3client.c: Likewise. * libmu_auth/gsasl.c: Likewise. * libproto/nntp/nntp_stream.c: Likewise. * libproto/pop/pop3_stream.c: Likewise. * mailbox/tcp.c: Likewise. * mailbox/vartab.c: Likewise. * mh/mh_list.c: Likewise. * mimeview/mimeview.c: Likewise. * mh/mhn.c: Likewise. (edit_mime): Use MU_STREAM_AUTOCLOSE. Bugfixes: * mailbox/fltstream.c (init_iobuf): Fix input initialization. (filter_write_internal): Bugfix. * mailbox/stream.c (_stream_buffer_freespace): New macro. (_stream_buffer_is_full): New macro. (BUFFER_FULL_P): Remove, use _stream_buffer_is_full instead. All callers updated. (_stream_flush_buffer): Operation for full buffered streams does not depend on the `all' flag. (mu_stream_write): Fix calculation of the bytes available in the buffer.
Sergey Poznyakoff authored -
* include/mailutils/libargp.h (mu_program_version_hook): New proto. * libmu_argp/Makefile.am (libmu_argp_a_SOURCES): Remove mu_argp.h. * libmu_argp/mu_argp.h: Remove. * libmu_argp/muinit.c [MU_ALPHA_RELEASE]: Include git-describe.h (mu_program_version_hook): New function. (mu_argp_init): Set mu_program_version_hook, unless vers is given. * comsat/comsat.c (main): Call mu_argp_init with NULL arguments. * config/mailutils-config.c: Likewise. * dotlock/dotlock.c: Likewise. * examples/muauth.c: Likewise. * frm/frm.c: Likewise. * frm/from.c: Likewise. * guimb/main.c: Likewise. * imap4d/imap4d.c: Likewise. * maidag/maidag.c: Likewise. * mail/mail.c: Likewise. * messages/messages.c: Likewise. * mimeview/mimeview.c: Likewise. * movemail/movemail.c: Likewise. * pop3d/pop3d.c: Likewise. * pop3d/popauth.c: Likewise. * readmsg/readmsg.c: Likewise. * sieve/sieve.c: Likewise.
Sergey Poznyakoff authored -
* .gitignore: Add git-describe and git-describe.h. * Makefile.am (MU_COND_LIBMU_CPP): Replaced with MU_COND_SUPPORT_CXX (SUBDIRS): Begin with . (EXTRA_DIST, BUILT_SOURCES): Add git-describe and git-describe.h. (git-describe, git-describe.h): New rules. (alpha, alphacheck): Use git-describe to produce additional suffix. * enable.m4 (MU_ENABLE_SUPPORT): Create an Automake condition. * configure.ac: Fix MU_ENABLE_SUPPORT calls. (--without-python): Replace with --disable-python. * examples/Makefile.am: Disable components based on MU_COND conditions. * libproto/Makefile.am: Likewise. * include/mailutils/Makefile.am (MU_COND_LIBMU_CPP): Replace with MU_COND_SUPPORT_CXX. * mailbox/nullrec.c: New file. * mailbox/Makefile.am (libmailutils_la_SOURCES): Add nullrec.c. * mail/decode.c: Remove unused variable. * mailbox/streamref.c: Likewise.
Sergey Poznyakoff authored -
The `mail' and `frm' utilities pass tests. * include/mailutils/stream.h (mu_stream_err): New proto. * libproto/mbox/mbox.c (_msg_stream_setup) (_msg_body_setup): Fix stream abridgement. (mbox_envelope_date, mbox_envelope_sender): Fix seek position. (uid_to_stream): Fix invocation of mu_stream_printf. (append_message_to_stream): Likewise. (mbox_expunge_unlocked): Rewind tempstr before copying its contents back to the mailbox. (mbox_expunge0): Open tempstr. * libproto/mbox/mbox0.h (_mbox_message)<header_from>: Rename to envel_from. <header_from_end>: Rename to envel_from_end. All uses changed. * libproto/mbox/mboxscan.c: Minor changes. * mail/decode.c: Use streamrefs. * mail/escape.c: Likewise. * mail/msgset.y: Likewise. * mail/pipe.c: Likewise. * mail/print.c: Likewise. * mail/top.c: Likewise. * mail/write.c: Likewise. * mail/send.c: Use streamrefs. (mail_send0): Reset env->header after assigning it to the message. * mailbox/body.c (_body_seek): Fix a typo which produced a recursive call. * mailbox/file_stream.c (fd_truncate): New function. (_mu_file_stream_create): Initialize str->stream.truncate. * mailbox/header.c (header_parse): Fix parsing of blurbs lacking terminating empty line. (header_seek): Fix boundary checks. Return new position in presult. * mailbox/message.c (string_find_eoh): Rewrite to handle \n\n split between two successive invocations. (_header_fill): Update the invocation of string_find_eoh. * mailbox/stream.c (mu_stream_destroy): Call mu_stream_close. (mu_stream_get_flags, mu_stream_set_flags) (mu_stream_clr_flags): Ignore internal bits. (mu_stream_err): New function. (mu_stream_close): Close the stream only if it is not used by anyone else. * mailbox/streamref.c (_streamref_read): Clear transport error if ESPIPE is returned. (_streamref_size): Take into account sp->end and sp->start. (mu_streamref_create_abridged): Set pointer to 0.
Sergey Poznyakoff authored -
Does not compile yet. New files: * mailbox/streamref.c * include/mailutils/sys/streamref.h * include/mailutils/sys/file_stream.h * include/mailutils/sys/header_stream.h * include/mailutils/sys/mapfile_stream.h * include/mailutils/sys/memory_stream.h * include/mailutils/sys/message_stream.h * include/mailutils/sys/prog_stream.h * include/mailutils/sys/socket_stream.h * include/mailutils/sys/stdio_stream.h * include/mailutils/sys/stream.h * include/mailutils/sys/streamtrans.h * mailbox/prog_stream.c * mailbox/stdio_stream.c * mailbox/stream_printf.c * mailbox/stream_vprintf.c * mailbox/temp_file_stream.c * mailbox/streamcpy.c * mailbox/binflt.c * mailbox/crlfflt.c * mailbox/fltstream.c * mailbox/qpflt.c * mailbox/linelenflt.c Removed files: * mailbox/filter_rfc822.c * mailbox/filter_trans.c Moved files (with edits): * libproto/include/filter0.h -> include/mailutils/sys/filter.h * libproto/include/header0.h -> include/mailutils/sys/header.h * libproto/include/message0.h -> include/mailutils/sys/message.h * libproto/include/mime0.h -> include/mailutils/sys/mime.h Modified files: * comsat/action.c * config/mailutils-config.c * examples/base64.c * examples/cpp/msg-send.cc * examples/header.c * examples/http.c * examples/iconv.c * examples/mimetest.c * examples/msg-send.c * examples/mta.c * examples/murun.c * examples/nntpclient.c * examples/pop3client.c * imap4d/append.c * imap4d/auth_gsasl.c * imap4d/fetch.c * imap4d/preauth.c * imap4d/search.c * imap4d/util.c * include/mailutils/body.h * include/mailutils/folder.h * include/mailutils/header.h * include/mailutils/mailbox.h * include/mailutils/mailer.h * include/mailutils/mailutils.h * include/mailutils/message.h * include/mailutils/stream.h * include/mailutils/sys/Makefile.am * include/mailutils/sys/filter.h * include/mailutils/sys/header.h * include/mailutils/sys/message.h * include/mailutils/sys/mime.h * include/mailutils/sys/nntp.h * include/mailutils/sys/pop3.h * include/mailutils/sys/stream.h * include/mailutils/types.hin * lib/mailcap.c * lib/mu_dbm.h * libmu_argp/muinit.c * libmu_auth/ldap.c * libmu_auth/tls.c * libmu_scm/Makefile.am * libmu_scm/mu_body.c * libmu_scm/mu_message.c * libmu_scm/mu_port.c * libmu_sieve/actions.c * libmu_sieve/extensions/pipe.c * libmu_sieve/extensions/spamd.c * libmu_sieve/extensions/vacation.c * libproto/mailer/smtp.c * libproto/mbox/mboxscan.c * libproto/mbox/mbox.c * libproto/mbox/mbox0.h * libproto/nntp/nntp_article.c * libproto/nntp/nntp_carrier.c * libproto/nntp/nntp_destroy.c * libproto/nntp/nntp_ihave.c * libproto/nntp/nntp_post.c * libproto/nntp/nntp_readline.c * libproto/nntp/nntp_sendline.c * libproto/pop/pop3_carrier.c * libproto/pop/pop3_destroy.c * libproto/pop/pop3_readline.c * libproto/pop/pop3_sendline.c * libproto/pop/pop3_stat.c * maidag/mailtmp.c * mail/decode.c * mail/escape.c * mail/msgset.y * mail/pipe.c * mail/print.c * mail/send.c * mail/top.c * mail/util.c * mail/write.c * mailbox/Makefile.am * mailbox/amd.c * mailbox/attachment.c * mailbox/body.c * mailbox/cfg_driver.c * mailbox/cfg_format.c * mailbox/debug.c * mailbox/file_stream.c * mailbox/folder.c * mailbox/hdritr.c * mailbox/header.c * mailbox/mailbox.c * mailbox/mailcap.c * mailbox/mailer.c * mailbox/mapfile_stream.c * mailbox/memory_stream.c * mailbox/message.c * mailbox/message_stream.c * mailbox/mime.c * mailbox/mimehdr.c * mailbox/mutil.c * mailbox/prog_stream.c * mailbox/progmailer.c * mailbox/rfc2047.c * mailbox/socket_stream.c * mailbox/stream.c * mailbox/stream_vprintf.c * mailbox/tcp.c * mailbox/vartab.c * mailbox/wicket.c * mh/burst.c * mh/comp.c * mh/compcommon.c * mh/forw.c * mh/mh_ctx.c * mh/mh_format.c * mh/mh_init.c * mh/mh_list.c * mh/mh_whatnow.c * mh/mhl.c * mh/mhn.c * mh/pick.y * mh/repl.c * mimeview/mimeview.c * mu-aux/generr.awk * pop3d/extra.c * pop3d/pop3d.h * pop3d/retr.c * pop3d/top.c * readmsg/msglist.c * readmsg/readmsg.c * sieve/sieve.c
Sergey Poznyakoff authored
-
- 14 Apr, 2010 1 commit
-
-
* mailbox/filter.c (filter_destroy): Destroy the underlying stream, unless flag is given. (mu_filter_create): Treat last argument as stream flags. * mailbox/filter_iconv.c (_icvt_destroy): Free the icvt_stream structure. * examples/mimetest.c (message_display_parts): Pass MU_STREAM_NO_CLOSE to the invocation of mu_filter_create. * mail/decode.c (display_submessage): Likewise. * mailbox/attachment.c (mu_message_save_attachment): Likewise. * mh/mh_list.c (eval_body): Likewise. * mh/mhn.c (mhn_message_size, show_internal): Likewise. (finish_text_msg): Likewise; call mu_stream_destroy * imap4d/preauth.c (decode64_buf): remove unnecessary call to mu_stream_destroy. * libmu_auth/ldap.c (chk_md5, chk_smd5) (chk_sha, chk_ssha): Likewise. * mailbox/mutil.c: Fix indentation.
Sergey Poznyakoff authored
-
- 20 Feb, 2010 1 commit
-
-
* include/mailutils/iterator.h (mu_itrctl_delete_nd) (mu_itrctl_replace_nd): New mu_itrctl_req constants. * include/mailutils/list.h (mu_list_remove_nd) (mu_list_replace_nd): New prototypes. (mu_list_destroy_item_t): New typedef. (mu_list_set_destroy_item): Return mu_list_destroy_item_t. * mailbox/list.c (DESTROY_ITEM): New macro. (mu_list_destroy): Use DESTROY_ITEM. (mu_list_remove, mu_list_replace): Actually destroy the item being removed. (mu_list_remove_nd, mu_list_replace_nd): New functions. (mu_list_set_destroy_item): Return previous value of destroy_item. (list_itrctl): Handle mu_itrctl_delete_nd and mu_itrctl_replace_nd. * mailbox/observer.c (mu_observable_create): Register destroy_item function. (mu_observable_destroy): Remove explicit loop. Rely on destroy_item instead. (mu_observable_detach): Use mu_iterator_ctl to actually remove the event. * mh/mh_alias.y (_insert_list): Remove. (alias_expand_list): Use mu_iterator_ctl to insert replacement list and remove the current item. * mh/sortm.c (addop): Register destroy_item function. (remop): Remove call to free. * movemail/movemail.c (main): <uidl loop>: Use mu_itrctl_delete to remove items. * libmu_sieve/util.c: Minor change. * mail/util.c (util_slist_compare): New static function. (util_slist_add): Register destroy_item and comparison functions for the new list. (util_slist_remove,util_slist_destroy): Rewrite. * imap4d/authenticate.c (auth_add): Use mu_list_free_item as destroy_item function. * imap4d/util.c (util_register_event): Likewise. * include/mailutils/cpp/list.h (List)<set_destroy_item>: Change return value. * libmu_cpp/list.cc (List::set_destroy_item): Reflect changes to mu_list_set_destroy_item. * libmu_argp/common.c: Include stdlib.h
Sergey Poznyakoff authored
-
- 17 Feb, 2010 1 commit
-
-
* mail/send.c (mail_send0): Pipe message to the program if the value of sendmail variable begins with a slash. Otherwise, issue meaningful error messages if the mailer cannot be created or opened.
Sergey Poznyakoff authored
-