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. --- lib/url.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'lib/url.c') diff --git a/lib/url.c b/lib/url.c index 41f5c04..11d220d 100644 --- a/lib/url.c +++ b/lib/url.c @@ -325,7 +325,7 @@ pies_url_copy (struct pies_url **purl, struct pies_url *src) } int -pies_url_create (struct pies_url **purl, const char *str) +pies_basic_url_create (struct pies_url **purl, const char *str) { int rc; struct pies_url *url; @@ -344,6 +344,23 @@ pies_url_create (struct pies_url **purl, const char *str) } return rc; } + +extern char **environ; + +int +pies_url_create (struct pies_url **purl, const char *str) +{ + struct wordsplit ws; + int rc; + + ws.ws_env = (const char**) environ; + if (wordsplit (str, &ws, + WRDSF_NOCMD | WRDSF_QUOTE | WRDSF_NOSPLIT | WRDSF_ENV)) + return -1; + rc = pies_basic_url_create (purl, ws.ws_wordv[0]); + wordsplit_free (&ws); + return rc; +} const char * pies_url_get_arg (struct pies_url *url, const char *argname) -- cgit v1.2.1