/** * Static method to start the autodiscover process. * * @access public * * @return void */ public static function DoZPushAutodiscover() { ZLog::Write(LOGLEVEL_DEBUG, '-------- Start ZPushAutodiscover'); // TODO use filterevilinput? if (stripos($_SERVER["REQUEST_METHOD"], "GET") !== false) { ZLog::Write(LOGLEVEL_WARN, "GET request for autodiscover. Exiting."); if (!headers_sent()) { ZPush::PrintZPushLegal('GET not supported'); } ZLog::Write(LOGLEVEL_DEBUG, '-------- End ZPushAutodiscover'); exit(1); } if (!isset(self::$instance)) { self::$instance = new ZPushAutodiscover(); } self::$instance->DoAutodiscover(); ZLog::Write(LOGLEVEL_DEBUG, '-------- End ZPushAutodiscover'); }
} if ($ex instanceof AuthenticationRequiredException) { ZPush::PrintZPushLegal($exclass, sprintf('<pre>%s</pre>', $ex->getMessage())); // log the failed login attemt e.g. for fail2ban if (defined('LOGAUTHFAIL') && LOGAUTHFAIL != false) { ZLog::Write(LOGLEVEL_WARN, sprintf("IP: %s failed to authenticate user '%s'", Request::GetRemoteAddr(), Request::GetAuthUser() ? Request::GetAuthUser() : Request::GetGETUser())); } } else { if ($ex instanceof WBXMLException) { ZLog::Write(LOGLEVEL_FATAL, "Request could not be processed correctly due to a WBXMLException. Please report this."); } else { if (!$ex instanceof ZPushException || $ex->showLegalNotice()) { $cmdinfo = Request::GetCommand() ? sprintf(" processing command <i>%s</i>", Request::GetCommand()) : ""; $extrace = $ex->getTrace(); $trace = !empty($extrace) ? "\n\nTrace:\n" . print_r($extrace, 1) : ""; ZPush::PrintZPushLegal($exclass . $cmdinfo, sprintf('<pre>%s</pre>', $ex->getMessage() . $trace)); } } } // Announce exception to process loop detection if (ZPush::GetDeviceManager(false)) { ZPush::GetDeviceManager()->AnnounceProcessException($ex); } // Announce exception if the TopCollector if available ZPush::GetTopCollector()->AnnounceInformation(get_class($ex), true); } // save device data if the DeviceManager is available if (ZPush::GetDeviceManager(false)) { ZPush::GetDeviceManager()->Save(); } // end gracefully