BUG/MEDIUM: resolvers: Make 1st server of a template take part to SRV resolution

The commit 3406766d5 ("MEDIUM: resolvers: add a ref between servers and srv
request or used SRV record") introduced a regression. The first server of a
template based on SRV record is no longer resolved. The same bug exists for
a normal server based on a SRV record.

In fact, the server used during parsing (used as reference when a
server-template line is parsed) is never attached to the corresponding srvrq
object. Thus with following lines, no resolution is performed because
"srvrq->attached_servers" is empty:

  server-template test 1 _http.domain.tld resolvers dns ...
  server test1 _http.domain.tld resolvers dns ...

This patch should fix the issue #1295 (but not confirmed yet it is the same
bug). It must be backported everywhere the above commit is.
This commit is contained in:
Christopher Faulet 2021-06-29 20:52:35 +02:00
parent 0de0becf0b
commit 81ba74ae50

View File

@ -2470,6 +2470,7 @@ static int _srv_parse_init(struct server **srv, char **args, int *cur_arg,
err_code |= ERR_ALERT | ERR_FATAL; err_code |= ERR_ALERT | ERR_FATAL;
goto out; goto out;
} }
LIST_APPEND(&newsrv->srvrq->attached_servers, &newsrv->srv_rec_item);
} }
else if (srv_prepare_for_resolution(newsrv, fqdn) == -1) { else if (srv_prepare_for_resolution(newsrv, fqdn) == -1) {
ha_alert("Can't create DNS resolution for server '%s'\n", ha_alert("Can't create DNS resolution for server '%s'\n",