@@ -580,6 +580,7 @@ int netdev_set_down(struct netdev *netdev)
580
580
return err ;
581
581
}
582
582
583
+ #ifdef RT_LWIP_DHCP
583
584
/**
584
585
* This function will control network interface device DHCP capability enable or disable.
585
586
*
@@ -609,6 +610,34 @@ int netdev_dhcp_enabled(struct netdev *netdev, rt_bool_t is_enabled)
609
610
return netdev -> ops -> set_dhcp (netdev , is_enabled );
610
611
}
611
612
613
+ int netdev_dhcp_open (char * netdev_name )
614
+ {
615
+ struct netdev * netdev = RT_NULL ;
616
+ netdev = netdev_get_by_name (netdev_name );
617
+ if (netdev == RT_NULL )
618
+ {
619
+ rt_kprintf ("bad network interface device name(%s).\n" , netdev_name );
620
+ return -1 ;
621
+ }
622
+ netdev_dhcp_enabled (netdev , RT_TRUE );
623
+ return 0 ;
624
+ }
625
+
626
+ int netdev_dhcp_close (char * netdev_name )
627
+ {
628
+ struct netdev * netdev = RT_NULL ;
629
+
630
+ netdev = netdev_get_by_name (netdev_name );
631
+ if (netdev == RT_NULL )
632
+ {
633
+ rt_kprintf ("bad network interface device name(%s).\n" , netdev_name );
634
+ return -1 ;
635
+ }
636
+ netdev_dhcp_enabled (netdev , RT_FALSE );
637
+ return 0 ;
638
+ }
639
+ #endif /* RT_LWIP_DHCP */
640
+
612
641
/**
613
642
* This function will set network interface device IP address.
614
643
*
@@ -708,6 +737,32 @@ int netdev_set_gw(struct netdev *netdev, const ip_addr_t *gw)
708
737
return netdev -> ops -> set_addr_info (netdev , RT_NULL , RT_NULL , (ip_addr_t * )gw );
709
738
}
710
739
740
+ /**
741
+ * This function will try to get network device and set DNS server address.
742
+ *
743
+ * @param netdev_name the network interface device name
744
+ * @param dns_num the number of the DNS server
745
+ * @param dns_server the new DNS server address
746
+ */
747
+ void netdev_set_dns (char * netdev_name , uint8_t dns_num , char * dns_server )
748
+ {
749
+ struct netdev * netdev = RT_NULL ;
750
+ ip_addr_t dns_addr ;
751
+
752
+ netdev = netdev_get_by_name (netdev_name );
753
+ if (netdev == RT_NULL )
754
+ {
755
+ rt_kprintf ("bad network interface device name(%s).\n" , netdev_name );
756
+ return ;
757
+ }
758
+
759
+ inet_aton (dns_server , & dns_addr );
760
+ if (netdev_set_dns_server (netdev , dns_num , & dns_addr ) == RT_EOK )
761
+ {
762
+ rt_kprintf ("set network interface device(%s) dns server #%d: %s\n" , netdev_name , dns_num , dns_server );
763
+ }
764
+ }
765
+
711
766
/**
712
767
* This function will set network interface device DNS server address.
713
768
*
@@ -739,6 +794,49 @@ int netdev_set_dns_server(struct netdev *netdev, uint8_t dns_num, const ip_addr_
739
794
return netdev -> ops -> set_dns_server (netdev , dns_num , (ip_addr_t * )dns_server );
740
795
}
741
796
797
+ /**
798
+ * This function will set network interface device IP, gateway and netmask address according to device name.
799
+ *
800
+ * @param netdev_name the network interface device name
801
+ * @param ip_addr the new IP address
802
+ * @param gw_addr the new gateway address
803
+ * @param nm_addr the new netmask address
804
+ */
805
+ void netdev_set_if (char * netdev_name , char * ip_addr , char * gw_addr , char * nm_addr )
806
+ {
807
+ struct netdev * netdev = RT_NULL ;
808
+ ip_addr_t addr ;
809
+
810
+ netdev = netdev_get_by_name (netdev_name );
811
+ if (netdev == RT_NULL )
812
+ {
813
+ rt_kprintf ("bad network interface device name(%s).\n" , netdev_name );
814
+ return ;
815
+ }
816
+
817
+ #ifdef RT_LWIP_DHCP
818
+ netdev_dhcp_close (netdev_name );
819
+ #endif
820
+
821
+ /* set IP address */
822
+ if ((ip_addr != RT_NULL ) && inet_aton (ip_addr , & addr ))
823
+ {
824
+ netdev_set_ipaddr (netdev , & addr );
825
+ }
826
+
827
+ /* set gateway address */
828
+ if ((gw_addr != RT_NULL ) && inet_aton (gw_addr , & addr ))
829
+ {
830
+ netdev_set_gw (netdev , & addr );
831
+ }
832
+
833
+ /* set netmask address */
834
+ if ((nm_addr != RT_NULL ) && inet_aton (nm_addr , & addr ))
835
+ {
836
+ netdev_set_netmask (netdev , & addr );
837
+ }
838
+ }
839
+
742
840
/**
743
841
* This function will set callback to be called when the network interface device status has been changed.
744
842
*
@@ -1172,70 +1270,6 @@ static void netdev_list_if(void)
1172
1270
}
1173
1271
}
1174
1272
1175
- #ifdef RT_LWIP_DHCP
1176
- int netdev_dhcp_open (char * netdev_name )
1177
- {
1178
- struct netdev * netdev = RT_NULL ;
1179
- netdev = netdev_get_by_name (netdev_name );
1180
- if (netdev == RT_NULL )
1181
- {
1182
- rt_kprintf ("bad network interface device name(%s).\n" , netdev_name );
1183
- return -1 ;
1184
- }
1185
- netdev_dhcp_enabled (netdev ,RT_TRUE );
1186
- return 0 ;
1187
- }
1188
-
1189
- int netdev_dhcp_close (char * netdev_name )
1190
- {
1191
- struct netdev * netdev = RT_NULL ;
1192
-
1193
- netdev = netdev_get_by_name (netdev_name );
1194
- if (netdev == RT_NULL )
1195
- {
1196
- rt_kprintf ("bad network interface device name(%s).\n" , netdev_name );
1197
- return -1 ;
1198
- }
1199
- netdev_dhcp_enabled (netdev ,RT_FALSE );
1200
- return 0 ;
1201
- }
1202
- #endif
1203
-
1204
- static void netdev_set_if (char * netdev_name , char * ip_addr , char * gw_addr , char * nm_addr )
1205
- {
1206
- struct netdev * netdev = RT_NULL ;
1207
- ip_addr_t addr ;
1208
-
1209
- netdev = netdev_get_by_name (netdev_name );
1210
- if (netdev == RT_NULL )
1211
- {
1212
- rt_kprintf ("bad network interface device name(%s).\n" , netdev_name );
1213
- return ;
1214
- }
1215
-
1216
- #ifdef RT_LWIP_DHCP
1217
- netdev_dhcp_close (netdev_name );
1218
- #endif
1219
-
1220
- /* set IP address */
1221
- if ((ip_addr != RT_NULL ) && inet_aton (ip_addr , & addr ))
1222
- {
1223
- netdev_set_ipaddr (netdev , & addr );
1224
- }
1225
-
1226
- /* set gateway address */
1227
- if ((gw_addr != RT_NULL ) && inet_aton (gw_addr , & addr ))
1228
- {
1229
- netdev_set_gw (netdev , & addr );
1230
- }
1231
-
1232
- /* set netmask address */
1233
- if ((nm_addr != RT_NULL ) && inet_aton (nm_addr , & addr ))
1234
- {
1235
- netdev_set_netmask (netdev , & addr );
1236
- }
1237
- }
1238
-
1239
1273
int netdev_ifconfig (int argc , char * * argv )
1240
1274
{
1241
1275
if (argc == 1 )
@@ -1429,7 +1463,7 @@ int netdev_ping(int argc, char **argv)
1429
1463
return 0 ;
1430
1464
}
1431
1465
MSH_CMD_EXPORT_ALIAS (netdev_ping , ping , ping network host );
1432
- #endif /* NETDEV_USING_IFCONFIG */
1466
+ #endif /* NETDEV_USING_PING */
1433
1467
1434
1468
static void netdev_list_dns (void )
1435
1469
{
@@ -1457,25 +1491,6 @@ static void netdev_list_dns(void)
1457
1491
}
1458
1492
}
1459
1493
1460
- static void netdev_set_dns (char * netdev_name , uint8_t dns_num , char * dns_server )
1461
- {
1462
- struct netdev * netdev = RT_NULL ;
1463
- ip_addr_t dns_addr ;
1464
-
1465
- netdev = netdev_get_by_name (netdev_name );
1466
- if (netdev == RT_NULL )
1467
- {
1468
- rt_kprintf ("bad network interface device name(%s).\n" , netdev_name );
1469
- return ;
1470
- }
1471
-
1472
- inet_aton (dns_server , & dns_addr );
1473
- if (netdev_set_dns_server (netdev , dns_num , & dns_addr ) == RT_EOK )
1474
- {
1475
- rt_kprintf ("set network interface device(%s) dns server #%d: %s\n" , netdev_name , dns_num , dns_server );
1476
- }
1477
- }
1478
-
1479
1494
int netdev_dns (int argc , char * * argv )
1480
1495
{
1481
1496
if (argc == 1 )
@@ -1499,6 +1514,7 @@ int netdev_dns(int argc, char **argv)
1499
1514
return 0 ;
1500
1515
}
1501
1516
MSH_CMD_EXPORT_ALIAS (netdev_dns , dns , list and set the information of dns );
1517
+
1502
1518
#ifdef NETDEV_USING_NETSTAT
1503
1519
static void netdev_cmd_netstat (void )
1504
1520
{
0 commit comments