Age | Commit message (Collapse) | Author | Files |
|
* src/pies.c (str_to_cf): New keyword "siggroup".
* src/pies.h (CF_SIGGROUP): New constant.
* src/progman.c (prog_start): Call setsid in child.
(check_stopping): If CF_SIGGROUP, send signal to
the process group.
(prog_stop): If CF_SIGGROUP, send signal to
the process group.
(send_msg,run_command): Call setsid in child.
(progman_cleanup): Bugfix: check if prog->v.p.cclass
is not NULL (it can be, for UDP services).
|
|
* src/inetd-bi.c (fd_write): Remove. Use fd_report instead.
* src/pies.c (component_keywords): New keywords: max-instances-message,
max-ip-connections, max-ip-connections-message, access-denied-message.
* src/pies.h (struct component): New members: max_ip_connections,
access_denied_message, max_instances_message, max_ip_connections_message.
(fd_report): New extern.
* src/progman.c (conn_class): New struct.
(struct prog.p): New member cclass.
(conn_tab): New static.
(conn_class_lookup, conn_class_report): New functions.
(progman_run_comp): Set cclass.
(fd_report): New function.
(_prog_accept): In case of failure (access denied, etc.)
optionally send response strings over the fd.
Limit number of connections per socket (IP).
(progman_cleanup): Update cclass counter.
|
|
* 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.
|
|
* 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.
|
|
* 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/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.
|
|
|
|
* 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.
|
|
* 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.
|
|
* README: Update.
* configure.ac: Change bug-reporting address.
* doc/pies.texi: Minor fixes.
* src/pies.c: New configuration statements: mailer-program
and mailer-command-line.
(mailer_program, mailer_command_line)
(mailer_argc, mailer_argv): New globals.
* src/pies.h (mailer_program, mailer_command_line)
(mailer_argc, mailer_argv): New globals.
* src/progman.c (destroy_prog): Bugfix: update master
program when destroying a retranslator.
(send_msg): Several bugfixes. Use mailer_argc, mailer_argv
instead of hardcoding sendmail command line. Remove
invalid recipient addresses from the resulting command line.
|
|
* Makefile.am (ACLOCAL_AMFLAGS): Add grecs/am
* bootstrap.conf: Skip po.
Initialize submodule.
* configure.ac: Mailutils no longer needed.
(AC_CONFIG_FILES): Add new subdirs.
* gnulib.modules: Add more modules. Arrange entries
alphabetically.
* lib/Makefile.am: Rename library to libpies.
* lib/libpies.h (mf_privs)
(switch_to_privs, get_user_groups)
(mf_priv_setup, mf_epriv_setup): Move to src/pies.h
(config_array_to_argv, config_array_to_string)
(config_cb_timeout): Remove.
(tokendef): New struct.
(strtotok_len, strtotok_len_ci)
(strtotok, strtotok_ci, toktostr): New prototypes.
* lib/nls.c: Remove call to mu_init_nls.
* src/acl.c: New file.
* src/addrfmt.c: New file.
* src/diag.c: New file.
* src/meta.c: New file.
* src/url.c: New file.
* src/userprivs.c: New file.
* src/acl.h: New file.
* src/pp-setup: New file.
* src/Makefile.am (pies_SOURCES): Add acl.c,
addrfmt.c, diag.c, meta.c, url.c, userprivs.c.
(noinst_HEADERS): Add acl.h.
(inc_DATA): Add pp-setup.
* src/limits.c, src/meta1gram.y,
src/meta1lex.h, src/meta1lex.l,
src/pies.c, src/pies.h, src/progman.c,
src/socket.c, src/userprivs.c: Remove calls to
functions from Mailutils.
|
|
|