mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-24 07:11:20 +02:00
MINOR: resolvers: Remove server from named_servers tree when removing a SRV item
When a server is cleaned up because the corresponding SRV item is removed, we always remove the server from the srvrq's name_servers tree. For now, it is useless because, if a server was attached to a SRV item, it means it was already removed from the tree. But it will be mandatory to fix a bug.
This commit is contained in:
parent
11c6c39656
commit
73001ab6e3
@ -588,6 +588,10 @@ static void resolv_srvrq_cleanup_srv(struct server *srv)
|
|||||||
memset(&srv->addr, 0, sizeof(srv->addr));
|
memset(&srv->addr, 0, sizeof(srv->addr));
|
||||||
srv->svc_port = 0;
|
srv->svc_port = 0;
|
||||||
srv->flags |= SRV_F_NO_RESOLUTION;
|
srv->flags |= SRV_F_NO_RESOLUTION;
|
||||||
|
|
||||||
|
ebpt_delete(&srv->host_dn);
|
||||||
|
ha_free(&srv->host_dn.key);
|
||||||
|
|
||||||
HA_SPIN_UNLOCK(SERVER_LOCK, &srv->lock);
|
HA_SPIN_UNLOCK(SERVER_LOCK, &srv->lock);
|
||||||
LIST_DELETE(&srv->srv_rec_item);
|
LIST_DELETE(&srv->srv_rec_item);
|
||||||
LIST_APPEND(&srv->srvrq->attached_servers, &srv->srv_rec_item);
|
LIST_APPEND(&srv->srvrq->attached_servers, &srv->srv_rec_item);
|
||||||
@ -685,7 +689,7 @@ static void resolv_check_response(struct resolv_resolution *res)
|
|||||||
if (srv->svc_port == item->port) {
|
if (srv->svc_port == item->port) {
|
||||||
/* server found, we remove it from tree */
|
/* server found, we remove it from tree */
|
||||||
ebpt_delete(node);
|
ebpt_delete(node);
|
||||||
free(srv->host_dn.key);
|
ha_free(&srv->host_dn.key);
|
||||||
goto srv_found;
|
goto srv_found;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user