I'm going to try again with the conversation request packets. I've looked this over and tested a lot of edge cases, and thought about from every angle I can think of to prevent looping. I don't *think* this can loop. I also doubt that this is the problem at friendicared.de, but I don't know for sure what that problem might be.

This commit is contained in:
friendica
2014-11-02 15:28:20 -08:00
parent 4274a2d06c
commit 285d6f61e4
2 changed files with 60 additions and 13 deletions

View File

@@ -40,6 +40,10 @@ function deliver_run($argv, $argc) {
$notify = json_decode($r[0]['outq_notify'],true);
// Check if this is a conversation request packet. It won't have outq_msg
// but will be an encrypted packet - so will need to be handed off to
// web delivery rather than processed inline.
$sendtoweb = false;
if(array_key_exists('iv',$notify) && (! $r[0]['outq_msg']))
$sendtoweb = true;
@@ -48,8 +52,7 @@ function deliver_run($argv, $argc) {
logger('deliver: local delivery', LOGGER_DEBUG);
// local delivery
// we should probably batch these and save a few delivery processes
// If there is no outq_msg, this is a refresh_all message which does not require local handling
// also send 'request' packets to the webservice so it can decode the packet
if($r[0]['outq_msg']) {
$m = json_decode($r[0]['outq_msg'],true);
if(array_key_exists('message_list',$m)) {