aboutsummaryrefslogtreecommitdiffstats
path: root/src/server/Main.hx
diff options
context:
space:
mode:
authorRblSb <msrblsb@gmail.com>2020-07-18 14:42:13 +0300
committerRblSb <msrblsb@gmail.com>2020-07-18 14:42:13 +0300
commit8636d8156b591a9d1ebcc95a188491e88561aca6 (patch)
treec6f4742b885c541a62ed7617fddd311728e30ea0 /src/server/Main.hx
parent2f8739d53ac6c90424756eb463d8d82bb8d4bfeb (diff)
Improve data validation
Diffstat (limited to 'src/server/Main.hx')
-rw-r--r--src/server/Main.hx12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/server/Main.hx b/src/server/Main.hx
index ee8de26..f0c3d7a 100644
--- a/src/server/Main.hx
+++ b/src/server/Main.hx
@@ -294,7 +294,7 @@ class Main {
ws.on("message", data -> {
final obj = wsEventParser.fromJson(data);
- if (wsEventParser.errors.length > 0) {
+ if (wsEventParser.errors.length > 0 || noTypeObj(obj)) {
final line = 'Wrong request for type "${obj.type}":';
final errorLines = ErrorUtils.convertErrorArray(wsEventParser.errors);
final errors = '$line\n$errorLines';
@@ -312,6 +312,16 @@ class Main {
});
}
+ function noTypeObj(data:WsEvent):Bool {
+ if (data.type == GetTime) return false;
+ if (data.type == TogglePlaylistLock) return false;
+ if (data.type == UpdatePlaylist) return false;
+ if (data.type == Logout) return false;
+ final t:String = cast data.type;
+ final t = t.charAt(0).toLowerCase() + t.substr(1);
+ return js.Syntax.strictEq(Reflect.field(data, t), null);
+ }
+
function onMessage(client:Client, data:WsEvent, internal:Bool):Void {
logger.log({
clientName: client.name,
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage