/** * Call the /admin/ping servlet, can be used to quickly tell if a connection to the server is able to be made * * @param float $timeout maximum time to wait for ping in seconds, -1 for unlimited (default is 2) * * @return float|bool */ public function ping($timeout = 0) { $this->_setBasicAdapterOptions($timeout); $this->_curlAdapter->addOptions(array(CURLOPT_HEADER => 0, CURLOPT_NOBODY => 1))->write(Zend_Http_Client::GET, $this->_pingUrl); $totalTime = microtime(1); $this->_curlAdapter->read(); $result = $this->_curlAdapter->getInfo(CURLINFO_HTTP_CODE) == 200 ? round(microtime(1) - $totalTime, 3) : false; $this->_curlAdapter->close(); return $result; }
protected function _makeRequest($ping) { $curl = new Varien_Http_Adapter_Curl(); $curl->setConfig(array('timeout' => 20)); $curl->write(Zend_Http_Client::GET, $ping, '1.1'); $data = $curl->read(); if ($data === false) { return false; } $code = $curl->getInfo(CURLINFO_HTTP_CODE); if ($code == 200) { return $code; } else { Mage::log("Submission to: " . $ping . " failed, HTTP response code was not 200"); Mage::log("Response error: " . $data); // uncomment to debug raw submission response return false; } //TODO: handle timeout? }
/** * Send broadcast message * * @throws Mage_Core_Exception * @param Mage_XmlConnect_Model_Queue $queue */ public function sendBroadcastMessage(Mage_XmlConnect_Model_Queue $queue) { if ($queue->getStatus() != Mage_XmlConnect_Model_Queue::STATUS_IN_QUEUE) { return; } try { $applicationId = Mage::getModel('xmlconnect/template')->load($queue->getTemplateId())->getApplicationId(); /** @var $app Mage_XmlConnect_Model_Application */ $app = Mage::getModel('xmlconnect/application')->load($applicationId); if (!$app->getId()) { Mage::throwException(Mage::helper('xmlconnect')->__('Can\'t load application with id "%s"', $applicationId)); } if (!$app->isNotificationsActive()) { $queue->setStatus(Mage_XmlConnect_Model_Queue::STATUS_CANCELED); return; } $sendType = $queue->getData('type'); switch ($sendType) { case Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_AIRMAIL: $configPath = 'xmlconnect/' . Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_AIRMAIL . '/broadcast_url'; $params = $queue->getAirmailBroadcastParams(); break; case Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_PUSH: default: $configPath = 'xmlconnect/' . Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_PUSH . '/broadcast_url'; $params = $queue->getPushBroadcastParams(); break; } $curl = new Varien_Http_Adapter_Curl(); $curl->setConfig($this->_getCurlConfig($app->getUserpwd())); $urbanUrl = Mage::getStoreConfig($configPath); $curl->write(Zend_Http_Client::POST, $urbanUrl, HTTP_REQUEST_HTTP_VER_1_1, $this->getHttpHeaders(), $params); if ($curl->read() && $curl->getInfo(CURLINFO_HTTP_CODE) == 200) { $queue->setStatus(Mage_XmlConnect_Model_Queue::STATUS_COMPLETED); } $curl->close(); $queue->setIsSent(true); $queue->save(); return; } catch (Exception $e) { Mage::logException($e); throw $e; } }
/** * Check is readable Popup Notification Object * @deprecated after 1.4.2.0 * * @return bool */ public function isReadablePopupObject() { if (is_null($this->_popupReadable)) { $this->_popupReadable = false; $curl = new Varien_Http_Adapter_Curl(); $curl->setConfig(array('timeout' => 2)); $curl->write(Zend_Http_Client::GET, $this->getPopupObjectUrl(true)); if ($curl->read()) { if ($curl->getInfo(CURLINFO_HTTP_CODE) == 200) { $this->_popupReadable = true; } } } return $this->_popupReadable; }
/** * * @param mixed $apiCallResult * @param Varien_Http_Adapter_Curl $apiService */ public function initialize($apiCallResult, Varien_Http_Adapter_Curl $apiService) { $this->_result = $apiCallResult; $this->_error = $apiService->getError(); $this->_httpStatus = $apiService->getInfo(CURLINFO_HTTP_CODE); }