Commit Graph

120 Commits

Author SHA1 Message Date
modeco80
286f3eec62 cvm-rs: Actually throw Error on guac decode errors
we were throwing String or something before..
2024-06-23 02:11:23 -04:00
Elijah R
020c6310ec some fixes and improvements to build
- change .yarn/ gitignore to include subprojects
- add nodejs-rfb to build (and bump it)
- add clean script
2024-06-22 22:57:01 -04:00
Elijah R
014650991c bump rfb 2024-06-22 21:52:20 -04:00
Elijah R
d100721a64 update yarn.lock 2024-06-22 21:50:29 -04:00
modeco80
183b17194e chore(README): cargo is usually a default part of a complete Rust toolchain so just specify "A Rust toolchain" 2024-06-22 21:46:37 -04:00
Elijah R
5a67deb59b add --needed and -y flag to pacman command 2024-06-22 21:44:22 -04:00
Elijah R
1079a847a8 remove npm from arch deps (thought corepack was provided by npm, it's actually provided by nodejs itself) 2024-06-22 21:43:46 -04:00
Elijah R
47dae01d3e add dependencies to README, remove not-so-frequently-asked questions 2024-06-22 21:39:01 -04:00
modeco80
dda72cad91 cvmts: quth => auth 2024-06-22 21:27:28 -04:00
modeco80
09d41617ed prettier reformat for merge (and remove jpeg-turbo Again) 2024-06-22 21:26:49 -04:00
Elijah R
b0829d5bcf add just-install dev dependency 2024-06-22 21:24:41 -04:00
modeco80
b8ed177885 cvm-rs: merge guac and jpeg libs together into one
doesn't really need to be two seperate libraries. also preperation for other funnies

the build script has been replaced with a much saner justfile which uses much saner "yarn workspace" invocations instead of blindly cding all over the place
2024-06-22 21:14:05 -04:00
modeco80
87a377a10f cvmts: replace jpeg-turbo native module with new rust module
This module also does threadpooling internally, so we don't need Piscina anymore (which I'm pretty sure was actually bottlenecking.)
2024-06-20 03:20:56 -04:00
modeco80
39521a4b1d misc stuff from production
(also refactors qemu a bit)
2024-06-19 23:30:29 -04:00
modeco80
97de887518 cvmts: Actually unref ipdata on disconnect 2024-06-19 18:26:27 -04:00
modeco80
fa23aa7432 cvmts: nope I have to fix it properly 2024-06-19 18:20:41 -04:00
modeco80
e798ff5c86 bandaid fix time 2024-06-19 18:16:16 -04:00
modeco80
0d34bb1c8e cvmts/qemu: support snapshots properly 2024-06-19 18:03:10 -04:00
modeco80
b485e7f689 cvmts: reimplement connection limit using ipdata 2024-06-19 17:56:55 -04:00
modeco80
ba8743f461 guac-rs: remove commented dead code
gits a SCM.
2024-06-19 02:34:38 -04:00
modeco80
b342d4874f remove license cargo key 2024-06-19 02:14:57 -04:00
modeco80
eefde464b4 why is yarn so picky 2024-06-19 01:49:12 -04:00
modeco80
d9ee611bc5 guac-rs: reformat im stupid 2024-06-19 01:37:17 -04:00
modeco80
4e50106585 cvmts: replace guacamole decoder with a node native module written in rust 2024-06-19 01:36:07 -04:00
Elijah R
a4247bbcc3 Merge branch 'master' into crusttest-refactoring
yes i know this is an ugly empty merge commit, I could NOT get it to rebase without creating massive vomit
2024-06-11 14:23:57 -04:00
Elijah R
794b801628 add VNCVM 2024-06-11 13:46:24 -04:00
Elijah R
1c0ee235dd add global build script 2024-06-11 12:44:39 -04:00
Elijah R
565bf7d9b5 improve on connection logging 2024-05-27 00:10:56 -04:00
Elijah R
8add016b60 implement TCP server, reimplement maxConnections except it now kicks the oldest connection 2024-05-27 00:06:05 -04:00
Elijah R
7053973205 abstract websocket to allow additional transport layers 2024-05-26 23:19:55 -04:00
modeco80
173ee8149f auth: Make more resilant to backend failures 2024-05-26 16:33:35 -04:00
modeco80
e184bfb085 qemu: fix qmp disconnection semi properly
this is actually something i need to push to crusttest as well, because
this will affect it as well, though not as badly because it will only break certain buttons
2024-05-22 17:56:04 -04:00
modeco80
2e05504e4a hastily hand merge yellowcode vote patch thing
Co-Authored-By: yellows111 <ice_ice@email.com>
2024-05-01 08:08:43 -04:00
Elijah R
8452f8d220 nice one declan 2024-04-24 14:34:03 -04:00
modeco80
e03bf57ede .. ok, i guess one node buffer can't be moved but the other magically can. 2024-04-24 04:38:47 -04:00
modeco80
a904f26961 abstract jpeg encoding away from "WSServer"
Additionally make thumbnail encoding threadpooled as well, just so it (probably) doesn't block as much.
2024-04-24 04:18:05 -04:00
modeco80
ddae307874 chore: reformat all code with prettier 2024-04-24 03:50:17 -04:00
modeco80
bcbf7db8d9 misc patches done to get everything to play ball
also adds editorconfig
2024-04-24 03:41:32 -04:00
modeco80
db97a62046 move jpeg encoding to a worker thread pool
this also switches cvmts back to building with tsc, mostly because
I couldn't get parcel's worker interop to work at all.
2024-04-23 19:43:42 -04:00
modeco80
59d5331b68 replace dirname with a hack that should behave like before
the '@ts-expect-error' is to silence tsc just in case, since this function does in fact exist during bundling. techinically the real solution would be to declare it but /shrug
2024-04-23 10:42:36 -04:00
modeco80
cb297e15c4 Giant refactoring (or at least the start)
In short:
- cvmts is now bundled/built via parcel and inside of a npm/yarn workspace with multiple nodejs projects
- cvmts now uses the crusttest QEMU management and RFB library (or a fork, if you so prefer).
- cvmts does NOT use node-canvas anymore, instead we opt for the same route crusttest took and just encode jpegs ourselves from the RFB provoded framebuffer via jpeg-turbo. this means funnily enough sharp is back for more for thumbnails, but actually seems to WORK this time
- IPData is now managed in a very similar way to the original cvm 1.2 implementation where a central manager and reference count exist. tbh it wouldn't be that hard to implement multinode either, but for now, I'm not going to take much time on doing that.

this refactor is still incomplete. please do not treat it as generally available while it's not on the default branch. if you want to use it (and report bugs or send fixes) feel free to, but while it may "just work" in certain situations it may be very broken in others.

(yes, I know windows support is partially totaled by this; it's something that can and will be fixed)
2024-04-23 09:57:02 -04:00
modeco80
820ef05832 chore: Remove reference to "fs" dummy package
Not needed.

This will end up landing again anyways in a major refactoring job,
but for now I'm making the change here because it's a one line change.
2024-04-23 07:14:13 -04:00
yellows111
97878c51b4 add perm settings for guest voting
i'm mad that this wasn't thought about
2024-04-22 17:42:07 -04:00
modeco80
28dddfc363 fix registered users' ability to bypass automute
ditto... oops.
2024-04-22 08:40:25 -04:00
NonameVM
223ff614d1 Add Admin Opcode 25 : Send Server Messages (#19)
* Add Admin Code 25 : XSS Message As Server (why?)

Added the ability to send messages from the server name (without username), with XSS. 
Accepts 1 string argument : message text

* remove redundant switch statement and add check for msgArr length

---------

Co-authored-by: Elijah R <62162399+elijahr2411@users.noreply.github.com>
2024-04-11 13:40:04 -04:00
Elijah R
5d4f9b472e add license 2024-04-11 12:04:40 -04:00
Elijah R
0c3d482e82 reject logins before user connects to node 2024-04-08 19:23:44 -04:00
Elijah R
0821ac89e8 - move auth announcement to on socket open
- don't send system message to a user without a username since it was likely an automated attempt by the webapp
2024-04-08 19:23:44 -04:00
Elijah R
f89492cfcd Implement account authentication (server) 2024-04-08 19:23:44 -04:00
Elijah R
b815bf8874 detect fake origin headers 2024-03-31 13:36:55 -04:00