]> granicus.if.org Git - php/commitdiff
Add http proxy support via context option.
authorSara Golemon <pollita@php.net>
Wed, 3 Dec 2003 05:30:16 +0000 (05:30 +0000)
committerSara Golemon <pollita@php.net>
Wed, 3 Dec 2003 05:30:16 +0000 (05:30 +0000)
NEWS
ext/standard/http_fopen_wrapper.c

diff --git a/NEWS b/NEWS
index 8daef91e8bf5ebf2dec465fdf5a0c825fe7cd152..9e76dcb78d89e4d30747a087ce94e07402d4a9d9 100644 (file)
--- 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)
index 538656db9f2fb6aa36020a677be1c8f5f55721b1..f8e9068a9e03944c1694c1e02c24f13243171bf2 100644 (file)
@@ -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,