]> git.mxchange.org Git - friendica.git/commitdiff
SN addon respects friendika proxy settings now
authorTobias Diekershoff <tobias.diekershoff@gmx.net>
Thu, 11 Aug 2011 12:52:23 +0000 (14:52 +0200)
committerTobias Diekershoff <tobias.diekershoff@gmx.net>
Thu, 11 Aug 2011 12:52:23 +0000 (14:52 +0200)
addon/statusnet/statusnet.php

index ced40263d05291cd44d5d80bdb3bb4e6e7178636..b18eac2b8651409468ec99d09a578dbf3240958d 100644 (file)
@@ -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() {