Fix proxy unlocking
This commit is contained in:
@ -139,10 +139,9 @@ proxy_ctx_t *proxy_get_by_conf(host_config_t *conf) {
|
||||
|
||||
void proxy_unlock_ctx(proxy_ctx_t *ctx) {
|
||||
int n = (int) ((ctx - proxies) / MAX_PROXY_CNX_PER_HOST);
|
||||
int was_in_use = ctx->in_use;
|
||||
ctx->in_use = 0;
|
||||
ctx->client = NULL;
|
||||
if (was_in_use) sem_post(&available[n]);
|
||||
sem_post(&available[n]);
|
||||
}
|
||||
|
||||
int proxy_request_header(http_req *req, sock *sock) {
|
||||
|
@ -88,6 +88,7 @@ void ws_close(ws_ctx_t *ctx) {
|
||||
logger_set_prefix("[%*s]%s", ADDRSTRLEN, ctx->client->socket.s_addr, ctx->client->log_prefix);
|
||||
info("Closing WebSocket connection");
|
||||
proxy_close(ctx->client->proxy);
|
||||
proxy_unlock_ctx(ctx->client->proxy);
|
||||
tcp_close(ctx->client);
|
||||
}
|
||||
free(ctx);
|
||||
|
Reference in New Issue
Block a user