aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFiles
2009-03-13Finish migration to Git.Sergey Poznyakoff1
* 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.
2009-03-13Add .gitignoresSergey Poznyakoff1
2008-12-26Version 5.0Sergey Poznyakoff2
* 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-01UpdateSergey Poznyakoff1
2008-12-01UpdateSergey Poznyakoff1
2008-12-01Documentation and minor fixes.Sergey Poznyakoff6
* 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-28Bugfixes/improvements.Sergey Poznyakoff3
* doc/mailfromd.texi: Document replbody. Use @WRITEME where appropriate. * doc/rendition.texi (WRITEME): New macro. (UNREVISED): Reword. * doc/pies.texi, doc/smap.texi: Use @WRITEME * doc/Makefile.am (check-writeme): New rule. (all-check-docs): Depend on check-writeme. * mfd/bi_body.m4 (replbody): Can be used in any handler. * NEWS: Rearrange material.
2008-11-21Pies: ensure all prereqs are started in right order before starting a ↵Sergey Poznyakoff4
dependency. * 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.
2008-11-21Improve pies.Sergey Poznyakoff4
* 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.
2008-11-21Improve pies.Sergey Poznyakoff1
* 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-17Add pies.texi and smap.texiSergey Poznyakoff2
2008-11-17Document and improve pmult.Sergey Poznyakoff1
* 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.
2008-11-17Fix handling of retranslators.Sergey Poznyakoff3
* 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-16Improve pies.Sergey Poznyakoff3
* 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.
2008-11-16Implement ctype functions.Sergey Poznyakoff1
* 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-15Improve handling of program privileges.Sergey Poznyakoff4
* 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-13Bugfix.Sergey Poznyakoff1
* pies/Makefile.am (LDADD): Add MF_PROCTITLE_LIBS
2008-11-13Bugfix.Sergey Poznyakoff1
* 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.
2008-11-13Implement file output redirection.Sergey Poznyakoff5
* 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.
2008-11-13Implement setproctitle functionality for pies.Sergey Poznyakoff2
* 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.
2008-11-13Allow to complement existing components (useful for MeTA1 includes).Sergey Poznyakoff2
* 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-12Optonal semicolon after a simple statementSergey Poznyakoff1
2008-11-12Implement dependencies/prerequisites in MeTA1.Sergey Poznyakoff4
* 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.
2008-11-12* pies/pies.rcin: UpdateSergey Poznyakoff1
2008-11-12Implement MeTA1 configuration file parser. Sergey Poznyakoff7
* 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-11BugfixesSergey Poznyakoff4
* 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.
2008-11-11pies: rename open_socket to create_socketSergey Poznyakoff3
2008-11-11BugfixesSergey Poznyakoff2
* 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.
2008-11-11BugfixesSergey Poznyakoff3
* 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-10Rewrite pies to incorporate into it the functionality of inetd and mcp.Sergey Poznyakoff6
* 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).
2008-11-10Minor fixes.Sergey Poznyakoff1
* pies/progman.c (prog_start): Bugfix. * pmult/pmult.c (pmult_cfg_param): New configuration statement pmilter-debug. (main): Call sm_pmfi_setdbg.
2008-11-03Improvements.Sergey Poznyakoff1
* 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.
2008-10-31Allow to configure which macros to pass to the filter.Sergey Poznyakoff2
* 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-15* pies/progman.c (env_setup): Port new implementation from Rush.Sergey Poznyakoff2
* 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-04Introduce "precious" components.Sergey Poznyakoff4
* 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.
2008-10-04Bugfix.Sergey Poznyakoff2
* pies/pies.c (return_code_section_parser): Fix to work with tag of any type. * pies/pies.rcin: Minor change.
2008-10-04Terminate components in reverse order.Sergey Poznyakoff3
* 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.
2008-10-04Improvements in pies.Sergey Poznyakoff3
* 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-03Bugfix.Sergey Poznyakoff1
* pies/progman.c (register_prog): Remove stray semicolon. (retr_exit): Use _exit. (prog_stop_dependent): Bugfix: stop retranlators as well as components.
2008-09-29Remove unused varsSergey Poznyakoff1
2008-09-29Fix MU configuration file support.Sergey Poznyakoff1
* 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-08Version 4.9.93Sergey Poznyakoff1
* configure.ac: Version 4.9.93 * NEWS: Likewise. * pies/pies.c: Change description.
2008-06-26* pies/pies.h: Include stdint.hSergey Poznyakoff1
* configure.ac: Fix checking for libresolv.
2008-03-12* doc/Makefile.am (check-refs, check-fixmes): Print correctSergey Poznyakoff1
locations for multiple input files. Return a meaningful error code. * TODO: Update.
2008-03-11Rewrite the bootstrap suite.Sergey Poznyakoff2
* README-alpha: Rewritten. * bootstrap.conf: Rewritten. * bootstrap: Slightly modified version from gnulib. * gnulib.modules, README-hacking: New files. * doc/mailfromd.texi: Minor fix.
2008-03-10Port r1632 of branches/release_4_3_patches.Sergey Poznyakoff1
2008-03-05Use ngettextSergey Poznyakoff1
2008-03-04Minor fixes in translatable stringsSergey Poznyakoff1
2008-02-26* pies/pies.c: New configuration statement "chdir".Sergey Poznyakoff16
* pies/progman.c (struct prog.v.p): New member `dir'. (register_prog): Initialize newp->v.p.dir; (prog_start): Change to the working directory, if required by config.

Return to:

Send suggestions and report system problems to the System administrator.