Home | History | Annotate | Download | only in dhcpcd

Lines Matching refs:lease

134 	struct dhcp_lease lease;
363 get_lease(struct dhcp_lease *lease, const struct dhcp_message *dhcp)
367 if (lease->frominfo)
369 lease->addr.s_addr = dhcp->yiaddr;
371 if (get_option_addr(&lease->net, dhcp, DHO_SUBNETMASK) == -1)
372 lease->net.s_addr = get_netmask(dhcp->yiaddr);
373 if (get_option_uint32(&lease->leasetime, dhcp, DHO_LEASETIME) == 0) {
374 /* Ensure that we can use the lease */
376 if (t + (time_t)lease->leasetime < t) {
377 logger(LOG_WARNING, "lease of %u would overflow, "
378 "treating as infinite", lease->leasetime);
379 lease->leasetime = ~0U; /* Infinite lease */
382 lease->leasetime = DEFAULT_LEASETIME;
383 if (get_option_uint32(&lease->renewaltime, dhcp, DHO_RENEWALTIME) != 0)
384 lease->renewaltime = 0;
385 if (get_option_uint32(&lease->rebindtime, dhcp, DHO_REBINDTIME) != 0)
386 lease->rebindtime = 0;
393 struct dhcp_lease *lease = &state->lease;
405 logger(LOG_INFO, "trying to use old lease in `%s'",
411 lease->frominfo = 0;
412 get_lease(&state->lease, dhcp);
413 lease->frominfo = 1;
414 lease->leasedfrom = sb.st_mtime;
417 state->lease.server.s_addr = 0;
424 /* Ensure that we can still use the lease */
430 offset = tv.tv_sec - lease->leasedfrom;
431 if (lease->leasedfrom &&
432 tv.tv_sec - lease->leasedfrom > (time_t)lease->leasetime)
434 logger(LOG_ERR, "lease expired %u seconds ago",
435 offset + lease->leasetime);
437 * lease if we can't contact a DHCP server.
440 offset = lease->renewaltime - 1;
444 lease->leasetime -= offset;
445 lease->rebindtime -= offset;
446 lease->renewaltime -= offset;
456 lease->addr.s_addr = 0;
465 struct dhcp_lease *lease = &state->lease;
488 IN_LINKLOCAL(ntohl(lease->addr.s_addr)))
494 lease->addr.s_addr = options->request_address.s_addr;
495 lease->net.s_addr = options->request_netmask.s_addr;
500 has_address(iface->name, &lease->addr, &lease->net) < 1)
502 addr.s_addr = lease->addr.s_addr | ~lease->net.s_addr;
504 inet_ntoa(lease->addr), inet_ntocidr(lease->net));
505 if (add_address(iface->name, &lease->addr,
506 &lease->net, &addr) == -1)
511 iface->addr.s_addr = lease->addr.s_addr;
512 iface->net.s_addr = lease->net.s_addr;
663 len = make_message(&dhcp, state->interface, &state->lease, state->xid,
669 to.s_addr = state->lease.server.s_addr;
702 &state->lease, options, 0);
708 state->lease.addr.s_addr = 0;
774 if (state->lease.leasetime == ~0U &&
863 struct dhcp_lease *lease = &state->lease;
877 logger(LOG_INFO, "received SIGALRM, renewing lease");
884 logger(LOG_INFO, "received SIGHUP, releasing lease");
885 if (lease->addr.s_addr &&
886 !IN_LINKLOCAL(ntohl(lease->addr.s_addr)))
907 struct dhcp_lease *lease = &state->lease;
921 get_monotonic(&lease->boundtime);
925 lease->addr.s_addr = options->request_address.s_addr;
927 lease->addr.s_addr = iface->addr.s_addr;
929 inet_ntoa(lease->addr));
931 state->lease.leasetime = ~0U;
935 get_lease(lease, state->new);
937 inet_ntoa(lease->addr));
943 lease->leasedfrom = start.tv_sec;
945 get_lease(lease, state->new);
946 if (lease->frominfo)
949 if (lease->leasetime == ~0U) {
950 lease->renewaltime = lease->rebindtime = lease->leasetime;
952 inet_ntoa(lease->addr));
956 if (lease->rebindtime == 0)
957 lease->rebindtime = lease->leasetime * T2;
958 else if (lease->rebindtime >= lease->leasetime) {
959 lease->rebindtime = lease->leasetime * T2;
961 "rebind time greater than lease "
963 lease->rebindtime);
965 if (lease->renewaltime == 0)
966 lease->renewaltime = lease->leasetime * T1;
967 else if (lease->renewaltime > lease->rebindtime) {
968 lease->renewaltime = lease->leasetime * T1;
972 lease->renewaltime);
976 inet_ntoa(lease->addr), lease->leasetime);
977 state->stop.tv_sec = lease->renewaltime;
988 lease->server.s_addr)
1001 &state->lease, options, 1);
1015 struct dhcp_lease *lease = &state->lease;
1035 logger(LOG_ERR, "lost lease");
1056 lease->frominfo = 0;
1090 logger(LOG_INFO, "renewing lease of %s",inet_ntoa(lease->addr));
1095 state->stop.tv_sec = lease->rebindtime - lease->renewaltime;
1100 if (lease->server.s_addr == 0)
1103 state->stop.tv_sec = lease->rebindtime - \
1104 lease->renewaltime;
1105 lease->server.s_addr = 0;
1130 struct dhcp_lease *lease = &state->lease;
1141 IN_LINKLOCAL(ntohl(lease->addr.s_addr)))
1237 if (lease->leasetime != ~0U) {
1238 state->stop.tv_sec = lease->renewaltime;
1242 timersub(&tv, &lease->boundtime, &tv);
1277 lease->server.s_addr = 0;
1279 if (lease->addr.s_addr && !(state->options & DHCPCD_INFORM)) {
1280 logger(LOG_INFO, "rebinding lease of %s",
1281 inet_ntoa(lease->addr));
1289 if (lease->addr.s_addr == 0 ||
1292 logger(LOG_INFO, "broadcasting for a lease");
1296 inet_ntoa(lease->addr));
1299 logger(LOG_INFO, "broadcasting for a lease of %s",
1300 inet_ntoa(lease->addr));
1303 if (!lease->addr.s_addr && !timerisset(&state->stop)) {
1381 struct dhcp_lease *lease = &state->lease;
1456 lease->addr.s_addr = dhcp->yiaddr;
1457 get_option_addr(&lease->server, dhcp, DHO_SERVERID);
1490 get_option_addr(&lease->server,
1502 lease->frominfo = 0;
1683 state->lease.addr.s_addr = 0;