Lines Matching refs:packet
41 void bootp (packet) in bootp() argument
42 struct packet *packet; in bootp()
47 struct packet outgoing;
61 if (packet -> raw -> op != BOOTREQUEST)
68 print_hw_addr (packet -> raw -> htype,
69 packet -> raw -> hlen,
70 packet -> raw -> chaddr),
71 packet -> raw -> giaddr.s_addr
72 ? inet_ntoa (packet -> raw -> giaddr)
73 : packet -> interface -> name);
75 if (!locate_network (packet)) {
80 find_lease (&lease, packet, packet -> shared_network,
95 find_hosts_by_haddr(&hp, packet->raw->htype,
96 packet->raw->chaddr,
97 packet->raw->hlen, MDL);
116 allocate_lease (&lease, packet,
117 packet -> shared_network -> pools,
144 !load_balance_mine(packet, peer)) {
152 ack_lease (packet, lease, 0, 0, msgbuf, 0, hp);
161 execute_statements_in_scope (NULL, packet, lease, NULL,
162 packet->options, options,
167 for (i = packet -> class_count; i > 0; i--) {
168 execute_statements_in_scope(NULL, packet, lease, NULL,
169 packet->options, options,
171 packet->classes[i - 1]->group,
177 execute_statements_in_scope(NULL, packet, lease, NULL,
178 packet->options, options,
185 !evaluate_boolean_option_cache(&ignorep, packet, lease,
187 packet->options, options,
196 !evaluate_boolean_option_cache(&ignorep, packet, lease,
198 packet->options, options,
213 if (!packet->options_valid &&
214 !(evaluate_boolean_option_cache(&ignorep, packet, lease, NULL,
215 packet->options, options,
219 if (packet->packet_length > DHCP_FIXED_NON_UDP) {
220 memcpy(outgoing.raw->options, packet->raw->options,
221 packet->packet_length - DHCP_FIXED_NON_UDP);
225 (packet->packet_length < BOOTP_MIN_LEN)
227 : packet->packet_length;
254 use_host_decl_name(packet, lease, options);
261 cons_options (packet, outgoing.raw, lease,
263 packet -> options, options,
273 raw.htype = packet -> raw -> htype;
274 raw.hlen = packet -> raw -> hlen;
275 memcpy (raw.chaddr, packet -> raw -> chaddr, sizeof raw.chaddr);
276 raw.hops = packet -> raw -> hops;
277 raw.xid = packet -> raw -> xid;
278 raw.secs = packet -> raw -> secs;
279 raw.flags = packet -> raw -> flags;
280 raw.ciaddr = packet -> raw -> ciaddr;
289 evaluate_boolean_option_cache (&ignorep, packet, lease,
291 packet -> options, options,
299 evaluate_option_cache (&d1, packet, lease,
301 packet -> options, options,
312 else if (packet->interface->address_count)
313 raw.siaddr = packet->interface->addresses[0];
316 raw.giaddr = packet -> raw -> giaddr;
321 evaluate_option_cache (&d1, packet, lease,
323 packet -> options, options,
332 memcpy (raw.file, packet -> raw -> file, sizeof raw.file);
337 evaluate_option_cache (&d1, packet, lease,
339 packet -> options, options,
350 execute_statements (NULL, packet, lease, NULL, packet->options,
358 if (dhcpv4_over_dhcpv6 && (packet->dhcp4o6_response != NULL)) {
365 print_hw_addr (packet->raw->htype,
366 packet->raw->hlen,
367 packet->raw->chaddr),
368 piaddr(packet->client_addr));
371 packet->dhcp4o6_response->len = outgoing.packet_length;
372 packet->dhcp4o6_response->buffer = NULL;
373 if (!buffer_allocate(&packet->dhcp4o6_response->buffer,
377 packet->dhcp4o6_response->data =
378 packet->dhcp4o6_response->buffer->data;
379 memcpy(packet->dhcp4o6_response->buffer->data,
386 hto.hbuf [0] = packet -> raw -> htype;
387 hto.hlen = packet -> raw -> hlen + 1;
388 memcpy (&hto.hbuf [1], packet -> raw -> chaddr, packet -> raw -> hlen);
390 if (packet->interface->address_count) {
391 from = packet->interface->addresses[0];
395 "address.", msgbuf, packet->interface->name);
404 print_hw_addr (packet->raw->htype,
405 packet->raw->hlen,
406 packet->raw->chaddr),
407 packet->raw->giaddr.s_addr
408 ? inet_ntoa (packet->raw->giaddr)
409 : packet->interface->name);
442 can_unicast_without_arp (packet -> interface)) {
453 result = send_packet(packet->interface, packet, &raw,
458 packet->interface->name);