diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2009-03-13 22:21:31 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2009-03-13 22:22:35 +0200 |
commit | 3967a43e61c59cdcbc7c71346b4b849c09d63773 (patch) | |
tree | 766741f2091795f1a89c41ca502c550c23eb3437 /ChangeLog.svn | |
parent | d0dc3b3c972d9a0aadeb58b5833c4a53678af1be (diff) | |
download | mailfromd-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.svn | 5486 |
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 |