aboutsummaryrefslogtreecommitdiff
path: root/httpd/control.c
diff options
context:
space:
mode:
Diffstat (limited to 'httpd/control.c')
-rw-r--r--httpd/control.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/httpd/control.c b/httpd/control.c
index c29cd5b..7eea19a 100644
--- a/httpd/control.c
+++ b/httpd/control.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: control.c,v 1.9 2015/12/05 13:15:27 claudio Exp $ */
+/* $OpenBSD: control.c,v 1.13 2017/01/09 14:49:22 reyk Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -181,9 +181,10 @@ control_connbyfd(int fd)
{
struct ctl_conn *c;
- for (c = TAILQ_FIRST(&ctl_conns); c != NULL && c->iev.ibuf.fd != fd;
- c = TAILQ_NEXT(c, entry))
- ; /* nothing */
+ TAILQ_FOREACH(c, &ctl_conns, entry) {
+ if (c->iev.ibuf.fd == fd)
+ break;
+ }
return (c);
}
@@ -273,7 +274,8 @@ control_dispatch_imsg(int fd, short event, void *arg)
"client requested notify more than once",
__func__);
imsg_compose_event(&c->iev, IMSG_CTL_FAIL,
- 0, 0, -1, NULL, 0);
+ 0, env->sc_ps->ps_instance + 1, -1,
+ NULL, 0);
break;
}
c->flags |= CTL_CONN_NOTIFY;
@@ -287,8 +289,8 @@ control_dispatch_imsg(int fd, short event, void *arg)
proc_forward_imsg(env->sc_ps, &imsg, PROC_SERVER, -1);
memcpy(imsg.data, &verbose, sizeof(verbose));
- control_imsg_forward(&imsg);
- log_verbose(verbose);
+ control_imsg_forward(env->sc_ps, &imsg);
+ log_setverbose(verbose);
break;
default:
log_debug("%s: error handling imsg %d",
@@ -302,13 +304,13 @@ control_dispatch_imsg(int fd, short event, void *arg)
}
void
-control_imsg_forward(struct imsg *imsg)
+control_imsg_forward(struct privsep *ps, struct imsg *imsg)
{
struct ctl_conn *c;
TAILQ_FOREACH(c, &ctl_conns, entry)
if (c->flags & CTL_CONN_NOTIFY)
imsg_compose_event(&c->iev, imsg->hdr.type,
- 0, imsg->hdr.pid, -1, imsg->data,
+ 0, ps->ps_instance + 1, -1, imsg->data,
imsg->hdr.len - IMSG_HEADER_SIZE);
}