diff options
-rw-r--r-- | classes/Notice.php | 4 | ||||
-rw-r--r-- | plugins/OpenID/openid.php | 16 | ||||
-rw-r--r-- | plugins/RSSCloud/RSSCloudQueueHandler.php | 7 |
3 files changed, 24 insertions, 3 deletions
diff --git a/classes/Notice.php b/classes/Notice.php index 14477b1b5..f1b012465 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -583,7 +583,9 @@ class Notice extends Memcached_DataObject if ($f2p->find()) { while ($f2p->fetch()) { $f = File::staticGet($f2p->file_id); - $att[] = clone($f); + if ($f) { + $att[] = clone($f); + } } } return $att; diff --git a/plugins/OpenID/openid.php b/plugins/OpenID/openid.php index 4ce350f77..1b93163e5 100644 --- a/plugins/OpenID/openid.php +++ b/plugins/OpenID/openid.php @@ -182,7 +182,19 @@ function oid_authenticate($openid_url, $returnto, $immediate=false) $trust_root = common_root_url(true); $process_url = common_local_url($returnto); - if ($auth_request->shouldSendRedirect()) { + // Net::OpenID::Server as used on LiveJournal appears to incorrectly + // reject POST requests for data submissions that OpenID 1.1 specs + // as GET, although 2.0 allows them: + // https://rt.cpan.org/Public/Bug/Display.html?id=42202 + // + // Our OpenID libraries would have switched in the redirect automatically + // if it were detecting 1.1 compatibility mode, however the server is + // advertising itself as 2.0-compatible, so we got switched to the POST. + // + // Since the GET should always work anyway, we'll just take out the + // autosubmitter for now. + // + //if ($auth_request->shouldSendRedirect()) { $redirect_url = $auth_request->redirectURL($trust_root, $process_url, $immediate); @@ -194,6 +206,7 @@ function oid_authenticate($openid_url, $returnto, $immediate=false) } else { common_redirect($redirect_url, 303); } + /* } else { // Generate form markup and render it. $form_id = 'openid_message'; @@ -219,6 +232,7 @@ function oid_authenticate($openid_url, $returnto, $immediate=false) $action->handle(array('action' => 'autosubmit')); } } + */ } # Half-assed attempt at a module-private function diff --git a/plugins/RSSCloud/RSSCloudQueueHandler.php b/plugins/RSSCloud/RSSCloudQueueHandler.php index 295c26189..ef11eda2e 100644 --- a/plugins/RSSCloud/RSSCloudQueueHandler.php +++ b/plugins/RSSCloud/RSSCloudQueueHandler.php @@ -28,7 +28,12 @@ class RSSCloudQueueHandler extends QueueHandler function handle($notice) { - $profile = $notice->getProfile(); + try { + $profile = $notice->getProfile(); + } catch (Exception $e) { + common_log(LOG_ERR, "Dropping RSSCloud item for notice with bogus profile: " . $e->getMessage()); + return true; + } $notifier = new RSSCloudNotifier(); return $notifier->notify($profile); } |