aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMario <mario@mariovavti.com>2021-05-27 17:42:28 +0000
committerMario <mario@mariovavti.com>2021-05-27 17:42:28 +0000
commit3eb1b9d168644ed4fd8bca5de8360c7ededbacfc (patch)
treec58c0bd88ae65d52dc36511550a7760cb4bed4ad
parent2fb3d6ddf5e72b97fbbdfbc65cdaba90ff73d4b8 (diff)
downloadvolse-hubzilla-3eb1b9d168644ed4fd8bca5de8360c7ededbacfc.tar.gz
volse-hubzilla-3eb1b9d168644ed4fd8bca5de8360c7ededbacfc.tar.bz2
volse-hubzilla-3eb1b9d168644ed4fd8bca5de8360c7ededbacfc.zip
remove reply_message_request(), implement force_refresh and minor fixes
-rw-r--r--Zotlabs/Daemon/Onepoll.php19
-rw-r--r--Zotlabs/Zot6/IHandler.php10
-rw-r--r--Zotlabs/Zot6/Receiver.php18
-rw-r--r--Zotlabs/Zot6/Zot6Handler.php95
4 files changed, 34 insertions, 108 deletions
diff --git a/Zotlabs/Daemon/Onepoll.php b/Zotlabs/Daemon/Onepoll.php
index 9b4bee558..4aebf64b0 100644
--- a/Zotlabs/Daemon/Onepoll.php
+++ b/Zotlabs/Daemon/Onepoll.php
@@ -45,7 +45,7 @@ class Onepoll {
return;
}
- $contact = array_shift($contacts);
+ $contact = $contacts[0];
$importer_uid = $contact['abook_channel'];
$r = q("SELECT * from channel left join xchan on channel_hash = xchan_hash where channel_id = %d limit 1",
@@ -106,21 +106,20 @@ class Onepoll {
return;
$fetch_feed = true;
- $x = null;
// They haven't given us permission to see their stream
-
$can_view_stream = intval(get_abconfig($importer_uid, $contact['abook_xchan'], 'their_perms', 'view_stream'));
- if (!$can_view_stream)
+ if (!$can_view_stream) {
$fetch_feed = false;
+ }
// we haven't given them permission to send us their stream
-
$can_send_stream = intval(get_abconfig($importer_uid, $contact['abook_xchan'], 'my_perms', 'send_stream'));
- if (!$can_send_stream)
+ if (!$can_send_stream) {
$fetch_feed = false;
+ }
if ($fetch_feed) {
@@ -129,8 +128,8 @@ class Onepoll {
if (intval($max)) {
$cl = get_xconfig($contact['abook_xchan'], 'activitypub', 'collections');
- if (is_array($cl) && $cl) {
- $url = ((array_key_exists('outbox', $cl)) ? $cl['outbox'] : '');
+ if (is_array($cl) && array_key_exists('outbox', $cl)) {
+ $url = $cl['outbox'];
}
else {
$url = str_replace('/poco/', '/zotfeed/', $contact['xchan_connurl']);
@@ -160,8 +159,10 @@ class Onepoll {
// update the poco details for this connection
$r = q("SELECT xlink_id from xlink where xlink_xchan = '%s' and xlink_updated > %s - INTERVAL %s and xlink_static = 0 limit 1",
intval($contact['xchan_hash']),
- db_utcnow(), db_quoteinterval('1 DAY')
+ db_utcnow(),
+ db_quoteinterval('1 DAY')
);
+
if (!$r) {
poco_load($contact['xchan_hash'], $contact['xchan_connurl']);
}
diff --git a/Zotlabs/Zot6/IHandler.php b/Zotlabs/Zot6/IHandler.php
index 53b6caa89..4e7738926 100644
--- a/Zotlabs/Zot6/IHandler.php
+++ b/Zotlabs/Zot6/IHandler.php
@@ -4,15 +4,13 @@ namespace Zotlabs\Zot6;
interface IHandler {
- function Notify($data,$hub);
+ function Notify($data, $hub);
- function Request($data,$hub);
+ function Rekey($sender, $data, $hub);
- function Rekey($sender,$data,$hub);
+ function Refresh($sender, $recipients, $hub, $force);
- function Refresh($sender,$recipients,$hub);
-
- function Purge($sender,$recipients,$hub);
+ function Purge($sender, $recipients, $hub);
}
diff --git a/Zotlabs/Zot6/Receiver.php b/Zotlabs/Zot6/Receiver.php
index 6440c5da5..964c61651 100644
--- a/Zotlabs/Zot6/Receiver.php
+++ b/Zotlabs/Zot6/Receiver.php
@@ -7,7 +7,6 @@ use Zotlabs\Lib\Crypto;
use Zotlabs\Lib\Libzot;
use Zotlabs\Web\HTTPSig;
-
class Receiver {
protected $data;
@@ -174,21 +173,20 @@ class Receiver {
function Dispatch() {
switch ($this->messagetype) {
-
- case 'request':
- $this->response = $this->handler->Request($this->data,$this->hub);
- break;
-
case 'purge':
- $this->response = $this->handler->Purge($this->sender,$this->recipients,$this->hub);
+ $this->response = $this->handler->Purge($this->sender, $this->recipients, $this->hub);
break;
case 'refresh':
- $this->response = $this->handler->Refresh($this->sender,$this->recipients,$this->hub);
+ $this->response = $this->handler->Refresh($this->sender, $this->recipients, $this->hub, false);
+ break;
+
+ case 'force_refresh':
+ $this->response = $this->handler->Refresh($this->sender, $this->recipients, $this->hub, true);
break;
case 'rekey':
- $this->response = $this->handler->Rekey($this->sender, $this->data,$this->hub);
+ $this->response = $this->handler->Rekey($this->sender, $this->data, $this->hub);
break;
case 'activity':
@@ -196,7 +194,7 @@ class Receiver {
case 'sync':
default:
if ($this->sender) {
- $this->response = $this->handler->Notify($this->data,$this->hub);
+ $this->response = $this->handler->Notify($this->data, $this->hub);
}
break;
diff --git a/Zotlabs/Zot6/Zot6Handler.php b/Zotlabs/Zot6/Zot6Handler.php
index d95009784..32953f226 100644
--- a/Zotlabs/Zot6/Zot6Handler.php
+++ b/Zotlabs/Zot6/Zot6Handler.php
@@ -7,24 +7,20 @@ use Zotlabs\Lib\Queue;
class Zot6Handler implements IHandler {
- function Notify($data,$hub) {
- return self::reply_notify($data,$hub);
+ function Notify($data, $hub) {
+ return self::reply_notify($data, $hub);
}
- function Request($data,$hub) {
- return self::reply_message_request($data,$hub);
+ function Rekey($sender, $data, $hub) {
+ return self::reply_rekey_request($sender, $data, $hub);
}
- function Rekey($sender,$data,$hub) {
- return self::reply_rekey_request($sender,$data,$hub);
+ function Refresh($sender, $recipients, $hub, $force) {
+ return self::reply_refresh($sender, $recipients, $hub, $force);
}
- function Refresh($sender,$recipients,$hub) {
- return self::reply_refresh($sender,$recipients,$hub);
- }
-
- function Purge($sender,$recipients,$hub) {
- return self::reply_purge($sender,$recipients,$hub);
+ function Purge($sender, $recipients, $hub) {
+ return self::reply_purge($sender, $recipients, $hub);
}
@@ -38,7 +34,7 @@ class Zot6Handler implements IHandler {
logger('notify received from ' . $hub['hubloc_url']);
- $x = Libzot::fetch($data);
+ $x = Libzot::fetch($data, $hub);
$ret['delivery_report'] = $x;
@@ -62,7 +58,7 @@ class Zot6Handler implements IHandler {
*
* @return array
*/
- static function reply_refresh($sender, $recipients, $hub) {
+ static function reply_refresh($sender, $recipients, $hub, $force) {
$ret = array('success' => false);
if($recipients) {
@@ -76,86 +72,19 @@ class Zot6Handler implements IHandler {
dbesc($recip)
);
/// @FIXME $msgtype is undefined
- $x = Libzot::refresh( [ 'hubloc_id_url' => $hub['hubloc_id_url'] ], $r[0], (($msgtype === 'force_refresh') ? true : false));
+ $x = Libzot::refresh([ 'hubloc_id_url' => $hub['hubloc_id_url']], $r[0], $force));
}
}
else {
// system wide refresh
/// @FIXME $msgtype is undefined
- $x = Libzot::refresh( [ 'hubloc_id_url' => $hub['hubloc_id_url'] ], null, (($msgtype === 'force_refresh') ? true : false));
+ $x = Libzot::refresh(['hubloc_id_url' => $hub['hubloc_id_url']], null, $force);
}
$ret['success'] = true;
return $ret;
}
-
-
- /**
- * @brief Process a message request.
- *
- * If a site receives a comment to a post but finds they have no parent to attach it with, they
- * may send a 'request' packet containing the message_id of the missing parent. This is the handler
- * for that packet. We will create a message_list array of the entire conversation starting with
- * the missing parent and invoke delivery to the sender of the packet.
- *
- * Zotlabs/Daemon/Deliver.php (for local delivery) and
- * mod/post.php???? @fixme (for web delivery) detect the existence of
- * this 'message_list' at the destination and split it into individual messages which are
- * processed/delivered in order.
- *
- * @param array $data
- * @param array $hub
- * @return array
- */
- static function reply_message_request($data, $hub) {
- $ret = [ 'success' => false ];
-
- $message_id = EMPTY_STR;
-
- if(array_key_exists('data',$data))
- $ptr = $data['data'];
- if(is_array($ptr) && array_key_exists(0,$ptr)) {
- $ptr = $ptr[0];
- }
- if(is_string($ptr)) {
- $message_id = $ptr;
- }
- if(is_array($ptr) && array_key_exists('id',$ptr)) {
- $message_id = $ptr['id'];
- }
-
- if (! $message_id) {
- $ret['message'] = 'no message_id';
- logger('no message_id');
- return $ret;
- }
-
- $sender = $hub['hubloc_hash'];
-
- /*
- * Find the local channel in charge of this post (the first and only recipient of the request packet)
- */
-
- $arr = $data['recipients'][0];
-
- $c = q("select * from channel left join xchan on channel_hash = xchan_hash where channel_hash = '%s' limit 1",
- dbesc($arr['portable_id'])
- );
- if (! $c) {
- logger('recipient channel not found.');
- $ret['message'] .= 'recipient not found.' . EOL;
- return $ret;
- }
-
- /*
- * fetch the requested conversation
- */
- $messages = zot_feed($c[0]['channel_id'], $sender, [ 'message_id' => $data['message_id'], 'encoding' => 'activitystreams' ]);
-
- return (($messages) ? : [] );
- }
-
static function rekey_request($sender,$data,$hub) {
$ret = array('success' => false);