mirror of
https://github.com/apache/nuttx-apps.git
synced 2025-10-19 19:44:35 +08:00
@@ -66,18 +66,21 @@ int netlib_set_dripv4addr(FAR const char *ifname,
|
||||
int ret = ERROR;
|
||||
|
||||
#ifdef CONFIG_NET_ROUTE
|
||||
struct sockaddr_in target;
|
||||
struct sockaddr_in netmask;
|
||||
struct sockaddr_in router;
|
||||
FAR struct sockaddr_in *v4_addr;
|
||||
struct sockaddr_storage target;
|
||||
struct sockaddr_storage netmask;
|
||||
struct sockaddr_storage router;
|
||||
|
||||
memset(&target, 0, sizeof(target));
|
||||
target.sin_family = AF_INET;
|
||||
target.ss_family = AF_INET;
|
||||
|
||||
memset(&netmask, 0, sizeof(netmask));
|
||||
netmask.sin_family = AF_INET;
|
||||
netmask.ss_family = AF_INET;
|
||||
|
||||
router.sin_addr = *addr;
|
||||
router.sin_family = AF_INET;
|
||||
memset(&router, 0, sizeof(router));
|
||||
v4_addr = (FAR struct sockaddr_in *)&router;
|
||||
v4_addr->sin_family = AF_INET;
|
||||
v4_addr->sin_addr = *addr;
|
||||
#endif
|
||||
|
||||
if (ifname && addr)
|
||||
@@ -108,16 +111,11 @@ int netlib_set_dripv4addr(FAR const char *ifname,
|
||||
|
||||
/* This call fails if no default route exists, but it's OK */
|
||||
|
||||
delroute(sockfd,
|
||||
(FAR struct sockaddr_storage *)&target,
|
||||
(FAR struct sockaddr_storage *)&netmask);
|
||||
delroute(sockfd, &target, &netmask);
|
||||
|
||||
/* Then add the new default route */
|
||||
|
||||
ret = addroute(sockfd,
|
||||
(FAR struct sockaddr_storage *)&target,
|
||||
(FAR struct sockaddr_storage *)&netmask,
|
||||
(FAR struct sockaddr_storage *)&router);
|
||||
ret = addroute(sockfd, &target, &netmask, &router);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user