diff options
| -rw-r--r-- | build/server.js | 20 | ||||
| -rw-r--r-- | src/server/Main.hx | 12 |
2 files changed, 29 insertions, 3 deletions
diff --git a/build/server.js b/build/server.js index aff7631..81d54d2 100644 --- a/build/server.js +++ b/build/server.js @@ -3945,7 +3945,7 @@ server_Main.prototype = { this.onMessage(client,{ type : "Connected"},true); ws.on("message",function(data) { var obj = _gthis.wsEventParser.fromJson(data); - if(_gthis.wsEventParser.errors.length > 0) { + if(_gthis.wsEventParser.errors.length > 0 || _gthis.noTypeObj(obj)) { var errors = "" + ("Wrong request for type \"" + obj.type + "\":") + "\n" + json2object_ErrorUtils.convertErrorArray(_gthis.wsEventParser.errors); haxe_Log.trace(errors,{ fileName : "src/server/Main.hx", lineNumber : 301, className : "server.Main", methodName : "onConnect"}); _gthis.serverMessage(client,errors); @@ -3957,6 +3957,22 @@ server_Main.prototype = { _gthis.onMessage(client,{ type : "Disconnected"},true); }); } + ,noTypeObj: function(data) { + if(data.type == "GetTime") { + return false; + } + if(data.type == "TogglePlaylistLock") { + return false; + } + if(data.type == "UpdatePlaylist") { + return false; + } + if(data.type == "Logout") { + return false; + } + var t = data.type; + return ((Reflect.field(data,t.charAt(0).toLowerCase() + HxOverrides.substr(t,1,null))) === null); + } ,onMessage: function(client,data,internal) { var _gthis = this; this.logger.log({ clientName : client.name, clientGroup : client.group, event : data, time : new Date().getTime()}); @@ -4028,7 +4044,7 @@ server_Main.prototype = { if(!internal) { return; } - haxe_Log.trace("Client " + client.name + " disconnected",{ fileName : "src/server/Main.hx", lineNumber : 346, className : "server.Main", methodName : "onMessage"}); + haxe_Log.trace("Client " + client.name + " disconnected",{ fileName : "src/server/Main.hx", lineNumber : 356, className : "server.Main", methodName : "onMessage"}); server_Utils.sortedPush(this.freeIds,client.id); HxOverrides.remove(this.clients,client); this.sendClientList(); 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, |
