예제 #1
0
 /**
  * Update dhcp lease.
  *
  * @param lease the lease
  */
 protected void UpdateDhcpLease(DhcpLease lease)
 {
     foreach (var item in _DhcpLeaseData.Where(p => p.GetIpAddress() == lease.GetIpAddress()))
     {
         item.SetState(lease.GetState());
         item.SetStartTime(lease.GetStartTime());
         item.SetPreferredEndTime(lease.GetPreferredEndTime());
         item.SetValidEndTime(lease.GetValidEndTime());
         item.SetIaDhcpOptions(lease.GetIaDhcpOptions());
         item.SetIaAddrDhcpOptions(lease.GetIaAddrDhcpOptions());
     }
 }
예제 #2
0
        // Conversion methods

        /**
         * To identity assoc.
         *
         * @param leases the leases
         * @return the identity assoc
         */
        protected IdentityAssoc ToIdentityAssoc(List <DhcpLease> leases)
        {
            IdentityAssoc ia = null;

            if ((leases != null) && leases.Count > 0)
            {
                var  enumerator = leases.GetEnumerator();
                bool hasNext    = enumerator.MoveNext();

                DhcpLease lease = enumerator.Current;
                ia = new IdentityAssoc();
                ia.SetDuid(lease.GetDuid());
                ia.SetIatype(lease.GetIatype());
                ia.SetIaid(lease.GetIaid());
                ia.SetState(lease.GetState());
                ia.SetDhcpOptions(lease.GetIaDhcpOptions());
                if (lease.GetIatype() == IdentityAssoc.PD_TYPE)
                {
                    List <IaAddress> iaPrefixes = new List <IaAddress>();
                    iaPrefixes.Add(ToIaPrefix(lease));
                    while (enumerator.MoveNext())
                    {
                        //TODO: should confirm that the duid/iatype/iaid/state still match
                        iaPrefixes.Add(ToIaPrefix(lease));
                    }
                    ia.SetIaAddresses(iaPrefixes);
                }
                else
                {
                    List <IaAddress> iaAddrs = new List <IaAddress>();
                    iaAddrs.Add(ToIaAddress(lease));
                    while (enumerator.MoveNext())
                    {
                        //TODO: should confirm that the duid/iatype/iaid/state still match
                        iaAddrs.Add(ToIaAddress(lease));
                    }
                    ia.SetIaAddresses(iaAddrs);
                }
            }
            return(ia);
        }