aboutsummaryrefslogtreecommitdiffstats
path: root/addon/statusnet/statusnet.php
diff options
context:
space:
mode:
authortobiasd <tobias.diekershoff@gmx.net>2011-08-11 10:00:05 -0700
committertobiasd <tobias.diekershoff@gmx.net>2011-08-11 10:00:05 -0700
commitd80e90cab0dba044022bfd7dffdf945aec5e5d46 (patch)
tree3d596107eafcb1843ceec90b425291db8ea2a78a /addon/statusnet/statusnet.php
parent0db145dafa032a8c1fd68c318afc59f9599f3756 (diff)
parent4fe81736edadac40e3b7f5ca700ea506224dbac1 (diff)
downloadvolse-hubzilla-d80e90cab0dba044022bfd7dffdf945aec5e5d46.tar.gz
volse-hubzilla-d80e90cab0dba044022bfd7dffdf945aec5e5d46.tar.bz2
volse-hubzilla-d80e90cab0dba044022bfd7dffdf945aec5e5d46.zip
Merge pull request #153 from tobiasd/master
SN addon respect proxy setings
Diffstat (limited to 'addon/statusnet/statusnet.php')
-rw-r--r--addon/statusnet/statusnet.php54
1 files changed, 53 insertions, 1 deletions
diff --git a/addon/statusnet/statusnet.php b/addon/statusnet/statusnet.php
index ced40263d..b18eac2b8 100644
--- a/addon/statusnet/statusnet.php
+++ b/addon/statusnet/statusnet.php
@@ -1,7 +1,7 @@
<?php
/**
* Name: StatusNet Connector
- * Version: 1.0.1
+ * Version: 1.0.2
* Author: Tobias Diekershoff <https://diekershoff.homeunix.net/friendika/profile/tobias>
*/
@@ -51,6 +51,58 @@ class StatusNetOAuth extends TwitterOAuth {
parent::__construct($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret);
$this->host = $apipath;
}
+ /**
+ * Make an HTTP request
+ *
+ * @return API results
+ *
+ * Copied here from the twitteroauth library and complemented by applying the proxy settings of friendika
+ */
+ function http($url, $method, $postfields = NULL) {
+ $this->http_info = array();
+ $ci = curl_init();
+ /* Curl settings */
+ $prx = 'http://localhost:8118';
+ $prx = get_config('system','proxy');
+ logger('Proxy SN: '.$prx);
+ if(strlen($prx)) {
+ curl_setopt($ci, CURLOPT_HTTPPROXYTUNNEL, 1);
+ curl_setopt($ci, CURLOPT_PROXY, $prx);
+ $prxusr = get_config('system','proxyuser');
+ if(strlen($prxusr))
+ curl_setopt($ci, CURLOPT_PROXYUSERPWD, $prxusr);
+ }
+ curl_setopt($ci, CURLOPT_USERAGENT, $this->useragent);
+ curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, $this->connecttimeout);
+ curl_setopt($ci, CURLOPT_TIMEOUT, $this->timeout);
+ curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);
+ curl_setopt($ci, CURLOPT_HTTPHEADER, array('Expect:'));
+ curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, $this->ssl_verifypeer);
+ curl_setopt($ci, CURLOPT_HEADERFUNCTION, array($this, 'getHeader'));
+ curl_setopt($ci, CURLOPT_HEADER, FALSE);
+
+ switch ($method) {
+ case 'POST':
+ curl_setopt($ci, CURLOPT_POST, TRUE);
+ if (!empty($postfields)) {
+ curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields);
+ }
+ break;
+ case 'DELETE':
+ curl_setopt($ci, CURLOPT_CUSTOMREQUEST, 'DELETE');
+ if (!empty($postfields)) {
+ $url = "{$url}?{$postfields}";
+ }
+ }
+
+ curl_setopt($ci, CURLOPT_URL, $url);
+ $response = curl_exec($ci);
+ $this->http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);
+ $this->http_info = array_merge($this->http_info, curl_getinfo($ci));
+ $this->url = $url;
+ curl_close ($ci);
+ return $response;
+ }
}
function statusnet_install() {