[XENSTORE] Fix xenstore-ls program to connect via kernel xenbus
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Thu, 9 Nov 2006 13:25:47 +0000 (13:25 +0000)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Thu, 9 Nov 2006 13:25:47 +0000 (13:25 +0000)
connection by default, like all other client utils.
Signed-off-by: Keir Fraser <keir@xensource.com>
tools/xenstore/xsls.c

index 76677525465b5af2c48c9ceb7b108cdc76612e34..cf5ff6e7e63e4d27cf4585bb48b26faf1760a7af 100644 (file)
@@ -94,14 +94,8 @@ void usage(int argc, char *argv[])
 int main(int argc, char *argv[])
 {
     struct winsize ws;
-    int ret;
-    int c;
-    int show_perm = 0;
-
-    struct xs_handle *xsh = xs_daemon_open();
-
-    if (xsh == NULL)
-        err(1, "xs_daemon_open");
+    int ret, c, socket = 0, show_perm = 0;
+    struct xs_handle *xsh;
 
 #define PAD 2
 
@@ -110,12 +104,15 @@ int main(int argc, char *argv[])
     if (!ret)
         max_width = ws.ws_col - PAD;
 
-    while (0 < (c = getopt(argc, argv, "p"))) {
+    while (0 < (c = getopt(argc, argv, "ps"))) {
         switch (c) {
         case 'p':
             show_perm = 1;
             max_width -= 16;
             break;
+        case 's':
+            socket = 1;
+            break;
         case ':':
         case '?':
         default:
@@ -124,6 +121,10 @@ int main(int argc, char *argv[])
         }
     }
 
+    xsh = socket ? xs_daemon_open() : xs_domain_open();
+    if (xsh == NULL)
+        err(1, socket ? "xs_daemon_open" : "xs_domain_open");
+
     print_dir(xsh, (argc - optind) == 1 ? argv[optind] : "/", 0, show_perm);
 
     return 0;