static void manual_node(const char *name, const char *child)
{
struct node *node;
- struct xs_permissions perms = { .id = 0, .perms = XS_PERM_NONE };
+ struct xs_permissions perms = { .id = dom0_domid,
+ .perms = XS_PERM_NONE };
node = talloc_zero(NULL, struct node);
if (!node)
}
}
-static void setup_structure(bool live_update)
+void setup_structure(bool live_update)
{
char *tdbname;
manual_node("/", "tool");
manual_node("/tool", "xenstored");
manual_node("/tool/xenstored", NULL);
+ domain_entry_fix(dom0_domid, 3, true);
}
check_store();
init_pipe(reopen_log_pipe);
- /* Setup the database */
- setup_structure(live_update);
-
/* Listen to hypervisor. */
if (!no_domain_init && !live_update) {
domain_init(-1);
struct node *read_node(struct connection *conn, const void *ctx,
const char *name);
+void setup_structure(bool live_update);
struct connection *new_connection(const struct interface_funcs *funcs);
struct connection *get_connection_by_id(unsigned int conn_id);
void ignore_connection(struct connection *conn);
}
domain->interface = interface;
+ if (is_master_domain)
+ setup_structure(restore);
+
/* Now domain belongs to its connection. */
talloc_steal(domain->conn, domain);