Age | Commit message (Collapse) | Author | Files |
|
* src/Makefile.am: Fix rules for inetd.
|
|
* configure.ac (INETD_SH): Rename to INETD.
* NEWS: Update.
* src/.gitignore (inetd.sh): rename to inetd.
* doc/pies.texi: Update.
* src/Makefile.am (pkgstatedir): New variable.
(AM_CPPFLAGS): Add define.
(inetd.sh): Replace with inetd.
(install-exec-hook): Remove.
* src/pies.c (statedir): New variable.
(pies_keywords): New keyword: "state-directory".
(set_file_names): Split in two functions:
(set_conf_file_names, set_state_file_names).
(main): Call set_conf_file_names before,
and set_state_file_names after parsing the configs.
|
|
* doc/inetd.texi: Update.
* doc/pies.texi: Update.
|
|
* src/progman.c (notify): New meta-var "instance".
|
|
* src/meta1gram.y (xlat_listen_socket): Handle
all relevant assignments in the listen_socket block.
* src/url.c (url_parse_host): Always assign port_s.
Handle arguments without preceding path.
(url_parse_user): Parse path without preceding
user/pass specs.
(url_parse_scheme): Require exactly two slashes
after 'scheme:'.
|
|
* doc/pies.texi: Update.
|
|
* doc/pies.texi: Document new status output format.
* src/progman.c (progman_dump_stats): Redesign flags column.
|
|
|
|
* doc/inetd.texi: New file.
* doc/Makefile.am: Add inetd.texi.
* doc/pies.texi, doc/usr-acl.texi: Update.
* src/pies.c (socktype_xtab): SOCK_PACKET not always defined.
|
|
* doc/macros.texi (xprindex)
(example-output, mtasimopt): Remove
(RFC): New macro.
* doc/pies.texi: Document inetd-style components.
* doc/Makefile.am (fix-sentence-spacing): Fix rule.
* src/progman.c (progman_lookup_tcpmux): Use case-insensitive
comparison, as required by RFC.
|
|
* doc/fix-sentence-spacing.sed: New file.
* doc/Makefile.am (EXTRA_DIST): Add fix-sentence-spacing.sed.
(check-tabs, check-sentence-spacing)
(fix-sentence-spacing): New rules.
(check-format): Rewrite rule.
* doc/pies.texi: Update.
|
|
* doc/pies.texi: Update
* src/progman.c (run_command): handle return-code for inetd components.
|
|
|
|
* configure.ac: New option --enable-inetd
* src/inetd.in: New file.
* src/.gitignore: Add inetd.sh.
* src/Makefile.am (inetd.sh): New goal.
(install-exec-hook): New rule.
|
|
* src/inetd-bi.c (tcpmux): Consult the component's ACL
before deciding whether to handle the connection.
* src/pies.c (str_to_socket_type): Rewrite using
strtotok.
(socket_type_to_str): New function
(str_to_cf): New flags: sockenv and
resolve. Use strtotok.
(main): Log_tag defaults to program instance name.
* src/pies.h: Include socket-related headers.
(CF_SOCKENV, CF_RESOLVE): New flags.
(pies_sockaddr_storage): New union.
(check_acl): New proto.
(progman_run_comp): Change signature.
(socket_type_to_str): New proto.
* src/progman.c (struct prog): New members sa_storage,
sa_len.
(prog_sockenv): New function.
(progman_run_comp): Call prog_sockenv.
Initialize sa_storage and sa_len of the created
struct prog.
(prog_start): Call prog_sockenv.
Do not close 2 if logging to stderr.
(check_acl): Remove static.
(_prog_accept): Use union pies_sockaddr_storage.
Pass socket address in pinst->v.p.sa_storage and
pinst->v.p.sa_len.
(sockenv_hint, envsize): New variables.
(add_env): New function.
(env_setup): Remove.
(environ_setup): New function.
* src/socket.c: Remove unnecessary includes.
|
|
|
|
|
|
* src/pies.h (CF_INTERNAL): New flag.
(ISCF_TCPMUX): New macro.
(struct component): Reorder fields.
New field: tcpmux.
(progman_lookup_service): Remove proto.
(progman_lookup_tcpmux): New proto.
(struct inetd_builtin.foo): Change signature. All uses updated.
* src/progman.c (progman_lookup_service): Remove.
(progman_lookup_tcpmux): New function.
(progman_create_sockets): Skip tcpmux subservices.
(progman_start): Skip disabled inetd components.
* src/inetd-bi.c (tcpmux): Use progman_lookup_tcpmux.
* src/inetd.c (tcpmux_service, mktag): New functions.
(inetd_conf_file): Minor changes.
* src/pies.c (_cb_bitmask, _cb_precious)
(_cb_disabled, _cb_wait): Remove.
(str_to_cf, _cb_flags): New functions.
(component_keywords): Remove keywords:
disable, precious, wait.
Add keywords: flags, service, tcpmux-master.
(component_verify): Improve.
* src/url.c (pies_url_destroy): Fix coredump on NULL argument.
|
|
Change output --status format.
* src/pies.c (instance): New global.
(conffile): Remove.
(pidfile,ctlfile,statfile,qotdfile): Remove initializers.
(config_syntax, config_file): New types.
(conf_head, conf_tail): New variables.
(config_syntax_tab): New variable.
(add_config): New function.
(options): New option --syntax.
(current_syntax): New variable.
(parse_opt): Change handling of -i
(mkfilename, set_file_names): New functions.
(main): Allow to specify several different config files
in the command line.
* src/progman.c (progman_dump_stats): Change
output format.
|
|
* src/pies.h (CF_TCPMUX, CF_TCPMUXPLUS): New flags.
(struct component): New member: service.
(progman_lookup_service, progman_run_comp)
(progman_iterate_comp): New protos.
* src/progman.c (progman_iterate_comp)
(prog_lookup_by_service)
(progman_lookup_service): New functions
(prog_start_prologue, prog_execute): New functions,
extracted from prog_start.
(progman_run_comp): New function.
(prog_start): Replace extracted parts of code with calls
to prog_start_prologue and prog_execute.
* src/inetd-bi.c: Implement TCPMUX
* src/inetd.c (inetd_conf_file): Handle tcpmux extries.
|
|
* src/inetd-bi.c: New file.
* src/Makefile.am (pies_SOURCES): Add inetd-bi.c.
* src/pies.h (struct component): New member `builtin'.
(qotdfile): New extern.
(inetd_builtin): New struct.
(inetd_builtin_lookup): New proto.
* src/progman.c (prog_start): Handle internal
services.
* src/inetd.c (inetd_conf_file): Handle internal
services.
* src/pies.c (qotdfile): New global.
(pies_keywords): New keyword "qotd-file".
|
|
* src/pies.h (struct component): New member "max_rate".
(default_max_rate): New extern.
* src/progman.c (check_rate): New function.
(check_spawn_rate, check_connection_rate): New functions.
(prog_open_socket): New function.
(prog_start): Rewrite using the above functions.
(_prog_accept): Check connection rate.
(progman_start): Special handling for inetd listeners.
(progman_wake_sleeping): Likewise.
* src/pies.c (default_max_rate): New global.
(component_keywords): New keyword max-rate.
(options): New option "rate".
(parse_opt): Handle the new option.
* src/inetd.c (inetd_conf_file): Set max_rate, instead of
max_instances.
|
|
* src/Makefile.am (pies_SOURCES): Add inetd.c.
* src/inetd.c: New file.
* src/pies.c (inetd_mode): New global.
(str_to_socket_type): New function.
(_cb_socket_type): Use str_to_socket_type.
(_cm_include_meta1): Rename to _cb_include_meta1.
(_cb_include_inetd): New function.
(pies_keywords): New keyword "include-inetd".
(options): New option --inetd.
(main): Handle inetd mode.
* src/pies.h (str_to_socket_type): New proto.
(disable_socket, enable_socket): Fix return type.
* src/progman.c (redirect_to_file): Avoid coredump on
privs.user == NULL.
(open_redirector,env_setup)
(progman_start,run_command): Remove unneeded variable.
(progman_start): Fix diagnostic message.
* src/socket.c (disable_socket, enable_socket): Fix return type.
Do nothing if fd < 0.
* src/userprivs.c (switch_to_privs): Allow to pass uid==0.
|
|
built-in services).
* src/pies.c (component_keywords): New keywords: wait,
socket-type.
(component_verify): Add more checks.
* src/pies.h (CF_WAIT): New define.
(struct component): New member: socket_type.
(struct pies_url): Rename proto to scheme.
New members: proto, proto_s, port_s
(register_listener): Remove proto.
(register_socket): New proto.
(create_socket): Change signature.
(disable_socket, enable_socket): New protos.
* src/progman.c (close_fds): New function.
(open_redirector): Use close_fds.
(prog_start): Use close_fds.
Update call to create_socket.
Disable socket if wait is set.
(progman_accept): Support non-stream
(and stream+wait) sockets.
(component_fixup_depend): Update call to create_socket.
Call register_socket.
(run_command): Use close_fds.
Re-enable socket if wait is set.
* src/socket.c (create_socket): Take additional argument:
socket_type.
(register_socket): New function.
(disable_socket, enable_socket): New functions.
(pies_pause): Add missing break.
* src/url.c (url_parse_host): Accept service name
and numberic port number.
(url_parse_proto): Rename to url_parse_scheme. All callers
updated.
(url_parse_scheme): Allow for optional
protocol specification in scheme field (after a '+' sign).
(pies_url_destroy): Free new fields.
|
|
* src/pies.c (component_keywords): New keyword
`max-instances'.
* src/pies.h (struct component): New member:
max_instances.
* src/progman.c (struct prog): Rename count to
failcount. All uses changed.
New members num_instances and listener.
(progman_accept): Keep track of the number of
instances. Deny connection if it is greater than
max_instances (unless the latter is 0).
(progman_cleanup): Keep track of the number of
instances in inetd listeners.
|
|
* src/pies.h (CF_DISABLED)
(CF_PRECIOUS): New defines.
(struct component): Replace precious and
disabled by a bitmask member `flags'. All uses updated.
* src/progman.c: Reflect the above change.
* src/pies.c (_cb_bitmask): New function.
(_cb_precious, _cb_disabled): New callbacks.
(component_keywords): Change handling of precious and disabled.
* bootstrap.conf: Add Emacs mode marker
|
|
|
|
* src/depmap.c (struct pies_depmap.nrows,rowlen): Change type
to size_t.
(depmap_alloc, depmap_rowptr)
(depmap_set, depmap_isset)
(depmap_next, depmap_first): Use size_t to index map elements.
* src/pies.h: Update prototypes accordingly.
* src/progman.c: Update depmap function usage.
|
|
* doc/Commit (gray_print_section): Output anchors before
chapter/section/etc. titles, so that the heading menu in
monolithic document works properly.
|
|
* config_array_to_argv (config_array_to_argv): Take four arguments.
Return argc in the memory location pointed to by the 4th one (unless NULL).
All callers updated.
(_cb_command): Fill both comp->argv and comp->argc.
(component_keywords): Pass pointer to struct component to _cb_command.
* src/pies.h (struct component): New member `argc'.
* src/progman.c (struct prog): Move idx to v.p; change its type to unsigned.
Remove v.p.argc. All uses updated.
(numprog): Rename to numcomp; change type to unsigned.
(prog_lookup_by_idx): Check only elements of type
TYPE_COMPONENT.
|
|
* src/pies.c (return_code_keywords): Fix docstring wording.
* src/progman.c (prog_type): New enum.
(struct prog): New union member `c'.
(IS_PROG): Rename to IS_COMPONENT.
(destroy_prog): Handle TYPE_COMMAND.
(register_command): New function.
(wait_for_child): Remove.
(propagate_child_exit): New function.
(wordsplit_string): New function.
(send_msg): Register command.
In child: Reset all signals; call propagate_child_exit.
(run_command): Do not reset SIGPIPE.
Register command.
(progman_cleanup): Handle TYPE_COMMAND.
(progman_stop_component): For sleeping components, reset
v.p.count.
(progman_dump_stats): Handle TYPE_COMMAND.
|
|
* src/diag.c (diag_output): New variable.
(diag_setup): New function.
(vlogmsg): Use diag_output to decide where to
output the message. Output to both stderr and
syslog if diag_output says so.
* src/pies.c (log_to_stderr): Rename to log_to_stderr_only.
All uses changed.
(log_setup): Remove.
(main): Use diag_setup to initialize diagnostics.
* src/pies.h (log_to_stderr): Remove.
(DIAG_TO_SYSLOG, DIAG_TO_STDERR): New defines.
(diag_setup): New function.
|
|
* doc/Config (EXTRA_HEAD, AFTER_BODY_OPEN): Use qq{} to quote contents.
* doc/fdl.texi: Upgrade to v.1.3.
* doc/pies.texi: Likewise.
|
|
|
|
* doc/Config: Fix links in the main menu.
|
|
* configure.ac, NEWS: Raise version number.
|
|
* po/POTFILES.in: Add missing files.
* src/acl.c, src/meta1lex.l, src/pies.c,
src/progman.c, src/socket.c,
src/userprivs.c: Fix diagnostic messages.
|
|
* doc/Config, doc/gendocs_template: Update for the new
layout.
|
|
* src/meta1lex.l (%top): Include config.h to accomodate for the
latest gnulib. This requires flex >= 2.5.30
* grecs: Upgrade.
|
|
* src/pies.h (progman_wake_sleeping): Takes one argument.
* src/progman.c (progman_wake_sleeping): Takes one argument.
Account for possible clock inaccuracy.
(progman_cleanup): Print correct signal number in the diagnostics.
Update call to progman_wake_sleeping.
* src/pies.c (main): Update call to progman_wake_sleeping.
|
|
* doc/Config: New file. Configuration for texi2html.
* doc/Makefile.am (manual): Update rule.
(man-tar): New rule.
* doc/gendocs_template: Rewrite using the new site
layout.
* doc/pies.texi: Minor changes.
|
|
* NEWS: Update.
* bootstrap.conf: Call submodule init unconditionally.
* doc/pies.texi: Minor changes.
|
|
* src/acl.c (acl_hasher): Fix signature.
* src/progman.c (notify): Fix warnings.
|
|
|
|
* configure.ac (AC_CHECK_FUNCS): Remove checks for unused functions.
* gnulib.modules: Add fprintftime. Remove quote.
* src/pies.c (pidfile_read): Do not print error message if 'No such
process' is returned.
(main): Set default quoting style to shell.
* src/pies.h: Include fprintftime.h.
* src/progman.c (prog_start, progman_dump_stats): Quote arguments on
output.
(progman_dump_stats): Use fprintftime.
|
|
|
|
* Makefile.am (dist-hook,alpha,alphacheck): New rules.
(ChangeLog): Be silent.
* NEWS: Update.
* doc/pies.texi: Update.
* gnulib.modules: Add quote and quotearg
* src/pies.c: Implement -D and -U options. Improve --help
output.
* src/pies.h: Include quotearg.h
|
|
* configure.ac (AC_CHECK_FUNCS): Check for vsyslog.
* src/diag.c (syslog_printer) [!HAVE_VSYSLOG]: call syslog.
* src/pies.c (component_keywords): Remove settle-timeout,
replace it with pass-fd-timeout.
(main): Force syslog logging if !foreground.
Do not close first three fds before restarting
if log_to_stderr is set.
* src/pies.h (DEFAULT_PASS_FD_TIMEOUT): New constant.
(struct component): Replace settle_timeout with
pass_fd_timeout. All uses changed.
(pass_fd): Pass timeout as argument.
* src/progman.c (prog_start): Remove hardcoded sleep before
calling pass_fd. Update call to pass_fd.
(prog_start_prerequisites): Remove handling of settle_timeout.
* src/socket.c (open_unix_socket): Remove.
(pass_fd): Rewrite.
* doc/pies.texi: Update.
|
|
* doc/pies.texi: Final cleanup.
* doc/usr-acl.texi: Minor fix.
|
|
* doc/pies.texi: More fixes.
* pp-setup: Remove MFD leftovers.
|