X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fdfrn_confirm.php;h=0e99b26c32cd9d81a7650f1d8a4c14445eb9a85c;hb=10ede7314136edb1c475e1af546a59ff4c5648cf;hp=684cd341e7e653314bb1a9753055ec3632b879e4;hpb=ca734f168caaa3a9fb66fd7ada6ecc26e1299ae6;p=friendica.git diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php index 684cd341e7..0e99b26c32 100644 --- a/mod/dfrn_confirm.php +++ b/mod/dfrn_confirm.php @@ -18,11 +18,14 @@ * https://github.com/friendica/friendica/blob/master/spec/dfrn2_contact_confirmation.png */ -require_once('include/enotify.php'); -require_once('include/group.php'); -require_once('include/Probe.php'); +use Friendica\App; +use Friendica\Core\System; +use Friendica\Network\Probe; -function dfrn_confirm_post(&$a,$handsfree = null) { +require_once 'include/enotify.php'; +require_once 'include/group.php'; + +function dfrn_confirm_post(App $a, $handsfree = null) { if(is_array($handsfree)) { @@ -152,7 +155,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { * worried about key leakage than anybody cracking it. * */ - require_once('include/crypto.php'); + require_once 'include/crypto.php'; $res = new_keypair(4096); @@ -185,16 +188,16 @@ function dfrn_confirm_post(&$a,$handsfree = null) { * */ - $src_aes_key = random_string(); + $src_aes_key = openssl_random_pseudo_bytes(64); $result = ''; - openssl_private_encrypt($dfrn_id,$result,$user[0]['prvkey']); + openssl_private_encrypt($dfrn_id, $result, $user[0]['prvkey']); $params['dfrn_id'] = bin2hex($result); $params['public_key'] = $public_key; - $my_url = App::get_baseurl() . '/profile/' . $user[0]['nickname']; + $my_url = System::baseUrl() . '/profile/' . $user[0]['nickname']; openssl_public_encrypt($my_url, $params['source_url'], $site_pubkey); $params['source_url'] = bin2hex($params['source_url']); @@ -224,9 +227,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { * */ - $a->config['system']['curl_timeout'] = 120; - - $res = post_url($dfrn_confirm,$params); + $res = post_url($dfrn_confirm, $params, null, $redirects, 120); logger(' Confirm: received data: ' . $res, LOGGER_DATA); @@ -319,7 +320,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { * */ - require_once('include/Photo.php'); + require_once 'include/Photo.php'; update_contact_avatar($contact['photo'],$uid,$contact_id); @@ -351,8 +352,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { dbesc(NETWORK_DFRN), intval($contact_id) ); - } - else { + } else { // $network !== NETWORK_DFRN @@ -360,18 +360,16 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $notify = (($contact['notify']) ? $contact['notify'] : ''); $poll = (($contact['poll']) ? $contact['poll'] : ''); - if((! $contact['notify']) || (! $contact['poll'])) { - $arr = Probe::lrdd($contact['url']); - if(count($arr)) { - foreach($arr as $link) { - if($link['@attributes']['rel'] === 'salmon') - $notify = $link['@attributes']['href']; - if($link['@attributes']['rel'] === NAMESPACE_FEED) - $poll = $link['@attributes']['href']; - } - } + $arr = Probe::uri($contact['url']); + if (empty($contact['notify'])) { + $notify = $arr['notify']; + } + if (empty($contact['poll'])) { + $poll = $arr['poll']; } + $addr = $arr['addr']; + $new_relation = $contact['rel']; $writable = $contact['writable']; @@ -393,6 +391,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $r = q("UPDATE `contact` SET `name-date` = '%s', `uri-date` = '%s', + `addr` = '%s', `notify` = '%s', `poll` = '%s', `blocked` = 0, @@ -405,6 +404,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { ", dbesc(datetime_convert()), dbesc(datetime_convert()), + dbesc($addr), dbesc($notify), dbesc($poll), dbesc($network), @@ -415,24 +415,27 @@ function dfrn_confirm_post(&$a,$handsfree = null) { ); } - if($r === false) - notice( t('Unable to set contact photo.') . EOL); + /// @TODO is dbm::is_result() working here? + if ($r === false) { + notice( t('Unable to set contact photo.') . EOL); + } // reload contact info $r = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1", intval($contact_id) ); - if (dbm::is_result($r)) + if (dbm::is_result($r)) { $contact = $r[0]; - else + } else { $contact = null; + } - if((isset($new_relation) && $new_relation == CONTACT_IS_FRIEND)) { + if ((isset($new_relation) && $new_relation == CONTACT_IS_FRIEND)) { - if(($contact) && ($contact['network'] === NETWORK_DIASPORA)) { - require_once('include/diaspora.php'); + if (($contact) && ($contact['network'] === NETWORK_DIASPORA)) { + require_once 'include/diaspora.php'; $ret = Diaspora::send_share($user[0],$r[0]); logger('share returns: ' . $ret); } @@ -445,7 +448,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { if((dbm::is_result($r)) && ($r[0]['hide-friends'] == 0) && ($activity) && (! $hidden)) { - require_once('include/items.php'); + require_once 'include/items.php'; $self = q("SELECT * FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1", intval($uid) @@ -504,7 +507,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { // do anything special with this new friend. if ($handsfree === null) { - goaway(App::get_baseurl() . '/contacts/' . intval($contact_id)); + goaway(System::baseUrl() . '/contacts/' . intval($contact_id)); } else { return; } @@ -585,17 +588,18 @@ function dfrn_confirm_post(&$a,$handsfree = null) { dbesc($decrypted_source_url), intval($local_uid) ); - if(! count($ret)) { - if(strstr($decrypted_source_url,'http:')) + if (!dbm::is_result($ret)) { + if (strstr($decrypted_source_url,'http:')) { $newurl = str_replace('http:','https:',$decrypted_source_url); - else + } else { $newurl = str_replace('https:','http:',$decrypted_source_url); + } $ret = q("SELECT * FROM `contact` WHERE `url` = '%s' AND `uid` = %d LIMIT 1", dbesc($newurl), intval($local_uid) ); - if(! count($ret)) { + if (!dbm::is_result($ret)) { // this is either a bogus confirmation (?) or we deleted the original introduction. $message = t('Contact record was not found for you on our site.'); xml_status(3,$message); @@ -610,7 +614,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $foreign_pubkey = $ret[0]['site-pubkey']; $dfrn_record = $ret[0]['id']; - if(! $foreign_pubkey) { + if (! $foreign_pubkey) { $message = sprintf( t('Site public key not available in contact record for URL %s.'), $newurl); xml_status(3,$message); } @@ -618,7 +622,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $decrypted_dfrn_id = ""; openssl_public_decrypt($dfrn_id,$decrypted_dfrn_id,$foreign_pubkey); - if(strlen($aes_key)) { + if (strlen($aes_key)) { $decrypted_aes_key = ""; openssl_private_decrypt($aes_key,$decrypted_aes_key,$my_prvkey); $dfrn_pubkey = openssl_decrypt($public_key,'AES-256-CBC',$decrypted_aes_key); @@ -665,10 +669,10 @@ function dfrn_confirm_post(&$a,$handsfree = null) { if (dbm::is_result($r)) { $photo = $r[0]['photo']; } else { - $photo = App::get_baseurl() . '/images/person-175.jpg'; + $photo = System::baseUrl() . '/images/person-175.jpg'; } - require_once("include/Photo.php"); + require_once 'include/Photo.php'; update_contact_avatar($photo,$local_uid,$dfrn_record); @@ -730,7 +734,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { 'to_name' => $r[0]['username'], 'to_email' => $r[0]['email'], 'uid' => $r[0]['uid'], - 'link' => App::get_baseurl() . '/contacts/' . $dfrn_record, + 'link' => System::baseUrl() . '/contacts/' . $dfrn_record, 'source_name' => ((strlen(stripslashes($r[0]['name']))) ? stripslashes($r[0]['name']) : t('[Name Withheld]')), 'source_link' => $r[0]['url'], 'source_photo' => $r[0]['photo'], @@ -748,7 +752,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { if((dbm::is_result($r)) && ($r[0]['hide-friends'] == 0)) { - require_once('include/items.php'); + require_once 'include/items.php'; $self = q("SELECT * FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1", intval($local_uid) @@ -805,7 +809,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { // somebody arrived here by mistake or they are fishing. Send them to the homepage. - goaway(z_root()); + goaway(System::baseUrl()); // NOTREACHED }