aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2015-02-26 14:20:43 -0800
committerfriendica <info@friendica.com>2015-02-26 14:20:43 -0800
commit09f80270defdd2dfbf5cf4cc9da0cae686874aba (patch)
tree39c12c03e092f2d326de8c22bf8beaac5a84cd6e /include
parentac3384e661115fac5d771f62fc3eaa1587e5326f (diff)
downloadvolse-hubzilla-09f80270defdd2dfbf5cf4cc9da0cae686874aba.tar.gz
volse-hubzilla-09f80270defdd2dfbf5cf4cc9da0cae686874aba.tar.bz2
volse-hubzilla-09f80270defdd2dfbf5cf4cc9da0cae686874aba.zip
loop breaker
Diffstat (limited to 'include')
-rw-r--r--include/zot.php16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/zot.php b/include/zot.php
index 455702b06..e290697b6 100644
--- a/include/zot.php
+++ b/include/zot.php
@@ -1856,7 +1856,23 @@ function delete_imported_item($sender,$item,$uid,$relay) {
logger('delete_imported_item: item was already deleted');
if(! $relay)
return false;
+
+ // This is a bit hackish, but may have to suffice until the notification/delivery loop is optimised
+ // a bit further. We're going to strip the ITEM_ORIGIN on this item if it's a comment, because
+ // it was already deleted, and we're already relaying, and this ensures that no other process or
+ // code path downstream can relay it again (causing a loop). Since it's already gone it's not coming
+ // back, and we aren't going to (or shouldn't at any rate) delete it again in the future - so losing
+ // this information from the metadata should have no other discernible impact.
+
+ if(($r[0]['id'] != $r[0]['parent']) && ($r[0]['item_flags'] & ITEM_ORIGIN)) {
+ $x = q("update item set item_flags = %d where id = %d and uid = %d",
+ intval($r[0]['item_flags'] ^ ITEM_ORIGIN),
+ intval($r[0]['id']),
+ intval($r[0]['uid'])
+ );
+ }
}
+
require_once('include/items.php');