Lines Matching refs:packet

54 void	parse_options(struct packet *);
55 void parse_option_buffer(struct packet *, unsigned char *, int);
58 void expand_domain_search(struct packet *packet);
68 parse_options(struct packet *packet) in parse_options() argument
71 memset(packet->options, 0, sizeof(packet->options)); in parse_options()
74 if (memcmp(packet->raw->options, DHCP_OPTIONS_COOKIE, 4)) { in parse_options()
75 packet->options_valid = 0; in parse_options()
83 parse_option_buffer(packet, &packet->raw->options[4], in parse_options()
84 packet->packet_length - DHCP_FIXED_NON_UDP - 4); in parse_options()
90 if (packet->options_valid && in parse_options()
91 packet->options[DHO_DHCP_OPTION_OVERLOAD].data) { in parse_options()
92 if (packet->options[DHO_DHCP_OPTION_OVERLOAD].data[0] & 1) in parse_options()
93 parse_option_buffer(packet, in parse_options()
94 (unsigned char *)packet->raw->file, in parse_options()
95 sizeof(packet->raw->file)); in parse_options()
96 if (packet->options[DHO_DHCP_OPTION_OVERLOAD].data[0] & 2) in parse_options()
97 parse_option_buffer(packet, in parse_options()
98 (unsigned char *)packet->raw->sname, in parse_options()
99 sizeof(packet->raw->sname)); in parse_options()
103 if (packet->options_valid) { in parse_options()
104 expand_domain_search(packet); in parse_options()
114 parse_option_buffer(struct packet *packet, in parse_option_buffer() argument
154 packet->options_valid = 1; in parse_option_buffer()
161 packet->options_valid = 0; in parse_option_buffer()
169 if (!packet->options[code].data) { in parse_option_buffer()
179 packet->options[code].len = len; in parse_option_buffer()
180 packet->options[code].data = t; in parse_option_buffer()
187 t = calloc(1, len + packet->options[code].len + 1); in parse_option_buffer()
191 memcpy(t, packet->options[code].data, in parse_option_buffer()
192 packet->options[code].len); in parse_option_buffer()
193 memcpy(t + packet->options[code].len, in parse_option_buffer()
195 packet->options[code].len += len; in parse_option_buffer()
196 t[packet->options[code].len] = 0; in parse_option_buffer()
197 free(packet->options[code].data); in parse_option_buffer()
198 packet->options[code].data = t; in parse_option_buffer()
202 packet->options_valid = 1; in parse_option_buffer()
212 expand_domain_search(struct packet *packet) in expand_domain_search() argument
219 if (packet->options[DHO_DOMAIN_SEARCH].data == NULL) in expand_domain_search()
222 option = &packet->options[DHO_DOMAIN_SEARCH]; in expand_domain_search()
381 cons_options(struct packet *inpacket, struct dhcp_packet *outpacket, in cons_options()
869 do_packet(struct interface_info *interface, struct dhcp_packet *packet, in do_packet() argument
872 struct packet tp; in do_packet()
875 if (packet->hlen > sizeof(packet->chaddr)) { in do_packet()
881 tp.raw = packet; in do_packet()