staging: usbip: userspace: usbip list: move output header
authormatt mooney <mfm@muteddisk.com>
Mon, 20 Jun 2011 05:44:45 +0000 (22:44 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 6 Jul 2011 03:11:35 +0000 (20:11 -0700)
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 <mfm@muteddisk.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/usbip/userspace/src/usbip_list.c

index afff4696632305bfa49c4cf7729440ec08dbd367..973bf8cf602bba78648001f55b46dae918568e16 100644 (file)
@@ -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;