mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-09 00:00:04 +01:00
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.
This commit is contained in:
parent
02684c54fb
commit
148b945f7f
3 changed files with 23 additions and 9 deletions
|
@ -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';
|
||||
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 = 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;
|
||||
|
|
Loading…
Add table
Reference in a new issue