diff --git a/src/flt_spoe.c b/src/flt_spoe.c index bfd6f4fbf..b9471d917 100644 --- a/src/flt_spoe.c +++ b/src/flt_spoe.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -3021,6 +3022,7 @@ spoe_check(struct proxy *px, struct flt_conf *fconf) struct flt_conf *f; struct spoe_config *conf = fconf->conf; struct proxy *target; + struct logsrv *logsrv; int i; /* Check all SPOE filters for proxy to be sure all SPOE agent names @@ -3082,6 +3084,21 @@ spoe_check(struct proxy *px, struct flt_conf *fconf) HA_SPIN_INIT(&conf->agent->rt[i].lock); } + list_for_each_entry(logsrv, &conf->agent_fe.logsrvs, list) { + if (logsrv->type == LOG_TARGET_BUFFER) { + struct sink *sink = sink_find(logsrv->ring_name); + + if (!sink || sink->type != SINK_TYPE_BUFFER) { + ha_alert("Proxy %s : log server used by SPOE agent '%s' declared" + " at %s:%d uses unkown ring named '%s'.\n", + px->id, conf->agent->id, conf->agent->conf.file, + conf->agent->conf.line, logsrv->ring_name); + return 1; + } + logsrv->sink = sink; + } + } + free(conf->agent->b.name); conf->agent->b.name = NULL; conf->agent->b.be = target;