diff options
Diffstat (limited to 'mod/regdir.php')
-rw-r--r-- | mod/regdir.php | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/mod/regdir.php b/mod/regdir.php deleted file mode 100644 index 7168c3373..000000000 --- a/mod/regdir.php +++ /dev/null @@ -1,104 +0,0 @@ -<?php - -/** - * With args, register a directory server for this realm. - * With no args, return a JSON array of directory servers for this realm. - * - * @FIXME Not yet implemented: Some realms may require authentication to join their realm. - * The RED_GLOBAL realm does not require authentication. - * We would then need a flag in the site table to indicate that they've been - * validated by the PRIMARY directory for that realm. Sites claiming to be PRIMARY - * but are not the realm PRIMARY will be marked invalid. - * - * @param App &$a - */ -function regdir_init(&$a) { - - $result = array('success' => false); - - $url = $_REQUEST['url']; - $access_token = $_REQUEST['t']; - $valid = 0; - - // we probably don't need the realm as we will find out in the probe. - // What we may want to die is throw an error if you're trying to register in a different realm - // so this configuration issue can be discovered. - - $realm = $_REQUEST['realm']; - if(! $realm) - $realm = DIRECTORY_REALM; - - if($realm === DIRECTORY_REALM) { - $valid = 1; - } else { - $token = get_config('system','realm_token'); - if($token && $access_token != $token) { - $result['message'] = 'This realm requires an access token'; - return; - } - $valid = 1; - } - - $dirmode = intval(get_config('system','directory_mode')); - - if ($dirmode == DIRECTORY_MODE_NORMAL) { - $ret['message'] = t('This site is not a directory server'); - json_return_and_die($ret); - } - - $m = null; - if ($url) { - $m = parse_url($url); - - if ((! $m) || ((! @dns_get_record($m['host'], DNS_A + DNS_CNAME + DNS_PTR)) && (! filter_var($m['host'], FILTER_VALIDATE_IP) ))) { - - $result['message'] = 'unparseable url'; - json_return_and_die($result); - } - - $f = zot_finger('[system]@' . $m['host']); - if($f['success']) { - $j = json_decode($f['body'],true); - if($j['success'] && $j['guid']) { - $x = import_xchan($j); - if($x['success']) { - $result['success'] = true; - } - } - } - - if(! $result['success']) - $valid = 0; - - q("update site set site_valid = %d where site_url = '%s' limit 1", - intval($valid), - strtolower($url) - ); - - json_return_and_die($result); - } else { - - // We can put this in the sql without the condition after 31 august 2015 assuming - // most directory servers will have updated by then - // This just makes sure it happens if I forget - - $sql_extra = ((datetime_convert() > datetime_convert('UTC','UTC','2015-08-31')) ? ' and site_valid = 1 ' : '' ); - if ($dirmode == DIRECTORY_MODE_STANDALONE) { - $r = array(array('site_url' => z_root())); - } else { - $r = q("select site_url from site where site_flags in ( 1, 2 ) and site_realm = '%s' and site_type = %d $sql_extra ", - dbesc(get_directory_realm()), - intval(SITE_TYPE_ZOT) - ); - } - if ($r) { - $result['success'] = true; - $result['directories'] = array(); - foreach ($r as $rr) - $result['directories'][] = $rr['site_url']; - - json_return_and_die($result); - } - } - json_return_and_die($result); -}
\ No newline at end of file |