@@ -414,7 +414,7 @@ DhcpServer::OptionsBuffer DhcpServer::create_msg(struct dhcps_msg* m)
414
414
// /////////////////////////////////////////////////////////////////////////////////
415
415
void DhcpServer::send_offer (struct dhcps_msg * m)
416
416
{
417
- struct pbuf *p, *q ;
417
+ struct pbuf *p;
418
418
419
419
auto options = create_msg (m);
420
420
options.add (DHCP_OPTION_MSG_TYPE, DHCPOFFER);
@@ -438,12 +438,7 @@ void DhcpServer::send_offer(struct dhcps_msg* m)
438
438
os_printf (" dhcps: send_offer>>p->tot_len = %d\n " , p->tot_len );
439
439
os_printf (" dhcps: send_offer>>p->len = %d\n " , p->len );
440
440
#endif
441
- q = p;
442
- while (q != nullptr )
443
- {
444
- std::memcpy ((u8_t *)q->payload , reinterpret_cast <u8_t *>(&m), q->len );
445
- q = q->next ;
446
- }
441
+ pbuf_take (p, m, sizeof (struct dhcps_msg ));
447
442
}
448
443
else
449
444
{
@@ -475,7 +470,7 @@ void DhcpServer::send_offer(struct dhcps_msg* m)
475
470
// /////////////////////////////////////////////////////////////////////////////////
476
471
void DhcpServer::send_nak (struct dhcps_msg * m)
477
472
{
478
- struct pbuf *p, *q ;
473
+ struct pbuf *p;
479
474
480
475
auto options = create_msg (m);
481
476
options.add (DHCP_OPTION_MSG_TYPE, DHCPNAK);
@@ -492,12 +487,7 @@ void DhcpServer::send_nak(struct dhcps_msg* m)
492
487
os_printf (" dhcps: send_nak>>p->tot_len = %d\n " , p->tot_len );
493
488
os_printf (" dhcps: send_nak>>p->len = %d\n " , p->len );
494
489
#endif
495
- q = p;
496
- while (q != nullptr )
497
- {
498
- std::memcpy ((u8_t *)q->payload , (u8_t *)m, q->len );
499
- q = q->next ;
500
- }
490
+ pbuf_take (p, m, sizeof (struct dhcps_msg ));
501
491
}
502
492
else
503
493
{
@@ -524,7 +514,7 @@ void DhcpServer::send_nak(struct dhcps_msg* m)
524
514
// /////////////////////////////////////////////////////////////////////////////////
525
515
void DhcpServer::send_ack (struct dhcps_msg * m)
526
516
{
527
- struct pbuf *p, *q ;
517
+ struct pbuf *p;
528
518
529
519
auto options = create_msg (m);
530
520
options.add (DHCP_OPTION_MSG_TYPE, DHCPACK);
@@ -548,12 +538,7 @@ void DhcpServer::send_ack(struct dhcps_msg* m)
548
538
os_printf (" dhcps: send_ack>>p->tot_len = %d\n " , p->tot_len );
549
539
os_printf (" dhcps: send_ack>>p->len = %d\n " , p->len );
550
540
#endif
551
- q = p;
552
- while (q != nullptr )
553
- {
554
- std::memcpy ((u8_t *)q->payload , (u8_t *)m, q->len );
555
- q = q->next ;
556
- }
541
+ pbuf_take (p, m, sizeof (struct dhcps_msg ));
557
542
}
558
543
else
559
544
{
0 commit comments