lookup: Report service, version and instance separate

Instead of reporting "service" as id:instance split the "instance" in version
and instance and present the three entities separately.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
This commit is contained in:
Bjorn Andersson
2017-08-14 18:58:56 +00:00
parent ba500a4d3d
commit c1fb6f0bd0

View File

@@ -83,6 +83,11 @@ int main(int argc, char **argv)
{
struct qrtr_ctrl_pkt pkt;
struct sockaddr_qrtr sq;
unsigned int instance;
unsigned int service;
unsigned int version;
unsigned int node;
unsigned int port;
socklen_t sl = sizeof(sq);
struct timeval tv;
int sock;
@@ -126,13 +131,12 @@ int main(int argc, char **argv)
if (rc < 0)
err(1, "sendto()");
printf(" Service Node Port\n");
printf(" Service Version Instance Node Port\n");
while ((len = recv(sock, &pkt, sizeof(pkt), 0)) > 0) {
unsigned int type = le32_to_cpu(pkt.cmd);
const char *name = NULL;
unsigned int i;
char srv_buf[32];
if (len < sizeof(pkt) || type != QRTR_CMD_NEW_SERVER) {
warn("invalid/short packet");
@@ -143,27 +147,27 @@ int main(int argc, char **argv)
!pkt.server.node && !pkt.server.port)
break;
pkt.server.service = le32_to_cpu(pkt.server.service);
pkt.server.instance = le32_to_cpu(pkt.server.instance);
pkt.server.node = le32_to_cpu(pkt.server.node);
pkt.server.port = le32_to_cpu(pkt.server.port);
service = le32_to_cpu(pkt.server.service);
version = le32_to_cpu(pkt.server.instance) & 0xff;
instance = le32_to_cpu(pkt.server.instance) >> 8;
node = le32_to_cpu(pkt.server.node);
port = le32_to_cpu(pkt.server.port);
for (i = 0; i < sizeof(common_names)/sizeof(common_names[0]); ++i) {
if (pkt.server.service != common_names[i].service)
if (service != common_names[i].service)
continue;
if (pkt.server.instance &&
(pkt.server.instance & common_names[i].ifilter) != common_names[i].ifilter)
if (instance &&
(instance & common_names[i].ifilter) != common_names[i].ifilter)
continue;
name = common_names[i].name;
}
snprintf(srv_buf, sizeof(srv_buf), "%d:%d",
pkt.server.service, pkt.server.instance);
printf("%9s %4d %5d (%s)\n",
srv_buf,
pkt.server.node,
pkt.server.port,
printf("%9d %7d %8d %4d %5d %s\n",
service,
version,
instance,
node,
port,
name ? name : "<unknown>");
}