aboutsummaryrefslogtreecommitdiffstats
path: root/include/items.php
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2015-01-27 15:47:24 -0800
committerfriendica <info@friendica.com>2015-01-27 15:47:24 -0800
commit2f4ef7660c82f7b8878a7c2d14c9e69a52b8fbc0 (patch)
tree932e942c144586dd298bd641644d523a96abb479 /include/items.php
parent525c62ab1d90ad7fed33267bc64cc85f0c4492f8 (diff)
downloadvolse-hubzilla-2f4ef7660c82f7b8878a7c2d14c9e69a52b8fbc0.tar.gz
volse-hubzilla-2f4ef7660c82f7b8878a7c2d14c9e69a52b8fbc0.tar.bz2
volse-hubzilla-2f4ef7660c82f7b8878a7c2d14c9e69a52b8fbc0.zip
improved route mismatch detection. We will be less strict about the absolute route matching and only look at the last hop before it got to us - which is ultimately all we should care about (since that sender controls the thread permissions). Route mismatches seem to occur somewhat frequently from yamkote (for unknown reasons), and the logging has been improved a bit so it should provide some slightly more useful debugging info in case it still happens going forward. Oh, also we'll set the parent on comments when we store the initial post (item_store()) and only go back and set the parent for top-level posts. This should reduce the number of comments with missing parents on shared hosts, but may increase the number of missing threads. Probably worthwhile to do a query occasionally for parent = 0 and see how we're doing and how many have shared host related delivery issues.
Diffstat (limited to 'include/items.php')
-rwxr-xr-xinclude/items.php53
1 files changed, 20 insertions, 33 deletions
diff --git a/include/items.php b/include/items.php
index fb2f2586a..70802404a 100755
--- a/include/items.php
+++ b/include/items.php
@@ -2186,6 +2186,20 @@ function item_store($arr,$allow_exec = false) {
unset($arr['term']);
}
+ if(strlen($allow_cid) || strlen($allow_gid) || strlen($deny_cid) || strlen($deny_gid) || strlen($public_policy))
+ $private = 1;
+ else
+ $private = $arr['item_private'];
+
+ $arr['parent'] = $parent_id;
+ $arr['allow_cid'] = $allow_cid;
+ $arr['allow_gid'] = $allow_gid;
+ $arr['deny_cid'] = $deny_cid;
+ $arr['deny_gid'] = $deny_gid;
+ $arr['public_policy'] = $public_policy;
+ $arr['item_private'] = $private;
+ $arr['comments_closed'] = $comments_closed;
+
logger('item_store: ' . print_r($arr,true), LOGGER_DATA);
dbesc_array($arr);
@@ -2203,7 +2217,6 @@ function item_store($arr,$allow_exec = false) {
intval($arr['uid'])
);
-
if($r && count($r)) {
$current_post = $r[0]['id'];
$arr = $r[0]; // This will gives us a fresh copy of what's now in the DB and undo the db escaping, which really messes up the notifications
@@ -2223,40 +2236,14 @@ function item_store($arr,$allow_exec = false) {
);
}
- if((! $parent_id) || ($arr['parent_mid'] === $arr['mid']))
- $parent_id = $current_post;
-
- if(strlen($allow_cid) || strlen($allow_gid) || strlen($deny_cid) || strlen($deny_gid) || strlen($public_policy))
- $private = 1;
- else
- $private = $arr['item_private'];
+ $arr['id'] = $current_post;
- // Set parent id - and also make sure to inherit the parent's ACL's.
-
- $r = q("UPDATE item SET parent = %d, allow_cid = '%s', allow_gid = '%s',
- deny_cid = '%s', deny_gid = '%s', public_policy = '%s', item_private = %d, comments_closed = '%s'
- WHERE id = %d",
- intval($parent_id),
- dbesc($allow_cid),
- dbesc($allow_gid),
- dbesc($deny_cid),
- dbesc($deny_gid),
- dbesc($public_policy),
- intval($private),
- dbesc($comments_closed),
- intval($current_post)
- );
+ if(! intval($r[0]['parent'])) {
+ $x = q("update item set parent = id where id = %d",
+ intval($r[0]['id'])
+ );
+ }
- // These are probably redundant now that we've queried the just stored post
- $arr['id'] = $current_post;
- $arr['parent'] = $parent_id;
- $arr['allow_cid'] = $allow_cid;
- $arr['allow_gid'] = $allow_gid;
- $arr['deny_cid'] = $deny_cid;
- $arr['deny_gid'] = $deny_gid;
- $arr['public_policy'] = $public_policy;
- $arr['item_private'] = $private;
- $arr['comments_closed'] = $comments_closed;
// Store taxonomy