private string RequestHandler(IPAddress address, SIMCommon.Requests.InitConnection request) { SIMCommon.Responses.InitConnection response; if (!this.Clients.ContainsKey(address)) { var newClient = new Client(address, request.PublicKey); this.Clients.Add(address, newClient); response = new SIMCommon.Responses.InitConnection(true, newClient.PGPClient.PublicKey, this.Config.LeaseDuration); } else { response = new SIMCommon.Responses.InitConnection(false); } return(JsonConvert.SerializeObject(response)); }
public bool InitConnection() { try { var request = new SIMCommon.Requests.InitConnection(this.PGPClient.PublicKey); var response = TcpClient.Send(this.Address.ToString(), JsonConvert.SerializeObject(request)); var baseResponse = JsonConvert.DeserializeObject <SIMCommon.Responses.Base>(response); if (baseResponse.ResponseType == typeof(SIMCommon.Responses.InitConnection)) { var convertedResponse = JsonConvert.DeserializeObject <SIMCommon.Responses.InitConnection>(response); this.ServerPublicKey = convertedResponse.PublicKey; this.LeaseDuration = convertedResponse.LeaseDuration; //this.LeaseMonitor.Start(); return(true); } return(false); } catch (Exception e) when(e is TcpClient.ConnectionFailiureException || e is Newtonsoft.Json.JsonReaderException) { return(false); } }