From 3325fed2895f079486b88c65409c73153fec306f Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Fri, 8 Jan 2016 11:29:13 +0200 Subject: Enable control socket when run as init process. * configure.ac (DEFAULT_CONTROL_URL): Rename to DEFAULT_PIES_CONTROL_URL. Change default value. (DEFAULT_INIT_CONTROL_URL): New subst variable. * lib/libpies.h (pies_basic_url_create): New prototype. * lib/url.c (pies_basic_url_create): New function (renamed from pies_url_create). (pies_url_create): Expand variable references in the input string. * src/Makefile.am (AM_CPPFLAGS): Pass DEFAULT_INIT_CONTROL_URL * src/ctl.c (pies_control_url) (ctl_open): Don't exit on errors, return -1 instead. * src/pies.c (default_control_url): New variable. (config_parse): Create default socket url. (pies_control_url): New macro (main): Set environment variable PIES_INSTANCE. Try to open control socket in init process mode as well. * src/pies.h (default_control_url): New extern. (ctl_open): Change prototype. (pies_control_url): Remove. * src/piesctl-cl.opt (parse_options): Set environment variable PIES_INSTANCE. * src/piesctl.c (parse_config): Use pies_url_create and DEFAULT_PIES_CONTROL_URL when falling back to the default socket. --- src/ctl.c | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) (limited to 'src/ctl.c') diff --git a/src/ctl.c b/src/ctl.c index 78490cb..46038a2 100644 --- a/src/ctl.c +++ b/src/ctl.c @@ -1233,45 +1233,29 @@ ctl_accept (int socket, void *data) return 0; } -char const * -pies_control_url (void) -{ - if (!control.url) - { - char *str = xasprintf (DEFAULT_CONTROL_URL, instance); - if (pies_url_create (&control.url, str)) - { - logmsg (LOG_CRIT, _("%s: cannot create URL: %s"), - str, strerror (errno)); - exit (EX_OSERR); - } - free (str); - } - return control.url->string; -} - -void -ctl_open () +int +ctl_open (void) { int fd; - pies_control_url (); fd = create_socket (control.url, SOCK_STREAM, NULL, 077); if (fd == -1) { logmsg (LOG_CRIT, _("can't create control socket %s"), control.url->string); - exit (EX_UNAVAILABLE); + return -1; } if (listen (fd, 8)) { logmsg (LOG_CRIT, _("can't listen on control socket %s: %s"), control.url->string, strerror (errno)); - exit (EX_UNAVAILABLE); + return -1; } register_socket (fd, ctl_accept, NULL, NULL, NULL); + + return 0; } static void -- cgit v1.2.1