From: Sara Golemon Date: Wed, 3 Dec 2003 05:30:16 +0000 (+0000) Subject: Add http proxy support via context option. X-Git-Tag: php-5.0.0b3RC1~389 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5ad67a92152527c72a839f0986035372f8f3b43e;p=php Add http proxy support via context option. --- diff --git a/NEWS b/NEWS index 8daef91e8b..9e76dcb78d 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,7 @@ PHP NEWS - Added possibility to prevent PHP from registering variables when input filter support is used. (Derick) - Added EXSLT support in ext/xsl. (Christian) +- Added proxy support to http wrapper. (Sara) - Added new functions: . dba_key_split() to split inifile keys in an array. (Marcus) . time_nanosleep() signal safe sleep (Magnus, Ilia) diff --git a/ext/standard/http_fopen_wrapper.c b/ext/standard/http_fopen_wrapper.c index 538656db9f..f8e9068a9e 100644 --- a/ext/standard/http_fopen_wrapper.c +++ b/ext/standard/http_fopen_wrapper.c @@ -134,7 +134,16 @@ php_stream *php_stream_url_wrap_http_ex(php_stream_wrapper *wrapper, char *path, else if (resource->port == 0) resource->port = 80; - transport_len = spprintf(&transport_string, 0, "%s://%s:%d", use_ssl ? "ssl" : "tcp", resource->host, resource->port); + if (context && !use_ssl && + php_stream_context_get_option(context, "http", "proxy", &tmpzval) == SUCCESS && + Z_TYPE_PP(tmpzval) == IS_STRING && + Z_STRLEN_PP(tmpzval) > 0) { + /* Don't use proxy server for SSL resources */ + transport_len = Z_STRLEN_PP(tmpzval); + transport_string = estrndup(Z_STRVAL_PP(tmpzval), Z_STRLEN_PP(tmpzval)); + } else { + transport_len = spprintf(&transport_string, 0, "%s://%s:%d", use_ssl ? "ssl" : "tcp", resource->host, resource->port); + } stream = php_stream_xport_create(transport_string, transport_len, options, STREAM_XPORT_CLIENT | STREAM_XPORT_CONNECT,