示例#1
0
 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);
     }
 }
示例#2
0
        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);
            }
        }