diff options
author | friendica <info@friendica.com> | 2015-02-01 20:30:47 -0800 |
---|---|---|
committer | friendica <info@friendica.com> | 2015-02-01 20:30:47 -0800 |
commit | aafed50a0ea8a8d7091572473dcb8e4fb8cd4602 (patch) | |
tree | 66b27325cd7bcce748965aebb29ab8a1da2f340d /mod/regdir.php | |
parent | e6a5f7800390e5091743d6a97c6fd8f54c5d1530 (diff) | |
parent | e58bef049d7736d448f7bb5688affe491b9e24b1 (diff) | |
download | volse-hubzilla-aafed50a0ea8a8d7091572473dcb8e4fb8cd4602.tar.gz volse-hubzilla-aafed50a0ea8a8d7091572473dcb8e4fb8cd4602.tar.bz2 volse-hubzilla-aafed50a0ea8a8d7091572473dcb8e4fb8cd4602.zip |
Merge branch 'master' into tres
Diffstat (limited to 'mod/regdir.php')
-rw-r--r-- | mod/regdir.php | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/mod/regdir.php b/mod/regdir.php new file mode 100644 index 000000000..c00187978 --- /dev/null +++ b/mod/regdir.php @@ -0,0 +1,64 @@ +<?php + + +function regdir_init(&$a) { + + $result = array('success' => false); + + $url = $_REQUEST['url']; + + + // 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; + + $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('sys@' . $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; + json_return_and_die($result); + } + } + } + + json_return_and_die($result); + } + else { + $r = q("select site_url from site where site_flags in ( 1, 2 ) and site_realm = '%s'", + dbesc(get_directory_realm()) + ); + 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 |