X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FOStatus%2Factions%2Fpushcallback.php;h=1dab72b2e0fc95d941dc6c3f8bdcaf38094911dd;hb=dc0ae2785dfe47db9cc1ead44fe64b89137d18f6;hp=9a2067b8ca0725e5b8ffa201add9bc4fedf4ba03;hpb=b7037a49af97db73b3adc77d3f78ffb0805c7c68;p=quix0rs-gnu-social.git diff --git a/plugins/OStatus/actions/pushcallback.php b/plugins/OStatus/actions/pushcallback.php index 9a2067b8ca..1dab72b2e0 100644 --- a/plugins/OStatus/actions/pushcallback.php +++ b/plugins/OStatus/actions/pushcallback.php @@ -22,22 +22,23 @@ * @maintainer Brion Vibber */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } - +if (!defined('STATUSNET')) { + exit(1); +} class PushCallbackAction extends Action { - function handle() + protected function handle() { StatusNet::setApi(true); // Minimize error messages to aid in debugging parent::handle(); - if ($_SERVER['REQUEST_METHOD'] == 'POST') { - $this->handlePost(); - } else { - $this->handleGet(); + if ($this->isPost()) { + return $this->handlePost(); } + + return $this->handleGet(); } - + /** * Handler for POST content updates from the hub */ @@ -46,12 +47,14 @@ class PushCallbackAction extends Action $feedid = $this->arg('feed'); common_log(LOG_INFO, "POST for feed id $feedid"); if (!$feedid) { - throw new ServerException('Empty or invalid feed id', 400); + // TRANS: Server exception thrown when referring to a non-existing or empty feed. + throw new ServerException(_m('Empty or invalid feed id.'), 400); } - $feedsub = FeedSub::staticGet('id', $feedid); - if (!$feedsub) { - throw new ServerException('Unknown PuSH feed id ' . $feedid, 400); + $feedsub = FeedSub::getKV('id', $feedid); + if (!$feedsub instanceof FeedSub) { + // TRANS: Server exception. %s is a feed ID. + throw new ServerException(sprintf(_m('Unknown PuSH feed id %s'),$feedid), 400); } $hmac = ''; @@ -70,7 +73,7 @@ class PushCallbackAction extends Action $qm = QueueManager::get(); $qm->enqueue($data, 'pushin'); } - + /** * Handler for GET verification requests from the hub. */ @@ -79,30 +82,30 @@ class PushCallbackAction extends Action $mode = $this->arg('hub_mode'); $topic = $this->arg('hub_topic'); $challenge = $this->arg('hub_challenge'); - $lease_seconds = $this->arg('hub_lease_seconds'); - $verify_token = $this->arg('hub_verify_token'); + $lease_seconds = $this->arg('hub_lease_seconds'); // Must be >0 for PuSH 0.4! + common_log(LOG_INFO, __METHOD__ . ": sub verification mode: $mode topic: $topic challenge: $challenge lease_seconds: $lease_seconds"); if ($mode != 'subscribe' && $mode != 'unsubscribe') { - throw new ClientException("Bad hub.mode $mode", 404); - } - - $feedsub = FeedSub::staticGet('uri', $topic); - if (!$feedsub) { - throw new ClientException("Bad hub.topic feed $topic", 404); + // TRANS: Client exception. %s is an invalid value for hub.mode. + throw new ClientException(sprintf(_m('Bad hub.mode "$s".',$mode)), 404); } - if ($feedsub->verify_token !== $verify_token) { - throw new ClientException("Bad hub.verify_token $token for $topic", 404); + $feedsub = FeedSub::getKV('uri', $topic); + if (!$feedsub instanceof FeedSub) { + // TRANS: Client exception. %s is an invalid feed name. + throw new ClientException(sprintf(_m('Bad hub.topic feed "%s".'),$topic), 404); } if ($mode == 'subscribe') { // We may get re-sub requests legitimately. if ($feedsub->sub_state != 'subscribe' && $feedsub->sub_state != 'active') { - throw new ClientException("Unexpected subscribe request for $topic.", 404); + // TRANS: Client exception. %s is an invalid topic. + throw new ClientException(sprintf(_m('Unexpected subscribe request for %s.'),$topic), 404); } } else { if ($feedsub->sub_state != 'unsubscribe') { - throw new ClientException("Unexpected unsubscribe request for $topic.", 404); + // TRANS: Client exception. %s is an invalid topic. + throw new ClientException(sprintf(_m('Unexpected unsubscribe request for %s.'),$topic), 404); } }