2022-08-31 06:06:27 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace KaraDAV;
|
|
|
|
|
|
|
|
require_once __DIR__ . '/_inc.php';
|
|
|
|
|
2022-08-31 07:57:49 +00:00
|
|
|
$uri = strtok($_SERVER['REQUEST_URI'], '?');
|
|
|
|
|
2022-10-03 01:03:19 +00:00
|
|
|
$s = new Server;
|
|
|
|
|
2022-10-21 15:34:08 +00:00
|
|
|
$method = $_SERVER['REQUEST_METHOD'] ?? $_SERVER['REDIRECT_REQUEST_METHOD'];
|
|
|
|
$qs = $_SERVER['QUERY_STRING'] ?? null;
|
2022-10-21 16:21:38 +00:00
|
|
|
$headers = apache_request_headers();
|
|
|
|
|
|
|
|
http_log("===== ROUTER: Got new request: %s from %s =====", date('d/m/Y H:i:s'), $_SERVER['REMOTE_ADDR']);
|
|
|
|
|
|
|
|
http_log("ROUTER: <= %s %s (User: %s)\nRequest headers:\n %s",
|
|
|
|
$method,
|
|
|
|
$uri . ($qs ? '?' : '') . $qs,
|
|
|
|
$_SERVER['PHP_AUTH_USER'] ?? 'none',
|
|
|
|
implode("\n ", array_map(fn ($v, $k) => $k . ': ' . $v, $headers, array_keys($headers)))
|
|
|
|
);
|
2022-10-21 15:34:08 +00:00
|
|
|
|
2022-08-31 06:06:27 +00:00
|
|
|
if (PHP_SAPI == 'cli-server') {
|
2022-08-31 07:57:49 +00:00
|
|
|
if (is_file(__DIR__ . '/' . $uri)) {
|
2022-08-31 06:06:27 +00:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
// Index.php
|
2022-10-21 15:34:08 +00:00
|
|
|
elseif ($uri == '/' && $method != 'OPTIONS') {
|
2022-08-31 06:06:27 +00:00
|
|
|
return false;
|
|
|
|
}
|
2022-08-31 07:57:49 +00:00
|
|
|
|
2022-10-21 16:21:38 +00:00
|
|
|
if ($method == 'PROPPATCH' || $method == 'PROPFIND') {
|
|
|
|
http_log("ROUTER: <= Request body:\n%s", file_get_contents('php://input'));
|
2022-09-03 04:25:02 +00:00
|
|
|
}
|
2022-08-31 06:06:27 +00:00
|
|
|
}
|
|
|
|
|
2022-09-04 00:27:40 +00:00
|
|
|
if (isset($_SERVER['REDIRECT_REQUEST_METHOD'])) {
|
|
|
|
$_SERVER['REQUEST_METHOD'] = $_SERVER['REDIRECT_REQUEST_METHOD'];
|
|
|
|
}
|
|
|
|
|
2022-08-31 07:57:49 +00:00
|
|
|
if (!$s->route($uri)) {
|
2022-10-03 01:03:19 +00:00
|
|
|
if (PHP_SAPI == 'cli-server') {
|
2022-10-21 16:21:38 +00:00
|
|
|
$s->dav->log("ROUTER: => Route is not managed: 404");
|
2022-10-03 01:03:19 +00:00
|
|
|
}
|
|
|
|
|
2022-08-31 06:06:27 +00:00
|
|
|
http_response_code(404);
|
|
|
|
echo '<h1>Invalid URL</h1>';
|
|
|
|
}
|
2022-10-03 01:03:19 +00:00
|
|
|
else {
|
2022-10-21 16:21:38 +00:00
|
|
|
http_log("ROUTER: => %d\nResponse headers:\n %s", http_response_code(), implode("\n ", headers_list()));
|
2022-10-03 01:03:19 +00:00
|
|
|
}
|