Lines Matching refs:ip

620 	struct interface_info *ip = ipp;  in state_reboot()  local
623 if (!ip->client->active || ip->client->active->is_bootp) { in state_reboot()
624 state_init(ip); in state_reboot()
629 ip->client->state = S_REBOOTING; in state_reboot()
634 ip->client->xid = arc4random(); in state_reboot()
638 make_request(ip, ip->client->active); in state_reboot()
639 ip->client->destination = iaddr_broadcast; in state_reboot()
640 ip->client->first_sending = cur_time; in state_reboot()
641 ip->client->interval = ip->client->config->initial_interval; in state_reboot()
644 ip->client->medium = NULL; in state_reboot()
647 send_request(ip); in state_reboot()
657 struct interface_info *ip = ipp; in state_init() local
663 make_discover(ip, ip->client->active); in state_init()
664 ip->client->xid = ip->client->packet.xid; in state_init()
665 ip->client->destination = iaddr_broadcast; in state_init()
666 ip->client->state = S_SELECTING; in state_init()
667 ip->client->first_sending = cur_time; in state_init()
668 ip->client->interval = ip->client->config->initial_interval; in state_init()
672 send_discover(ip); in state_init()
682 struct interface_info *ip = ipp; in state_selecting() local
689 cancel_timeout(state_selecting, ip); in state_selecting()
690 cancel_timeout(send_discover, ip); in state_selecting()
696 for (lp = ip->client->offered_leases; lp; lp = next) { in state_selecting()
710 make_decline(ip, lp); in state_selecting()
711 send_decline(ip); in state_selecting()
721 ip->client->offered_leases = NULL; in state_selecting()
726 ip->client->state = S_INIT; in state_selecting()
727 state_init(ip); in state_selecting()
733 ip->client->new = picked; in state_selecting()
737 ip->client->new->expiry = cur_time + 12000; in state_selecting()
738 ip->client->new->renewal += cur_time + 8000; in state_selecting()
739 ip->client->new->rebind += cur_time + 10000; in state_selecting()
741 ip->client->state = S_REQUESTING; in state_selecting()
744 bind_lease(ip); in state_selecting()
749 ip->client->destination = iaddr_broadcast; in state_selecting()
750 ip->client->state = S_REQUESTING; in state_selecting()
751 ip->client->first_sending = cur_time; in state_selecting()
752 ip->client->interval = ip->client->config->initial_interval; in state_selecting()
755 make_request(ip, picked); in state_selecting()
756 ip->client->xid = ip->client->packet.xid; in state_selecting()
762 send_request(ip); in state_selecting()
771 struct interface_info *ip = packet->interface; in dhcpack() local
782 if (ip->client->state != S_REBOOTING && in dhcpack()
783 ip->client->state != S_REQUESTING && in dhcpack()
784 ip->client->state != S_RENEWING && in dhcpack()
785 ip->client->state != S_REBINDING) in dhcpack()
796 ip->client->new = lease; in dhcpack()
799 cancel_timeout(send_request, ip); in dhcpack()
802 if (ip->client->config->default_actions[DHO_DHCP_LEASE_TIME] == in dhcpack()
804 ip->client->new->expiry = getULong( in dhcpack()
805 ip->client->config->defaults[DHO_DHCP_LEASE_TIME].data); in dhcpack()
806 else if (ip->client->new->options[DHO_DHCP_LEASE_TIME].len >= 4) in dhcpack()
807 ip->client->new->expiry = getULong( in dhcpack()
808 ip->client->new->options[DHO_DHCP_LEASE_TIME].data); in dhcpack()
810 ip->client->new->expiry = default_lease_time; in dhcpack()
814 if (ip->client->new->expiry < 0 || in dhcpack()
815 ip->client->new->expiry > TIME_MAX - cur_time) in dhcpack()
816 ip->client->new->expiry = TIME_MAX - cur_time; in dhcpack()
818 if (ip->client->new->expiry < 60) in dhcpack()
819 ip->client->new->expiry = 60; in dhcpack()
825 if (ip->client->config->default_actions[DHO_DHCP_RENEWAL_TIME] == in dhcpack()
827 ip->client->new->renewal = getULong( in dhcpack()
828 ip->client->config->defaults[DHO_DHCP_RENEWAL_TIME].data); in dhcpack()
829 else if (ip->client->new->options[DHO_DHCP_RENEWAL_TIME].len >= 4) in dhcpack()
830 ip->client->new->renewal = getULong( in dhcpack()
831 ip->client->new->options[DHO_DHCP_RENEWAL_TIME].data); in dhcpack()
833 ip->client->new->renewal = ip->client->new->expiry / 2; in dhcpack()
834 if (ip->client->new->renewal < 0 || in dhcpack()
835 ip->client->new->renewal > ip->client->new->expiry / 2) in dhcpack()
836 ip->client->new->renewal = ip->client->new->expiry / 2; in dhcpack()
839 if (ip->client->config->default_actions[DHO_DHCP_REBINDING_TIME] == in dhcpack()
841 ip->client->new->rebind = getULong( in dhcpack()
842 ip->client->config->defaults[DHO_DHCP_REBINDING_TIME].data); in dhcpack()
843 else if (ip->client->new->options[DHO_DHCP_REBINDING_TIME].len >= 4) in dhcpack()
844 ip->client->new->rebind = getULong( in dhcpack()
845 ip->client->new->options[DHO_DHCP_REBINDING_TIME].data); in dhcpack()
847 ip->client->new->rebind = ip->client->new->renewal / 4 * 7; in dhcpack()
848 if (ip->client->new->rebind < 0 || in dhcpack()
849 ip->client->new->rebind > ip->client->new->renewal / 4 * 7) in dhcpack()
850 ip->client->new->rebind = ip->client->new->renewal / 4 * 7; in dhcpack()
853 ip->client->new->expiry += cur_time; in dhcpack()
854 ip->client->new->renewal += cur_time; in dhcpack()
855 ip->client->new->rebind += cur_time; in dhcpack()
857 bind_lease(ip); in dhcpack()
861 bind_lease(struct interface_info *ip) in bind_lease() argument
866 ip->client->new->medium = ip->client->medium; in bind_lease()
868 opt = &ip->client->new->options[DHO_INTERFACE_MTU]; in bind_lease()
872 bool supersede = (ip->client->config->default_actions[DHO_INTERFACE_MTU] == in bind_lease()
876 mtu = getUShort(ip->client->config->defaults[DHO_INTERFACE_MTU].data); in bind_lease()
880 if (ip->client->active) { in bind_lease()
881 opt = &ip->client->active->options[DHO_INTERFACE_MTU]; in bind_lease()
892 } else if (ip->client->state != S_RENEWING || mtu != old_mtu) { in bind_lease()
898 write_client_lease(ip, ip->client->new, 0); in bind_lease()
901 script_init((ip->client->state == S_REQUESTING ? "BOUND" : in bind_lease()
902 (ip->client->state == S_RENEWING ? "RENEW" : in bind_lease()
903 (ip->client->state == S_REBOOTING ? "REBOOT" : "REBIND"))), in bind_lease()
904 ip->client->new->medium); in bind_lease()
905 if (ip->client->active && ip->client->state != S_REBOOTING) in bind_lease()
906 script_write_params("old_", ip->client->active); in bind_lease()
907 script_write_params("new_", ip->client->new); in bind_lease()
908 if (ip->client->alias) in bind_lease()
909 script_write_params("alias_", ip->client->alias); in bind_lease()
913 if (ip->client->active) in bind_lease()
914 free_client_lease(ip->client->active); in bind_lease()
915 ip->client->active = ip->client->new; in bind_lease()
916 ip->client->new = NULL; in bind_lease()
919 add_timeout(ip->client->active->renewal, state_bound, ip); in bind_lease()
922 piaddr(ip->client->active->address), in bind_lease()
923 (int)(ip->client->active->renewal - cur_time)); in bind_lease()
924 ip->client->state = S_BOUND; in bind_lease()
938 struct interface_info *ip = ipp; in state_bound() local
945 make_request(ip, ip->client->active); in state_bound()
946 ip->client->xid = ip->client->packet.xid; in state_bound()
948 if (ip->client->config->default_actions[DHO_DHCP_SERVER_IDENTIFIER] == in state_bound()
950 dp = ip->client->config->defaults[DHO_DHCP_SERVER_IDENTIFIER].data; in state_bound()
951 len = ip->client->config->defaults[DHO_DHCP_SERVER_IDENTIFIER].len; in state_bound()
953 dp = ip->client->active->options[DHO_DHCP_SERVER_IDENTIFIER].data; in state_bound()
954 len = ip->client->active->options[DHO_DHCP_SERVER_IDENTIFIER].len; in state_bound()
957 memcpy(ip->client->destination.iabuf, dp, len); in state_bound()
958 ip->client->destination.len = len; in state_bound()
960 ip->client->destination = iaddr_broadcast; in state_bound()
962 ip->client->first_sending = cur_time; in state_bound()
963 ip->client->interval = ip->client->config->initial_interval; in state_bound()
964 ip->client->state = S_RENEWING; in state_bound()
967 send_request(ip); in state_bound()
1029 struct interface_info *ip = packet->interface; in dhcpoffer() local
1042 if (ip->client->state != S_SELECTING || in dhcpoffer()
1053 for (i = 0; ip->client->config->required_options[i]; i++) { in dhcpoffer()
1054 if (!packet->options[ip->client->config-> in dhcpoffer()
1062 for (lease = ip->client->offered_leases; in dhcpoffer()
1084 lease->medium = ip->client->medium; in dhcpoffer()
1099 ip->client->first_sending + ip->client->config->select_interval; in dhcpoffer()
1103 if (lease->address.len == ip->client->requested_address.len && in dhcpoffer()
1105 ip->client->requested_address.iabuf, in dhcpoffer()
1106 ip->client->requested_address.len)) { in dhcpoffer()
1107 lease->next = ip->client->offered_leases; in dhcpoffer()
1108 ip->client->offered_leases = lease; in dhcpoffer()
1118 if (ip->client->offered_leases && in dhcpoffer()
1124 if (!ip->client->offered_leases) in dhcpoffer()
1125 ip->client->offered_leases = lease; in dhcpoffer()
1127 for (lp = ip->client->offered_leases; lp->next; in dhcpoffer()
1150 state_selecting(ip); in dhcpoffer()
1152 add_timeout_timespec(stop_selecting, state_selecting, ip); in dhcpoffer()
1153 cancel_timeout(send_discover, ip); in dhcpoffer()
1163 struct interface_info *ip = packet->interface; in packet_to_lease() local
1180 for (j = 0; ip->client->config->ignored_options[j]; j++) in packet_to_lease()
1182 ip->client->config->ignored_options[j]) { in packet_to_lease()
1257 struct interface_info *ip = packet->interface; in dhcpnak() local
1267 if (ip->client->state != S_REBOOTING && in dhcpnak()
1268 ip->client->state != S_REQUESTING && in dhcpnak()
1269 ip->client->state != S_RENEWING && in dhcpnak()
1270 ip->client->state != S_REBINDING) in dhcpnak()
1275 if (!ip->client->active) { in dhcpnak()
1280 free_client_lease(ip->client->active); in dhcpnak()
1281 ip->client->active = NULL; in dhcpnak()
1284 cancel_timeout(send_request, ip); in dhcpnak()
1286 ip->client->state = S_INIT; in dhcpnak()
1287 state_init(ip); in dhcpnak()
1297 struct interface_info *ip = ipp; in send_discover() local
1301 interval = cur_time - ip->client->first_sending; in send_discover()
1305 if (interval > ip->client->config->timeout) { in send_discover()
1306 state_panic(ip); in send_discover()
1313 if (!ip->client->offered_leases && in send_discover()
1314 ip->client->config->media) { in send_discover()
1317 if (ip->client->medium) { in send_discover()
1318 ip->client->medium = ip->client->medium->next; in send_discover()
1321 if (!ip->client->medium) { in send_discover()
1323 error("No valid media types for %s!", ip->name); in send_discover()
1324 ip->client->medium = ip->client->config->media; in send_discover()
1328 note("Trying medium \"%s\" %d", ip->client->medium->string, in send_discover()
1330 script_init("MEDIUM", ip->client->medium); in send_discover()
1343 if (!ip->client->interval) in send_discover()
1344 ip->client->interval = in send_discover()
1345 ip->client->config->initial_interval; in send_discover()
1347 ip->client->interval += (arc4random() >> 2) % in send_discover()
1348 (2 * ip->client->interval); in send_discover()
1352 if (ip->client->interval > in send_discover()
1353 ip->client->config->backoff_cutoff) in send_discover()
1354 ip->client->interval = in send_discover()
1355 ((ip->client->config->backoff_cutoff / 2) in send_discover()
1357 ip->client->config->backoff_cutoff)); in send_discover()
1358 } else if (!ip->client->interval) in send_discover()
1359 ip->client->interval = in send_discover()
1360 ip->client->config->initial_interval; in send_discover()
1364 if (cur_time + ip->client->interval > in send_discover()
1365 ip->client->first_sending + ip->client->config->timeout) in send_discover()
1366 ip->client->interval = in send_discover()
1367 (ip->client->first_sending + in send_discover()
1368 ip->client->config->timeout) - cur_time + 1; in send_discover()
1372 ip->client->packet.secs = htons(interval); in send_discover()
1374 ip->client->packet.secs = htons(65535); in send_discover()
1375 ip->client->secs = ip->client->packet.secs; in send_discover()
1378 ip->name, inet_ntoa(inaddr_broadcast), REMOTE_PORT, in send_discover()
1379 (int)ip->client->interval); in send_discover()
1382 send_packet_unpriv(privfd, &ip->client->packet, in send_discover()
1383 ip->client->packet_length, inaddr_any, inaddr_broadcast); in send_discover()
1385 add_timeout(cur_time + ip->client->interval, send_discover, ip); in send_discover()
1397 struct interface_info *ip = ipp; in state_panic() local
1398 struct client_lease *loop = ip->client->active; in state_panic()
1405 if (!ip->client->active && ip->client->leases) in state_panic()
1409 while (ip->client->active) { in state_panic()
1410 if (ip->client->active->expiry > cur_time) { in state_panic()
1412 piaddr(ip->client->active->address)); in state_panic()
1416 ip->client->active->medium); in state_panic()
1417 script_write_params("new_", ip->client->active); in state_panic()
1418 if (ip->client->alias) in state_panic()
1420 ip->client->alias); in state_panic()
1427 ip->client->active->renewal) { in state_panic()
1428 ip->client->state = S_BOUND; in state_panic()
1430 (int)(ip->client->active->renewal - in state_panic()
1433 ip->client->active->renewal, in state_panic()
1434 state_bound, ip); in state_panic()
1436 ip->client->state = S_BOUND; in state_panic()
1438 state_bound(ip); in state_panic()
1447 if (!ip->client->leases) { in state_panic()
1448 ip->client->leases = ip->client->active; in state_panic()
1449 ip->client->active = NULL; in state_panic()
1456 for (lp = ip->client->leases; lp->next; lp = lp->next) in state_panic()
1458 lp->next = ip->client->active; in state_panic()
1461 ip->client->active = ip->client->leases; in state_panic()
1462 ip->client->leases = ip->client->leases->next; in state_panic()
1467 if (ip->client->active == loop) in state_panic()
1470 loop = ip->client->active; in state_panic()
1478 if (ip->client->alias) in state_panic()
1479 script_write_params("alias_", ip->client->alias); in state_panic()
1481 ip->client->state = S_INIT; in state_panic()
1482 add_timeout(cur_time + ip->client->config->retry_interval, state_init, in state_panic()
1483 ip); in state_panic()
1490 struct interface_info *ip = ipp; in send_request() local
1495 interval = cur_time - ip->client->first_sending; in send_request()
1507 if ((ip->client->state == S_REBOOTING || in send_request()
1508 ip->client->state == S_REQUESTING) && in send_request()
1509 interval > ip->client->config->reboot_timeout) { in send_request()
1511 ip->client->state = S_INIT; in send_request()
1512 cancel_timeout(send_request, ip); in send_request()
1513 state_init(ip); in send_request()
1519 if (ip->client->state == S_REBOOTING && in send_request()
1520 !ip->client->medium && in send_request()
1521 ip->client->active->medium ) { in send_request()
1522 script_init("MEDIUM", ip->client->active->medium); in send_request()
1529 ip->client->medium = ip->client->active->medium; in send_request()
1534 if (ip->client->state != S_REQUESTING && in send_request()
1535 cur_time > ip->client->active->expiry) { in send_request()
1538 script_write_params("old_", ip->client->active); in send_request()
1539 if (ip->client->alias) in send_request()
1540 script_write_params("alias_", ip->client->alias); in send_request()
1546 if (ip->client->alias) in send_request()
1547 script_write_params("alias_", ip->client->alias); in send_request()
1550 ip->client->state = S_INIT; in send_request()
1551 state_init(ip); in send_request()
1556 if (!ip->client->interval) in send_request()
1557 ip->client->interval = ip->client->config->initial_interval; in send_request()
1559 ip->client->interval += ((arc4random() >> 2) % in send_request()
1560 (2 * ip->client->interval)); in send_request()
1563 if (ip->client->interval > in send_request()
1564 ip->client->config->backoff_cutoff) in send_request()
1565 ip->client->interval = in send_request()
1566 ((ip->client->config->backoff_cutoff / 2) + in send_request()
1567 ((arc4random() >> 2) % ip->client->interval)); in send_request()
1571 if (ip->client->state != S_REQUESTING && in send_request()
1572 cur_time + ip->client->interval > in send_request()
1573 ip->client->active->expiry) in send_request()
1574 ip->client->interval = in send_request()
1575 ip->client->active->expiry - cur_time + 1; in send_request()
1579 if (ip->client->state == S_REQUESTING || in send_request()
1580 ip->client->state == S_REBOOTING || in send_request()
1581 cur_time > ip->client->active->rebind) in send_request()
1584 memcpy(&to.s_addr, ip->client->destination.iabuf, in send_request()
1587 if (ip->client->state != S_REQUESTING && in send_request()
1588 ip->client->state != S_REBOOTING) in send_request()
1589 memcpy(&from, ip->client->active->address.iabuf, in send_request()
1595 if (ip->client->state == S_REQUESTING) in send_request()
1596 ip->client->packet.secs = ip->client->secs; in send_request()
1599 ip->client->packet.secs = htons(interval); in send_request()
1601 ip->client->packet.secs = htons(65535); in send_request()
1604 note("DHCPREQUEST on %s to %s port %d", ip->name, inet_ntoa(to), in send_request()
1608 send_packet_unpriv(privfd, &ip->client->packet, in send_request()
1609 ip->client->packet_length, from, to); in send_request()
1611 add_timeout(cur_time + ip->client->interval, send_request, ip); in send_request()
1617 struct interface_info *ip = ipp; in send_decline() local
1619 note("DHCPDECLINE on %s to %s port %d", ip->name, in send_decline()
1623 send_packet_unpriv(privfd, &ip->client->packet, in send_decline()
1624 ip->client->packet_length, inaddr_any, inaddr_broadcast); in send_decline()
1628 make_discover(struct interface_info *ip, struct client_lease *lease) in make_discover() argument
1637 memset(&ip->client->packet, 0, sizeof(ip->client->packet)); in make_discover()
1650 options[i]->value = ip->client->config->requested_options; in make_discover()
1651 options[i]->len = ip->client->config->requested_option_count; in make_discover()
1653 ip->client->config->requested_option_count; in make_discover()
1658 ip->client->requested_address = lease->address; in make_discover()
1666 ip->client->requested_address.len = 0; in make_discover()
1671 ip->client->config->send_options[i].data) { in make_discover()
1674 ip->client->config->send_options[i].data; in make_discover()
1676 ip->client->config->send_options[i].len; in make_discover()
1678 ip->client->config->send_options[i].len; in make_discover()
1700 char client_ident[sizeof(ip->hw_address.haddr) + 1]; in make_discover()
1702 int hwlen = (ip->hw_address.hlen < sizeof(client_ident)-1) ? in make_discover()
1703 ip->hw_address.hlen : sizeof(client_ident)-1; in make_discover()
1704 client_ident[0] = ip->hw_address.htype; in make_discover()
1705 memcpy(&client_ident[1], ip->hw_address.haddr, hwlen); in make_discover()
1714 ip->client->packet_length = cons_options(NULL, &ip->client->packet, 0, in make_discover()
1716 if (ip->client->packet_length < BOOTP_MIN_LEN) in make_discover()
1717 ip->client->packet_length = BOOTP_MIN_LEN; in make_discover()
1719 ip->client->packet.op = BOOTREQUEST; in make_discover()
1720 ip->client->packet.htype = ip->hw_address.htype; in make_discover()
1721 ip->client->packet.hlen = ip->hw_address.hlen; in make_discover()
1722 ip->client->packet.hops = 0; in make_discover()
1723 ip->client->packet.xid = arc4random(); in make_discover()
1724 ip->client->packet.secs = 0; /* filled in by send_discover. */ in make_discover()
1725 ip->client->packet.flags = 0; in make_discover()
1727 memset(&(ip->client->packet.ciaddr), in make_discover()
1728 0, sizeof(ip->client->packet.ciaddr)); in make_discover()
1729 memset(&(ip->client->packet.yiaddr), in make_discover()
1730 0, sizeof(ip->client->packet.yiaddr)); in make_discover()
1731 memset(&(ip->client->packet.siaddr), in make_discover()
1732 0, sizeof(ip->client->packet.siaddr)); in make_discover()
1733 memset(&(ip->client->packet.giaddr), in make_discover()
1734 0, sizeof(ip->client->packet.giaddr)); in make_discover()
1735 memcpy(ip->client->packet.chaddr, in make_discover()
1736 ip->hw_address.haddr, ip->hw_address.hlen); in make_discover()
1741 make_request(struct interface_info *ip, struct client_lease * lease) in make_request() argument
1749 memset(&ip->client->packet, 0, sizeof(ip->client->packet)); in make_request()
1762 options[i]->value = ip->client->config->requested_options; in make_request()
1763 options[i]->len = ip->client->config->requested_option_count; in make_request()
1765 ip->client->config->requested_option_count; in make_request()
1770 if (ip->client->state == S_REQUESTING) { in make_request()
1779 if (ip->client->state == S_REQUESTING || in make_request()
1780 ip->client->state == S_REBOOTING) { in make_request()
1781 ip->client->requested_address = lease->address; in make_request()
1789 ip->client->requested_address.len = 0; in make_request()
1794 ip->client->config->send_options[i].data) { in make_request()
1797 ip->client->config->send_options[i].data; in make_request()
1799 ip->client->config->send_options[i].len; in make_request()
1801 ip->client->config->send_options[i].len; in make_request()
1823 char client_ident[sizeof(ip->hw_address.haddr) + 1]; in make_request()
1825 int hwlen = (ip->hw_address.hlen < sizeof(client_ident)-1) ? in make_request()
1826 ip->hw_address.hlen : sizeof(client_ident)-1; in make_request()
1827 client_ident[0] = ip->hw_address.htype; in make_request()
1828 memcpy(&client_ident[1], ip->hw_address.haddr, hwlen); in make_request()
1837 ip->client->packet_length = cons_options(NULL, &ip->client->packet, 0, in make_request()
1839 if (ip->client->packet_length < BOOTP_MIN_LEN) in make_request()
1840 ip->client->packet_length = BOOTP_MIN_LEN; in make_request()
1842 ip->client->packet.op = BOOTREQUEST; in make_request()
1843 ip->client->packet.htype = ip->hw_address.htype; in make_request()
1844 ip->client->packet.hlen = ip->hw_address.hlen; in make_request()
1845 ip->client->packet.hops = 0; in make_request()
1846 ip->client->packet.xid = ip->client->xid; in make_request()
1847 ip->client->packet.secs = 0; /* Filled in by send_request. */ in make_request()
1851 if (ip->client->state == S_BOUND || in make_request()
1852 ip->client->state == S_RENEWING || in make_request()
1853 ip->client->state == S_REBINDING) { in make_request()
1854 memcpy(&ip->client->packet.ciaddr, in make_request()
1856 ip->client->packet.flags = 0; in make_request()
1858 memset(&ip->client->packet.ciaddr, 0, in make_request()
1859 sizeof(ip->client->packet.ciaddr)); in make_request()
1860 ip->client->packet.flags = 0; in make_request()
1863 memset(&ip->client->packet.yiaddr, 0, in make_request()
1864 sizeof(ip->client->packet.yiaddr)); in make_request()
1865 memset(&ip->client->packet.siaddr, 0, in make_request()
1866 sizeof(ip->client->packet.siaddr)); in make_request()
1867 memset(&ip->client->packet.giaddr, 0, in make_request()
1868 sizeof(ip->client->packet.giaddr)); in make_request()
1869 memcpy(ip->client->packet.chaddr, in make_request()
1870 ip->hw_address.haddr, ip->hw_address.hlen); in make_request()
1874 make_decline(struct interface_info *ip, struct client_lease *lease) in make_decline() argument
1883 memset(&ip->client->packet, 0, sizeof(ip->client->packet)); in make_decline()
1911 if (ip->client->config->send_options[i].len) { in make_decline()
1913 options[i]->value = ip->client->config->send_options[i].data; in make_decline()
1914 options[i]->len = ip->client->config->send_options[i].len; in make_decline()
1915 options[i]->buf_size = ip->client->config->send_options[i].len; in make_decline()
1921 ip->client->packet_length = cons_options(NULL, &ip->client->packet, 0, in make_decline()
1923 if (ip->client->packet_length < BOOTP_MIN_LEN) in make_decline()
1924 ip->client->packet_length = BOOTP_MIN_LEN; in make_decline()
1926 ip->client->packet.op = BOOTREQUEST; in make_decline()
1927 ip->client->packet.htype = ip->hw_address.htype; in make_decline()
1928 ip->client->packet.hlen = ip->hw_address.hlen; in make_decline()
1929 ip->client->packet.hops = 0; in make_decline()
1930 ip->client->packet.xid = ip->client->xid; in make_decline()
1931 ip->client->packet.secs = 0; /* Filled in by send_request. */ in make_decline()
1932 ip->client->packet.flags = 0; in make_decline()
1935 memset(&ip->client->packet.ciaddr, 0, in make_decline()
1936 sizeof(ip->client->packet.ciaddr)); in make_decline()
1937 memset(&ip->client->packet.yiaddr, 0, in make_decline()
1938 sizeof(ip->client->packet.yiaddr)); in make_decline()
1939 memset(&ip->client->packet.siaddr, 0, in make_decline()
1940 sizeof(ip->client->packet.siaddr)); in make_decline()
1941 memset(&ip->client->packet.giaddr, 0, in make_decline()
1942 sizeof(ip->client->packet.giaddr)); in make_decline()
1943 memcpy(ip->client->packet.chaddr, in make_decline()
1944 ip->hw_address.haddr, ip->hw_address.hlen); in make_decline()
1999 write_client_lease(struct interface_info *ip, struct client_lease *lease, in write_client_lease() argument
2027 fprintf(leaseFile, " interface \"%s\";\n", ip->name); in write_client_lease()
2102 struct interface_info *ip = ifi; in priv_script_init() local
2104 if (ip) { in priv_script_init()
2105 ip->client->scriptEnvsize = 100; in priv_script_init()
2106 if (ip->client->scriptEnv == NULL) in priv_script_init()
2107 ip->client->scriptEnv = in priv_script_init()
2108 malloc(ip->client->scriptEnvsize * sizeof(char *)); in priv_script_init()
2109 if (ip->client->scriptEnv == NULL) in priv_script_init()
2112 ip->client->scriptEnv[0] = strdup(CLIENT_PATH); in priv_script_init()
2113 if (ip->client->scriptEnv[0] == NULL) in priv_script_init()
2116 ip->client->scriptEnv[1] = NULL; in priv_script_init()
2118 script_set_env(ip->client, "", "interface", ip->name); in priv_script_init()
2121 script_set_env(ip->client, "", "medium", medium); in priv_script_init()
2123 script_set_env(ip->client, "", "reason", reason); in priv_script_init()
2130 struct interface_info *ip = ifi; in priv_script_write_params() local
2136 script_set_env(ip->client, prefix, "ip_address", in priv_script_write_params()
2139 if (ip->client->config->default_actions[DHO_SUBNET_MASK] == in priv_script_write_params()
2141 dp = ip->client->config->defaults[DHO_SUBNET_MASK].data; in priv_script_write_params()
2142 len = ip->client->config->defaults[DHO_SUBNET_MASK].len; in priv_script_write_params()
2154 script_set_env(ip->client, prefix, "network_number", in priv_script_write_params()
2159 script_set_env(ip->client, prefix, in priv_script_write_params()
2167 script_set_env(ip->client, prefix, "filename", lease->filename); in priv_script_write_params()
2169 script_set_env(ip->client, prefix, "server_name", in priv_script_write_params()
2174 if (ip->client->config->defaults[i].len) { in priv_script_write_params()
2177 ip->client->config->default_actions[i]) { in priv_script_write_params()
2184 dp = ip->client-> in priv_script_write_params()
2186 len = ip->client-> in priv_script_write_params()
2190 len = ip->client-> in priv_script_write_params()
2201 ip->client-> in priv_script_write_params()
2203 ip->client-> in priv_script_write_params()
2205 memcpy(dp + ip->client-> in priv_script_write_params()
2218 len = ip->client-> in priv_script_write_params()
2235 ip->client-> in priv_script_write_params()
2237 ip->client-> in priv_script_write_params()
2243 dp = ip->client-> in priv_script_write_params()
2245 len = ip->client-> in priv_script_write_params()
2259 script_set_env(ip->client, prefix, name, in priv_script_write_params()
2264 script_set_env(ip->client, prefix, "expiry", tbuf); in priv_script_write_params()
2358 struct interface_info *ip = ifi; in priv_script_go() local
2363 if (ip) { in priv_script_go()
2364 scriptName = ip->client->config->script_name; in priv_script_go()
2365 envp = ip->client->scriptEnv; in priv_script_go()
2394 if (ip) in priv_script_go()
2395 script_flush_env(ip->client); in priv_script_go()