Skip to content
Snippets Groups Projects
Commit 148b945f authored by Patrick Gansterer's avatar Patrick Gansterer Committed by Andy Green
Browse files

Allow setting the HTTP proxy via creation info

If the user provides a proxy via the info object it is used
in favor over the http_proxy environment variable.
parent 02684c54
No related branches found
No related tags found
No related merge requests found
......@@ -48,6 +48,8 @@ Extra optional argument to libwebsockets_serve_http_file() allows injecion
of HTTP headers into the canned response. Eg, cookies may be added like
that without getting involved in having to send the header by hand.
A new info member http_proxy_address may be used at context creation time to
set the http proxy. If non-NULL, it overrides http_proxy environment var.
v1.23-chrome32-firefox24
......
......@@ -2090,21 +2090,31 @@ libwebsocket_create_context(struct lws_context_creation_info *info)
/* split the proxy ads:port if given */
p = getenv("http_proxy");
if (p) {
strncpy(context->http_proxy_address, p,
if (info->http_proxy_address) {
strncpy(context->http_proxy_address, info->http_proxy_address,
sizeof(context->http_proxy_address) - 1);
context->http_proxy_address[
sizeof(context->http_proxy_address) - 1] = '\0';
p = strchr(context->http_proxy_address, ':');
if (p == NULL) {
lwsl_err("http_proxy needs to be ads:port\n");
goto bail;
context->http_proxy_port = info->http_proxy_port;
} else {
p = getenv("http_proxy");
if (p) {
strncpy(context->http_proxy_address, p,
sizeof(context->http_proxy_address) - 1);
context->http_proxy_address[
sizeof(context->http_proxy_address) - 1] = '\0';
p = strchr(context->http_proxy_address, ':');
if (p == NULL) {
lwsl_err("http_proxy needs to be ads:port\n");
goto bail;
}
*p = '\0';
context->http_proxy_port = atoi(p + 1);
}
*p = '\0';
context->http_proxy_port = atoi(p + 1);
}
if (context->http_proxy_address[0]) {
lwsl_notice(" Proxy %s:%u\n",
context->http_proxy_address,
context->http_proxy_port);
......
......@@ -938,6 +938,8 @@ struct lws_context_creation_info {
const char *ssl_private_key_filepath;
const char *ssl_ca_filepath;
const char *ssl_cipher_list;
const char *http_proxy_address;
unsigned int http_proxy_port;
int gid;
int uid;
unsigned int options;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment