aboutsummaryrefslogtreecommitdiff
path: root/httpd/logger.c
diff options
context:
space:
mode:
Diffstat (limited to 'httpd/logger.c')
-rw-r--r--httpd/logger.c29
1 files changed, 11 insertions, 18 deletions
diff --git a/httpd/logger.c b/httpd/logger.c
index a212fb1..6d469b2 100644
--- a/httpd/logger.c
+++ b/httpd/logger.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: logger.c,v 1.15 2015/12/02 15:13:00 reyk Exp $ */
+/* $OpenBSD: logger.c,v 1.20 2016/09/01 10:59:38 reyk Exp $ */
/*
* Copyright (c) 2014 Reyk Floeter <reyk@openbsd.org>
@@ -16,7 +16,6 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-#include <sys/param.h> /* nitems */
#include <sys/types.h>
#include <sys/queue.h>
#include <sys/uio.h>
@@ -44,8 +43,6 @@ void logger_init(struct privsep *, struct privsep_proc *p, void *);
int logger_start(void);
int logger_log(struct imsg *);
-static struct httpd *env = NULL;
-int proc_id;
static uint32_t last_log_id = 0;
static struct privsep_proc procs[] = {
@@ -53,18 +50,17 @@ static struct privsep_proc procs[] = {
{ "server", PROC_SERVER, logger_dispatch_server }
};
-pid_t
+void
logger(struct privsep *ps, struct privsep_proc *p)
{
- env = ps->ps_env;
- return (proc_run(ps, p, procs, nitems(procs), logger_init, NULL));
+ proc_run(ps, p, procs, nitems(procs), logger_init, NULL);
}
void
logger_shutdown(void)
{
logger_close();
- config_purge(env, CONFIG_ALL);
+ config_purge(httpd_env, CONFIG_ALL);
}
void
@@ -76,9 +72,6 @@ logger_init(struct privsep *ps, struct privsep_proc *p, void *arg)
if (config_init(ps->ps_env) == -1)
fatal("failed to initialize configuration");
- /* Set to current prefork id */
- proc_id = p->p_instance;
-
/* We use a custom shutdown callback */
p->p_shutdown = logger_shutdown;
@@ -121,7 +114,7 @@ logger_open_file(const char *name)
iov[1].iov_base = log->log_name;
iov[1].iov_len = strlen(log->log_name) + 1;
- if (proc_composev(env->sc_ps, PROC_PARENT, IMSG_LOG_OPEN,
+ if (proc_composev(httpd_env->sc_ps, PROC_PARENT, IMSG_LOG_OPEN,
iov, 2) != 0) {
log_warn("%s: failed to compose IMSG_LOG_OPEN imsg", __func__);
goto err;
@@ -174,7 +167,7 @@ logger_open_priv(struct imsg *imsg)
if ((size_t)snprintf(name, sizeof(name), "/%s", p) >= sizeof(name))
return (-1);
- if ((len = strlcpy(path, env->sc_logdir, sizeof(path)))
+ if ((len = strlcpy(path, httpd_env->sc_logdir, sizeof(path)))
>= sizeof(path))
return (-1);
@@ -191,8 +184,8 @@ logger_open_priv(struct imsg *imsg)
return (-1);
}
- proc_compose_imsg(env->sc_ps, PROC_LOGGER, -1, IMSG_LOG_OPEN, -1, fd,
- &id, sizeof(id));
+ proc_compose_imsg(httpd_env->sc_ps, PROC_LOGGER, -1,
+ IMSG_LOG_OPEN, -1, fd, &id, sizeof(id));
DPRINTF("%s: opened log file %s, fd %d", __func__, path, fd);
@@ -286,17 +279,17 @@ logger_dispatch_parent(int fd, struct privsep_proc *p, struct imsg *imsg)
{
switch (imsg->hdr.type) {
case IMSG_CFG_SERVER:
- config_getserver(env, imsg);
+ config_getserver(httpd_env, imsg);
break;
case IMSG_CFG_DONE:
- config_getcfg(env, imsg);
+ config_getcfg(httpd_env, imsg);
break;
case IMSG_CTL_START:
case IMSG_CTL_REOPEN:
logger_start();
break;
case IMSG_CTL_RESET:
- config_getreset(env, imsg);
+ config_getreset(httpd_env, imsg);
break;
case IMSG_LOG_OPEN:
return (logger_open_fd(imsg));