From fa944fc52646219d69f910d7cd4750db9c8f11bd Mon Sep 17 00:00:00 2001 From: zotlabs Date: Mon, 27 Feb 2017 23:48:54 -0800 Subject: [PATCH] provide 'session' option to z_fetch_url to assist with remote fetches requiring magic auth --- Zotlabs/Module/Connedit.php | 2 +- include/network.php | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Zotlabs/Module/Connedit.php b/Zotlabs/Module/Connedit.php index 229f0dfe3..5b7c23028 100644 --- a/Zotlabs/Module/Connedit.php +++ b/Zotlabs/Module/Connedit.php @@ -445,7 +445,7 @@ class Connedit extends \Zotlabs\Web\Controller { if($cmd === 'fetchvc') { $url = str_replace('/channel/','/profile/',$orig_record[0]['xchan_url']) . '/vcard'; $recurse = 0; - $x = z_fetch_url(zid($url),false,$recurse,['headers' => ['Cookie: PHPSESSID=' . session_id()]]); + $x = z_fetch_url(zid($url),false,$recurse,['session' => true]); if($x['success']) { $h = new \Zotlabs\Web\HTTPHeaders($x['header']); $fields = $h->fetch(); diff --git a/include/network.php b/include/network.php index 66716ef9e..0fda80f19 100644 --- a/include/network.php +++ b/include/network.php @@ -91,6 +91,10 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) { @curl_setopt($ch, CURLOPT_TIMEOUT, (($curl_time !== false) ? $curl_time : 60)); } + if(x($opts,'session') && strpos($url,z_root()) === 0) { + @curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Cookie: PHPSESSID=' . session_id() ]); + } + if(x($opts,'http_auth')) { // "username" . ':' . "password" @curl_setopt($ch, CURLOPT_USERPWD, $opts['http_auth']);