Lines Matching defs:lease

125   struct dhcp_lease *ltmp, *lease = NULL;
258 /* do we have a lease in store? */
259 lease = lease_find_by_client(mess->chaddr, mess->hlen, mess->htype, clid, clid_len);
263 if (lease && !clid && lease->clid)
265 clid_len = lease->clid_len;
266 clid = lease->clid;
286 use the ciaddr. This is necessary because a machine which got a lease via a
429 if ((lease = lease_find_by_addr(config->addr)) &&
430 (lease->hwaddr_len != mess->hlen ||
431 lease->hwaddr_type != mess->htype ||
432 memcmp(lease->hwaddr, mess->chaddr, lease->hwaddr_len) != 0))
437 if (!(lease = lease_find_by_client(mess->chaddr, mess->hlen, mess->htype, NULL, 0)) ||
438 !address_available(context, lease->addr, netid))
440 if (lease)
442 /* lease exists, wrong network. */
443 lease_prune(lease, now);
444 lease = NULL;
450 mess->yiaddr = lease->addr;
471 !lease &&
472 (!(lease = lease_allocate(mess->yiaddr))))
479 lease_set_hwaddr(lease, mess->chaddr, NULL, mess->hlen, mess->htype, 0);
481 lease_set_hostname(lease, hostname, 1);
482 /* infinite lease unless nailed in dhcp-host line. */
483 lease_set_expires(lease,
486 lease_set_interface(lease, int_index);
649 The code, later, which sends user-class data to the lease-change script
846 if (lease && lease->addr.s_addr == option_addr(opt).s_addr)
847 lease_prune(lease, now);
871 if (lease && lease->addr.s_addr == mess->ciaddr.s_addr)
872 lease_prune(lease, now);
874 message = _("unknown lease");
900 ltmp != lease &&
927 else if (lease &&
928 address_available(context, lease->addr, netid) &&
929 !config_find_by_address(daemon->dhcp_conf, lease->addr))
930 mess->yiaddr = lease->addr;
977 /* send vendor and user class info for new or recreated lease */
1007 /* If a lease exists for this host and another address, squash it. */
1008 if (lease && lease->addr.s_addr != mess->yiaddr.s_addr)
1010 lease_prune(lease, now);
1011 lease = NULL;
1017 if (!lease && !(daemon->options & OPT_AUTHORITATIVE))
1020 if (lease && lease->addr.s_addr != mess->yiaddr.s_addr)
1024 lease_prune(lease, now);
1025 lease = NULL;
1032 /* Check existing lease for this address.
1034 as long as we can allocate the lease now - checked below.
1035 This makes for a smooth recovery from a lost lease DB */
1036 if ((lease && mess->ciaddr.s_addr != lease->addr.s_addr) ||
1037 (!lease && !(daemon->options & OPT_AUTHORITATIVE)))
1039 message = _("lease not found");
1062 /* If a machine moves networks whilst it has a lease, we catch that here. */
1068 /* Check for renewal of a lease which is outside the allowed range. */
1081 (!(ltmp = lease_find_by_addr(config->addr)) || ltmp == lease))
1082 message = _("static lease available");
1088 else if (!lease && (ltmp = lease_find_by_addr(mess->yiaddr)))
1091 a lease from one of it's MACs to give the address to another. */
1094 my_syslog(MS_DHCP | LOG_INFO, _("abandoning lease to %s of %s"),
1097 lease = ltmp;
1108 else if (!lease)
1110 if ((lease = lease_allocate(mess->yiaddr)))
1141 lease->giaddr = mess->giaddr;
1143 lease->changed = 1;
1144 /* copy user-class and vendor class into new lease, for the script */
1152 free(lease->userclass);
1153 if ((lease->userclass = whine_malloc(len+1)))
1155 memcpy(lease->userclass, ucp, len);
1156 lease->userclass[len] = 0;
1157 lease->userclass_len = len+1;
1164 free(lease->vendorclass);
1165 if ((lease->vendorclass = whine_malloc(len+1)))
1167 memcpy(lease->vendorclass, ucp, len);
1168 lease->vendorclass[len] = 0;
1169 lease->vendorclass_len = len+1;
1176 free(lease->supplied_hostname);
1177 if ((lease->supplied_hostname = whine_malloc(len+1)))
1179 memcpy(lease->supplied_hostname, ucp, len);
1180 lease->supplied_hostname[len] = 0;
1181 lease->supplied_hostname_len = len+1;
1199 lease_set_hwaddr(lease, mess->chaddr, clid, mess->hlen, mess->htype, clid_len);
1211 lease_set_hostname(lease, hostname, hostname_auth);
1213 lease_set_expires(lease, time, now);
1214 lease_set_interface(lease, int_index);
1217 lease->override = override;
1219 override = lease->override;
1254 if (!lease &&
1255 (lease = lease_find_by_addr(mess->ciaddr)) &&
1256 lease->hostname)
1257 hostname = lease->hostname;
1270 if (lease)
1273 lease->override = override;
1275 override = lease->override;
1282 if (lease)
1284 if (lease->expires == 0)
1287 time = (unsigned int)difftime(lease->expires, now);
1289 lease_set_interface(lease, int_index);