From b9d65b1dd30abdb585e6750e4edfc8ce3b3ab28a Mon Sep 17 00:00:00 2001 From: matt mooney Date: Sun, 19 Jun 2011 22:44:45 -0700 Subject: [PATCH] staging: usbip: userspace: usbip list: move output header Delay the printing of the output header until the list is received from the remote host. This allows notification that the host does not have any exportable devices. Signed-off-by: matt mooney Signed-off-by: Greg Kroah-Hartman --- .../staging/usbip/userspace/src/usbip_list.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/staging/usbip/userspace/src/usbip_list.c b/drivers/staging/usbip/userspace/src/usbip_list.c index afff4696632..973bf8cf602 100644 --- a/drivers/staging/usbip/userspace/src/usbip_list.c +++ b/drivers/staging/usbip/userspace/src/usbip_list.c @@ -45,7 +45,7 @@ void usbip_list_usage(void) printf("usage: %s", usbip_list_usage_string); } -static int get_exported_devices(int sockfd) +static int get_exported_devices(char *host, int sockfd) { char product_name[100]; char class_name[100]; @@ -77,6 +77,15 @@ static int get_exported_devices(int sockfd) PACK_OP_DEVLIST_REPLY(0, &reply); dbg("exportable devices: %d\n", reply.ndev); + if (reply.ndev == 0) { + info("no exportable devices found on %s", host); + return 0; + } + + printf("Exportable USB devices\n"); + printf("======================\n"); + printf(" - %s\n", host); + for (i = 0; i < reply.ndev; i++) { memset(&udev, 0, sizeof(udev)); rc = usbip_recv(sockfd, &udev, sizeof(udev)); @@ -128,11 +137,7 @@ static int list_exported_devices(char *host) } dbg("connected to %s:%s", host, USBIP_PORT_STRING); - printf("Exportable USB devices\n"); - printf("======================\n"); - printf(" - %s\n", host); - - rc = get_exported_devices(sockfd); + rc = get_exported_devices(host, sockfd); if (rc < 0) { err("failed to get device list from %s", host); return -1; -- 2.39.2