apps/nshlib: ifconfig improvements

This commit is contained in:
Anthony Merlino 2017-10-24 17:26:17 -06:00 committed by Gregory Nutt
parent a27294d788
commit a8bf5718f5

View File

@ -156,8 +156,8 @@ struct tftpc_args_s
{
bool binary; /* true:binary ("octet") false:text ("netascii") */
bool allocated; /* true: destpath is allocated */
char *destpath; /* Path at destination */
const char *srcpath; /* Path at src */
FAR char *destpath; /* Path at destination */
FAR const char *srcpath; /* Path at src */
in_addr_t ipaddr; /* Host IP address */
};
#endif
@ -294,7 +294,7 @@ int tftpc_parseargs(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv,
/* The HOST IP address is also required */
if (!args->ipaddr)
if (args->ipaddr == 0)
{
fmt = g_fmtargrequired;
goto errout;
@ -302,16 +302,16 @@ int tftpc_parseargs(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv,
/* If the destpath was not provided, then we have do a little work. */
if (!args->destpath)
if (args->destpath == NULL)
{
char *tmp1;
char *tmp2;
FAR char *tmp1;
FAR char *tmp2;
/* Copy the srcpath... baseanme might modify it */
fmt = g_fmtcmdoutofmemory;
tmp1 = strdup(args->srcpath);
if (!tmp1)
if (tmp1 == NULL)
{
goto errout;
}
@ -319,7 +319,7 @@ int tftpc_parseargs(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv,
/* Get the basename of the srcpath */
tmp2 = basename(tmp1);
if (!tmp2)
if (tmp2 == NULL)
{
free(tmp1);
goto errout;
@ -329,7 +329,7 @@ int tftpc_parseargs(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv,
args->destpath = strdup(tmp2);
free(tmp1);
if (!args->destpath)
if (args->destpath == NULL)
{
goto errout;
}
@ -462,7 +462,7 @@ static inline void nsh_sethwaddr(FAR const char *ifname, FAR mac_addr_t *macaddr
int cmd_get(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
{
struct tftpc_args_s args;
char *fullpath;
FAR char *fullpath;
/* Parse the input parameter list */
@ -550,11 +550,11 @@ int cmd_ifconfig(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
{
#ifdef CONFIG_NET_IPv4
struct in_addr addr;
in_addr_t gip;
#endif
#ifdef CONFIG_NET_IPv6
struct in6_addr addr6;
#endif
in_addr_t gip;
int i;
FAR char *ifname = NULL;
FAR char *hostip = NULL;
@ -618,7 +618,8 @@ int cmd_ifconfig(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
{
tmp = argv[i];
if (!strcmp(tmp, "dr") || !strcmp(tmp, "gw") || !strcmp(tmp, "gateway"))
if (!strcmp(tmp, "dr") || !strcmp(tmp, "gw") ||
!strcmp(tmp, "gateway"))
{
if (argc - 1 >= i + 1)
{
@ -734,10 +735,15 @@ int cmd_ifconfig(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
if (inet6)
#endif
{
#warning Missing Logic
UNUSED(addr6);
UNUSED(gip);
UNUSED(hostip);
if (hostip != NULL)
{
/* REVISIT: Should DHCPC check be used here too? */
ninfo("Host IP: %s\n", hostip);
inet_pton(AF_INET6, hostip, &addr6);
}
netlib_set_ipv6addr(ifname, &addr6);
}
#endif /* CONFIG_NET_IPv6 */
@ -749,12 +755,13 @@ int cmd_ifconfig(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
if (hostip != NULL)
{
#if defined(CONFIG_NSH_DHCPC)
if (!strcmp(hostip, "dhcp"))
if (strcmp(hostip, "dhcp") == 0)
{
/* Set DHCP addr */
ninfo("DHCPC Mode\n");
gip = addr.s_addr = 0;
addr.s_addr = 0;
gip = 0;
}
else
#endif
@ -762,7 +769,8 @@ int cmd_ifconfig(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
/* Set host IP address */
ninfo("Host IP: %s\n", hostip);
gip = addr.s_addr = inet_addr(hostip);
addr.s_addr = inet_addr(hostip);
gip = addr.s_addr;
}
}
@ -770,13 +778,22 @@ int cmd_ifconfig(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
}
#endif /* CONFIG_NET_IPv4 */
/* Set gateway */
#ifdef CONFIG_NET_IPv6
#ifdef CONFIG_NET_IPv4
if (inet6)
#endif
{
#warning Missing Logic
UNUSED(gwip);
/* Only set the gateway address if it was explicitly provided. */
if (gwip != NULL)
{
ninfo("Gateway: %s\n", gwip);
inet_pton(AF_INET6, gwip, &addr6);
netlib_set_dripv6addr(ifname, &addr6);
}
}
#endif /* CONFIG_NET_IPv6 */
@ -785,16 +802,14 @@ int cmd_ifconfig(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
else
#endif
{
/* Set gateway */
if (gwip)
if (gwip != NULL)
{
ninfo("Gateway: %s\n", gwip);
gip = addr.s_addr = inet_addr(gwip);
}
else
{
if (gip)
if (gip != 0)
{
ninfo("Gateway: default\n");
gip = NTOHL(gip);
@ -817,8 +832,18 @@ int cmd_ifconfig(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
if (inet6)
#endif
{
#warning Missing Logic
UNUSED(mask);
if (mask != NULL)
{
ninfo("Netmask: %s\n",mask);
inet_pton(AF_INET6, mask, &addr6);
}
else
{
ninfo("Netmask: Default\n");
inet_pton(AF_INET6, "ffff:ffff:ffff:ffff::", &addr6);
}
netlib_set_ipv6netmask(ifname, &addr6);
}
#endif /* CONFIG_NET_IPv6 */
@ -827,9 +852,9 @@ int cmd_ifconfig(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
else
#endif
{
if (mask)
if (mask != NULL)
{
ninfo("Netmask: %s\n",mask);
ninfo("Netmask: %s\n", mask);
addr.s_addr = inet_addr(mask);
}
else
@ -859,7 +884,7 @@ int cmd_ifconfig(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
else
#endif
{
if (dns)
if (dns != NULL)
{
ninfo("DNS: %s\n", dns);
addr.s_addr = inet_addr(dns);
@ -891,7 +916,7 @@ int cmd_ifconfig(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
* ds.lease_time/2 seconds.
*/
if (handle)
if (handle != NULL)
{
struct dhcpc_state ds;
@ -1137,7 +1162,7 @@ errout_invalid:
int cmd_put(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
{
struct tftpc_args_s args;
char *fullpath;
FAR char *fullpath;
/* Parse the input parameter list */
@ -1178,12 +1203,12 @@ int cmd_put(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
#ifndef CONFIG_NSH_DISABLE_WGET
int cmd_wget(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
{
char *localfile = NULL;
char *allocfile = NULL;
char *buffer = NULL;
char *fullpath = NULL;
char *url;
const char *fmt;
FAR char *localfile = NULL;
FAR char *allocfile = NULL;
FAR char *buffer = NULL;
FAR har *fullpath = NULL;
FAR char *url;
FAR const char *fmt;
bool badarg = false;
int option;
int fd = -1;
@ -1240,7 +1265,7 @@ int cmd_wget(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
/* Get the local file name */
if (!localfile)
if (localfile == NULL)
{
allocfile = strdup(url);
localfile = basename(allocfile);
@ -1263,7 +1288,7 @@ int cmd_wget(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
/* Allocate an I/O buffer */
buffer = malloc(512);
if (!buffer)
if (buffer == NULL)
{
fmt = g_fmtcmdoutofmemory;
goto errout;
@ -1286,17 +1311,17 @@ exit:
close(fd);
}
if (allocfile)
if (allocfile != NULL)
{
free(allocfile);
}
if (fullpath)
if (fullpath != NULL)
{
free(fullpath);
}
if (buffer)
if (buffer != NULL)
{
free(buffer);
}