aboutsummaryrefslogtreecommitdiff
path: root/ChangeLog.svn
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2009-03-13 22:21:31 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2009-03-13 22:22:35 +0200
commit3967a43e61c59cdcbc7c71346b4b849c09d63773 (patch)
tree766741f2091795f1a89c41ca502c550c23eb3437 /ChangeLog.svn
parentd0dc3b3c972d9a0aadeb58b5833c4a53678af1be (diff)
downloadmailfromd-3967a43e61c59cdcbc7c71346b4b849c09d63773.tar.gz
mailfromd-3967a43e61c59cdcbc7c71346b4b849c09d63773.tar.bz2
Finish migration to Git.
* Makefile.am (dist-hook): Create ChangeLog. (ChangeLog): New rule. * NEWS, README-alpha, README-hacking: Update * gnulib.modules: Add gitlog-to-changelog * ChangeLog: Rename to ChangeLog.svn * tests/hasmx.at, tests/hostname.at, tests/ismx.at, tests/poll.at, tests/poll01.at, tests/poll02.at, tests/poll03.at, tests/rescname.at, tests/resolve.at, tests/testsuite.at: Skip tests if the network is down.
Diffstat (limited to 'ChangeLog.svn')
-rw-r--r--ChangeLog.svn5486
1 files changed, 5486 insertions, 0 deletions
diff --git a/ChangeLog.svn b/ChangeLog.svn
new file mode 100644
index 00000000..dc3fc370
--- /dev/null
+++ b/ChangeLog.svn
@@ -0,0 +1,5486 @@
+2009-03-12 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Fix the current_message function and subprocess handling in mtasim.
+
+ * mtasim/mtasim.c (stop_mailfromd): Wait for the mailfromd child
+ to terminate and analyze its return status.
+
+ * mfd/bi_msg.m4 (bi_drop_current_message): New function.
+ * mfd/prog.c (env_capture_start): Call bi_drop_current_message if
+ the capture stream already exists (i.e. when starting processing
+ 2nd or later message in a session).
+ * mfd/msg.h (bi_drop_current_message): New prototype.
+ * gacopyz/server.c (srv_connect): Retry attempts to connect
+ if they fail with ECONNREFUSED. Implement 5-second timeout.
+
+ * tests/testsuite.at (MAILFROMD_OPTIONS): New define.
+ (AT_MTA_TEST): Pass MAILFROMD_OPTIONS to mtasim invocation.
+ (AT_WITH_MAILFROMD_OPTIONS): New macro.
+ Include curmsg.at.
+ * tests/curmsg.at: New file
+ * tests/etc/Makefile.am (RCFILES): Add size.rc
+ * tests/etc/size.rc: New file
+
+2009-03-10 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * mfd/prog.c (env_capture_start): Do not create the stream if it
+ already exists. Bug reported by Con Tassios.
+ * mfd/bi_sieve.m4 (sieve): Don't free unexistend Sieve machines.
+ * THANKS: Update
+ * NEWS: Update
+
+2009-02-20 Sergey Poznyakoff <gray@mirddin.farlep.net>
+
+ * mfd/bi_io.m4 (write): Fix spurious runtime exceptions, raised if
+ the third argument was not given.
+
+2009-02-20 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * mfd/engine.c (concat_args): Do not print debugging info, it is
+ done by the caller.
+ (mlfi_envfrom, mlfi_envrcpt): Include argv[0] in the debugging
+ info. This complements the yesterday's change.
+
+2009-02-19 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * mfd/engine.c (mlfi_envfrom, mlfi_envrcpt): Fix second argument,
+ so that it does not include $1.
+ * THANKS: Update.
+ * mflib/sa.mf (sa_format_report_header): Improve formatting.
+
+2009-02-18 Sergey Poznyakoff <gray@mirddin.farlep.net>
+
+ * mfd/gram.y (state_parms): Fix number of arguments to
+ envfrom and envrcpt. Bug reported by Patrick Dalais
+ <patrick AT depari.co.za>.
+
+ * tests/fromargs.at, tests/rcptargs.at: New tests.
+ * tests/testsuite.at, tests/Makefile.am: Add new tests.
+ * tests/etc/ack.rc: Increase stack allocation.
+
+2008-12-26 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Version 5.0
+
+ * configure.ac, NEWS: Version 5.0.
+ * doc/mailfromd.texi, doc/pies.texi, doc/pmult.texi: Update.
+ * doc/Makefile.am (check-builtins): Account for
+ MF_DEFUN_VARARGS_NO_PROM.
+
+2008-12-16 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Fix sprintf, accidentally broken on 2008-07-14.
+
+ * mfd/symtab.c (va_builtin_install): Initialize flags to 0.
+ (va_builtin_install_ex): Remove capture and varargs, replace them
+ with flags.
+ * mfd/snarf.m4 (__mf_defun,MF_DEFUN_VARARGS): Reflect changes to
+ va_builtin_install_ex.
+ (MF_DEFUN_VARARGS_NO_PROM): New defun.
+ * mfd/gram.y (cast_arg_list): Add 4th argument, controlling
+ argument type promotion.
+ * mfd/drivers.c (code_type_builtin): Use builtin.flags.
+ * mfd/mailfromd.h (MFD_BUILTIN_*): New defines.
+ (struct builtin): Remove capture and varargs, replace them
+ with flags.
+ * mfd/bi_sprintf.m4: Define sprintf as MF_DEFUN_VARARGS_NO_PROM.
+
+2008-12-01 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Documentation and minor fixes.
+
+ * pies/pies.c, pies/progman.c, pies/meta1gram.y, pies/pies.h,
+ pies/meta1lex.l: Normalize output redirection terminology, fix the
+ debug levels.
+ * pmult/pmult.c: Fix error message
+ * doc/pies.texi: Document the configuration.
+
+2008-11-28 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * mfd/engine.c, mfd/gram.y, mfd/mailfromd.h, mfd/prog.c,
+ mfd/prog.h, gacopyz/gacopyz.h, gacopyz/context.c,
+ gacopyz/gacopyz.c: Add const qualifiers to gacopyz_getsymval,
+ gacopyz_replace_body and derived functions.
+
+ Emulate Sendmail behavior for SMFIR_REPLBODY.
+
+ * pmult/pmult.c (struct pmult_priv_data): New members hdrbuf and
+ body_itr. Remove body_off.
+ (pmult_append_body_chunk): Set bucket size to PMILTER_CHUNK_SIZE.
+ (pmult_clear): Free new pmult_priv_data members.
+ (pmult_free): Call pmult_clear first.
+ (pmult_eom): Initialize pmult_priv_data members for eventual body
+ replacement.
+ (pmult_msg_rplc): First send headers, then body.
+
+2008-11-25 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Initial implementation of body replacement.
+
+ * mfd/engine.c (run_msgmod): Handle body_repl
+ * mfd/gram.y (msgmod_opcode_str): Likewise.
+ * mfd/mailfromd.h (enum msgmod_opcode): New constant body_repl.
+ * mfd/bi_body.m4 (replbody): New function (proof-of-concept).
+
+ * pmult/pmult.c (struct pmult_priv_data): New fields body_off,
+ body_chunks.
+ (pmult_append_body_chunk): New function.
+ (cb_reply): Handle SMFIR_REPLBODY
+ (pmult_std_reply): Likewise.
+ (pmult_clear): Destroy body_chunks
+ (pmult_eom): Request body replacement if body_chunks is not NULL.
+ (pmult_msg_rplc,pmult_msg_rplc_stat): New functions.
+ (pmilter): Register pmult_msg_rplc and pmult_msg_rplc_stat.
+
+2008-11-21 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * pies/pies.c (component_cfg_param): New statement settle-timeout.
+ * pies/progman.c (recompute_alarm): New static;
+ (prog_start): Start the component only if all of its prerequisites
+ are running.
+ (progman_recompute_alarm): New function.
+ (progman_start): Reset recompute_alarm to 0.
+ (check_stopping): New function.
+ (progman_wake_sleeping): Handle also status_stopping and
+ status_enabled. Recompute alarm before leaving.
+ (prog_start_prerequisites): Return 0 or 1 depending on whether all
+ prerequisites have been started.
+ (prog_stop): Raise recompute_alarm for stopping components.
+ (progman_cleanup): Force status_enabled before attepmting to
+ start a component.
+ (progman_cleanup): Add a \n after debugging message.
+ Run progman_wake_sleeping unlsess expect_term is set.
+ * pies/meta1gram.y (translate_node_list): Force settle-timeout =
+ 1.
+ * pies/pies.h (struct component.settle_timeout): New member.
+
+ * pies/pies.c (main): New options --force, --dump-prereq and
+ --dump-depmap.
+ Refuse to start if another instance is already running.
+ (pies_check_status): New function.
+ (pies_status): Rewrite using pies_check_status.
+ * pies/progman.c (component_fixup_depend): Bugfix: move
+ mu_list_append off the conditional.
+ (progman_dump_prereq, progman_dump_depmap): New functions.
+ * pies/meta1gram.y (yyerror): Return 0.
+ * pies/pies.h (progman_dump_prereq, progman_dump_depmap): New
+ protos.
+ (meta1_parser_set_debug, meta1lex, meta1error)
+ (meta1parse): Likewise.
+
+ * pies/progman.c (print_dep): New function.
+ (progman_build_depmap): Call print_dep to facilitate fixing cyclic
+ dependencies.
+ (prog_start_prerequisites): Fix debugging output.
+ Remove spurious second loop (was it a typo or copy-paste
+ leftover?)
+ (prog_stop_dependents): Fix debugging output.
+ (progman_dump_stats): Avoid race conditions between running and
+ querying instances.
+
+2008-11-17 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Document and improve pmult.
+
+ * pmult/pmult.c (debug_level): Remove.
+ (struct pmult_priv_data): Remove debug. Use pmult_debug instead.
+ (macro_trans): Define Sendmail compatibility macros cn_issuer and
+ cn_subject.
+ (builtin_macros): Fix typo in "multiplexer".
+ (define_macros): Rewrite. The "define-macros" statement takes
+ exactly two arguments, each of which can be either a string or a
+ list of strings.
+ * doc/values.texi, doc/mailfromd.texi, doc/pmult.texi: Update.
+
+ * doc/Makefile.am (check-fixmes): Scan all texinfo documents.
+
+ Fix handling of retranslators.
+
+ * pies/pies.c (main): Call progman_build_depmap and
+ progman_create_sockets before starting up components.
+ * pies/progman.c (struct prog): New member `retr'.
+ (destroy_prog): New function.
+ (retr_tag): Change signature. Fix erroneous condition for
+ xalloc_die.
+ (register_retr): Return prog. Make static. Initialize idx
+ with -1.
+ (update_retr): Register retranslator, if necessary.
+ (progman_register_retranslators): Remove.
+ (register_prog0): 2nd argument: index.
+ (register_prog): Do not create socket at once.
+ (prog_start): Remove debugging fprintf.
+ (progman_accept): Update call to register_prog0.
+ (progman_create_sockets): New function.
+ (progman_start): Remove calls to progman_register_retranslators
+ and progman_build_depmap. They must be done only once.
+ (prog_stop_retranslators): New function.
+ (prog_stop_dependents): Call prog_stop_retranslators.
+ (progman_cleanup): Remove dangling retranslators.
+ * pies/pies.h (progman_create_sockets): New prototype.
+
+2008-11-16 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Improve pies.
+
+ * pies/pies.h (create_socket): Change proto to 3 arguments.
+ * pies/socket.c (create_socket): Take two additional arguments.
+ Allow to configure ownership and mode of created UNIX sockets.
+ * pies/progman.c (register_prog, prog_start): Update calls to
+ create_socket.
+
+ Implement ctype functions.
+
+ * mfd/bi_ctype.m4: New function.
+ * mfd/Makefile.am (inc_DATA): Add bi_ctype.m4.
+ * doc/Makefile.am (check-builtins): Update source sed expression.
+ * doc/mailfromd.texi, NEWS: Document ctype functions.
+
+2008-11-15 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Improve handling of program privileges.
+
+ * lib/libmf.h (struct mf_privs): New data type.
+ (get_user_groups, mf_priv_setup, mf_epriv_setup): New prototypes.
+ * lib/userprivs.c (get_user_groups, mf_priv_setup)
+ (mf_epriv_setup): New functions.
+
+ * smap/smap.c: If user is specified, switch to effective uid/gid,
+ in order for msrv to create files with right privileges, on one
+ hand, and to be able to create pidfile in root-owned directories
+ (e.g. /var/run), on the other hand. This requires todays snapshot
+ of Mailutils.
+
+ * pies/pies.h (struct pies_privs_data): Remove
+ (struct component): Change type of `privs' to struct mf_privs.
+ (priv_setup): Remove.
+ * pies/pies.c: Use mf_priv* stuff to manipulate privileges.
+ * pies/progman.c: Likewise.
+ * pies/meta1gram.y (list): allow for trailing comma.
+
+2008-11-13 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Bugfix.
+
+ * mfd/bi_string.m4 (index) (rindex): Third argument (start index)
+ can equal string length.
+ * pies/Makefile.am (LDADD): Add MF_PROCTITLE_LIBS
+ * lib/proctitle.c (mf_proctitle_format):
+ * pies/progman.c (progman_register_retranslators): Register
+ retranslators only for retr_syslog.
+ (open_retranslator): Do not prepend program name to the proctitle.
+ It is done automatically by the library.
+ * lib/proctitle.c: Declare environ.
+ Define __progname if not defined in libc.
+ (mf_proctitle_init): Set __progname.
+ (mf_proctitle_format): Prepend program name to the proctitle.
+
+ Implement file output redirection.
+
+ * pies/pies.h (enum retr_type): New constants.
+ (struct retranslator): New type.
+ (struct component): Change type of retr to struct retranslator.
+ All uses updated.
+ * pies/pies.c (_cb_retr): Takes two arguments:
+ redirection type and file name or syslog priority.
+ (make_full_name): New function.
+ (component_verify): Check retr file names.
+ * pies/progman.c (redirect_to_file): New function.
+ (open_retranslator): Handle file redirects.
+ (prog_start): Open /dev/null in wronly mode.
+ * pies/meta1gram.y (create_retr_node): New function.
+ (translate_node_list): Create default "stderr" statement.
+
+ * lib/libmf.h (mf_proctitle_init): New prototype.
+ * lib/proctitle.c: Include stdio.h
+ * bootstrap: Fix invocation of aclocal.
+
+ Implement setproctitle functionality for pies.
+
+ * am: New directory.
+ * am/aggr.m4, am/debug.m4: New files (from acinclude.m4)
+ * am/proctitle.m4: New file.
+ * acinclude.m4: Removed.
+ * configure.ac: Call MF_PROCTITLE.
+ * lib/libmf.h (mf_proctitle_format): New prototype.
+ * lib/proctitle.c: New file.
+ * lib/Makefile.am (libmf_a_SOURCES): Add proctitle.c.
+ * Makefile.am (ACLOCAL_AMFLAGS): Add -I am
+
+ * pies/pies.c (main): Call mf_proctitle_init.
+ * pies/progman.c (retr_tag): Rewrite in a safer way.
+ (open_retranslator): Set program title in child.
+
+ Allow to complement existing components (useful for MeTA1
+ includes).
+
+ * pies/pies.c (component_verify): New function.
+ (component_section_parser): Call component_verify.
+ (_cm_include_meta1): Reduce the tree at once.
+ (parse_meta1_conf): Not needed any more.
+ * pies/progman.c (progman_register_retranslators): New function.
+ (pies/progman.c): Do not register retranslators: wait until the
+ entire config is parsed and do that in progman_start.
+ (progman_start): Call progman_register_retranslators.
+
+2008-11-12 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Implement dependencies/prerequisites in MeTA1.
+
+ * pies/pies.c (component_cfg_param): Rename "depend" to
+ "prerequisites". Add new keyword "dependents".
+ (pies_cfg_param): New keyword "limits".
+ * pies/progman.c (struct prog): Rename "depend" to "prereq".
+ (prog_start_dependencies): Rename to prog_start_prerequisites
+ (register_prog0): Do not fill prereq. This will be done later,
+ when all dependencies are resolved.
+ (prog_rebuild_prerequisites): New function.
+ (prog_start): Per-component limitis override system-wide ones.
+ (component_fixup_depend, fixup_prerequisites)
+ (rebuild_prerequisites): New functions.
+ (progman_build_depmap): Call fixup_prerequisites and
+ rebuild_prerequisites.
+ (prog_stop_dependent): Rename to prog_stop_dependents.
+ * pies/meta1gram.y: Implement restart_dependencies.
+ * pies/pies.h (struct component): Rename "depend" to "prereq". Add
+ new member "depend".
+ (pies_limits): New extern.
+
+ Implement MeTA1 configuration file parser.
+
+ * configure.ac: Require Mailutils 1.9.93
+ * doc/mailfromd.texi, NEWS: Update.
+ * pies/pies.c (_cb_depend): Accept list argument.
+ (component_cfg_param): New statement: program.
+ (pies_cfg_param): New statements: include-meta1 and
+ meta1-queue-dir.
+ (parse_meta1_conf, pies_cfg_verifier): New functions.
+ (main): Set mu_app_cfg_verifier. Call parse_meta1_conf.
+ * pies/progman.c (progman_lookup_component): New function.
+ (prog_start): Pass program name (eventually differing from
+ argv[0]).
+ * pies/pies.h (struct component): New member `program'.
+ (progman_lookup_component): New prototype.
+ * pies/meta1gram.y, pies/meta1lex.h, pies/meta1lex.l: New files.
+ * pies/Makefile.am (pies_SOURCES): Add meta1gram.y and
+ pies/meta1lex.h.
+ (noinst_HEADERS, AM_YFLAGS, AM_LFLAGS): New variables.
+
+2008-11-11 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * pies/pies.c (component_cfg_param, pies_cfg_param): New keyword:
+ allgroups.
+ (pies_add_allgroups): New function.
+ * pies/limits.c: Fix debug statements.
+ * pies/progman.c (build_depmap): Rename to
+ progman_build_depmap. Make extern, for future use. All callers
+ updated.
+ * pies/pies.h (progman_build_depmap): New proto.
+
+ * pies/pies.c: Fix ACTION_COMPRELOAD
+ * pies/progman.c (open_retranslator): (child) close all open
+ sockets, except p[0] (pipe input).
+ (prog_start): Bugfix: mark sleeping components with
+ status_sleeping.
+ (prog_start): stdout retranslation works for pies_comp_pass_fd.
+ Mark started processes with status_enabled.
+ (progman_start): Start enabled processes if pid is 0.
+ (progman_stop_component): Correctly handle various status types.
+ (progman_dump_stats): Mark processes being stopped.
+
+ * pies/pies.c (component_cfg_param): Bugfix.
+ (component_section_parser): Initialize comp->pass_fd_socket
+ * pies/progman.c (prog_start): Listen on the socket, if in pass_fd
+ mode. Avoid closing it.
+ (prog_stop_all): Kill programs being stopped.
+
+ * pies/socket.c (pass_fd): Check return from open_unix_socket.
+
+2008-11-10 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Rewrite pies to incorporate into it the functionality of inetd and
+ mcp.
+
+ * pies/pies.c (pmult_debug): Rename to pies_debug.
+ (pies_acl): New global.
+ (component_cfg_param): New statements: mode, socket,
+ pass-fd-socket, acl, limits.
+ (component_section_parser): Allocate comp. Check its consistency
+ on mu_cfg_section_end.
+ (pies_cfg_param): New statement: acl.
+ (main): Call mu_acl_cfg_init. Use pies_pause instead of pause.
+ * pies/limits.c: New file.
+ * pies/progman.c (enum prog_status): New status: status_listener.
+ (struct prog): Keep a pointer to the original struct component,
+ instead of copying its fields (except for depend, which is copied
+ anyway). All uses updated.
+ (prog_lookup_by_socket, unlink_prog, register_prog0): New
+ functions.
+ (prog_start, progman_cleanup, progman_stop_component): Rewrite to
+ take into account various component modes.
+ (pies_check_acl): New function.
+ (progman_accept): New function.
+ * pies/pies.h (limits_record_t): New typedef.
+ (enum pies_comp_mode): New constants.
+ (struct component): New members: mode, limits, socket_url,
+ pass_fd_socket, acl.
+ (progman_accept): New proto.
+ (pies_pause, register_listener, pass_fd, open_socket)
+ (parse_limits, set_limits): New protos.
+ * pies/Makefile.am (pies_SOURCES): Add limits.c and socket.c
+ * pies/socket.c: New file.
+
+ * configure.ac: Check for msg_control and msg_accrights in struct
+ msghdr.
+ * acinclude.m4 (IU_CHECK_MEMBER, IU_CHECK_MEMBERS): New macros
+ (from inetutils).
+
+ * pies/progman.c (prog_start): Bugfix.
+ * pmult/pmult.c (pmult_cfg_param): New configuration statement
+ pmilter-debug.
+ (main): Call sm_pmfi_setdbg.
+
+2008-11-09 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Add built-in functions for accessing Sendmail macros.
+
+ * mfd/mailfromd.h (env_get_macro): New proto.
+ * mfd/prog.c (env_get_macro): New function.
+ * mfd/bi_macro.m4: New file.
+ * mfd/Makefile.am (M4_FILES): Add bi_macro.m4.
+ * NEWS: Update.
+ * doc/mailfromd.texi (Macro access): New subsubsection.
+
+2008-11-07 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * mfd/bi_mbox.m4 (mailbox_open): Take 2nd optional argument,
+ specifying the permissions of the mailbox, if it is to be created.
+ * doc/mailfromd.texi, NEWS: Update.
+
+2008-11-06 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * pmult/pmult.c (collect_headers): Rewrite state machine to ensure
+ each state either advances off or switches to the new state.
+ (builtin_macros): New variable.
+ (translate_macros0): Add builtin macros.
+ (pmult_connect): Do not free priv_data even if some milters
+ returned rejects.
+
+2008-11-05 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * mfd/lex.l: Fix default condition for ML state, introduced on
+ 2008-11-02.
+
+2008-11-03 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * mflib/verp.mf (verp_extract_user): Pass email as the first
+ argument.
+ * doc/mailfromd.texi: Update.
+ * doc/Makefile.am: Add pmult.texi
+ * doc/pmult.texi: New file.
+ * mfd/lex.l: %% and $$ in quoted strings are replaced by single %
+ and $, correspondingly.
+ * NEWS: Update.
+
+ Improve docs.
+
+ * doc/mailfromd.texi, NEWS: Document `getopt' and run (script)
+ mode.
+ * mfd/lex.l: Octal characters can contain 1 to 3 octal characters.
+ * mfd/bi_getopt.m4: Allow to specify long options (without short
+ option equivalents) that take arguments.
+ * mfd/main.c (options): Document optional argument to the `--run'
+ option.
+
+2008-11-02 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Minor improvement in the lexer.
+
+ * mfd/lex.l (start_locus): New variable.
+ (BEGIN_X): New macro.
+ Add a rule to ignore any characters at EOF in ML state.
+ (yywrap): Report an error if the file is left not in the INITIAL
+ state, i.e. EOFs in comments or strings.
+
+ Improve the docs.
+
+ * doc/mailfromd.texi, NEWS: Update.
+
+ Minor fix.
+
+ * mfd/drivers.c (mark_type_asgn): Mark variable as referenced if
+ it is assigned a value.
+
+ Get rid of ml_header. Gacopyz takes care about the header
+ formatting.
+
+ * gacopyz/gacopyz.h (gacopyz_safe_header_value): New proto.
+ * gacopyz/gacopyz.c (gacopyz_safe_header_value): New function.
+ (gacopyz_header_command): Use gacopyz_safe_header_value to format
+ header value.
+ * mfd/bi_sa.m4 (sa): Remove unused variable.
+ * mfd/bi_string.m4: Remove ml_header.
+ * doc/mailfromd.texi: Remove ml_header.
+
+ New functions: replstr, ml_header, sa_format_score,
+ sa_format_report_header.
+
+ * mflib/sa.mf: New file.
+ * mflib/Makefile.am (inc_DATA): Add sa.mf
+ * mfd/bi_string.m4 (replstr): New function.
+
+ * doc/mailfromd.texi: Document new functions.
+ * NEWS: Update.
+
+2008-11-01 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * mfd/bi_string.m4 (rindex): Fix bug introduced on 2008-10-29.
+
+ Implement spamd REPORT in sa.
+
+ * mfd/snarf.m4 (MF_OBSTACK_FINISH): New macro.
+ * mfd/bi_string.m4 (ml_header): New function.
+ * mfd/bi_sa.m4 (spamd_read_line0): New function.
+ (spamd_read_line): Remove last argument. Use spamd_read_line0.
+ (sa): Take a 3rd optional argument, specirying whether to
+ return spam report in sa_keywords.
+
+ Bugfix.
+
+ * mfd/gram.y (ADD,REPLACE): Cast 2nd argument to string.
+ * mfd/bi_system.m4 (strftime): Add missing MF_OPTVAL.
+
+2008-10-31 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * pmult/pmult.c (pmult_eom): Get macros from PM_SMST_DOT list.
+
+ * gnulib.modules: Add inttostr
+ * smap/smap.c, pies/progman.c, pies/pies.h: Use umaxtostr, instead
+ of mu_umaxtostr.
+
+ * pmult/pmult.c (struct pmult_priv_data): New members: argc,
+ argv.
+ (macro_trans, meta_stage_trans, macrotab, macronames): New
+ globals.
+ (translate_macros0, translate_macros): New functions.
+ (define_macros, define_macros_iter): New functions.
+ (_cb_define, request_auth_macros): New functions.
+ (pmult_cfg_param): New keyword `define-macro'.
+ (pmult_free): Free argv.
+ (pmult_negotiate): Use sm_pmfi_setmacs, if available.
+ (pmult_connect, pmult_helo, pmult_mail, pmult_rcpt)
+ (pmult_data, process_headers, pmult_eom): Use translate_macros.
+ (main): Handle want_auth_macros.
+
+ * configure.ac: Check for sm_pmfi_setmacs. This function should
+ appear in meta1-1.0.PreAlpha28.0.
+
+2008-10-30 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * pmult/pmult.c (collect_headers): Bugfix, following changes
+ dated 2008-10-14.
+
+2008-10-29 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * mfd/bi_string.m4 (index, rindex): Take an optional third
+ argument, indicating where to start searching.
+ * NEWS, doc/mailfromd.texi: Document changes to index and rindex.
+
+2008-10-27 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * pmult/pmult.c (pmult_std_reply): Handle SMFIR_ACCEPT.
+ * configure.ac, NEWS: Raise version patchlevel to 96
+ * mfd/drivers.c (mark_type_asgn): Add a comment.
+ * mfd/main.c (main): Do not try to start up if script_dump_xref
+ was given.
+
+2008-10-24 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * mflib/verp.mf: New file.
+ * mflib/Makefile.am: Add verp.mf.
+
+2008-10-22 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * gacopyz/server.c (gacopyz_srv_abort): Reset state to srv_ready.
+ (gacopyz_srv_helo): If called in srv_msgproc, reset the milter
+ state by calling gacopyz_srv_abort before sending the command.
+ (gacopyz_srv_envfrom): Likewise.
+
+2008-10-21 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * pmult/pmult.c: New configuration statement auth-macros.
+ (pmult_negotiate): Request auth macros for PM_SMST_MAIL if
+ auth-macros was requested.
+ (pmult_mail): Translate auth macros if present.
+
+ * gacopyz/server.c (gacopyz_srv_negotiate): Additional
+ diagnostics.
+ (gacopyz_srv_send_macros): Send macros only for those commands
+ that do require them.
+ (gacopyz_srv_send_command): Additional diagnostics.
+ * gacopyz/gacopyz.c (gacopyz_context_loop): Additional diagnostics.
+
+2008-10-16 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * pmult/pmult.c (_cb_log_level): Handle > level specifier (all
+ levels from the given one up).
+ * gacopyz/gacopyz.h (SMI_LOG_FROM): Handle n==0.
+
+2008-10-15 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * pies/progman.c (env_setup): Port new implementation from Rush.
+
+ * gnulib.modules: Add c-ctype
+ * mtasim/mtasim.c, pies/pies.h, pmult/pmult.c, lib/parsetime.c,
+ mfd/lex.l, mfd/gram.y, mfd/mailfromd.h, mfd/spf.c,
+ mfd/bi_sprintf.m4, mfd/bi_io.m4, mfd/pp.c, mfd/main.c: Use c-ctype,
+ instead of ctype.
+
+2008-10-14 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * pmult/pmult.c (enum pmult_msg_state): Add more states.
+ (collect_headers): Correctly handle end-of-message marker,
+ even though it should never appear here.
+ (pmult_msg_handler): Make sure the handler always processes first
+ handlers, then body, even if some of these two is missing.
+
+2008-10-13 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * gacopyz/server.c (gacopyz_srv_eom): Reset state to srv_ready.
+
+ * mfd/engine.c (mlfi_eom): Destroy md->hdr.
+ * pmult/pmult.c: Fix comment.
+ * NEWS: Update.
+
+2008-10-06 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * mfd/main.c (read_domain_file): Select first word from each
+ line. This allows to use meta1/mt.
+
+2008-10-04 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * pies/pies.c (component_cfg_param): New configuration statement
+ `precious'.
+ * pies/progman.c (struct prog): New member `precious'.
+ (register_prog): Set precious.
+ (prog_start_dependencies): Do not mark disabled precious
+ dependencies of a disabled component.
+ * pies/pies.h (pies/pies.h): New member `precious'.
+ * pies/pies.rcin (mcp): Mark as precious.
+
+ * pies/pies.c (return_code_section_parser): Fix to work with tag
+ of any type.
+ * pies/pies.rcin: Minor change.
+
+ * configure.ac, NEWS: Raise version number to 4.9.95.
+
+ * pies/pies.c (main): Do cleanup after main action processing and
+ only if action == ACTION_CONT.
+ * pies/progman.c (struct prog): New member `prev'.
+ (link_prog): Maintain doubly-linked list.
+ (prog_stop_dependent): Avoid printing diagnostics if there are
+ no dependencies to be stopped.
+ (prog_stop): Do nothing if prog->pid is zero.
+ Do not call prog_stop_dependent, it will be done by
+ progman_cleanup.
+ (prog_stop_all): Terminate components from last to first.
+ * pies/pies.rcin: Improve example, by adding mcp component.
+
+ * pies/pies.c (_cb_depend): Handle single string value.
+ (_cb_retr): Fix diagnostic message.
+ (_cb_facility): New function.
+ (component_cfg_param): New statement `facility'.
+ (component_section_parser): Initialize comp.facility to the
+ default value.
+ * pies/progman.c (struct prog): New member `facility'.
+ (register_prog): Initialize facility.
+ (open_retranslator): Use master->facility.
+ * pies/pies.h (struct component): New member `facility'.
+
+2008-10-03 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * pies/progman.c (register_prog): Remove stray semicolon.
+ (retr_exit): Use _exit.
+ (prog_stop_dependent): Bugfix: stop retranlators as well as
+ components.
+
+2008-09-29 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * configure.ac, NEWS: Set patchlevel 94.
+
+ Fix MU configuration file support.
+
+ * lib/libmf.h (config_array_to_argv)
+ (config_array_to_string, config_cb_timeout): new prototypes.
+ * lib/utils.c: New
+ * lib/Makefile.am (libmf_a_SOURCES): Add utils.c
+ * mfd/gram.y (defer_initialize_variable): Both args are const.
+ * mfd/mailfromd.h (defer_initialize_variable)
+ (add_include_dir): Change signatures.
+ * mfd/pp.c (add_include_dir): Arg is const.
+ * pies/pies.c, pmult/pmult.c, mfd/main.c: Rewrite configuration
+ file support to match changes in Mailutils.
+
+2008-09-20 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Improve stack memory management.
+
+ * mfd/gram.y (strtosize, get_stack_max, get_stack_incr)
+ (get_stack_size): New functions.
+ (pragma_stacksize): Rewrite. Take maximum stack size as an
+ optional third argument.
+ * mfd/mailfromd.h (stack_max_size): New declaration.
+ (stack_max_size): New function.
+ (expand_dataseg): Signal exception if new memory size would be
+ greater than the stack size limit.
+ * NEWS, doc/mailfromd.texi: Update.
+
+2008-09-19 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * mfd/gram.y (pragma_stacksize): Implement two stack growth
+ policies.
+ * mfd/mailfromd.h (enum stack_expand_policy): New enum.
+ (stack_expand_incr, stack_expand_policy): New global variables.
+ * mfd/prog.c (stack_expand_incr)
+ (stack_expand_policy): New global variables.
+
+ * NEWS: Update.
+ * doc/mailfromd.texi (stacksize): Document changes to pragma
+ stacksize.
+ * doc/values.texi (STACK-INCR): New value.
+
+2008-09-18 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * Makefile.am: Implement a dist-hook, preventing distributing
+ an unfinished NEWS file.
+ * doc/mailfromd.texi: Document new mfl-mode customization
+ variables.
+ Add missing index entries.
+ * NEWS: Update.
+ * elisp/mfl-mode.el: Improve auto-indentation support.
+ (mfl-compute-line-indentation): Fix typo.
+
+2008-09-17 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * Makefile.am (dist-hook): New rule. Test for leftover FIXMEs in
+ NEWS.
+
+ * mfd/bi_getopt.m4 (opterr, optopt): New globals.
+ (getopt): Handle opterr and optopt.
+ (MF_INIT): Initialize opterr to 1.
+
+ * mfd/bi_getopt.m4 (getopt): Use | as a short/long option
+ separator.
+ Make sure optind/optarg are set before returning EOF.
+ * mfd/gram.y (mailfromd_run): Remove superfluous call to
+ env_leave_frame.
+ * mfd/drivers.c (mark_type_argx, mark_type_vaptr): New functions.
+ * mfd/prog.c (env_vaptr): Cast the result.
+ * mfd/main.c (argpflag): Understand abbreviated forms of the --run
+ option.
+
+ * mfd/bi_db.m4 (dbfirst, dbnext, dbkey, dbvalue): New functions
+ (proof of concept).
+
+2008-09-16 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Implement functions with variable number of arguments and 'run' mode.
+
+ * mfd/symtab.c (function_install): Take additional argument.
+ * mfd/lex.l: New tokens `vaptr', `...' and ARGX.
+ * mfd/snarf.m4 (MF_VASTRING): New define.
+ * mfd/gram.y: Handle functions with variable number of arguments,
+ $(expr), and vaptr() expressions. This raises shift/reduce
+ expectation to 29 conflicts.
+ (parmtype_function): Return dtype_string for
+ arguments from vararg list.
+ (FUNC_HIDDEN_ARGS): Return 1 if f->varargs is set.
+ (type_to_string): Handle pointer argument.
+ (function_call): Handle function->varargs.
+ (node_type): Handle node_type_argx, and node_type_vaptr.
+ (cast_arg_list): Handle variable number of arguments.
+ (cast_to): Handle dtype_pointer as dtype_number.
+ * mfd/drivers.c (argx, vaptr): New node types.
+ (code_type_call): Handle variable number of arguments.
+ (code_cast): Handle dtype_pointer as dtype_number.
+ * mfd/mailfromd.h (MAILFROMD_RUN): New define.
+ (struct argx_node): New type.
+ (struct node): Add argx_node.
+ (struct function): New member `varargs'.
+ (function_install): Add varargs.
+ (mailfromd_run): New prototype.
+ * mfd/prog.c (env_vaptr, env_get_reg): New functions.
+ (env_make_frame0): New function.
+ (instr_xmemstk): New instruction handler.
+ * mfd/opcodes (XMEMSTK): New opcode.
+ * mfd/prog.h (env_get_reg, env_vaptr): New protos.
+ * mfd/main.c (options): New option `--run'.
+ (main): Handle `run' mode.
+ * mfd/Makefile.am (M4_FILES): Add bi_getopt.m4.
+ * NEWS: Update.
+
+2008-09-15 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * tests/alias.at: New file.
+ * tests/Makefile.am (TESTSUITE_AT): Add alias.at
+ * tests/testsuite.at: Add alias.at
+
+ * elisp/mfl-mode.el (mfl-next-line-indentation)
+ (mfl-find-line-indentation): Fix computations for `alias',
+ `returns' and for comment lines.
+ (mfl-returns-offset, mfl-comment-offset): New customization
+ variables.
+
+ * mflib/sav.mf: New file. Initial implementation of SAV functions
+ entirely in MFL.
+
+ * elisp/mfl-mode.el (mfl-mode): Make compile-command buffer-local.
+
+ * mfd/symtab.c (struct alias): New data type.
+ (union symentry): New member `alias'.
+ (lookup_or_install): Remove erroneous condition, introduced in
+ r1627 (branches/release_4_3_patches), which caused third
+ argument (install) to be ignored if SYM_BITS was set in state.
+ (function_install, function_lookup): Account for aliases.
+ (install_alias): New function.
+ * mfd/lex.l (alias): New keyword.
+ * mfd/gram.y: Allow to define function aliases.
+ * mfd/mailfromd.h (SYM_ALIAS): New define.
+ (install_alias): New proto.
+
+ * doc/mailfromd.texi: Document function aliases.
+ * doc/NEWS: Likewise.
+
+ * elisp/mfl-mode.el (mfl-mfd-command): Change command name.
+ (mfl-keywords): Add alias.
+
+2008-09-09 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * configure.ac: Version 4.9.93
+ * NEWS: Likewise.
+ * pies/pies.c: Change description.
+
+2008-09-08 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * mfd/prog.c (instr_stkalloc): Expand stack segment if needed.
+
+2008-08-17 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * mflib/pp-setup (_, N_): If used without arguments, insert
+ _ and N_ verbatim.
+ * README: Update.
+ * tests/Makefile.am (clean-local): Fix rule.
+ * configure.ac: Fix check for res_query.
+
+ * mfd/engine.c (mailfromd_daemon): Use mailfromd_umask instead of
+ a hardcoded value.
+ * mfd/mailfromd.h (mailfromd_umask): New prototype.
+ * mfd/main.c (mailfromd_umask): New variable.
+ * mfd/bi_system.m4 (umask): New built-in function.
+ * gacopyz/gacopyz.c (do_connect): Ensure umask 0117 when binding
+ the socket.
+
+ * doc/mailfromd.texi: Improve usage of @deffn.
+ (System functions): Document umask.
+
+2008-07-04 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Implement mailbox_append_message built-in function.
+
+ * NEWS, doc/mailfromd.texi: Document mailbox_append_message.
+ Document new semantics of `a' and `a+' in mailbox_open.
+ * mfd/bi_msg.m4 (bi_message_from_descr): New function.
+ * mfd/bi_body.m4 (current_message): Fix return value.
+ * mfd/bi_mbox.m4 (mailbox_open): Discern between `a' and `a+'.
+ (mailbox_append_message): New function.
+ * mfd/msg.h (bi_message_from_descr): New prototype.
+
+2008-06-26 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * pies/pies.h: Include stdint.h
+ * configure.ac: Fix checking for libresolv.
+
+2008-06-22 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Minor fixes.
+
+ * doc/mailfromd.texi: Fix a typo.
+ * mfd/prog.c: Fix comment.
+ * gacopyz/server.c: Fix erroneous range checking condition.
+
+2008-05-15 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Fixup C variables that point to dataseg after expanding it.
+ Bug reported by Sergey Afonin.
+
+ * mfd/snarf.m4 (mf_c_argdcl): Produce only C declarations.
+ (mf_c_arginit): New macro.
+ (__mf_c_argdcl_list,__mf_c_arginit_list): New auxiliary macros.
+ (__mf_c_arglist): Rewrite using the above macros.
+ (mf_c_arglist,MF_VA_ARG): Reflect changes to get_.*_arg functions.
+ * mfd/bi_sprintf.m4: Update invocations of MF_VA_ARG.
+ * mfd/prog.c (struct eval_environ): New members auto_ptr and
+ numautos.
+ (env_register_auto, env_unregister_autos, env_fixup_autos): New
+ functions.
+ (expand_dataseg): Call env_fixup_autos.
+ (get_literal, get_string_arg): Change signature. Call
+ env_register_auto. All callers updated.
+ (get_numeric_arg): Change signature for consistency with other
+ get_ functions. All callers updated.
+ (get_pointer_arg): New function.
+ (eval_environment): Call env_unregister_autos after running each
+ instruction.
+ * mfd/prog.h (get_pointer_arg): New function.
+ (get_string_arg, get_numeric_arg): Change prototypes.
+ * mfd/bi_sieve.m4: Minor stylistic fix.
+ * NEWS: Update.
+
+ * mfd/drivers.c (code_cast): Handle dtype_pointer
+
+2008-04-13 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * configure.ac: Require Mailutils 1.9.90
+ * doc/mailfromd.texi: Update.
+ * mfd/bi_msg.m4 (message_si