Example #1
0
 /**
  * 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');
 }
Example #2
0
    }
    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