Configuration options for using an HTTP proxy
We can make a lot of HTTP requests from the server side. This change adds some configuration options for using an HTTP proxy, which can cache hits from multiple sites (good for status.net-like services, for example).
This commit is contained in:
parent
ae59046b1e
commit
98a0d7f538
16
README
16
README
@ -1556,6 +1556,22 @@ cache: whether to cache the router in memcache (or another caching
|
|||||||
router cached) or others who see strange behavior. You're unlikely
|
router cached) or others who see strange behavior. You're unlikely
|
||||||
to need this unless you're a developer.
|
to need this unless you're a developer.
|
||||||
|
|
||||||
|
http
|
||||||
|
----
|
||||||
|
|
||||||
|
Settings for the HTTP client.
|
||||||
|
|
||||||
|
ssl_cafile: location of the CA file for SSL. If not set, won't verify
|
||||||
|
SSL peers. Default unset.
|
||||||
|
curl: Use cURL <http://curl.haxx.se/> for doing HTTP calls. You must
|
||||||
|
have the PHP curl extension installed for this to work.
|
||||||
|
proxy_host: Host to use for proxying HTTP requests. If unset, doesn't
|
||||||
|
do any HTTP proxy stuff. Default unset.
|
||||||
|
proxy_port: Port to use to connect to HTTP proxy host. Default null.
|
||||||
|
proxy_user: Username to use for authenticating to the HTTP proxy. Default null.
|
||||||
|
proxy_password: Password to use for authenticating to the HTTP proxy. Default null.
|
||||||
|
proxy_auth_scheme: Scheme to use for authenticating to the HTTP proxy. Default null.
|
||||||
|
|
||||||
Plugins
|
Plugins
|
||||||
=======
|
=======
|
||||||
|
|
||||||
|
@ -331,6 +331,11 @@ $default =
|
|||||||
'http' => // HTTP client settings when contacting other sites
|
'http' => // HTTP client settings when contacting other sites
|
||||||
array('ssl_cafile' => false, // To enable SSL cert validation, point to a CA bundle (eg '/usr/lib/ssl/certs/ca-certificates.crt')
|
array('ssl_cafile' => false, // To enable SSL cert validation, point to a CA bundle (eg '/usr/lib/ssl/certs/ca-certificates.crt')
|
||||||
'curl' => false, // Use CURL backend for HTTP fetches if available. (If not, PHP's socket streams will be used.)
|
'curl' => false, // Use CURL backend for HTTP fetches if available. (If not, PHP's socket streams will be used.)
|
||||||
|
'proxy_host' => null,
|
||||||
|
'proxy_port' => null,
|
||||||
|
'proxy_user' => null,
|
||||||
|
'proxy_password' => null,
|
||||||
|
'proxy_auth_scheme' => null,
|
||||||
),
|
),
|
||||||
'router' =>
|
'router' =>
|
||||||
array('cache' => true), // whether to cache the router object. Defaults to true, turn off for devel
|
array('cache' => true), // whether to cache the router object. Defaults to true, turn off for devel
|
||||||
|
@ -149,6 +149,14 @@ class HTTPClient extends HTTP_Request2
|
|||||||
$this->config['adapter'] = 'HTTP_Request2_Adapter_Curl';
|
$this->config['adapter'] = 'HTTP_Request2_Adapter_Curl';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach (array('host', 'port', 'user', 'password', 'auth_scheme') as $cf) {
|
||||||
|
$k = 'proxy_'.$cf;
|
||||||
|
$v = common_config('http', $k);
|
||||||
|
if (!empty($v)) {
|
||||||
|
$this->config[$k] = $v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
parent::__construct($url, $method, $config);
|
parent::__construct($url, $method, $config);
|
||||||
$this->setHeader('User-Agent', $this->userAgent());
|
$this->setHeader('User-Agent', $this->userAgent());
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user