Commit Diff


commit - 4f3b85e6d72b0df0b6264baf711290af4661807d
commit + 83a2644bfb1d8683faf024275a98600b0edc5063
blob - 14ef23d1f409e314958395b9eaedbc035d37f763
blob + c793b26130b0d4e07c95ebde7bc977155a463c60
--- config.c
+++ config.c
@@ -479,9 +479,9 @@ config_crypto_recv_kp(struct conf *conf, struct imsg *
 	/* XXX: check for duplicates */
 
 	if ((fd = imsg_get_fd(imsg)) == -1)
-		fatalx("no fd for imsg %d", imsg->hdr.type);
+		fatalx("%s: no fd for imsg %d", __func__, imsg_get_type(imsg));
 
-	switch (imsg->hdr.type) {
+	switch (imsg_get_type(imsg)) {
 	case IMSG_RECONF_CERT:
 		if (pki != NULL)
 			fatalx("imsg in wrong order; pki is not NULL");
@@ -497,8 +497,8 @@ config_crypto_recv_kp(struct conf *conf, struct imsg *
 
 	case IMSG_RECONF_KEY:
 		if (pki == NULL)
-			fatalx("got key without cert beforehand %d",
-			    imsg->hdr.type);
+			fatalx("%s: RECONF_KEY: got key without cert",
+			    __func__);
 		if (load_file(fd, &d, &len) == -1)
 			fatalx("failed to load private key");
 		if ((pki->pkey = ssl_load_pkey(d, len)) == NULL)
@@ -533,7 +533,7 @@ config_recv(struct conf *conf, struct imsg *imsg)
 	size_t		 len;
 	int		 fd;
 
-	switch (imsg->hdr.type) {
+	switch (imsg_get_type(imsg)) {
 	case IMSG_RECONF_START:
 		config_purge(conf);
 		h = NULL;
blob - ab6753e85c31bfcc500f89064bd0e9824f6e851f
blob + 8d6df327148db82a1a99b4c84a4397faef47c401
--- crypto.c
+++ crypto.c
@@ -80,7 +80,7 @@ crypto_init(struct privsep *ps, struct privsep_proc *p
 static int
 crypto_dispatch_parent(int fd, struct privsep_proc *p, struct imsg *imsg)
 {
-	switch (imsg->hdr.type) {
+	switch (imsg_get_type(imsg)) {
 	case IMSG_RECONF_START:
 	case IMSG_RECONF_CERT:
 	case IMSG_RECONF_KEY:
@@ -121,18 +121,20 @@ crypto_dispatch_server(int fd, struct privsep_proc *p,
 	struct iovec		 iov[2];
 	const void		*from;
 	unsigned char		*to;
-	int			 n, ret;
+	int			 n, ret, type;
 	unsigned int		 len;
+	pid_t			 pid;
 
 	if (imsg_get_ibuf(imsg, &ibuf) == -1)
 		fatalx("%s: couldn't get an ibuf", __func__);
 
-	switch (imsg->hdr.type) {
+	pid = imsg_get_pid(imsg);
+	switch (type = imsg_get_type(imsg)) {
 	case IMSG_CRYPTO_RSA_PRIVENC:
 	case IMSG_CRYPTO_RSA_PRIVDEC:
 		if (ibuf_get(&ibuf, &req, sizeof(req)) == -1 ||
 		    ibuf_size(&ibuf) != req.flen)
-			fatalx("size mismatch for imsg %d", imsg->hdr.type);
+			fatalx("size mismatch for imsg %d", type);
 		from = ibuf_data(&ibuf);
 
 		if ((pkey = get_pkey(req.hash)) == NULL ||
@@ -142,7 +144,7 @@ crypto_dispatch_server(int fd, struct privsep_proc *p,
 		if ((to = calloc(1, req.tlen)) == NULL)
 			fatal("calloc");
 
-		if (imsg->hdr.type == IMSG_CRYPTO_RSA_PRIVENC)
+		if (type == IMSG_CRYPTO_RSA_PRIVENC)
 			ret = RSA_private_encrypt(req.flen, from,
 			    to, rsa, req.padding);
 		else
@@ -166,12 +168,12 @@ crypto_dispatch_server(int fd, struct privsep_proc *p,
 			n++;
 		}
 
-		log_debug("replying to server #%d", imsg->hdr.pid);
-		if (proc_composev_imsg(ps, PROC_SERVER, imsg->hdr.pid - 1,
-		    imsg->hdr.type, 0, -1, iov, n) == -1)
+		log_debug("replying to server #%d", pid);
+		if (proc_composev_imsg(ps, PROC_SERVER, pid - 1,
+		    type, 0, -1, iov, n) == -1)
 			fatal("proc_composev_imsg");
 
-		if (proc_flush_imsg(ps, PROC_SERVER, imsg->hdr.pid - 1) == -1)
+		if (proc_flush_imsg(ps, PROC_SERVER, pid - 1) == -1)
 			fatal("proc_flush_imsg");
 
 		free(to);
@@ -181,7 +183,7 @@ crypto_dispatch_server(int fd, struct privsep_proc *p,
 	case IMSG_CRYPTO_ECDSA_SIGN:
 		if (ibuf_get(&ibuf, &req, sizeof(req)) == -1 ||
 		    ibuf_size(&ibuf) != req.flen)
-			fatalx("size mismatch for imsg %d", imsg->hdr.type);
+			fatalx("size mismatch for imsg %d", type);
 		from = ibuf_data(&ibuf);
 
 		if ((pkey = get_pkey(req.hash)) == NULL ||
@@ -210,12 +212,12 @@ crypto_dispatch_server(int fd, struct privsep_proc *p,
 			n++;
 		}
 
-		log_debug("replying to server #%d", imsg->hdr.pid);
-		if (proc_composev_imsg(ps, PROC_SERVER, imsg->hdr.pid - 1,
-		    imsg->hdr.type, 0, -1, iov, n) == -1)
+		log_debug("replying to server #%d", pid);
+		if (proc_composev_imsg(ps, PROC_SERVER, pid - 1,
+		    type, 0, -1, iov, n) == -1)
 			fatal("proc_composev_imsg");
 
-		if (proc_flush_imsg(ps, PROC_SERVER, imsg->hdr.pid - 1) == -1)
+		if (proc_flush_imsg(ps, PROC_SERVER, pid - 1) == -1)
 			fatal("proc_flush_imsg");
 
 		free(to);
blob - 54441f35a454db0b016f9d39c1e8ea07d88e5dcd
blob + f264670644d23472d20fbb0213bae14a30dbd71c
--- gmid.c
+++ gmid.c
@@ -526,7 +526,7 @@ main_dispatch_server(int fd, struct privsep_proc *p, s
 	struct privsep	*ps = p->p_ps;
 	struct conf	*conf = ps->ps_env;
 
-	switch (imsg->hdr.type) {
+	switch (imsg_get_type(imsg)) {
 	case IMSG_RECONF_DONE:
 		main_configure_done(conf);
 		break;
@@ -543,7 +543,7 @@ main_dispatch_crypto(int fd, struct privsep_proc *p, s
 	struct privsep	*ps = p->p_ps;
 	struct conf	*conf = ps->ps_env;
 
-	switch (imsg->hdr.type) {
+	switch (imsg_get_type(imsg)) {
 	case IMSG_RECONF_DONE:
 		main_configure_done(conf);
 		break;
@@ -560,7 +560,7 @@ main_dispatch_logger(int fd, struct privsep_proc *p, s
 	struct privsep	*ps = p->p_ps;
 	struct conf	*conf = ps->ps_env;
 
-	switch (imsg->hdr.type) {
+	switch (imsg_get_type(imsg)) {
 	case IMSG_RECONF_DONE:
 		main_configure_done(conf);
 		break;
blob - 1398686ae7373fc7b841108deaf5078f6806b5f6
blob + c4bd96bc1dd7282e955ae650a338e7d5711b8d63
--- logger.c
+++ logger.c
@@ -79,7 +79,7 @@ logger_shutdown(void)
 static int
 logger_dispatch_parent(int fd, struct privsep_proc *p, struct imsg *imsg)
 {
-	switch (imsg->hdr.type) {
+	switch (imsg_get_type(imsg)) {
 	case IMSG_LOG_FACILITY:
 		if (imsg_get_data(imsg, &facility, sizeof(facility)) == -1)
 			fatal("corrupted IMSG_LOG_SYSLOG");
@@ -108,7 +108,7 @@ logger_dispatch_server(int fd, struct privsep_proc *p,
 	size_t datalen = 0;
 	struct ibuf ibuf;
 
-	switch (imsg->hdr.type) {
+	switch (imsg_get_type(imsg)) {
 	case IMSG_LOG_REQUEST:
 		if (imsg_get_ibuf(imsg, &ibuf) == -1 ||
 		    (datalen = ibuf_size(&ibuf)) == 0)
blob - b6b1cfb8be3c8fc37b82be69b1b993ee37c5cdae
blob + 748ac45be4c344acde2f1e7c5d3553c364f0d0d9
--- server.c
+++ server.c
@@ -1496,7 +1496,7 @@ server_dispatch_parent(int fd, struct privsep_proc *p,
 	struct privsep	*ps = p->p_ps;
 	struct conf	*conf = ps->ps_env;
 
-	switch (imsg->hdr.type) {
+	switch (imsg_get_type(imsg)) {
 	case IMSG_RECONF_START:
 	case IMSG_RECONF_LOG_FMT:
 	case IMSG_RECONF_MIME: