summaryrefslogtreecommitdiff
path: root/apps/nshlib
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-01-21 10:21:45 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-01-21 10:21:45 -0600
commit8388961f5ffae7cb5f2904b606d797d76c678257 (patch)
treeff83896512fd4ef3ede6247e139f79c3052e8b51 /apps/nshlib
parent9fc3ffdbbe02c3f9bf128527aee96a52b5657fcb (diff)
downloadnuttx-8388961f5ffae7cb5f2904b606d797d76c678257.tar.gz
nuttx-8388961f5ffae7cb5f2904b606d797d76c678257.tar.bz2
nuttx-8388961f5ffae7cb5f2904b606d797d76c678257.zip
Networking: Improved status reporting and new carrier management interfaces. From Max Holtzberg
Diffstat (limited to 'apps/nshlib')
-rw-r--r--apps/nshlib/nsh_netcmds.c25
1 files changed, 20 insertions, 5 deletions
diff --git a/apps/nshlib/nsh_netcmds.c b/apps/nshlib/nsh_netcmds.c
index 5c76aca0e..024fb248e 100644
--- a/apps/nshlib/nsh_netcmds.c
+++ b/apps/nshlib/nsh_netcmds.c
@@ -54,6 +54,7 @@
#include <debug.h>
#include <net/ethernet.h>
+#include <net/if.h>
#include <netinet/ether.h>
#include <nuttx/net/net.h>
@@ -225,9 +226,9 @@ static inline void uip_statistics(FAR struct nsh_vtbl_s *vtbl)
nsh_output(vtbl, "\n");
#ifdef CONFIG_NET_TCP
- nsh_output(vtbl, " TCP ACK: %04x SYN: %04x\n",
+ nsh_output(vtbl, " TCP ACK: %04x SYN: %04x\n",
uip_stat.tcp.ackerr, uip_stat.tcp.syndrop);
- nsh_output(vtbl, " RST: %04x %04x\n",
+ nsh_output(vtbl, " RST: %04x %04x\n",
uip_stat.tcp.rst, uip_stat.tcp.synrst);
#endif
@@ -282,18 +283,32 @@ int ifconfig_callback(FAR struct uip_driver_s *dev, void *arg)
{
struct nsh_vtbl_s *vtbl = (struct nsh_vtbl_s*)arg;
struct in_addr addr;
- bool is_running = false;
+ uint8_t iff;
+ const char *status;
int ret;
- ret = uip_getifstatus(dev->d_ifname,&is_running);
+ ret = uip_getifstatus(dev->d_ifname, &iff);
if (ret != OK)
{
nsh_output(vtbl, "\tGet %s interface flags error: %d\n",
dev->d_ifname, ret);
}
+ if (iff & IFF_RUNNING)
+ {
+ status = "RUNNING";
+ }
+ else if (iff & IFF_UP)
+ {
+ status = "UP";
+ }
+ else
+ {
+ status = "DOWN";
+ }
+
nsh_output(vtbl, "%s\tHWaddr %s at %s\n",
- dev->d_ifname, ether_ntoa(&dev->d_mac), (is_running)?"UP":"DOWN");
+ dev->d_ifname, ether_ntoa(&dev->d_mac), status);
addr.s_addr = dev->d_ipaddr;
nsh_output(vtbl, "\tIPaddr:%s ", inet_ntoa(addr));