summaryrefslogtreecommitdiffstats
path: root/remote.php
diff options
context:
space:
mode:
authorRobin McCorkell <rmccorkell@owncloud.com>2015-08-18 14:02:30 +0100
committerRobin McCorkell <rmccorkell@owncloud.com>2015-08-18 14:02:30 +0100
commitb4532028f97f0db21114f9deb3375bf0923d4a97 (patch)
tree621cd489ec3a7a36388f0b9ed8445d5b396f315d /remote.php
parent03965053c34bc0fe673ea0da82ac83ff68ce3fa3 (diff)
downloadnextcloud-server-b4532028f97f0db21114f9deb3375bf0923d4a97.tar.gz
nextcloud-server-b4532028f97f0db21114f9deb3375bf0923d4a97.zip
Avoid logging normal exceptions in remote.php
When the instance needs an upgrade, or a file is not found, no logging will occur to avoid filling up log files
Diffstat (limited to 'remote.php')
-rw-r--r--remote.php11
1 files changed, 8 insertions, 3 deletions
diff --git a/remote.php b/remote.php
index 0b43f949ad4..01077e805eb 100644
--- a/remote.php
+++ b/remote.php
@@ -33,6 +33,7 @@ use Sabre\DAV\Server;
/**
* Class RemoteException
* Dummy exception class to be use locally to identify certain conditions
+ * Will not be logged to avoid DoS
*/
class RemoteException extends Exception {
}
@@ -47,7 +48,10 @@ function handleException(Exception $e) {
if ($isXmlContentType === 0) {
// fire up a simple server to properly process the exception
$server = new Server();
- $server->addPlugin(new ExceptionLoggerPlugin('webdav', \OC::$server->getLogger()));
+ if (!($e instanceof RemoteException)) {
+ // we shall not log on RemoteException
+ $server->addPlugin(new ExceptionLoggerPlugin('webdav', \OC::$server->getLogger()));
+ }
$server->on('beforeMethod', function () use ($e) {
if ($e instanceof RemoteException) {
switch ($e->getCode()) {
@@ -67,11 +71,12 @@ function handleException(Exception $e) {
if ($e instanceof \OC\ServiceUnavailableException ) {
$statusCode = OC_Response::STATUS_SERVICE_UNAVAILABLE;
}
- \OCP\Util::writeLog('remote', $e->getMessage(), \OCP\Util::FATAL);
if ($e instanceof RemoteException) {
+ // we shall not log on RemoteException
OC_Response::setStatus($e->getCode());
OC_Template::printErrorPage($e->getMessage());
} else {
+ \OCP\Util::writeLog('remote', $e->getMessage(), \OCP\Util::FATAL);
OC_Response::setStatus($statusCode);
OC_Template::printExceptionErrorPage($e);
}
@@ -122,7 +127,7 @@ try {
break;
default:
if (!\OC::$server->getAppManager()->isInstalled($app)) {
- throw new Exception('App not installed: ' . $app);
+ throw new RemoteException('App not installed: ' . $app);
}
OC_App::loadApp($app);
$file = OC_App::getAppPath($app) .'/'. $parts[1];