public void HandleClientFunctionCall(SyncIOConnectedClient client, RemoteCallRequest reqst) { lock (SyncLock) { var respPacket = new RemoteCallResponse(reqst.CallId, reqst.Name); if (FunctionLookup.ContainsKey(reqst.Name)) { var func = FunctionLookup[reqst.Name]; for (int i = 0; i < reqst.Args.Length; i++) { var argType = reqst.Args[i].GetType(); if (!BindableTypes.ContainsKey(argType) || !func.ValidParameter(i, BindableTypes[argType])) { respPacket.Response = FunctionResponseStatus.InvalidParameters; client.Send(respPacket); return; } } func.Invoke(client, respPacket, reqst.Args); } else { respPacket.Response = FunctionResponseStatus.DoesNotExist; } client.Send(respPacket); } }
public void HandleClientFunctionCall(SecureSocketConnectedClient client, RemoteCallRequest request) { lock (_syncLock) { RemoteCallResponse respPacket = new RemoteCallResponse(request.CallId, request.Name); if (_functionLookup.ContainsKey(request.Name)) { RemoteFunctionBind func = _functionLookup[request.Name]; if (request.Args.Select(t => t.GetType()).Where((argType, i) => !_bindableTypes.ContainsKey(argType) || !func.ValidParameter(i, _bindableTypes[argType])).Any()) { respPacket.Response = RemoteFunctionStatus.InvalidParameters; client.Send(respPacket); return; } func.Invoke(client, respPacket, request.Args); } else { respPacket.Response = RemoteFunctionStatus.DoesNotExist; } client.Send(respPacket); } }
public void RaiseFunction(RemoteCallResponse resp) { lock (SyncLock) { if (FunctionList.ContainsKey(resp.Name)) { var f = FunctionList[resp.Name]; f.LastStatus = resp.Reponce; f.SetReturnValue(resp.Return, resp.CallID); } } }
public void RaiseFunction(RemoteCallResponse resp) { lock (_syncLock) { if (!_functionList.ContainsKey(resp.Name)) { return; } RemoteFunction f = _functionList[resp.Name]; f.LastStatus = resp.Response; f.SetReturnValue(resp.Return, resp.CallId); } }
internal void Invoke(SyncIOConnectedClient client, RemoteCallResponse resp, object[] param) //Fix this shit { try { if (AuthCallback?.Invoke(client, this) ?? true) { resp.Return = FuctionCall.DynamicInvoke(param); resp.Reponce = FunctionResponceStatus.Success; } else { resp.Reponce = FunctionResponceStatus.PermissionDenied; } }catch { resp.Reponce = FunctionResponceStatus.ExceptionThrown; } }
internal void Invoke(SecureSocketConnectedClient client, RemoteCallResponse resp, object[] param) { try { if (_authCallback?.Invoke(client, this) ?? true) { resp.Return = _functionCall.DynamicInvoke(param); resp.Response = RemoteFunctionStatus.Success; } else { resp.Response = RemoteFunctionStatus.PermissionDenied; } }catch { resp.Response = RemoteFunctionStatus.ExceptionThrown; } }