Matthew Penner
1a3ba9efca
Better handle readdirent errors
2020-09-24 21:48:59 -06:00
Dane Everitt
897c4869de
Return a nicer error if the file name is too long; closes pterodactyl/panel#2403
2020-09-24 20:02:42 -07:00
Dane Everitt
522c6c17e4
Merge branch 'develop' of https://github.com/pterodactyl/wings into develop
2020-09-22 20:41:16 -07:00
Dane Everitt
d8cd8ae36a
Don't treat certain "expected" errors from the filesystem as 500 errors; closes pterodactyl/panel#2376
2020-09-22 20:41:14 -07:00
Matthew Penner
ff597672db
Fix #2380
2020-09-20 12:51:12 -06:00
Dane Everitt
6b25ac3665
Fix websocket error spam; only send known JWT issues along to the socket itself, not to wings console; closes pterodactyl/panel#2354
2020-09-17 20:30:51 -07:00
Dane Everitt
6ba1b75696
Add console throttling; closes pterodactyl/panel#2214 ( #60 )
2020-09-17 20:13:04 -07:00
Dane Everitt
ce76b9339e
better error handling for busy files; closes pterodactyl/panel#2332
2020-09-15 19:53:00 -07:00
Dane Everitt
f2a6d6b3c5
Websocket cleanup
2020-09-12 22:12:23 -07:00
Dane Everitt
ce2659fdd7
Simplify environment creation for server
2020-09-12 21:48:04 -07:00
Dane Everitt
d02e37620d
Use workerpools to enforce FIFO without blocking other topics
2020-09-12 20:13:59 -07:00
Dane Everitt
4ac19bd29d
Refactor confusing & fragile event bus logic to use callbacks and not channels; ref pterodactyl/panel#2298
2020-09-12 09:26:17 -07:00
Dane Everitt
fa6f56caa8
Remove pointless debug log
2020-09-11 23:18:51 -07:00
Dane Everitt
5a62f83ec8
Don't run pre-boot actions if the server is already running
2020-09-11 23:11:57 -07:00
Dane Everitt
b2eebcaf6d
Fix deadlocks in event listener system; closes pterodactyl/panel#2298
...
Fixes deadlocks that occurred when events were registered while other events were being unsubscribed and data was being flooded to these listeners. A complete mess, I hate this code, it is going to break again, but jesus I'm so tired.
2020-09-11 23:01:54 -07:00
Matthew Penner
45bcb9cd68
Lets not attempt to pull 16384 log lines
2020-09-11 22:52:07 -06:00
Matthew Penner
e10844d32c
Fix problems with CORS and websocket allowed origins
2020-09-10 21:08:00 -06:00
Dane Everitt
a31e805c5a
Return 400 error not 304 when bad data is passed
2020-09-09 21:12:06 -07:00
Matthew Penner
a81146d730
Potential fix for console becoming unresponsive ( #55 )
...
* Potentially fix console logs not being pulled after a server has been running for a while
* Add container_id to resource polling debug logs
2020-09-07 13:04:56 -07:00
Matthew Penner
7ba32aca84
Fix some typos and run gofmt on all .go files
2020-09-05 13:08:40 -06:00
Dane Everitt
d99225c0fb
Add additional logging around resource polling
2020-09-03 21:19:06 -07:00
Dane Everitt
70afbbfc68
Remove last zap references
2020-09-03 20:29:53 -07:00
Dane Everitt
481df3d543
Only create the directory structure if it is a file being renamed; closes pterodactyl/panel#2292
2020-08-31 21:02:06 -07:00
CyberKitsune
d742acf308
Minimize blocking in Filesystem.getCachedDiskUsage ( #53 )
2020-08-31 20:27:41 -07:00
Dane Everitt
5f1d9ff151
Don't throw a 500 error if the backup is missing; closes pterodactyl/panel#2280
2020-08-31 20:24:07 -07:00
Dane Everitt
7d084e3049
Correctly return the suspension status of the server
2020-08-30 09:54:33 -07:00
Dane Everitt
7d8710824c
Fix startup variables not being properly updated on server reboot; closes pterodactyl/panel#2255
2020-08-27 21:08:33 -07:00
Dane Everitt
09826fc7ad
Performance improvements by using a smaller buffer size
2020-08-23 17:18:40 -07:00
Dane Everitt
4d3a860604
Use environment namespace for power state, don't duplicate them across server
2020-08-19 18:58:48 -07:00
Dane Everitt
b9fb922e91
Fix the race condition where the race is actually happening
2020-08-18 21:46:17 -07:00
Dane Everitt
cc52954a2a
Refactor environment handling logic to separate a server from the environment handler itself
...
This change makes the environment handling logic execute independent of the server itself and should make it much easier for people to contribute changes and additional environment handlers down the road without polluting the server object even more.
There is still a lot of work to do on this front to make things easier to work with, and there are some questionable design decisions at play I'm sure.
Welcome to additional modifications and cleanup to make this code easier to reason about and work with.
2020-08-10 21:38:42 -07:00
Dane Everitt
9d350d845f
Merge branch 'develop' of https://github.com/pterodactyl/wings into develop
2020-08-01 16:53:28 -07:00
Dane Everitt
8b0b40e377
Update router_server_files.go
2020-08-01 16:53:14 -07:00
Dane Everitt
fef3b001c1
Merge pull request #44 from pterodactyl/feature/file-uploads
...
Add a upload file endpoint
2020-08-01 15:35:28 -07:00
Dane Everitt
177aa8e436
Refactor power handling logic to be more robust and able to handle spam clicking and duplicate power actions
2020-08-01 15:20:39 -07:00
Matthew Penner
776062107b
Force upload file overwrite and remove un-needed TODO comments
2020-07-31 21:15:36 -06:00
Dane Everitt
da26b4c5c7
Merge pull request #41 from pterodactyl/fix/race-1
...
Fix a possible race condition when Unsubscribing from the EventBus
2020-07-31 20:11:21 -07:00
Dane Everitt
8af26ac864
Merge pull request #43 from pterodactyl/impl/2194
...
Add the ability to define additional allowed origins
2020-07-31 20:04:10 -07:00
Matthew Penner
b1940426c3
Merge develop into feature/file-uploads
2020-07-31 16:31:06 -06:00
Matthew Penner
b811d2474e
Add the ability to define additional allowed origins
2020-07-31 16:19:09 -06:00
Matthew Penner
e85b1cecb7
Fix 500 errors on file routes when accessing a file that doesn't exist
2020-07-31 16:01:32 -06:00
Matthew Penner
5036077152
Hopefully fix a possible race condition when Unsubscribing from the EventBus while an event is being Published
2020-07-29 23:18:11 -06:00
Dane Everitt
7f9ec4402a
Add emitters for install started/stopped
2020-07-29 21:39:27 -07:00
Dane Everitt
f0d6f67c6b
Fix memory leak with websocket not removing unused listeners
2020-07-29 21:39:17 -07:00
Dane Everitt
79ee259874
correctly return server resource stats; closes pterodactyl/panel#2183
2020-07-29 20:34:30 -07:00
Dane Everitt
cb850fd81a
Update all of the old UUID refs to new
2020-07-19 17:53:41 -07:00
Dane Everitt
0cbaad5c72
Completely re-work the server configuration to be separated out better
2020-07-19 16:27:55 -07:00
Dane Everitt
a00288aa64
Require a lock on the restart process to avoid double restarts causing unexpected behavior
2020-07-18 16:46:41 -07:00
Dane Everitt
6de18f09e5
Don't block websocket from handling another message when a long running proccess is triggered
2020-07-18 16:45:10 -07:00
Dane Everitt
8315ff8ae1
Misc mutex locking things to avoid data races
2020-07-18 16:03:25 -07:00
Dane Everitt
115131575d
Return a 404 when the directory does not exist
2020-07-18 10:16:40 -07:00
Dane Everitt
21303dc517
Address race conditions when booting a server process
2020-07-18 10:10:34 -07:00
Dane Everitt
f3c8220bd9
Change filewalker implementation to use a pool
2020-07-16 21:51:31 -07:00
Dane Everitt
a635cdd6b2
Support unarching in a better fashion with zip-slip protections and size checking
2020-07-15 21:16:08 -07:00
Matthew Penner
b64f1897fb
Add endpoint for decompressing archives
2020-07-15 12:28:45 -06:00
Matthew Penner
7a6397bf17
Add basic file upload support
2020-07-12 16:43:25 -06:00
Dane Everitt
233cefd129
Fix renaming to correctly create the base files if missing
2020-07-11 16:19:51 -07:00
Dane Everitt
d60b2d6163
Support renaming multiple files at once
2020-07-11 16:00:39 -07:00
Dane Everitt
292f0d6452
Support deleting multiple files at the same time
2020-07-11 15:33:53 -07:00
Dane Everitt
7147f477e2
Throw error if empty files
2020-07-11 13:38:25 -07:00
Dane Everitt
2cef055ff2
use files not paths
2020-07-11 13:28:17 -07:00
Dane Everitt
daf401e326
Block request if not enough space is available
2020-07-11 13:16:12 -07:00
Dane Everitt
c1e591c99b
Support generating a compressed archive for a server via the API
2020-07-11 13:13:49 -07:00
Dane Everitt
ea2630946a
Sync server state with Panel before performing installation to ensure information is up to date
2020-06-30 20:56:55 -07:00
Dane Everitt
d6a3d9adb1
Don't obliterate custom SSL locations if defined
...
closes pterodactyl/panel#2121
2020-06-29 20:56:13 -07:00
Dane Everitt
1f6789cba3
Acquire exclusive lock when installing a server
...
Also allows aborting a server install mid-process when the server is deleted before the process finishes.
2020-06-22 21:38:16 -07:00
Dane Everitt
495ad4defd
Cleaner gin logging in debug
2020-06-13 10:54:38 -07:00
Dane Everitt
7d4a8d7f7e
Update everything expect transfers & sftp to not use zap
2020-06-13 10:40:26 -07:00
Dane Everitt
65b1b96b06
Merge branch 'develop' of https://github.com/pterodactyl/wings into develop
2020-06-13 10:26:37 -07:00
Dane Everitt
198a22f446
Replace even more zap occurences
2020-06-13 10:26:35 -07:00
Matthew Penner
5c2686fc6d
Fix multiple server status messages
2020-06-10 15:00:59 -06:00
Dane Everitt
62e5547c6d
Merge pull request #32 from pterodactyl/issue/1796
...
Send disk usage when server is offline
2020-05-31 10:54:21 -07:00
Carlo Field
359564bd91
#2078 - fix BindJSON calls
2020-05-29 17:44:49 +02:00
Dane Everitt
82ffb9804d
Don't lock up websocket when sending error json; ref pterodactyl/panel#2076
2020-05-28 19:52:47 -07:00
Matthew Penner
74097cc4ad
Fix sending status event to all subscribers, send disk usage when server is offline
2020-05-22 11:01:27 -06:00
Dane Everitt
3fe884670d
Fix handling of files with special characters and spaces
...
closes pterodactyl/panel#2040
closes pterodactyl/panel#2038
2020-05-17 15:07:11 -07:00
Dane Everitt
2e055cf630
Unsubscribe any open event listeners when deleting a server
2020-05-03 21:30:16 -07:00
Dane Everitt
fab489d264
Check for server existence when connecting to a websocket
2020-05-03 21:30:07 -07:00
Dane Everitt
b2797ed292
Abstract out shared backup functionality
2020-05-02 15:02:02 -07:00
Dane Everitt
91d12ab9a7
More abstract support for backups & misc code cleanup in that area
2020-04-26 16:43:18 -07:00
Dane Everitt
1e2da95d26
Support data coming from the panel better
2020-04-26 16:21:58 -07:00
Dane Everitt
151b00de23
Unused variable
2020-04-25 18:20:49 -07:00
Dane Everitt
4ff7bd2777
Abstract out more of the backup functionality
2020-04-17 13:46:36 -07:00
Dane Everitt
dbe403ef6e
Update websocket permissions
2020-04-17 10:21:33 -07:00
Dane Everitt
11035b561a
Break out the backup functions of the daemon in prep for S3 support
2020-04-13 22:01:07 -07:00
Dane Everitt
7d7766e4cb
Correctly handle validation errors vs. errors from the panel during installation
2020-04-11 17:55:00 -07:00
Dane Everitt
13fc464508
No need for this debug check
2020-04-11 17:48:57 -07:00
Dane Everitt
89e5b63c32
Don't try to remove a non-existent file
2020-04-11 17:46:36 -07:00
Dane Everitt
3bd48bbac1
Update the JWT signing algo when the signing key is changed in the config
2020-04-11 17:26:17 -07:00
Dane Everitt
083bea5504
Add support for modifying daemon configuration on-the-fly
2020-04-11 16:17:46 -07:00
Dane Everitt
03045c94be
Better race condition prevention
2020-04-10 18:22:18 -07:00
Dane Everitt
c57708d1e0
Merge pull request #20 from matthewpi/issues/1899
...
Improved server loading
2020-04-10 17:37:45 -07:00
Dane Everitt
28214ef0ea
Use a RWMutex so we don't block simultaneous reads
2020-04-10 17:21:55 -07:00
Dane Everitt
e91dd84279
Fix race condition warnings when attempting to work with JWT data in the websocket
2020-04-10 17:06:59 -07:00
Matthew Penner
28c8f3f400
Add the ability to fetch all servers, fix cpu usage leak again..
2020-04-10 15:39:07 -06:00
Matthew Penner
9e30d63818
Add debug logs when a non-500 error occurs, force sync the configuration during installation of a new server
2020-04-10 12:00:04 -06:00
Dane Everitt
1c235025b7
Add support for deleting a backup
2020-04-09 22:07:48 -07:00
Dane Everitt
33875105b6
Fix topic handling for websocket with namespace
2020-04-06 21:22:43 -07:00
Dane Everitt
45d441ac32
Check permissions when performing websocket actions
2020-04-06 21:03:39 -07:00
Dane Everitt
3edcd5f9c3
Add support for direct downloads of server files
2020-04-06 20:27:57 -07:00
Matthew Penner
3c49d6e947
Fix a major typo
2020-04-06 17:09:55 -06:00
Matthew Penner
f5a804210f
Remove more unused files, fix issue with CORS on /api/system, fix issue with GET /api/servers/:server/archive
2020-04-06 14:39:33 -06:00
Matthew Penner
718b126baf
Dane caused this monstrosity to occur.. Port over remaining transfer/archive code to gin, delete http.go
2020-04-06 13:49:49 -06:00
Dane Everitt
03311ecf03
Move over backup and create transfer logic
2020-04-05 19:07:16 -07:00
Dane Everitt
c4474e22f6
Add support for downloading a backup
2020-04-05 18:56:54 -07:00
Dane Everitt
ccbb119948
Better core logic for JWT; supports a more generic structure
2020-04-05 18:44:16 -07:00
Dane Everitt
cf2ef1a173
Port most of the HTTP code over to gin
2020-04-05 18:00:33 -07:00