diff --git a/src/server.c b/src/server.c index f48024008..ef80d2b0f 100644 --- a/src/server.c +++ b/src/server.c @@ -3994,12 +3994,14 @@ static int cli_parse_set_server(char **args, char *payload, struct appctx *appct cli_msg(appctx, LOG_WARNING, warning); } else if (strcmp(args[3], "agent-send") == 0) { + HA_SPIN_LOCK(SERVER_LOCK, &sv->lock); if (!(sv->agent.state & CHK_ST_ENABLED)) cli_err(appctx, "agent checks are not enabled on this server.\n"); else { if (!set_srv_agent_send(sv, args[4])) cli_err(appctx, "cannot allocate memory for new string.\n"); } + HA_SPIN_UNLOCK(SERVER_LOCK, &sv->lock); } else if (strcmp(args[3], "check-addr") == 0) { char *addr = NULL; @@ -4072,7 +4074,7 @@ static int cli_parse_set_server(char **args, char *payload, struct appctx *appct sv->flags &= ~SRV_F_NO_RESOLUTION; } warning = srv_update_fqdn(sv, args[4], "stats socket command", 1); - HA_SPIN_UNLOCK(SERVER_UNLOCK, &sv->lock); + HA_SPIN_UNLOCK(SERVER_LOCK, &sv->lock); HA_SPIN_UNLOCK(DNS_LOCK, &sv->resolvers->lock); if (warning) cli_msg(appctx, LOG_WARNING, warning);