private string RequestHandler(IPAddress address, SIMCommon.Requests.Renew request) { if (this.Clients[address].RemainingLeaseTime(this.Config.LeaseDuration) <= SIMCommon.Constants.LeaseMonitorDelay) { this.Clients[address].RenewLease(); return(JsonConvert.SerializeObject(new SIMCommon.Responses.Renew())); } else { return(SIMCommon.Constants.SIMServerInvalidRequestResponse); } }
private void RunLeaseMonitor() { System.Threading.Thread.Sleep(SIMCommon.Constants.LeaseMonitorDelay); while (true) { int diff = (int)(DateTime.Now - this.LeaseStart).TotalMilliseconds; if (diff < this.LeaseDuration - SIMCommon.Constants.LeaseMonitorDelay) { var request = new SIMCommon.Requests.Renew(); var responseData = this.SendEncryptedRequest(request); var response = JsonConvert.DeserializeObject <SIMCommon.Responses.Base>(responseData); if (response.ResponseType == typeof(SIMCommon.Responses.Renew)) { this.LeaseStart = DateTime.Now; } } System.Threading.Thread.Sleep(SIMCommon.Constants.LeaseMonitorDelay); } }