this may actually fix the deliver loop when deleting existing items. It's hackish but I don't see any other way out.
This commit is contained in:
parent
b32841e2dd
commit
b9e485be54
@ -4799,3 +4799,18 @@ function set_linkified_perms($linkified, &$str_contact_allow, &$str_group_allow,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* We can't trust ITEM_ORIGIN to tell us if this is a local comment
|
||||
* which needs to be relayed, because it was misconfigured at one point for several
|
||||
* months and set for some remote items (in alternate delivery chains). This could
|
||||
* cause looping, so use this hackish but accurate method.
|
||||
*/
|
||||
|
||||
|
||||
function comment_local_origin($item) {
|
||||
if(stripos($item['mid'],get_app()->get_hostname()) && ($item['parent'] != $item['id']))
|
||||
return true;
|
||||
return false;
|
||||
}
|
@ -371,7 +371,14 @@ function notifier_run($argv, $argc){
|
||||
// To clarify, a site accepting a new comment is responsible for sending it to the owner for relay.
|
||||
// Relaying should never be initiated on a post that arrived from elsewhere.
|
||||
|
||||
$relay_to_owner = (((! $top_level_post) && ($target_item['item_flags'] & ITEM_ORIGIN)) ? true : false);
|
||||
// We should normally be able to rely on ITEM_ORIGIN, but start_delivery_chain() incorrectly set this
|
||||
// flag on comments for an extended period. So we'll also call comment_local_origin() which looks at
|
||||
// the hostname in the message_id and provides a second (fallback) opinion.
|
||||
|
||||
$relay_to_owner = (((! $top_level_post) && ($target_item['item_flags'] & ITEM_ORIGIN) && comment_local_origin())
|
||||
? true
|
||||
: false
|
||||
);
|
||||
|
||||
$uplink = false;
|
||||
|
||||
|
Reference in New Issue
Block a user