diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | configure.ac | 7 | ||||
-rw-r--r-- | lib/libpies.h | 1 | ||||
-rw-r--r-- | lib/url.c | 19 | ||||
-rw-r--r-- | po/.gitignore | 1 | ||||
-rw-r--r-- | src/Makefile.am | 3 | ||||
-rw-r--r-- | src/ctl.c | 28 | ||||
-rw-r--r-- | src/pies.c | 28 | ||||
-rw-r--r-- | src/pies.h | 4 | ||||
-rw-r--r-- | src/piesctl-cl.opt | 1 | ||||
-rw-r--r-- | src/piesctl.c | 11 |
11 files changed, 64 insertions, 40 deletions
@@ -1 +1,2 @@ | |||
1 | /ABOUT-NLS~ | ||
1 | *.a | 2 | *.a |
diff --git a/configure.ac b/configure.ac index 3b34059..d6d4e4f 100644 --- a/configure.ac +++ b/configure.ac | |||
@@ -131,4 +131,7 @@ AH_BOTTOM([ | |||
131 | 131 | ||
132 | AC_SUBST([DEFAULT_CONTROL_URL],[unix:///tmp/%s.ctl]) | 132 | AC_SUBST([DEFAULT_PIES_CONTROL_URL],['unix:///tmp/$${PIES_INSTANCE}.ctl']) |
133 | AC_ARG_VAR([DEFAULT_CONTROL_URL], | 133 | AC_ARG_VAR([DEFAULT_PIES_CONTROL_URL], |
134 | [URL of the default control socket]) | ||
135 | AC_SUBST([DEFAULT_INIT_CONTROL_URL],['unix:///dev/init.ctl']) | ||
136 | AC_ARG_VAR([DEFAULT_INIT_CONTROL_URL], | ||
134 | [URL of the default control socket]) | 137 | [URL of the default control socket]) |
diff --git a/lib/libpies.h b/lib/libpies.h index b04182e..1c83b8e 100644 --- a/lib/libpies.h +++ b/lib/libpies.h | |||
@@ -73,2 +73,3 @@ struct pies_url | |||
73 | 73 | ||
74 | int pies_basic_url_create (struct pies_url **purl, const char *str); | ||
74 | int pies_url_create (struct pies_url **purl, const char *str); | 75 | int pies_url_create (struct pies_url **purl, const char *str); |
@@ -327,3 +327,3 @@ pies_url_copy (struct pies_url **purl, struct pies_url *src) | |||
327 | int | 327 | int |
328 | pies_url_create (struct pies_url **purl, const char *str) | 328 | pies_basic_url_create (struct pies_url **purl, const char *str) |
329 | { | 329 | { |
@@ -346,2 +346,19 @@ pies_url_create (struct pies_url **purl, const char *str) | |||
346 | } | 346 | } |
347 | |||
348 | extern char **environ; | ||
349 | |||
350 | int | ||
351 | pies_url_create (struct pies_url **purl, const char *str) | ||
352 | { | ||
353 | struct wordsplit ws; | ||
354 | int rc; | ||
355 | |||
356 | ws.ws_env = (const char**) environ; | ||
357 | if (wordsplit (str, &ws, | ||
358 | WRDSF_NOCMD | WRDSF_QUOTE | WRDSF_NOSPLIT | WRDSF_ENV)) | ||
359 | return -1; | ||
360 | rc = pies_basic_url_create (purl, ws.ws_wordv[0]); | ||
361 | wordsplit_free (&ws); | ||
362 | return rc; | ||
363 | } | ||
347 | 364 | ||
diff --git a/po/.gitignore b/po/.gitignore index d00dd8d..b45a955 100644 --- a/po/.gitignore +++ b/po/.gitignore | |||
@@ -1 +1,2 @@ | |||
1 | /Rules-quot~ | ||
1 | /Makevars.template~ | 2 | /Makevars.template~ |
diff --git a/src/Makefile.am b/src/Makefile.am index 9fb29d2..01149c6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am | |||
@@ -89,3 +89,4 @@ AM_CPPFLAGS=\ | |||
89 | -DDEFAULT_STATE_DIR=\"$(pkgstatedir)\"\ | 89 | -DDEFAULT_STATE_DIR=\"$(pkgstatedir)\"\ |
90 | -DDEFAULT_CONTROL_URL=\"$(DEFAULT_CONTROL_URL)\" | 90 | -DDEFAULT_PIES_CONTROL_URL='"$(DEFAULT_PIES_CONTROL_URL)"'\ |
91 | -DDEFAULT_INIT_CONTROL_URL='"$(DEFAULT_INIT_CONTROL_URL)"' | ||
91 | 92 | ||
@@ -1235,21 +1235,4 @@ ctl_accept (int socket, void *data) | |||
1235 | 1235 | ||
1236 | char const * | 1236 | int |
1237 | pies_control_url (void) | 1237 | ctl_open (void) |
1238 | { | ||
1239 | if (!control.url) | ||
1240 | { | ||
1241 | char *str = xasprintf (DEFAULT_CONTROL_URL, instance); | ||
1242 | if (pies_url_create (&control.url, str)) | ||
1243 | { | ||
1244 | logmsg (LOG_CRIT, _("%s: cannot create URL: %s"), | ||
1245 | str, strerror (errno)); | ||
1246 | exit (EX_OSERR); | ||
1247 | } | ||
1248 | free (str); | ||
1249 | } | ||
1250 | return control.url->string; | ||
1251 | } | ||
1252 | |||
1253 | void | ||
1254 | ctl_open () | ||
1255 | { | 1238 | { |
@@ -1257,3 +1240,2 @@ ctl_open () | |||
1257 | 1240 | ||
1258 | pies_control_url (); | ||
1259 | fd = create_socket (control.url, SOCK_STREAM, NULL, 077); | 1241 | fd = create_socket (control.url, SOCK_STREAM, NULL, 077); |
@@ -1263,3 +1245,3 @@ ctl_open () | |||
1263 | control.url->string); | 1245 | control.url->string); |
1264 | exit (EX_UNAVAILABLE); | 1246 | return -1; |
1265 | } | 1247 | } |
@@ -1270,3 +1252,3 @@ ctl_open () | |||
1270 | control.url->string, strerror (errno)); | 1252 | control.url->string, strerror (errno)); |
1271 | exit (EX_UNAVAILABLE); | 1253 | return -1; |
1272 | } | 1254 | } |
@@ -1274,2 +1256,4 @@ ctl_open () | |||
1274 | register_socket (fd, ctl_accept, NULL, NULL, NULL); | 1256 | register_socket (fd, ctl_accept, NULL, NULL, NULL); |
1257 | |||
1258 | return 0; | ||
1275 | } | 1259 | } |
@@ -59,2 +59,7 @@ int mailer_argc; | |||
59 | char **mailer_argv; | 59 | char **mailer_argv; |
60 | |||
61 | char *default_control_url[2] = { | ||
62 | DEFAULT_PIES_CONTROL_URL, | ||
63 | DEFAULT_INIT_CONTROL_URL | ||
64 | }; | ||
60 | 65 | ||
@@ -1751,2 +1756,14 @@ config_parse (char const *name) | |||
1751 | config_error (); | 1756 | config_error (); |
1757 | |||
1758 | if (!control.url) | ||
1759 | { | ||
1760 | char const *str = default_control_url[init_process]; | ||
1761 | if (pies_url_create (&control.url, str)) | ||
1762 | { | ||
1763 | logmsg (LOG_CRIT, _("%s: cannot create control URL: %s"), | ||
1764 | str, strerror (errno)); | ||
1765 | if (!init_process) | ||
1766 | exit (EX_OSERR); | ||
1767 | } | ||
1768 | } | ||
1752 | 1769 | ||
@@ -1933,2 +1950,4 @@ pies_check_status (pid_t *ppid) | |||
1933 | 1950 | ||
1951 | #define pies_control_url() control.url->string | ||
1952 | |||
1934 | void | 1953 | void |
@@ -2232,3 +2251,3 @@ main (int argc, char **argv) | |||
2232 | } | 2251 | } |
2233 | 2252 | setenv ("PIES_INSTANCE", instance, 1); | |
2234 | log_tag = instance; | 2253 | log_tag = instance; |
@@ -2373,5 +2392,8 @@ main (int argc, char **argv) | |||
2373 | 2392 | ||
2374 | if (!init_process) | 2393 | if (init_process) |
2394 | ctl_open (); | ||
2395 | else | ||
2375 | { | 2396 | { |
2376 | ctl_open (); | 2397 | if (ctl_open ()) |
2398 | exit (EX_UNAVAILABLE); | ||
2377 | create_pidfile (pidfile); | 2399 | create_pidfile (pidfile); |
@@ -294,2 +294,3 @@ extern size_t pies_master_argc; | |||
294 | extern char **pies_master_argv; | 294 | extern char **pies_master_argv; |
295 | extern char *default_control_url[2]; | ||
295 | 296 | ||
@@ -551,3 +552,2 @@ extern struct control control; | |||
551 | 552 | ||
552 | void ctl_open(void); | 553 | int ctl_open(void); |
553 | char const *pies_control_url (void); | ||
diff --git a/src/piesctl-cl.opt b/src/piesctl-cl.opt index b8e4fc1..b787a5c 100644 --- a/src/piesctl-cl.opt +++ b/src/piesctl-cl.opt | |||
@@ -97,2 +97,3 @@ parse_options(int argc, char *argv[], int *index) | |||
97 | GETOPT(argc, argv, *index) | 97 | GETOPT(argc, argv, *index) |
98 | setenv ("PIES_INSTANCE", instance, 1); | ||
98 | } | 99 | } |
diff --git a/src/piesctl.c b/src/piesctl.c index 301e7ac..dba8988 100644 --- a/src/piesctl.c +++ b/src/piesctl.c | |||
@@ -190,13 +190,6 @@ parse_config () | |||
190 | { | 190 | { |
191 | int rc; | 191 | if (pies_url_create (&url, DEFAULT_PIES_CONTROL_URL)) |
192 | size_t len = 0; | ||
193 | file_name = NULL; | ||
194 | grecs_asprintf (&file_name, &len, DEFAULT_CONTROL_URL, instance); | ||
195 | rc = pies_url_create (&url, file_name); | ||
196 | free (file_name); | ||
197 | |||
198 | if (rc) | ||
199 | { | 192 | { |
200 | grecs_error (NULL, 0, _("%s: cannot create URL: %s"), | 193 | grecs_error (NULL, 0, _("%s: cannot create URL: %s"), |
201 | DEFAULT_CONTROL_URL, strerror (errno)); | 194 | DEFAULT_PIES_CONTROL_URL, strerror (errno)); |
202 | exit (EX_SOFTWARE); | 195 | exit (EX_SOFTWARE); |