aboutsummaryrefslogtreecommitdiffstats
path: root/tools/xenstore/xenstore_client.c
diff options
context:
space:
mode:
authorIan Jackson <Ian.Jackson@eu.citrix.com>2010-12-14 16:56:54 +0000
committerIan Jackson <Ian.Jackson@eu.citrix.com>2010-12-14 16:56:54 +0000
commitd310383831923070727745af97776dcb6078e4f7 (patch)
treeef7d1bfbeb7de4ecd05df033c1a6987ddc6f222d /tools/xenstore/xenstore_client.c
parent467a09d50d6768c8637e532a960f940fb9df2233 (diff)
downloadxen-d310383831923070727745af97776dcb6078e4f7.tar.gz
xen-d310383831923070727745af97776dcb6078e4f7.tar.bz2
xen-d310383831923070727745af97776dcb6078e4f7.zip
xenstore: new XS_OPEN_SOCKETONLY flag; honour "-s" on tools' cmdline
The "-s" option to xenstore-ls is used by the xencommons startup script to check whether xenstored is already running, before starting it. Since 22498:a40455ae9ad3, "-s" has been a no-op, and libxenstore will always fall back to using xenbus. The combined effect is that the xencommons script deadlocks: xenstore-ls hangs waiting for xenstored, which isn't started by xencommons because xencommons is waiting for xenstore-ls. In this patch, we: * Introduce a new XS_OPEN_SOCKETONLY flag which disables the fallback behaviour; * Make the xenstore command line tools use the new xs_open call rather than the old, deprecated xs_open_* calls (which are now identical). * Plumb the xenstore command line tools "-s" option to set the XS_OPEN_SOCKETONLY flag. * Change the type of the XS_OPEN_* flags so that they naturally have type unsigned long. The "-s" option to xenstore-ls et al, and the XS_OPEN_SOCKETONLY flag, are intended for use by toolstack infrastructure and should not normally be used by higher-level code. Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/xenstore/xenstore_client.c')
-rw-r--r--tools/xenstore/xenstore_client.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/tools/xenstore/xenstore_client.c b/tools/xenstore/xenstore_client.c
index fe63b6b0c8..94b82b99af 100644
--- a/tools/xenstore/xenstore_client.c
+++ b/tools/xenstore/xenstore_client.c
@@ -633,9 +633,8 @@ main(int argc, char **argv)
max_width = ws.ws_col - 2;
}
- xsh = socket ? xs_daemon_open() : xs_domain_open();
- if (xsh == NULL)
- err(1, socket ? "xs_daemon_open" : "xs_domain_open");
+ xsh = xs_open(socket ? XS_OPEN_SOCKETONLY : 0);
+ if (xsh == NULL) err(1, "xs_open");
again:
if (transaction) {