Commit Diff


commit - 3cb4e21c391ae397ec7d65fe4728cca2bea85320
commit + a80d2bca13974bb0fe9dab49a777c3fe05abf543
blob - 2b6985542b6d7383f5f452adbe52744d5ef88ad6
blob + d35a0bab0e6874fa81a7694b7b16c07a73b88fab
--- kamid/control.c
+++ kamid/control.c
@@ -33,7 +33,6 @@
 
 #include "control.h"
 #include "kamid.h"
-#include "listener.h"
 #include "log.h"
 #include "utils.h"
 
@@ -253,18 +252,17 @@ control_dispatch_imsg(int fd, short event, void *bula)
 
 		switch (imsg.hdr.type) {
 		case IMSG_CTL_RELOAD:
-			listener_imsg_compose_main(imsg.hdr.type, 0, NULL, 0);
+			if (main_reload() == -1)
+				log_warnx("configuration reload failed");
 			break;
 		case IMSG_CTL_LOG_VERBOSE:
 			if (IMSG_DATA_SIZE(imsg) != sizeof(verbose))
 				break;
 
 			/* Forward to all other processes. */
-			listener_imsg_compose_main(imsg.hdr.type, imsg.hdr.pid,
-			    imsg.data, IMSG_DATA_SIZE(imsg));
+			main_imsg_compose_listener(imsg.hdr.type, -1,
+			    imsg.hdr.pid, imsg.data, IMSG_DATA_SIZE(imsg));
 
-			/* XXX: send to every client? */
-
 			memcpy(&verbose, imsg.data, sizeof(verbose));
 			log_setverbose(verbose);
 			break;
blob - 19d3ae0db232749db5b440e252cf48f93478ad2d
blob + fdc841b82bf582614f509bce45241f70645984b6
--- kamid/kamid.c
+++ kamid/kamid.c
@@ -213,9 +213,8 @@ main(int argc, char **argv)
 
 	if ((control_fd = control_init(csock)) == -1)
 		fatalx("control socket setup failed");
+	control_listen(control_fd);
 
-	main_imsg_compose_listener(IMSG_CONTROLFD, control_fd, 0,
-	    NULL, 0);
 	main_imsg_send_config(main_conf);
 
 	sandbox_main();
blob - 6a9f167f1877451fcec866b2f6ef0c748aa1a47e
blob + c4437257ae3d016844dbd2dcdcbcf2ebe6d6070d
--- kamid/kamid.h
+++ kamid/kamid.h
@@ -112,6 +112,7 @@ struct kd_auth_proc {
 
 /* kamid.c */
 extern int verbose;
+int	main_reload(void);
 int	main_imsg_compose_listener(int, int, uint32_t, const void *, uint16_t);
 void	merge_config(struct kd_conf *, struct kd_conf *);
 
blob - b2105530e2b2cfd3c5f65fc4751dca13bc9be9fb
blob + 87e88b00797f954fcc9d8522d96ea65c9537daa3
--- kamid/listener.c
+++ kamid/listener.c
@@ -311,14 +311,6 @@ listener_dispatch_main(int fd, short event, void *d)
 			break;
 
 		switch (imsg.hdr.type) {
-		case IMSG_CONTROLFD:
-			if ((fd = imsg.fd) == -1)
-				fatalx("%s: expected to receive imsg "
-				    "control fd but didn't receive any",
-				    __func__);
-			/* Listen on control socket. */
-			control_listen(fd);
-			break;
 		case IMSG_RECONF_CONF:
 		case IMSG_RECONF_PKI:
 		case IMSG_RECONF_PKI_CERT: