]> xenbits.xensource.com Git - people/vhanquez/xen.git/commitdiff
xenstore: fix canonicalize for metanodes
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 9 Apr 2008 15:59:35 +0000 (16:59 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 9 Apr 2008 15:59:35 +0000 (16:59 +0100)
Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
xen-unstable changeset:   17418:506c21c5c55547b9445b4f97428e40b5abc7feaa
xen-unstable date:        Wed Apr 09 15:59:54 2008 +0100

tools/xenstore/xenstored_core.c
tools/xenstore/xenstored_watch.c

index d4c4620f36f3357ff5e9bee5734fcce7fb9ca9b5..32af808ebb3bbce8c1e43038364b3e80e93e2078 100644 (file)
@@ -690,7 +690,7 @@ char *canonicalize(struct connection *conn, const char *node)
 {
        const char *prefix;
 
-       if (!node || strstarts(node, "/"))
+       if (!node || (node[0] == '/') || (node[0] == '@'))
                return (char *)node;
        prefix = get_implicit_path(conn);
        if (prefix)
index 5fa8bbbe226cf42ec2e14525b338767c8499323f..f5692f83e5763572559e4b5fdac50d3d450b51ad 100644 (file)
@@ -170,7 +170,7 @@ void do_unwatch(struct connection *conn, struct buffered_data *in)
                return;
        }
 
-       node = strstarts(vec[0], "@") ? vec[0] : canonicalize(conn, vec[0]);
+       node = canonicalize(conn, vec[0]);
        list_for_each_entry(watch, &conn->watches, list) {
                if (streq(watch->node, node) && streq(watch->token, vec[1])) {
                        list_del(&watch->list);