public static bool IsValidConnection(string token, SyncIOConnectedClient client, string username) { try { var request = new RestRequest(Method.POST); request.AddParameter("token", token); request.AddParameter("user", username); request.AddParameter("act", "details"); var jsonResponse = ApiClient.Execute(request); var response = JsonConvert.DeserializeObject <Rootobject>(jsonResponse.Content); if (response == null || !response.success) { return(false); } IPAddress requestedIP; if (!IPAddress.TryParse(response.data.ip, out requestedIP)) { return(false); } return(!response.data.banned && !response.data.expired && response.data.online && response.data.user.Equals(username, StringComparison.InvariantCultureIgnoreCase) && client.EndPoint.Address.MapToIPv4().Equals(requestedIP)); } catch { return(false); } }
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); } }
private void UpdateClient(SyncIOConnectedClient client) { if (InvokeRequired) { Invoke(new ClientManagementEventHandler(UpdateClient), client); return; } if (!_clients.ContainsKey(client.ID)) { return; } var c = _clients[client.ID]; var l = lvClients.Items[client.ID.ToString()]; if (l != null) { l.SubItems[lvClients.IndexFromKey("colUserPC")].Text = $"{c.UserName?.ToString()} / {c.MachineName?.ToString()}"; l.SubItems[lvClients.IndexFromKey("colOS")].Text = c.OS?.ToString(); l.SubItems[lvClients.IndexFromKey("colVersion")].Text = c.ClientVersion?.ToString(); l.Tag = _clients[client.ID]; } lvClients.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); //lvClients.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); }
private void AddClient(SyncIOConnectedClient client) { if (InvokeRequired) { Invoke(new ClientManagementEventHandler(AddClient), client); return; } if (!lvClients.Items.ContainsKey(client.ID.ToString())) { //var c = _clients[client.ID]; lvClients.Items.Add(new ListViewItem(new string[] { client.ID.ToString(), client.EndPoint.ToString(), "--", "--", "--" }) { Name = client.ID.ToString(), ImageKey = client.ID.ToString(), Tag = client//_clients[client.ID] }); } client.OnDisconnect += Client_OnDisconnect; client.Send(new DesktopScreenshot(null)); }
public ConnectedChatClient(SyncIOConnectedClient conn, string os, string user, string machine, Version clientVersion) { Connection = conn; OS = os; UserName = user; MachineName = machine; ClientVersion = clientVersion; }
private void Client_OnDisconnect(SyncIOConnectedClient client, Exception ex) { WriteLog(LogType.Info, $"[{client.ID}] Disconnected: {ex.Message}"); RemoveClient(client); UpdateConnectionStatus(); }
private void Server_OnClientConnect(SyncIOServer sender, SyncIOConnectedClient client) { WriteLog(LogType.Info, $"[{client.ID}] New connection."); Console.WriteLine($"Enabling GZip compression..."); client.SetCompression(new SyncIOCompressionGZip()); Console.WriteLine($"Enabling rijndael encryption using key {string.Join("", Key.Select(x => x.ToString("X2")))}"); client.SetEncryption(new SyncIOEncryptionAes(Key, IV)); AddClient(client); UpdateConnectionStatus(); }
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; } }
private void AddDesktopImage(SyncIOConnectedClient client) { if (InvokeRequired) { Invoke(new ClientManagementEventHandler(AddDesktopImage), client); return; } if (imageList1.Images.ContainsKey(client.ID.ToString())) { imageList1.Images.RemoveByKey(client.ID.ToString()); } if (_clients.ContainsKey(client.ID)) { imageList1.Images.Add(client.ID.ToString(), _clients[client.ID].DesktopScreenshot); } }
private void RemoveClient(SyncIOConnectedClient client) { if (InvokeRequired) { Invoke(new ClientManagementEventHandler(RemoveClient), client); return; } if (_clients.ContainsKey(client.ID)) { _clients.Remove(client.ID); } if (lvClients.Items.ContainsKey(client.ID.ToString())) { lvClients.Items.RemoveByKey(client.ID.ToString()); } }
public ConnectedChatClient(SyncIOConnectedClient _conn, string _name) { Connection = _conn; Name = _name; }
private void Connection_OnDisconnect(SyncIOConnectedClient client, Exception ex) { OnDisconnect?.Invoke(this, ex); }
public void HasBeenSent(SyncIOConnectedClient sender) { AfterSend?.Invoke(sender); }