dhcp_hdr
struct dhcp_hdr hdr;
if (rem < sizeof(struct dhcp_hdr)) {
memcpy(&hdr, p, sizeof(struct dhcp_hdr));
p += sizeof(struct dhcp_hdr);
rem -= sizeof(struct dhcp_hdr);
struct dhcp_hdr hdr;
memcpy(p, &hdr, sizeof(struct dhcp_hdr));
p += sizeof(struct dhcp_hdr);
dhcp_hdr->yiaddr.s_addr == INADDR_ANY) {
iface->requested_ip = dhcp_hdr->yiaddr;
dhcp_hdr->yiaddr.s_addr == INADDR_ANY) {
iface->requested_ip = dhcp_hdr->yiaddr;
iface->siaddr = dhcp_hdr->siaddr;
strnvis(iface->file, dhcp_hdr->file, sizeof(iface->file),
void log_dhcp_hdr(struct dhcp_hdr *);
log_dhcp_hdr(struct dhcp_hdr *dhcp_hdr)
log_debug("dhcp_hdr op: %s (%d)", dhcp_hdr->op == DHCP_BOOTREQUEST ?
"Boot Request" : dhcp_hdr->op == DHCP_BOOTREPLY ? "Boot Reply" :
"Unknown", dhcp_hdr->op);
log_debug("dhcp_hdr htype: %s (%d)", dhcp_hdr->htype == 1 ? "Ethernet":
"Unknown", dhcp_hdr->htype);
log_debug("dhcp_hdr hlen: %d", dhcp_hdr->hlen);
log_debug("dhcp_hdr hops: %d", dhcp_hdr->hops);
log_debug("dhcp_hdr xid: 0x%x", ntohl(dhcp_hdr->xid));
log_debug("dhcp_hdr secs: %u", dhcp_hdr->secs);
log_debug("dhcp_hdr flags: 0x%x", dhcp_hdr->flags);
log_debug("dhcp_hdr ciaddr: %s", inet_ntop(AF_INET, &dhcp_hdr->ciaddr,
log_debug("dhcp_hdr yiaddr: %s", inet_ntop(AF_INET, &dhcp_hdr->yiaddr,
log_debug("dhcp_hdr siaddr: %s", inet_ntop(AF_INET, &dhcp_hdr->siaddr,
log_debug("dhcp_hdr giaddr: %s", inet_ntop(AF_INET, &dhcp_hdr->giaddr,
dhcp_hdr->chaddr[0], dhcp_hdr->chaddr[1], dhcp_hdr->chaddr[2],
dhcp_hdr->chaddr[3], dhcp_hdr->chaddr[4], dhcp_hdr->chaddr[5],
dhcp_hdr->chaddr[6], dhcp_hdr->chaddr[7], dhcp_hdr->chaddr[8],
dhcp_hdr->chaddr[9], dhcp_hdr->chaddr[10], dhcp_hdr->chaddr[11],
dhcp_hdr->chaddr[12], dhcp_hdr->chaddr[13], dhcp_hdr->chaddr[14],
dhcp_hdr->chaddr[15]);
struct dhcp_hdr *dhcp_hdr;
if (rem < sizeof(*dhcp_hdr))
dhcp_hdr = (struct dhcp_hdr *)p;
p += sizeof(*dhcp_hdr);
rem -= sizeof(*dhcp_hdr);
dhcp_hdr->sname[DHCP_SNAME_LEN -1 ] = '\0'; /* ensure it's a string */
dhcp_hdr->file[DHCP_FILE_LEN -1 ] = '\0'; /* ensure it's a string */
log_dhcp_hdr(dhcp_hdr);
if (dhcp_hdr->op != DHCP_BOOTREPLY) {
if (ntohl(dhcp_hdr->xid) != iface->xid)
struct dhcp_hdr *hdr;
hdr = (struct dhcp_hdr *)p;
p += sizeof(struct dhcp_hdr);