From 6a8087cd9526df55d35b6db4d81dd4fdc4d07030 Mon Sep 17 00:00:00 2001 From: kremsy Date: Wed, 29 Jul 2015 14:35:19 +0200 Subject: [PATCH] additional headers in asynchronousfilereader --- changelog.txt | 2 ++ core/Files/AsynchronousFileReader.php | 35 +++++++++++++-------------- core/ManiaControl.php | 2 +- core/Maps/MapManager.php | 2 +- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/changelog.txt b/changelog.txt index 90d3ec50..b0bbbdbd 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,6 +1,8 @@ ###v0.162### #Additions - added typhinting ladderStat in Player object +- added optional AsynchronousFileReader Parameter for loadFile and postFile to set additional Headers +- added ServerLogin header for Mania-Exchange downloads ###v0.161### #Additions diff --git a/core/Files/AsynchronousFileReader.php b/core/Files/AsynchronousFileReader.php index 4df0a3a1..fc71cc18 100644 --- a/core/Files/AsynchronousFileReader.php +++ b/core/Files/AsynchronousFileReader.php @@ -38,10 +38,10 @@ class AsynchronousFileReader { public static function newRequestTest($url) { $request = new Request($url); - $request->getOptions()->set(CURLOPT_TIMEOUT, 60)->set(CURLOPT_HEADER, false) // don't display response header - ->set(CURLOPT_CRLF, true) // linux line feed - ->set(CURLOPT_ENCODING, '') // accept encoding - ->set(CURLOPT_USERAGENT, 'ManiaControl v' . ManiaControl::VERSION) // user-agent + $request->getOptions()->set(CURLOPT_TIMEOUT, 60)->set(CURLOPT_HEADER, false)// don't display response header + ->set(CURLOPT_CRLF, true)// linux line feed + ->set(CURLOPT_ENCODING, '')// accept encoding + ->set(CURLOPT_USERAGENT, 'ManiaControl v' . ManiaControl::VERSION)// user-agent ->set(CURLOPT_RETURNTRANSFER, true); // return instead of output content return $request; } @@ -66,9 +66,9 @@ class AsynchronousFileReader { * @param callable $function * @param string $contentType * @param int $keepAlive + * @param array $headers Additional Headers */ - public function loadFile($url, callable $function, $contentType = 'UTF-8', $keepAlive = 0) { - $headers = array(); + public function loadFile($url, callable $function, $contentType = 'UTF-8', $keepAlive = 0, $headers = array()) { array_push($headers, 'Content-Type: ' . $contentType); if ($keepAlive) { array_push($headers, 'Keep-Alive: ' . $keepAlive); @@ -76,7 +76,7 @@ class AsynchronousFileReader { } $request = $this->newRequest($url); - $request->getOptions()->set(CURLOPT_AUTOREFERER, true) // accept link reference + $request->getOptions()->set(CURLOPT_AUTOREFERER, true)// accept link reference ->set(CURLOPT_HTTPHEADER, $headers); // headers $request->addListener('complete', function (Event $event) use (&$function) { @@ -101,10 +101,10 @@ class AsynchronousFileReader { */ protected function newRequest($url) { $request = new Request($url); - $request->getOptions()->set(CURLOPT_TIMEOUT, 60)->set(CURLOPT_HEADER, false) // don't display response header - ->set(CURLOPT_CRLF, true) // linux line feed - ->set(CURLOPT_ENCODING, '') // accept encoding - ->set(CURLOPT_USERAGENT, 'ManiaControl v' . ManiaControl::VERSION) // user-agent + $request->getOptions()->set(CURLOPT_TIMEOUT, 60)->set(CURLOPT_HEADER, false)// don't display response header + ->set(CURLOPT_CRLF, true)// linux line feed + ->set(CURLOPT_ENCODING, '')// accept encoding + ->set(CURLOPT_USERAGENT, 'ManiaControl v' . ManiaControl::VERSION)// user-agent ->set(CURLOPT_RETURNTRANSFER, true); // return instead of output content return $request; } @@ -133,8 +133,8 @@ class AsynchronousFileReader { array_push($headers, 'Content-Encoding: gzip'); } - $request->getOptions()->set(CURLOPT_POST, true) // post method - ->set(CURLOPT_POSTFIELDS, $content) // post content field + $request->getOptions()->set(CURLOPT_POST, true)// post method + ->set(CURLOPT_POSTFIELDS, $content)// post content field ->set(CURLOPT_HTTPHEADER, $headers) // headers ; $request->addListener('complete', function (Event $event) use (&$function) { @@ -161,10 +161,9 @@ class AsynchronousFileReader { * @param string $content * @param bool $compression * @param string $contentType + * @param array $headers Additional Headers */ - public function postData($url, callable $function, $content, $compression = false, $contentType = 'text/xml; charset=UTF-8;') { - - $headers = array(); + public function postData($url, callable $function, $content, $compression = false, $contentType = 'text/xml; charset=UTF-8;', $headers = array()) { array_push($headers, 'Content-Type: ' . $contentType); array_push($headers, 'Keep-Alive: timeout=600, max=2000'); array_push($headers, 'Connection: Keep-Alive'); @@ -176,8 +175,8 @@ class AsynchronousFileReader { } $request = $this->newRequest($url); - $request->getOptions()->set(CURLOPT_POST, true) // post method - ->set(CURLOPT_POSTFIELDS, $content) // post content field + $request->getOptions()->set(CURLOPT_POST, true)// post method + ->set(CURLOPT_POSTFIELDS, $content)// post content field ->set(CURLOPT_HTTPHEADER, $headers) // headers ; $request->addListener('complete', function (Event $event) use (&$function) { diff --git a/core/ManiaControl.php b/core/ManiaControl.php index 1215abcf..779f4f7d 100644 --- a/core/ManiaControl.php +++ b/core/ManiaControl.php @@ -47,7 +47,7 @@ class ManiaControl implements CallbackListener, CommandListener, TimerListener, /* * Constants */ - const VERSION = '0.161'; + const VERSION = '0.162'; const API_VERSION = '2013-04-16'; const MIN_DEDIVERSION = '2014-04-02_18_00'; const SCRIPT_TIMEOUT = 10; diff --git a/core/Maps/MapManager.php b/core/Maps/MapManager.php index 4c109c15..293e66f6 100644 --- a/core/Maps/MapManager.php +++ b/core/Maps/MapManager.php @@ -366,7 +366,7 @@ class MapManager implements CallbackListener, CommunicationListener { return; } $this->processMapFile($file, $mapInfo, $login, $update); - }); + }, 'UTF-8', 0, array("X-ManiaPlanet-ServerLogin: " . $this->maniaControl->getServer()->login)); }); } return;