diff --git a/src/ubus.c b/src/ubus.c index 6a5bfd040fceac4d050ca500c14ab5eea0761e36..1ac4266c5145f044421b2c7e4c67e1c05d02f1a2 100644 --- a/src/ubus.c +++ b/src/ubus.c @@ -753,7 +753,6 @@ int hostmngr_ubus_show_hosts(struct ubus_context *ctx, struct ubus_object *obj, hwaddr_ntoa(e->macaddr, macstr); blobmsg_add_string(&bb, "macaddr", macstr); blobmsg_add_string(&bb, "hostname", e->hostname); - blobmsg_add_u8(&bb, "active", e->unreachable ? false : true); blobmsg_add_u8(&bb, "local", e->isremote ? false : true); t = gmtime(&e->lastchange); @@ -789,6 +788,12 @@ int hostmngr_ubus_show_hosts(struct ubus_context *ctx, struct ubus_object *obj, rtnl_neigh_state2str(e->state, statestr, sizeof(statestr)); blobmsg_add_string(&bb, "ndm_state", statestr); + + if (!strcmp(statestr, "reachable")) + blobmsg_add_u8(&bb, "active", true); + else + blobmsg_add_u8(&bb, "active", false); + blobmsg_add_u32(&bb, "num_tcp", e->num_tcp); blobmsg_add_u32(&bb, "num_udp", e->num_udp); blobmsg_add_u64(&bb, "active_connections", e->num_tcp + e->num_udp);