@@ -522,64 +522,80 @@ static enum net_verdict parse_options(struct net_if *iface, struct net_buf *buf,
522
522
frag = net_nbuf_read_u8 (frag , pos , & pos , & type );
523
523
524
524
if (type == DHCPV4_OPTIONS_END ) {
525
+ NET_DBG ("options_end" );
525
526
end = true;
526
527
return NET_OK ;
527
528
}
528
529
529
530
frag = net_nbuf_read_u8 (frag , pos , & pos , & length );
530
531
if (!frag ) {
532
+ NET_ERR ("option parsing, bad length" );
531
533
return NET_DROP ;
532
534
}
533
535
534
536
switch (type ) {
535
537
case DHCPV4_OPTIONS_SUBNET_MASK :
536
538
if (length != 4 ) {
539
+ NET_ERR ("options_subnet_mask, bad length" );
537
540
return NET_DROP ;
538
541
}
539
542
540
543
frag = net_nbuf_read (frag , pos , & pos , length ,
541
544
iface -> ipv4 .netmask .s4_addr );
545
+ NET_DBG ("options_subnet_mask %s" ,
546
+ net_sprint_ipv4_addr (& iface -> ipv4 .netmask ));
542
547
break ;
543
548
case DHCPV4_OPTIONS_LEASE_TIME :
544
549
if (length != 4 ) {
550
+ NET_ERR ("options_lease_time, bad length" );
545
551
return NET_DROP ;
546
552
}
547
553
548
554
frag = net_nbuf_read_be32 (frag , pos , & pos ,
549
555
& iface -> dhcpv4 .lease_time );
556
+ NET_DBG ("options_lease_time: %u" ,
557
+ iface -> dhcpv4 .lease_time );
550
558
if (!iface -> dhcpv4 .lease_time ) {
551
559
return NET_DROP ;
552
560
}
553
561
554
562
break ;
555
563
case DHCPV4_OPTIONS_RENEWAL :
556
564
if (length != 4 ) {
565
+ NET_DBG ("options_renewal, bad length" );
557
566
return NET_DROP ;
558
567
}
559
568
560
569
frag = net_nbuf_read_be32 (frag , pos , & pos ,
561
570
& iface -> dhcpv4 .renewal_time );
571
+ NET_DBG ("options_renewal: %u" ,
572
+ iface -> dhcpv4 .renewal_time );
562
573
if (!iface -> dhcpv4 .renewal_time ) {
563
574
return NET_DROP ;
564
575
}
565
576
566
577
break ;
567
578
case DHCPV4_OPTIONS_SERVER_ID :
568
579
if (length != 4 ) {
580
+ NET_DBG ("options_server_id, bad length" );
569
581
return NET_DROP ;
570
582
}
571
583
572
584
frag = net_nbuf_read (frag , pos , & pos , length ,
573
585
iface -> dhcpv4 .server_id .s4_addr );
586
+ NET_DBG ("options_server_id: %s" ,
587
+ net_sprint_ipv4_addr (& iface -> dhcpv4 .server_id ));
574
588
break ;
575
589
case DHCPV4_OPTIONS_MSG_TYPE :
576
590
if (length != 1 ) {
591
+ NET_DBG ("options_msg_type, bad length" );
577
592
return NET_DROP ;
578
593
}
579
594
580
595
frag = net_nbuf_read_u8 (frag , pos , & pos , msg_type );
581
596
break ;
582
597
default :
598
+ NET_DBG ("option unknown: %d" , type );
583
599
frag = net_nbuf_skip (frag , pos , & pos , length );
584
600
break ;
585
601
}
0 commit comments