aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/follow.php26
1 files changed, 18 insertions, 8 deletions
diff --git a/include/follow.php b/include/follow.php
index 960138743..ae0f9f041 100644
--- a/include/follow.php
+++ b/include/follow.php
@@ -133,27 +133,27 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
$their_perms = 0;
$xchan_hash = '';
+
$r = q("select * from xchan where xchan_hash = '%s' or xchan_url = '%s' limit 1",
dbesc($url),
dbesc($url)
);
+
if(! $r) {
// attempt network auto-discovery
if(strpos($url,'@') && (! $is_http)) {
- $r = discover_by_webbie($url);
+ $d = discover_by_webbie($url);
}
elseif($is_http) {
- $r = discover_by_url($url);
- $r['allowed'] = intval(get_config('system','feed_contacts'));
- }
- if($r) {
- $r['channel_id'] = $uid;
- call_hooks('follow_allow',$r);
- if(! $r['allowed']) {
+ if(get_config('system','feed_contacts'))
+ $d = discover_by_url($url);
+ else {
$result['message'] = t('Protocol disabled.');
return $result;
}
+ }
+ if($d) {
$r = q("select * from xchan where xchan_hash = '%s' or xchan_url = '%s' limit 1",
dbesc($url),
dbesc($url)
@@ -172,6 +172,16 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
return $result;
}
+ $x = array('channel_id' => $uid, 'follow_address' => $url, 'xchan' => $r[0], 'allowed' => 1);
+
+ call_hooks('follow_allow',$x);
+
+ if(! $x['allowed']) {
+ $result['message'] = t('Protocol disabled.');
+ return $result;
+ }
+
+
if((local_channel()) && $uid == local_channel()) {
$aid = get_account_id();
$hash = get_observer_hash();