aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2013-02-06 17:04:34 -0800
committerfriendica <info@friendica.com>2013-02-06 17:04:34 -0800
commitaf1b3c6c9ac3e3d3ed60a01f5cabeca8fe0f76dc (patch)
tree91d0bc7f2e5473d4be7a2c957896d95ea8be642b
parent6a23ac9217ab5b743cbb14243651ee40cfcc3c5a (diff)
downloadvolse-hubzilla-af1b3c6c9ac3e3d3ed60a01f5cabeca8fe0f76dc.tar.gz
volse-hubzilla-af1b3c6c9ac3e3d3ed60a01f5cabeca8fe0f76dc.tar.bz2
volse-hubzilla-af1b3c6c9ac3e3d3ed60a01f5cabeca8fe0f76dc.zip
this might make zot-id work as originally conceived complete with reverse magic auth. If it doesn't it will probably crash and burn every site involved in horrible ways. To test or not to test.... decisions. (Maybe tomorrow.)
-rw-r--r--boot.php9
-rw-r--r--include/gprobe.php2
-rw-r--r--mod/magic.php11
-rw-r--r--version.inc2
4 files changed, 22 insertions, 2 deletions
diff --git a/boot.php b/boot.php
index 6e98f829c..9e7485285 100644
--- a/boot.php
+++ b/boot.php
@@ -1975,6 +1975,15 @@ function zid_init(&$a) {
proc_run('php','include/gprobe.php',bin2hex($tmp_str));
$arr = array('zid' => $tmp_str, 'url' => $a->cmd);
call_hooks('zid_init',$arr);
+ if((! local_user()) && (! remote_user())) {
+ $r = q("select * from hubloc where hubloc_addr = '%s' limit 1",
+ dbesc($tmp_str)
+ );
+ // try to avoid recursion - but send them home to do a proper magic auth
+ if($r && ($r[0]['hubloc_url'] != z_root()) && (! strstr(get_app()->query_string,'/magic'))) {
+ goaway($r[0]['hubloc_url'] . '/magic' . '?f=&dest=' . z_root() . get_app()->query_string);
+ }
+ }
}
}
diff --git a/include/gprobe.php b/include/gprobe.php
index e66635302..25b56525a 100644
--- a/include/gprobe.php
+++ b/include/gprobe.php
@@ -15,7 +15,7 @@ function gprobe_run($argv, $argc){
$url = hex2bin($argv[1]);
$r = q("select * from xchan where xchan_addr = '%s' limit 1",
- dbesc(normalise_link($url))
+ dbesc($url)
);
if(! $r) {
diff --git a/mod/magic.php b/mod/magic.php
index 408619b7e..72fbe6dba 100644
--- a/mod/magic.php
+++ b/mod/magic.php
@@ -22,6 +22,17 @@ function magic_init(&$a) {
intval(HUBLOC_FLAGS_PRIMARY)
);
}
+ else {
+ // See if we know anybody at the dest site that will unlock the door for us
+ $b = explode('/',$dest);
+ if(count($b) >= 2)
+ $u = $b[0] . '//' . $b[2];
+ $x = q("select xchan.xchan_url, hubloc.* from xchan left join hubloc on xchan_hash = hubloc_hash
+ where hubloc_url = '%s' limit 1",
+ dbesc($u)
+ );
+ }
+
if(! $x) {
diff --git a/version.inc b/version.inc
index 9748752ba..954877f42 100644
--- a/version.inc
+++ b/version.inc
@@ -1 +1 @@
-2013-02-05.222
+2013-02-06.223