diff options
author | Friendika <info@friendika.com> | 2011-09-12 19:42:10 -0700 |
---|---|---|
committer | Friendika <info@friendika.com> | 2011-09-12 19:42:10 -0700 |
commit | 4f24494b0baca1d991cbc74bf3929631c657b676 (patch) | |
tree | bb8dbfe79c3297b02f5c570bc16a3b54ca066b45 /mod/item.php | |
parent | ff572487a38f9d703bf4ad37f3f8a9a499326a81 (diff) | |
download | volse-hubzilla-4f24494b0baca1d991cbc74bf3929631c657b676.tar.gz volse-hubzilla-4f24494b0baca1d991cbc74bf3929631c657b676.tar.bz2 volse-hubzilla-4f24494b0baca1d991cbc74bf3929631c657b676.zip |
Dreamhost's unreliable process model is really getting irritating
Diffstat (limited to 'mod/item.php')
-rw-r--r-- | mod/item.php | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/mod/item.php b/mod/item.php index e6ce1ea6f..025a12a32 100644 --- a/mod/item.php +++ b/mod/item.php @@ -83,7 +83,7 @@ function item_post(&$a) { if(($r === false) || (! count($r))) { notice( t('Unable to locate original post.') . EOL); if(x($_POST,'return')) - goaway($a->get_baseurl() . "/" . $_POST['return'] ); + goaway($a->get_baseurl() . "/" . $return_path ); killme(); } $parent_item = $r[0]; @@ -112,7 +112,7 @@ function item_post(&$a) { if(! can_write_wall($a,$profile_uid)) { notice( t('Permission denied.') . EOL) ; if(x($_POST,'return')) - goaway($a->get_baseurl() . "/" . $_POST['return'] ); + goaway($a->get_baseurl() . "/" . $return_path ); killme(); } @@ -198,7 +198,7 @@ function item_post(&$a) { if(! strlen($body)) { info( t('Empty post discarded.') . EOL ); if(x($_POST,'return')) - goaway($a->get_baseurl() . "/" . $_POST['return'] ); + goaway($a->get_baseurl() . "/" . $return_path ); killme(); } } @@ -550,9 +550,9 @@ function item_post(&$a) { ); proc_run('php', "include/notifier.php", 'edit_post', "$post_id"); - if((x($_POST,'return')) && strlen($_POST['return'])) { - logger('return: ' . $_POST['return']); - goaway($a->get_baseurl() . "/" . $_POST['return'] ); + if((x($_POST,'return')) && strlen($return_path)) { + logger('return: ' . $return_path); + goaway($a->get_baseurl() . "/" . $return_path ); } killme(); } @@ -799,11 +799,10 @@ function item_post(&$a) { else { logger('mod_item: unable to retrieve post that was just stored.'); notify( t('System error. Post not saved.')); - goaway($a->get_baseurl() . "/" . $_POST['return'] ); + goaway($a->get_baseurl() . "/" . $return_path ); // NOTREACHED } - proc_run('php', "include/notifier.php", $notify_type, "$post_id"); $datarray['id'] = $post_id; $datarray['plink'] = $a->get_baseurl() . '/display/' . $user['nickname'] . '/' . $post_id; @@ -835,6 +834,17 @@ function item_post(&$a) { } } + // This is a real juggling act on shared hosting services which kill your processes + // e.g. dreamhost. We used to start delivery to our native delivery agents in the background + // and then run our plugin delivery from the foreground. We're now doing plugin delivery first, + // because as soon as you start loading up a bunch of remote delivey processes, *this* page is + // likely to get killed off. If you end up looking at an /item URL and a blank page, + // it's very likely the delivery got killed before all your friends could be notified. + // Currently the only realistic fixes are to use a reliable server - which precludes shared hosting, + // or cut back on plugins which do remote deliveries. + + proc_run('php', "include/notifier.php", $notify_type, "$post_id"); + logger('post_complete'); // figure out how to return, depending on from whence we came |