@@ -424,7 +424,6 @@ impl<'a> Socket<'a> {
424
424
. dns_servers
425
425
. iter ( )
426
426
. flatten ( )
427
- . flatten ( )
428
427
. filter ( |s| s. is_unicast ( ) )
429
428
. for_each ( |a| {
430
429
// This will never produce an error, as both the arrays and `dns_servers`
@@ -779,8 +778,6 @@ mod test {
779
778
const DNS_IP_1 : Ipv4Address = Ipv4Address ( [ 1 , 1 , 1 , 1 ] ) ;
780
779
const DNS_IP_2 : Ipv4Address = Ipv4Address ( [ 1 , 1 , 1 , 2 ] ) ;
781
780
const DNS_IP_3 : Ipv4Address = Ipv4Address ( [ 1 , 1 , 1 , 3 ] ) ;
782
- const DNS_IPS_ARR : [ Option < Ipv4Address > ; DHCP_MAX_DNS_SERVER_COUNT ] =
783
- [ Some ( DNS_IP_1 ) , Some ( DNS_IP_2 ) , Some ( DNS_IP_3 ) ] ;
784
781
const DNS_IPS : & [ Ipv4Address ] = & [ DNS_IP_1 , DNS_IP_2 , DNS_IP_3 ] ;
785
782
786
783
const MASK_24 : Ipv4Address = Ipv4Address ( [ 255 , 255 , 255 , 0 ] ) ;
@@ -858,19 +855,21 @@ mod test {
858
855
..DHCP_DEFAULT
859
856
} ;
860
857
861
- const DHCP_OFFER : DhcpRepr = DhcpRepr {
862
- message_type : DhcpMessageType :: Offer ,
863
- server_ip : SERVER_IP ,
864
- server_identifier : Some ( SERVER_IP ) ,
858
+ fn dhcp_offer ( ) -> DhcpRepr < ' static > {
859
+ DhcpRepr {
860
+ message_type : DhcpMessageType :: Offer ,
861
+ server_ip : SERVER_IP ,
862
+ server_identifier : Some ( SERVER_IP ) ,
865
863
866
- your_ip : MY_IP ,
867
- router : Some ( SERVER_IP ) ,
868
- subnet_mask : Some ( MASK_24 ) ,
869
- dns_servers : Some ( DNS_IPS_ARR ) ,
870
- lease_duration : Some ( 1000 ) ,
864
+ your_ip : MY_IP ,
865
+ router : Some ( SERVER_IP ) ,
866
+ subnet_mask : Some ( MASK_24 ) ,
867
+ dns_servers : Some ( Vec :: from_slice ( DNS_IPS ) . unwrap ( ) ) ,
868
+ lease_duration : Some ( 1000 ) ,
871
869
872
- ..DHCP_DEFAULT
873
- } ;
870
+ ..DHCP_DEFAULT
871
+ }
872
+ }
874
873
875
874
const DHCP_REQUEST : DhcpRepr = DhcpRepr {
876
875
message_type : DhcpMessageType :: Request ,
@@ -883,19 +882,21 @@ mod test {
883
882
..DHCP_DEFAULT
884
883
} ;
885
884
886
- const DHCP_ACK : DhcpRepr = DhcpRepr {
887
- message_type : DhcpMessageType :: Ack ,
888
- server_ip : SERVER_IP ,
889
- server_identifier : Some ( SERVER_IP ) ,
885
+ fn dhcp_ack ( ) -> DhcpRepr < ' static > {
886
+ DhcpRepr {
887
+ message_type : DhcpMessageType :: Ack ,
888
+ server_ip : SERVER_IP ,
889
+ server_identifier : Some ( SERVER_IP ) ,
890
890
891
- your_ip : MY_IP ,
892
- router : Some ( SERVER_IP ) ,
893
- subnet_mask : Some ( MASK_24 ) ,
894
- dns_servers : Some ( DNS_IPS_ARR ) ,
895
- lease_duration : Some ( 1000 ) ,
891
+ your_ip : MY_IP ,
892
+ router : Some ( SERVER_IP ) ,
893
+ subnet_mask : Some ( MASK_24 ) ,
894
+ dns_servers : Some ( Vec :: from_slice ( DNS_IPS ) . unwrap ( ) ) ,
895
+ lease_duration : Some ( 1000 ) ,
896
896
897
- ..DHCP_DEFAULT
898
- } ;
897
+ ..DHCP_DEFAULT
898
+ }
899
+ }
899
900
900
901
const DHCP_NAK : DhcpRepr = DhcpRepr {
901
902
message_type : DhcpMessageType :: Nak ,
@@ -954,11 +955,11 @@ mod test {
954
955
955
956
recv ! ( s, [ ( IP_BROADCAST , UDP_SEND , DHCP_DISCOVER ) ] ) ;
956
957
assert_eq ! ( s. poll( ) , None ) ;
957
- send ! ( s, ( IP_RECV , UDP_RECV , DHCP_OFFER ) ) ;
958
+ send ! ( s, ( IP_RECV , UDP_RECV , dhcp_offer ( ) ) ) ;
958
959
assert_eq ! ( s. poll( ) , None ) ;
959
960
recv ! ( s, [ ( IP_BROADCAST , UDP_SEND , DHCP_REQUEST ) ] ) ;
960
961
assert_eq ! ( s. poll( ) , None ) ;
961
- send ! ( s, ( IP_RECV , UDP_RECV , DHCP_ACK ) ) ;
962
+ send ! ( s, ( IP_RECV , UDP_RECV , dhcp_ack ( ) ) ) ;
962
963
963
964
assert_eq ! (
964
965
s. poll( ) ,
@@ -994,7 +995,7 @@ mod test {
994
995
recv ! ( s, time 20_000 , [ ( IP_BROADCAST , UDP_SEND , DHCP_DISCOVER ) ] ) ;
995
996
996
997
// check after retransmits it still works
997
- send ! ( s, time 20_000 , ( IP_RECV , UDP_RECV , DHCP_OFFER ) ) ;
998
+ send ! ( s, time 20_000 , ( IP_RECV , UDP_RECV , dhcp_offer ( ) ) ) ;
998
999
recv ! ( s, time 20_000 , [ ( IP_BROADCAST , UDP_SEND , DHCP_REQUEST ) ] ) ;
999
1000
}
1000
1001
@@ -1003,7 +1004,7 @@ mod test {
1003
1004
let mut s = socket ( ) ;
1004
1005
1005
1006
recv ! ( s, time 0 , [ ( IP_BROADCAST , UDP_SEND , DHCP_DISCOVER ) ] ) ;
1006
- send ! ( s, time 0 , ( IP_RECV , UDP_RECV , DHCP_OFFER ) ) ;
1007
+ send ! ( s, time 0 , ( IP_RECV , UDP_RECV , dhcp_offer ( ) ) ) ;
1007
1008
recv ! ( s, time 0 , [ ( IP_BROADCAST , UDP_SEND , DHCP_REQUEST ) ] ) ;
1008
1009
recv ! ( s, time 1_000 , [ ] ) ;
1009
1010
recv ! ( s, time 5_000 , [ ( IP_BROADCAST , UDP_SEND , DHCP_REQUEST ) ] ) ;
@@ -1013,7 +1014,7 @@ mod test {
1013
1014
recv ! ( s, time 20_000 , [ ( IP_BROADCAST , UDP_SEND , DHCP_REQUEST ) ] ) ;
1014
1015
1015
1016
// check after retransmits it still works
1016
- send ! ( s, time 20_000 , ( IP_RECV , UDP_RECV , DHCP_ACK ) ) ;
1017
+ send ! ( s, time 20_000 , ( IP_RECV , UDP_RECV , dhcp_ack ( ) ) ) ;
1017
1018
1018
1019
match & s. state {
1019
1020
ClientState :: Renewing ( r) => {
@@ -1029,7 +1030,7 @@ mod test {
1029
1030
let mut s = socket ( ) ;
1030
1031
1031
1032
recv ! ( s, time 0 , [ ( IP_BROADCAST , UDP_SEND , DHCP_DISCOVER ) ] ) ;
1032
- send ! ( s, time 0 , ( IP_RECV , UDP_RECV , DHCP_OFFER ) ) ;
1033
+ send ! ( s, time 0 , ( IP_RECV , UDP_RECV , dhcp_offer ( ) ) ) ;
1033
1034
recv ! ( s, time 0 , [ ( IP_BROADCAST , UDP_SEND , DHCP_REQUEST ) ] ) ;
1034
1035
recv ! ( s, time 5_000 , [ ( IP_BROADCAST , UDP_SEND , DHCP_REQUEST ) ] ) ;
1035
1036
recv ! ( s, time 10_000 , [ ( IP_BROADCAST , UDP_SEND , DHCP_REQUEST ) ] ) ;
@@ -1041,7 +1042,7 @@ mod test {
1041
1042
recv ! ( s, time 70_000 , [ ( IP_BROADCAST , UDP_SEND , DHCP_DISCOVER ) ] ) ;
1042
1043
1043
1044
// check it still works
1044
- send ! ( s, time 60_000 , ( IP_RECV , UDP_RECV , DHCP_OFFER ) ) ;
1045
+ send ! ( s, time 60_000 , ( IP_RECV , UDP_RECV , dhcp_offer ( ) ) ) ;
1045
1046
recv ! ( s, time 60_000 , [ ( IP_BROADCAST , UDP_SEND , DHCP_REQUEST ) ] ) ;
1046
1047
}
1047
1048
@@ -1050,7 +1051,7 @@ mod test {
1050
1051
let mut s = socket ( ) ;
1051
1052
1052
1053
recv ! ( s, time 0 , [ ( IP_BROADCAST , UDP_SEND , DHCP_DISCOVER ) ] ) ;
1053
- send ! ( s, time 0 , ( IP_RECV , UDP_RECV , DHCP_OFFER ) ) ;
1054
+ send ! ( s, time 0 , ( IP_RECV , UDP_RECV , dhcp_offer ( ) ) ) ;
1054
1055
recv ! ( s, time 0 , [ ( IP_BROADCAST , UDP_SEND , DHCP_REQUEST ) ] ) ;
1055
1056
send ! ( s, time 0 , ( IP_SERVER_BROADCAST , UDP_RECV , DHCP_NAK ) ) ;
1056
1057
recv ! ( s, time 0 , [ ( IP_BROADCAST , UDP_SEND , DHCP_DISCOVER ) ] ) ;
@@ -1074,7 +1075,7 @@ mod test {
1074
1075
_ => panic ! ( "Invalid state" ) ,
1075
1076
}
1076
1077
1077
- send ! ( s, time 500_000 , ( IP_RECV , UDP_RECV , DHCP_ACK ) ) ;
1078
+ send ! ( s, time 500_000 , ( IP_RECV , UDP_RECV , dhcp_ack ( ) ) ) ;
1078
1079
assert_eq ! ( s. poll( ) , None ) ;
1079
1080
1080
1081
match & s. state {
@@ -1099,7 +1100,7 @@ mod test {
1099
1100
recv ! ( s, time 875_000 , [ ( IP_SEND , UDP_SEND , DHCP_RENEW ) ] ) ;
1100
1101
1101
1102
// check it still works
1102
- send ! ( s, time 875_000 , ( IP_RECV , UDP_RECV , DHCP_ACK ) ) ;
1103
+ send ! ( s, time 875_000 , ( IP_RECV , UDP_RECV , dhcp_ack ( ) ) ) ;
1103
1104
match & s. state {
1104
1105
ClientState :: Renewing ( r) => {
1105
1106
// NOW the expiration gets bumped
0 commit comments