aboutsummaryrefslogtreecommitdiff
path: root/pies
AgeCommit message (Collapse)AuthorFiles
2009-09-15Branch off from the Mailfromd project into a separate repository.Sergey Poznyakoff12
2009-08-27Fix diagnostic and help messages.Sergey Poznyakoff2
1. Option descriptions in `--help' output do not constitute conceptual sentences. Therefore, they should not begin with a capital letter, nor end with a final point. 2. According to standards.texi, a diagnostic message in a non-interactive program "should not begin with a capital letter when it follows a program name and/or file name, because that isn't the beginning of a sentence. (The sentence conceptually starts at the beginning of the line.) Also, it should not end with a period." Affected files: * gacopyz/gacopyz.c * gacopyz/proc.c * gacopyz/server.c * gacopyz/smfi.c * mfd/bi_db.m4 * mfd/bi_dns.m4 * mfd/bi_io.m4 * mfd/bi_ipaddr.m4 * mfd/bi_mail.m4 * mfd/bi_other.m4 * mfd/bi_poll.m4 * mfd/bi_sa.m4 * mfd/bi_string.m4 * mfd/cache.c * mfd/db.c * mfd/dnscache.c * mfd/drivers.c * mfd/engine.c * mfd/gram.y * mfd/lex.l * mfd/main.c * mfd/mu_dbm.c * mfd/optab.opc * mfd/prog.c * mfd/rate.c * mfd/symtab.c * mtasim/mtasim.c * mtasim/openat-die.c * pies/pies.c * pies/progman.c * pmult/pmult.c * smap/smap.c * tests/ashadow.at * tests/bctx00.at * tests/fctx00.at * tests/hdr-gete.at * tests/invcidr.at * tests/invcidr2.at * tests/shadow.at
2009-06-17Bugfixes.Sergey Poznyakoff1
* pies/pies.c (main): Change main loop to do..while, otherwise a signal arriving before entering the loop might cause the program to terminate. * pmult/pmult.c (internal_macro_p): New function. (collect_stage_symbols): Do not report internal macros as untranslatable. * mfd/gram.y (register_macro): Copy macro name to allocated storage.
2009-06-14Fix and improve termination actions in pies.Sergey Poznyakoff3
* pies/pies.h (MAX_RETURN_CODE): Remove. (STATUS_SIG_BIT, STATUS_CODE): New defines (struct action): New fields next, nstat, status, command. (struct component): Keep singly-linked list of termination actions. * pies/progman.c (run_command): New function. (progman_cleanup): Redo iteration over termination actions. * pies/pies.c (return_code_cfg_param): Pass offsets in struct component. (create_action): Accept signal numbers (SIG.* or SIG\+[0-9]+) in tag. (return_code_section_parser): Update. (pies_check_status): Set *pid before returning pies_status_stale. * doc/pies.texi: Document changes. * NEWS: Updated.
2009-06-04MeTA1-related improvements.Sergey Poznyakoff1
* configure.ac: Check for pmilter_S.pmfi_thrmax_[sh]. Requires 28/0009-pmilter-configurable-maxthr.diff. * pmult/pmult.c: New configuration statements: max-threads-soft and max-threads-hard. * pies/pies.c (_cm_include_meta1): Fix coredump on syntax errors in meta1.conf.
2009-05-21More work on `silent rules' modeSergey Poznyakoff1
* bootstrap (silent_rules_prog): Preserve leading whitespace verbatim, when inserting the AM_V variables. Suggested by Ralf Wildenhues. Optionally insert the definitions of AM_DEFAULT_VERBOSITY, AM_V_GEN and AM_V_at: useful for po/Makefile.in.in (silentize): New function. (slurp): Call silentize Call silentize on po/Makefile.in.in. * doc/Makefile.am, etc/Makefile.am, pies/Makefile.am, pmult/Makefile.am, tests/Makefile.am, tests/etc/Makefile.am: Add silent rule markers.
2009-05-13Minor changeSergey Poznyakoff1
* mfd/bi_db.m4: Fix comment. * pies/progman.c: Use _exit in child processes. This is a work over a fault in MU design: it registers the pidfile removal function via atexit.
2009-03-13Add .gitignoresSergey Poznyakoff1
2008-12-01Documentation and minor fixes.Sergey Poznyakoff5
* 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-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-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-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 Poznyakoff4
* 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-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-05Use ngettextSergey Poznyakoff1
2008-03-04Minor fixes in translatable stringsSergey Poznyakoff1
2008-02-26* pies/pies.c: New configuration statement "chdir".Sergey Poznyakoff6
* 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.