do not use printf, use the log functions this code path might (and
will) happen in places where there's no stdout.
> case LOAD:
> imsg_compose(ibuf, IMSG_CTL_RELOAD, 0, 0, -1,
> res->path, strlen(res->path));
> + printf("load request sent.\n");
> done = 1;
> break;
> case RELOAD:
> imsg_compose(ibuf, IMSG_CTL_RELOAD, 0, 0, -1, NULL, 0);
> + printf("reload request sent.\n");
> done = 1;
> break;
> case MONITOR:
> Index: relayd/relayd.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/relayd/relayd.c,v
> retrieving revision 1.104
> diff -u -p -r1.104 relayd.c
> --- relayd/relayd.c 4 Sep 2011 20:26:58 -0000 1.104
> +++ relayd/relayd.c 10 Nov 2011 16:53:20 -0000
> @@ -335,6 +335,12 @@ parent_reload(struct relayd *env, u_int
>
> log_debug("%s: level %d config file %s", __func__, reset, filename);
>
> + if (parse_config(filename, env) == -1) {
> + log_warnx("config file %s has errors, not reloading",
> + filename);
> + return;
> + }
> +
> config_purge(env, CONFIG_ALL);
>
> if (reset == CONFIG_RELOAD) {