Ethan Alicea
b3aa1a1c7e
Merge branch 'develop' into nwy-wings
2024-04-19 23:51:07 -04:00
Matthew Penner
617fbcbf27
router(download): validate that backup_uuid is actually a uuid
2024-04-10 15:22:39 -06:00
Matthew Penner
c152e36101
downloader: move internal subnet validation into http Transport
2024-04-10 15:22:09 -06:00
Matthew Penner
1c5ddcd20c
server(filesystem): handle writing empty files
...
Fixes https://github.com/pterodactyl/panel/issues/5038
Signed-off-by: Matthew Penner <me@matthewp.io>
2024-03-17 14:58:13 -06:00
Matthew Penner
99b9924a4a
router(server): fix panic on server deletion
...
Fixes https://github.com/pterodactyl/panel/issues/5028
Signed-off-by: Matthew Penner <me@matthewp.io>
2024-03-13 14:46:17 -06:00
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
Ethan Alicea
4390bad36b
Please enter the commit message for your changes. Lines starting
...
with '#' will be ignored, and an empty message aborts the commit.
Author: Ethan Alicea <64653625+Tech-Gamer@users.noreply.github.com>
On branch develop
Your branch is up to date with 'origin/develop'.
Changes to be committed:
modified: .github/workflows/push.yaml
modified: .github/workflows/release.yaml
modified: CHANGELOG.md
modified: Dockerfile
modified: Makefile
modified: README.md
modified: cmd/configure.go
modified: cmd/diagnostics.go
modified: cmd/root.go
modified: config/config.go
modified: environment/allocations.go
modified: environment/docker.go
modified: environment/docker/api.go
modified: environment/docker/container.go
modified: environment/docker/environment.go
modified: environment/docker/power.go
modified: environment/docker/stats.go
modified: environment/environment.go
modified: environment/settings.go
modified: events/events.go
modified: go.mod
modified: internal/cron/activity_cron.go
modified: internal/cron/cron.go
modified: internal/cron/sftp_cron.go
modified: internal/database/database.go
modified: internal/progress/progress.go
modified: internal/progress/progress_test.go
modified: loggers/cli/cli.go
new file: oryxBuildBinary
modified: parser/parser.go
modified: remote/http.go
modified: remote/servers.go
modified: remote/types.go
modified: router/downloader/downloader.go
modified: router/middleware.go
modified: router/middleware/middleware.go
modified: router/middleware/request_error.go
modified: router/router.go
modified: router/router_download.go
modified: router/router_server.go
modified: router/router_server_backup.go
modified: router/router_server_files.go
modified: router/router_server_transfer.go
modified: router/router_server_ws.go
modified: router/router_system.go
modified: router/router_transfer.go
modified: router/tokens/parser.go
modified: router/websocket/listeners.go
modified: router/websocket/websocket.go
modified: server/activity.go
modified: server/backup.go
modified: server/backup/backup.go
modified: server/backup/backup_local.go
modified: server/backup/backup_s3.go
modified: server/configuration.go
modified: server/console.go
modified: server/crash.go
modified: server/events.go
modified: server/filesystem/archive.go
modified: server/filesystem/filesystem.go
modified: server/filesystem/filesystem_test.go
modified: server/install.go
modified: server/installer/installer.go
modified: server/listeners.go
modified: server/manager.go
modified: server/mounts.go
modified: server/power.go
modified: server/power_test.go
modified: server/resources.go
modified: server/server.go
modified: server/transfer/archive.go
modified: server/transfer/source.go
modified: server/transfer/transfer.go
modified: server/update.go
modified: sftp/event.go
modified: sftp/handler.go
modified: sftp/server.go
modified: wings.go
2023-09-11 17:22:09 +00:00
Jakob Schrettenbrunner
ec6d6d83ea
config: add option to disable panel config updates ( #162 )
2023-02-27 13:05:36 -07:00
Matthew Penner
2d640209e5
backup: fix restore erroring due to closed reader
2023-01-29 17:06:49 -07:00
Matthew Penner
a36cab1783
router(transfer): throw error if server fails to stop
2023-01-24 12:36:02 -07:00
Matthew Penner
6e0c095bb8
router(transfer): decrease WaitForStop timeout
2023-01-24 12:34:05 -07:00
Matthew Penner
14eea3b1e4
router: close body once finished
2023-01-24 12:33:42 -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
Dane Everitt
ff50d0e5bd
Cleanup request error handling; properly handle os.ErrNotExist errors ( #150 )
2022-11-22 11:18:27 -07:00
Matthew Penner
9226ccae31
system: more detailed system information
2022-11-21 16:01:14 -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
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
Daniel Barton
e98d249cf7
Add configuration for trusted proxies ( #141 )
2022-10-04 18:11:07 -06:00
camjac251
c736c24118
it's to its ( #123 )
2022-09-25 13:34:28 -06: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
7bd11c1c28
Switch to SQLite for activity tracking
2022-07-10 16:51:11 -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
f390784973
Include error in log output if one occurs during move
2022-05-21 17:01:12 -04:00
DaneEveritt
1d197714df
Fix faulty handling of named pipes; closes pterodactyl/panel#4059
2022-05-07 15:53:08 -04:00
Matthew Penner
93664fd112
router: add additional fields to remote file pull
2022-02-23 15:03:15 -07:00
Matthew Penner
3a738e44d6
run gofumpt
2022-02-23 15:02:19 -07:00
Noah van der Aa
067ca5bb60
Actually enforce upload file size limit ( #122 )
2022-02-21 14:59:28 -08:00
Dane Everitt
5d1d3cc9e6
Fix panic conditions
2022-02-05 12:11:00 -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
Dane Everitt
0f2e9fcc0b
Move the sink pool to be a shared tool
2022-02-02 19:16:34 -05:00
Dane Everitt
cd67e5fdb9
Fix logic for context based environment stopping
...
Uses dual contexts to handle stopping using a timed context, and also terminating the entire process loop if the parent context gets canceled.
2022-01-31 19:09:08 -05:00
Dane Everitt
fab88a380e
Use buffered channels and ring-buffer logic when processing console data
...
This change fixes pterodactyl/panel#3921 by implementing logic to drop the oldest message in a channel and push the newest message onto the channel when the channel buffer is full.
This is distinctly different than the previous implementation which just dropped the newest messages, leading to confusing behavior on the client side when a large amount of data was sent over the connection.
Up to 10ms per channel is allowed for blocking before falling back to the drop logic.
2022-01-30 10:55:45 -05:00
Dane Everitt
34c0db9dff
Replace encoding/json with goccy/go-json for cpu and memory usage improvement
...
This new package has significant better resource usage, and we do a _lot_ of JSON parsing in this application, so any amount of improvement becomes significant
2022-01-23 15:17:40 -05:00
Dane Everitt
4c8f5c21a3
Improve power lock logic ( #118 )
2022-01-23 09:49:35 -08:00
Dane Everitt
a4904365c9
Sink pool cleanup and organization; better future support when we add more sinks
2022-01-23 09:57:25 -05:00
Matthew Penner
4ba5fe2866
events: don't explode when destroying a bus
...
Only attempt to close channels once, rather than per topic
they are subscribed to.
2022-01-20 09:48:18 -07:00
Matthew Penner
a6b77a31dc
fix send on closed channel for logging; closes #3895
2022-01-20 07:00:00 -07:00
Matthew Penner
bb7ee24087
router: support the Access-Control-Request-Private-Network
header ( #117 )
2022-01-19 09:27:13 -07:00
Matthew Penner
649dc9663e
Server Event Optimizations ( #116 )
2022-01-17 20:23:29 -07:00
TacticalCatto
521cc2aef2
Don't turn SSL into lowercase ( #114 )
2022-01-17 20:22:13 -07:00
Matthew Penner
04b9ef69a1
run gofumpt
2021-11-15 10:37:56 -07:00
Dane Everitt
32d6594476
fix incorrect error handling logic when a JWT is created wrongly; closes pterodactyl/panel#3295
...
Prior to this logic not only was the error response incorrect for events, but we registered event listeners before the authentication event; so if auth failed we flooded the socket with tons of output that was never going to be sent anyways.
This change now waits to register listeners until the socket is fully authenticated and we're guaranteed to have a token present.
2021-10-25 21:23:45 -07:00
Dane Everitt
023d7ec1ec
Close websocket connections and allow the client to re-connect on send errors; ref pterodactyl/panel#3596
2021-10-24 16:14:00 -07:00