Lines Matching refs:packet
617 ip->client->xid = ip->client->packet.xid; in state_init()
709 ip->client->xid = ip->client->packet.xid; in state_selecting()
722 dhcpack(struct packet *packet) in dhcpack() argument
724 struct interface_info *ip = packet->interface; in dhcpack()
729 if (packet->interface->client->xid != packet->raw->xid || in dhcpack()
730 (packet->interface->hw_address.hlen != packet->raw->hlen) || in dhcpack()
731 (memcmp(packet->interface->hw_address.haddr, in dhcpack()
732 packet->raw->chaddr, packet->raw->hlen))) in dhcpack()
741 note("DHCPACK from %s", piaddr(packet->client_addr)); in dhcpack()
743 lease = packet_to_lease(packet); in dhcpack()
851 ip->client->xid = ip->client->packet.xid; in state_bound()
869 bootp(struct packet *packet) in bootp() argument
873 if (packet->raw->op != BOOTREPLY) in bootp()
878 for (ap = packet->interface->client->config->reject_list; in bootp()
880 if (addr_eq(packet->client_addr, ap->addr)) { in bootp()
885 dhcpoffer(packet); in bootp()
889 dhcp(struct packet *packet) in dhcp() argument
892 void (*handler)(struct packet *); in dhcp()
895 switch (packet->packet_type) { in dhcp()
914 for (ap = packet->interface->client->config->reject_list; in dhcp()
916 if (addr_eq(packet->client_addr, ap->addr)) { in dhcp()
921 (*handler)(packet); in dhcp()
925 dhcpoffer(struct packet *packet) in dhcpoffer() argument
927 struct interface_info *ip = packet->interface; in dhcpoffer()
931 char *name = packet->options[DHO_DHCP_MESSAGE_TYPE].len ? in dhcpoffer()
937 packet->interface->client->xid != packet->raw->xid || in dhcpoffer()
938 (packet->interface->hw_address.hlen != packet->raw->hlen) || in dhcpoffer()
939 (memcmp(packet->interface->hw_address.haddr, in dhcpoffer()
940 packet->raw->chaddr, packet->raw->hlen))) in dhcpoffer()
943 note("%s from %s", name, piaddr(packet->client_addr)); in dhcpoffer()
949 if (!packet->options[ip->client->config-> in dhcpoffer()
959 if (lease->address.len == sizeof(packet->raw->yiaddr) && in dhcpoffer()
961 &packet->raw->yiaddr, lease->address.len)) { in dhcpoffer()
967 lease = packet_to_lease(packet); in dhcpoffer()
975 if (!packet->options[DHO_DHCP_MESSAGE_TYPE].len) in dhcpoffer()
1045 packet_to_lease(struct packet *packet) in packet_to_lease() argument
1061 if (packet->options[i].len) { in packet_to_lease()
1063 malloc(packet->options[i].len + 1); in packet_to_lease()
1070 packet->options[i].data, in packet_to_lease()
1071 packet->options[i].len); in packet_to_lease()
1073 packet->options[i].len; in packet_to_lease()
1086 lease->address.len = sizeof(packet->raw->yiaddr); in packet_to_lease()
1087 memcpy(lease->address.iabuf, &packet->raw->yiaddr, lease->address.len); in packet_to_lease()
1089 lease->nextserver.len = sizeof(packet->raw->siaddr); in packet_to_lease()
1090 memcpy(lease->nextserver.iabuf, &packet->raw->siaddr, lease->nextserver.len); in packet_to_lease()
1098 if ((!packet->options[DHO_DHCP_OPTION_OVERLOAD].len || in packet_to_lease()
1099 !(packet->options[DHO_DHCP_OPTION_OVERLOAD].data[0] & 2)) && in packet_to_lease()
1100 packet->raw->sname[0]) { in packet_to_lease()
1107 memcpy(lease->server_name, packet->raw->sname, DHCP_SNAME_LEN); in packet_to_lease()
1112 if ((!packet->options[DHO_DHCP_OPTION_OVERLOAD].len || in packet_to_lease()
1113 !(packet->options[DHO_DHCP_OPTION_OVERLOAD].data[0] & 1)) && in packet_to_lease()
1114 packet->raw->file[0]) { in packet_to_lease()
1122 memcpy(lease->filename, packet->raw->file, DHCP_FILE_LEN); in packet_to_lease()
1129 dhcpnak(struct packet *packet) in dhcpnak() argument
1131 struct interface_info *ip = packet->interface; in dhcpnak()
1135 if (packet->interface->client->xid != packet->raw->xid || in dhcpnak()
1136 (packet->interface->hw_address.hlen != packet->raw->hlen) || in dhcpnak()
1137 (memcmp(packet->interface->hw_address.haddr, in dhcpnak()
1138 packet->raw->chaddr, packet->raw->hlen))) in dhcpnak()
1147 note("DHCPNAK from %s", piaddr(packet->client_addr)); in dhcpnak()
1246 ip->client->packet.secs = htons(interval); in send_discover()
1248 ip->client->packet.secs = htons(65535); in send_discover()
1249 ip->client->secs = ip->client->packet.secs; in send_discover()
1256 send_packet_unpriv(privfd, &ip->client->packet, in send_discover()
1469 ip->client->packet.secs = ip->client->secs; in send_request()
1472 ip->client->packet.secs = htons(interval); in send_request()
1474 ip->client->packet.secs = htons(65535); in send_request()
1481 send_packet_unpriv(privfd, &ip->client->packet, in send_request()
1496 send_packet_unpriv(privfd, &ip->client->packet, in send_decline()
1510 memset(&ip->client->packet, 0, sizeof(ip->client->packet)); in make_discover()
1587 ip->client->packet_length = cons_options(NULL, &ip->client->packet, 0, in make_discover()
1592 ip->client->packet.op = BOOTREQUEST; in make_discover()
1593 ip->client->packet.htype = ip->hw_address.htype; in make_discover()
1594 ip->client->packet.hlen = ip->hw_address.hlen; in make_discover()
1595 ip->client->packet.hops = 0; in make_discover()
1596 ip->client->packet.xid = arc4random(); in make_discover()
1597 ip->client->packet.secs = 0; /* filled in by send_discover. */ in make_discover()
1598 ip->client->packet.flags = 0; in make_discover()
1600 memset(&(ip->client->packet.ciaddr), in make_discover()
1601 0, sizeof(ip->client->packet.ciaddr)); in make_discover()
1602 memset(&(ip->client->packet.yiaddr), in make_discover()
1603 0, sizeof(ip->client->packet.yiaddr)); in make_discover()
1604 memset(&(ip->client->packet.siaddr), in make_discover()
1605 0, sizeof(ip->client->packet.siaddr)); in make_discover()
1606 memset(&(ip->client->packet.giaddr), in make_discover()
1607 0, sizeof(ip->client->packet.giaddr)); in make_discover()
1608 memcpy(ip->client->packet.chaddr, in make_discover()
1622 memset(&ip->client->packet, 0, sizeof(ip->client->packet)); in make_request()
1710 ip->client->packet_length = cons_options(NULL, &ip->client->packet, 0, in make_request()
1715 ip->client->packet.op = BOOTREQUEST; in make_request()
1716 ip->client->packet.htype = ip->hw_address.htype; in make_request()
1717 ip->client->packet.hlen = ip->hw_address.hlen; in make_request()
1718 ip->client->packet.hops = 0; in make_request()
1719 ip->client->packet.xid = ip->client->xid; in make_request()
1720 ip->client->packet.secs = 0; /* Filled in by send_request. */ in make_request()
1727 memcpy(&ip->client->packet.ciaddr, in make_request()
1729 ip->client->packet.flags = 0; in make_request()
1731 memset(&ip->client->packet.ciaddr, 0, in make_request()
1732 sizeof(ip->client->packet.ciaddr)); in make_request()
1733 ip->client->packet.flags = 0; in make_request()
1736 memset(&ip->client->packet.yiaddr, 0, in make_request()
1737 sizeof(ip->client->packet.yiaddr)); in make_request()
1738 memset(&ip->client->packet.siaddr, 0, in make_request()
1739 sizeof(ip->client->packet.siaddr)); in make_request()
1740 memset(&ip->client->packet.giaddr, 0, in make_request()
1741 sizeof(ip->client->packet.giaddr)); in make_request()
1742 memcpy(ip->client->packet.chaddr, in make_request()
1756 memset(&ip->client->packet, 0, sizeof(ip->client->packet)); in make_decline()
1794 ip->client->packet_length = cons_options(NULL, &ip->client->packet, 0, in make_decline()
1799 ip->client->packet.op = BOOTREQUEST; in make_decline()
1800 ip->client->packet.htype = ip->hw_address.htype; in make_decline()
1801 ip->client->packet.hlen = ip->hw_address.hlen; in make_decline()
1802 ip->client->packet.hops = 0; in make_decline()
1803 ip->client->packet.xid = ip->client->xid; in make_decline()
1804 ip->client->packet.secs = 0; /* Filled in by send_request. */ in make_decline()
1805 ip->client->packet.flags = 0; in make_decline()
1808 memset(&ip->client->packet.ciaddr, 0, in make_decline()
1809 sizeof(ip->client->packet.ciaddr)); in make_decline()
1810 memset(&ip->client->packet.yiaddr, 0, in make_decline()
1811 sizeof(ip->client->packet.yiaddr)); in make_decline()
1812 memset(&ip->client->packet.siaddr, 0, in make_decline()
1813 sizeof(ip->client->packet.siaddr)); in make_decline()
1814 memset(&ip->client->packet.giaddr, 0, in make_decline()
1815 sizeof(ip->client->packet.giaddr)); in make_decline()
1816 memcpy(ip->client->packet.chaddr, in make_decline()