aboutsummaryrefslogtreecommitdiffstats
path: root/mod/item.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/item.php')
-rw-r--r--mod/item.php26
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