aboutsummaryrefslogtreecommitdiffstats
path: root/apps/dav/appinfo/v2/direct.php
blob: 7815631702910dacc8a24ccaa61eece9d5fc1cd0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php

declare(strict_types=1);

/**
 * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
 * SPDX-License-Identifier: AGPL-3.0-or-later
 */
use OCA\DAV\Db\DirectMapper;
use OCA\DAV\Direct\ServerFactory;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\Files\IRootFolder;
use OCP\IRequest;
use OCP\Security\Bruteforce\IThrottler;
use OCP\Server;

// no php execution timeout for webdav
if (!str_contains(@ini_get('disable_functions'), 'set_time_limit')) {
	@set_time_limit(0);
}
ignore_user_abort(true);

// Turn off output buffering to prevent memory problems
\OC_Util::obEnd();

$requestUri = Server::get(IRequest::class)->getRequestUri();

/** @var ServerFactory $serverFactory */
$serverFactory = Server::get(ServerFactory::class);
$server = $serverFactory->createServer(
	$baseuri,
	$requestUri,
	Server::get(IRootFolder::class),
	Server::get(DirectMapper::class),
	Server::get(ITimeFactory::class),
	Server::get(IThrottler::class),
	Server::get(IRequest::class)
);

$server->exec();