Skip to content

Commit 2330c25

Browse files
committed
Move old /remote routes into /daemon sphere.
1 parent d7e5243 commit 2330c25

File tree

6 files changed

+17
-75
lines changed

6 files changed

+17
-75
lines changed

app/Http/Controllers/Remote/RemoteController.php renamed to app/Http/Controllers/Daemon/ActionController.php

Lines changed: 13 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,25 @@
2222
* SOFTWARE.
2323
*/
2424

25-
namespace Pterodactyl\Http\Controllers\Remote;
25+
namespace Pterodactyl\Http\Controllers\Daemon;
2626

27-
use Carbon\Carbon;
28-
use Pterodactyl\Models;
2927
use Illuminate\Http\Request;
28+
use Pterodactyl\Models\Server;
29+
use Pterodactyl\Models\Download;
3030
use Pterodactyl\Http\Controllers\Controller;
31+
use Pterodactyl\Models\NodeConfigurationToken;
3132

32-
class RemoteController extends Controller
33+
class ActionController extends Controller
3334
{
3435
/**
3536
* Handles download request from daemon.
3637
*
3738
* @param \Illuminate\Http\Request $request
3839
* @return \Illuminate\Http\JsonResponse
3940
*/
40-
public function postDownload(Request $request)
41+
public function authenticateDownload(Request $request)
4142
{
42-
$download = Models\Download::where('token', $request->input('token'))->first();
43+
$download = Download::where('token', $request->input('token'))->first();
4344
if (! $download) {
4445
return response()->json([
4546
'error' => 'An invalid request token was recieved with this request.',
@@ -60,9 +61,9 @@ public function postDownload(Request $request)
6061
* @param \Illuminate\Http\Request $request
6162
* @return \Illuminate\Http\JsonResponse
6263
*/
63-
public function postInstall(Request $request)
64+
public function markInstall(Request $request)
6465
{
65-
$server = Models\Server::where('uuid', $request->input('server'))->with('node')->first();
66+
$server = Server::where('uuid', $request->input('server'))->with('node')->first();
6667
if (! $server) {
6768
return response()->json([
6869
'error' => 'No server by that ID was found on the system.',
@@ -72,7 +73,7 @@ public function postInstall(Request $request)
7273
$hmac = $request->input('signed');
7374
$status = $request->input('installed');
7475

75-
if (base64_decode($hmac) !== hash_hmac('sha256', $server->uuid, $server->node->daemonSecret, true)) {
76+
if (! hash_equals(base64_decode($hmac), hash_hmac('sha256', $server->uuid, $server->node->daemonSecret, true))) {
7677
return response()->json([
7778
'error' => 'Signed HMAC was invalid.',
7879
], 403);
@@ -81,35 +82,7 @@ public function postInstall(Request $request)
8182
$server->installed = ($status === 'installed') ? 1 : 2;
8283
$server->save();
8384

84-
return response()->json([
85-
'message' => 'Recieved!',
86-
], 200);
87-
}
88-
89-
/**
90-
* Handles event from daemon.
91-
*
92-
* @param \Illuminate\Http\Request $request
93-
* @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Response
94-
* @deprecated
95-
*/
96-
public function event(Request $request)
97-
{
98-
$server = Models\Server::where('uuid', $request->input('server'))->with('node')->first();
99-
if (! $server) {
100-
return response()->json([
101-
'error' => 'No server by that ID was found on the system.',
102-
], 422);
103-
}
104-
105-
$hmac = $request->input('signed');
106-
if (base64_decode($hmac) !== hash_hmac('sha256', $server->uuid, $server->node->daemonSecret, true)) {
107-
return response()->json([
108-
'error' => 'Signed HMAC was invalid.',
109-
], 403);
110-
}
111-
112-
return response('', 201);
85+
return response('', 204);
11386
}
11487

11588
/**
@@ -119,11 +92,11 @@ public function event(Request $request)
11992
* @param string $token
12093
* @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Response
12194
*/
122-
public function getConfiguration(Request $request, $token)
95+
public function configuration(Request $request, $token)
12396
{
12497
// Try to query the token and the node from the database
12598
try {
126-
$model = Models\NodeConfigurationToken::with('node')->where('token', $token)->firstOrFail();
99+
$model = NodeConfigurationToken::with('node')->where('token', $token)->firstOrFail();
127100
} catch (\Illuminate\Database\Eloquent\ModelNotFoundException $e) {
128101
return response()->json(['error' => 'token_invalid'], 403);
129102
}

app/Models/Node.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,6 @@ public function getConfigurationAsJson($pretty = false)
145145
],
146146
'remote' => [
147147
'base' => route('index'),
148-
'download' => route('remote.download'),
149-
'installed' => route('remote.install'),
150148
],
151149
'uploads' => [
152150
'size_limit' => $this->upload_size,

app/Providers/RouteServiceProvider.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,6 @@ public function map()
5757
->namespace($this->namespace . '\Server')
5858
->group(base_path('routes/server.php'));
5959

60-
Route::middleware(['web'])->prefix('/remote')
61-
->namespace($this->namespace . '\Remote')
62-
->group(base_path('routes/remote.php'));
63-
6460
Route::middleware(['web', 'daemon'])->prefix('/daemon')
6561
->namespace($this->namespace . '\Daemon')
6662
->group(base_path('routes/daemon.php'));

app/Repositories/NodeRepository.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,8 +177,6 @@ public function update($id, array $data)
177177
],
178178
'remote' => [
179179
'base' => config('app.url'),
180-
'download' => route('remote.download'),
181-
'installed' => route('remote.install'),
182180
],
183181
'uploads' => [
184182
'size_limit' => $node->upload_size,

routes/daemon.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,7 @@
2626
Route::get('/packs/pull/{uuid}', 'PackController@pull')->name('daemon.pack.pull');
2727
Route::get('/packs/pull/{uuid}/hash', 'PackController@hash')->name('daemon.pack.hash');
2828
Route::get('/details/option/{server}', 'OptionController@details')->name('daemon.option.details');
29+
Route::get('/configure/{token}', 'ActionController@configuration')->name('daemon.configuration');
30+
31+
Route::post('/download', 'ActionController@authentiateDownload')->name('daemon.download');
32+
Route::post('/install', 'ActionController@markInstall')->name('daemon.install');

routes/remote.php

Lines changed: 0 additions & 27 deletions
This file was deleted.

0 commit comments

Comments
 (0)