Hopefully bugfix
This commit is contained in:
@ -16,6 +16,8 @@ int rev_proxy_init(http_req *req, http_res *res, host_config *conf, sock *client
|
||||
char * err_msg) {
|
||||
char buffer[CHUNK_SIZE];
|
||||
long ret;
|
||||
int new = 0;
|
||||
int retry = 0;
|
||||
|
||||
if (rev_proxy.socket != 0 && rev_proxy_host == conf->name) {
|
||||
goto rev_proxy;
|
||||
@ -23,6 +25,10 @@ int rev_proxy_init(http_req *req, http_res *res, host_config *conf, sock *client
|
||||
sock_close(&rev_proxy);
|
||||
}
|
||||
|
||||
retry:
|
||||
retry = 0;
|
||||
new = 1;
|
||||
|
||||
rev_proxy.socket = socket(AF_INET6, SOCK_STREAM, 0);
|
||||
if (rev_proxy.socket < 0) {
|
||||
print(ERR_STR "Unable to create socket: %s" CLR_STR, strerror(errno));
|
||||
@ -97,6 +103,7 @@ int rev_proxy_init(http_req *req, http_res *res, host_config *conf, sock *client
|
||||
res->status = http_get_status(502);
|
||||
print(ERR_STR "Unable to send request to server: %s" CLR_STR, sock_strerror(&rev_proxy));
|
||||
sprintf(err_msg, "Unable to send request to server: %s.", sock_strerror(&rev_proxy));
|
||||
retry = !new;
|
||||
goto proxy_err;
|
||||
}
|
||||
|
||||
@ -113,6 +120,7 @@ int rev_proxy_init(http_req *req, http_res *res, host_config *conf, sock *client
|
||||
res->status = http_get_status(502);
|
||||
print(ERR_STR "Unable to send request to server: %s" CLR_STR, sock_strerror(&rev_proxy));
|
||||
sprintf(err_msg, "Unable to send request to server: %s.", sock_strerror(&rev_proxy));
|
||||
retry = !new;
|
||||
goto proxy_err;
|
||||
}
|
||||
content_len -= len;
|
||||
@ -123,6 +131,7 @@ int rev_proxy_init(http_req *req, http_res *res, host_config *conf, sock *client
|
||||
res->status = http_get_status(502);
|
||||
print(ERR_STR "Unable to send request to server: %s" CLR_STR, sock_strerror(&rev_proxy));
|
||||
sprintf(err_msg, "Unable to send request to server: %s.", sock_strerror(&rev_proxy));
|
||||
retry = !new;
|
||||
goto proxy_err;
|
||||
}
|
||||
}
|
||||
@ -133,6 +142,7 @@ int rev_proxy_init(http_req *req, http_res *res, host_config *conf, sock *client
|
||||
res->status = http_get_status(502);
|
||||
print(ERR_STR "Unable to receive response from server: %s" CLR_STR, sock_strerror(&rev_proxy));
|
||||
sprintf(err_msg, "Unable to receive response from server: %s.", sock_strerror(&rev_proxy));
|
||||
retry = !new;
|
||||
goto proxy_err;
|
||||
}
|
||||
|
||||
@ -205,6 +215,9 @@ int rev_proxy_init(http_req *req, http_res *res, host_config *conf, sock *client
|
||||
proxy_err:
|
||||
print(BLUE_STR "Closing proxy connection" CLR_STR);
|
||||
sock_close(&rev_proxy);
|
||||
if (retry) {
|
||||
goto retry;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
Reference in New Issue
Block a user