Commit Graph

550 Commits

Author SHA1 Message Date
Matthew Penner
d1c0ca5260
server(filesystem): rebuild everything imaginable
This wonderfully large commit replaces basically everything under the
`server/filesystem` package, re-implementing essentially everything.

This is related to
https://github.com/pterodactyl/wings/security/advisories/GHSA-494h-9924-xww9

If any vulnerabilities related to symlinks persist after this commit, I
will be very upset.

Signed-off-by: Matthew Penner <me@matthewp.io>
2024-03-13 12:27:29 -06:00
Daniel Barton
d1fd0465e4
server(filesystem): fix file names when extracting archives (#165) 2023-10-17 20:47:36 -06:00
guangwu
48c55af373
chore: slice loop replace (#173) 2023-10-02 17:24:17 -06:00
guangwu
7a59d0929c
chore: remove unnecessary use of fmt.Sprintf (#174) 2023-10-02 17:23:45 -06:00
Matthew Penner
4d51de71c2
server(filesystem): fix test failure 2023-05-10 12:59:22 -06:00
Matthew Penner
b665c943a2
server(install): remove privileges from install container 2023-05-10 12:35:46 -06:00
Matthew Penner
a50e4ce9d1
go: update dependencies 2023-05-08 13:52:15 -06:00
Matthew Penner
74b1c46b7f
server(filesystem): fix archive test 2023-03-07 15:29:29 -07:00
Matthew Penner
43b3496f00
server(filesystem): fix archiver path matching
Closes https://github.com/pterodactyl/panel/issues/4630
2023-03-07 15:19:09 -07:00
Matthew Penner
429ac62dba
server(filesystem): Delete tweaks 2023-02-08 14:20:13 -07:00
Matthew Penner
dac9685298
server(filesystem): SafePath tweaks 2023-02-07 19:14:35 -07:00
Matthew Penner
14eea3b1e4
router: close body once finished 2023-01-24 12:33:42 -07:00
Matthew Penner
13d3490bcf
server(filesystem): fix Writefile being broken 2023-01-17 18:44:56 -07:00
Matthew Penner
e9b8b11fec
Ensure files are closed after they are done being used 2023-01-17 18:34:08 -07:00
Matthew Penner
9b8b3c90fb
environment(docker): improve logging and stacks 2023-01-17 11:47:27 -07:00
Matthew Penner
43227bf24d
server(transfer): fix dead-lock while uploading archive
Previously we waited for both the request and multipart writer
to "complete", before handing any errors.  This lead to a problem
where if the request returns before all the data has been read,
the upload would become stuck and keep the server in a transferring
state when the transfer should've been aborted.

Closes https://github.com/pterodactyl/panel/issues/4578
2022-11-29 14:04:27 -07:00
Dane Everitt
ff50d0e5bd
Cleanup request error handling; properly handle os.ErrNotExist errors (#150) 2022-11-22 11:18:27 -07:00
Matthew Penner
da94f750ad
server(install): update installation status request
The new request includes a `reinstall` option to denote
whether the installation failed for the first time, or
during a reinstall.

ref https://github.com/pterodactyl/panel/issues/1994
2022-11-21 14:57:44 -07:00
Matthew Penner
57e7eb714c
Streaming Transfers (#153) 2022-11-14 18:25:01 -07:00
Matthew Penner
eb4df39d14
server(filesystem): fix inaccurate archive progress (#145) 2022-11-06 13:38:30 -07:00
Matthew Penner
3337362955
environment(docker): fix podman compatibility (#151) 2022-11-06 13:33:01 -07:00
Matthew Penner
f577f5521f
server(filesystem): fix panic with archive Progress 2022-11-04 11:24:19 -06:00
Cubxity
5a760a0dcc
Add customizable container labels (#146) 2022-10-16 17:17:27 -06:00
Matthew Penner
058f643e65
chore: reformat code 2022-10-06 09:58:42 -06:00
Matthew Penner
3f481e9540
chore: run gofumpt 2022-10-05 17:24:11 -06:00
Matthew Penner
6fb61261b0
server(transfers): track progress of archive creation and extraction (#143) 2022-10-04 20:35:48 -06:00
argetlam-coder
0637eebefe
docker: add configuration for user namespace remapping (#121) 2022-10-04 18:12:13 -06:00
Matthew Penner
7245791214
backups(s3): send uploaded parts in complete request 2022-09-26 11:14:57 -06:00
PotatoMaaan
c686992e85
backups: add an option to change gzip compression level (#128) 2022-09-25 18:47:09 -06:00
camjac251
c736c24118
it's to its (#123) 2022-09-25 13:34:28 -06:00
DaneEveritt
231e24aa33
Support new metadata from panel for servers 2022-07-24 17:16:45 -04:00
DaneEveritt
e3ab241d7f
Track file upload activity 2022-07-24 17:12:47 -04:00
DaneEveritt
8cee18a92b
Save activity in a background routine to speed things along; cap query time at 3 seconds 2022-07-24 16:27:25 -04:00
DaneEveritt
8a867ccc44
Switch to gorm for activity logging 2022-07-24 11:43:48 -04:00
DaneEveritt
61baccb1a3
Push draft of sftp reconcilation details 2022-07-24 10:28:42 -04:00
DaneEveritt
7bd11c1c28
Switch to SQLite for activity tracking 2022-07-10 16:51:11 -04:00
DaneEveritt
f28e06267c
Better tracking of SFTP events 2022-07-10 14:30:32 -04:00
DaneEveritt
59fbd2bcea
Add initial niaeve implementation of SFTP logging
This will end up flooding the activity logs due to the way SFTP works, we'll need to have an intermediate step in Wings that batches events every 10 seconds or so and submits them as a single "event" for activity.
2022-07-09 19:37:42 -04:00
DaneEveritt
dda7d10d37
Use the natural panel event names 2022-07-09 17:52:59 -04:00
DaneEveritt
ed330fa6be
Squashed commit of the following:
commit f5baab4e88
Author: DaneEveritt <dane@daneeveritt.com>
Date:   Sat Jul 9 17:50:53 2022 -0400

    Finalize activity event sending logic and cron config

commit 9830387f21
Author: DaneEveritt <dane@daneeveritt.com>
Date:   Sat Jul 9 16:26:13 2022 -0400

    Send power events in a more usable format

commit 49f3a61d16
Author: DaneEveritt <dane@daneeveritt.com>
Date:   Sat Jul 9 15:47:24 2022 -0400

    Configure cron to actually send to endpoint

commit 28137c4c14
Author: DaneEveritt <dane@daneeveritt.com>
Date:   Sat Jul 9 15:42:29 2022 -0400

    Copy the body buffer otherwise subsequent backoff attempts will not have a buffer to send

commit 20e44bdc55
Author: DaneEveritt <dane@daneeveritt.com>
Date:   Sat Jul 9 14:38:41 2022 -0400

    Add internal logic to process activity events and send them to the panel

commit 0380488cd2
Author: DaneEveritt <dane@daneeveritt.com>
Date:   Mon Jul 4 17:55:17 2022 -0400

    Track power events

commit 9eab08b92f
Author: DaneEveritt <dane@daneeveritt.com>
Date:   Mon Jul 4 17:36:03 2022 -0400

    Initial logic to support logging activity on Wings to send back to the panel
2022-07-09 17:51:19 -04:00
DaneEveritt
b1be2081eb
Better archive detection logic; try to use reflection as last ditch effort if unmatched
closes pterodactyl/panel#4101
2022-05-30 18:42:31 -04:00
DaneEveritt
f390784973
Include error in log output if one occurs during move 2022-05-21 17:01:12 -04:00
DaneEveritt
37e4d57cdf
Don't include files and folders with identical name prefixes when archiving; closes pterodactyl/panel#3946 2022-05-12 18:00:55 -04:00
DaneEveritt
1d197714df
Fix faulty handling of named pipes; closes pterodactyl/panel#4059 2022-05-07 15:53:08 -04:00
Matthew Penner
3a738e44d6
run gofumpt 2022-02-23 15:02:19 -07:00
Dane Everitt
f85509a0c7 Support a custom tmp directory location 2022-02-13 11:59:53 -05:00
Dane Everitt
5d1d3cc9e6 Fix panic conditions 2022-02-05 12:11:00 -05:00
Dane Everitt
9f985ae044 Check for error before prefix; fixes abandoned routine; closes pterodactyl/panel#3911
Due to the order of the previous logic in ScanReader, an error not caused by EOF would effectively get ignored since an error will always be returned with `isPrefix` equal to false, thus triggering the first break, and error checking is not performed beyond that point.

Thus, canceling an installation process for a server while this process was running would hang the routine and cause the loop to run endlessly, even with a canceled context.
2022-02-05 11:56:17 -05:00
Dane Everitt
879dcd8df5 Don't trigger a panic condition decoding event stats; closes pterodactyl/panel#3941 2022-02-05 11:06:11 -05:00
Dane Everitt
72476c61ec Simplify the event bus system; address pterodactyl/panel#3903
If my debugging is correct, this should address pterodactyl/panel#3903 in its entirety by addressing a few areas where it was possible for a channel to lock up and cause everything to block
2022-02-02 21:03:53 -05:00