+static int hostserv_saxdb_read_secondlevel(const char *name, void *data, UNUSED_ARG(void *extra));
+static int hostserv_saxdb_read_assignments(const char *name, void *data, UNUSED_ARG(void *extra));
+
+static int hostserv_saxdb_read_toplevel(const char *name, void *data, UNUSED_ARG(void *extra)) {
+ struct record_data *rd = data;
+ struct hs_toplevel *tlfh;
+ struct hs_manager *managerTL;
+ struct hs_user *user;
+ struct dict *object;
+
+ if (rd->type == RECDB_OBJECT) {
+ dict_t db = GET_RECORD_OBJECT(rd);
+ dict_iterator_t it;
+
+ tlfh = hs_add_toplevel(name);
+
+ if ((object = database_get_data(db, KEY_MANAGERS, RECDB_OBJECT))) {
+ for (it = dict_first(object); it; it = iter_next(it)) {
+ user = hs_get_user(get_handle_info(iter_key(it)), 1);
+ //rd = iter_data(it);
+ /* nothing in here, yet */
+ managerTL = hs_add_manager_toplevel(tlfh, user);
+ if (database_get_data(db, KEY_ACTIVE, RECDB_QSTRING))
+ managerTL->active = 1;
+ else
+ managerTL->active = 0;
+ }
+ }
+
+ if ((object = database_get_data(db, KEY_SECONDLEVEL, RECDB_OBJECT)))
+ dict_foreach(object, hostserv_saxdb_read_secondlevel, tlfh);
+ }
+ return 0;
+}
+
+static int hostserv_saxdb_read_secondlevel(const char *name, void *data, UNUSED_ARG(void *extra)) {
+ struct record_data *rd = data;
+ struct hs_toplevel *tlfh = extra;
+ struct hs_secondlevel *slfh;
+ struct hs_manager *managerSL;
+ struct hs_user *user;
+ struct dict *object;
+
+ if (rd->type == RECDB_OBJECT) {
+ dict_t db = GET_RECORD_OBJECT(rd);
+ dict_iterator_t it;
+
+ slfh = hs_add_secondlevel(tlfh, name);
+
+ if ((object = database_get_data(db, KEY_MANAGERS, RECDB_OBJECT))) {
+ for (it = dict_first(object); it; it = iter_next(it)) {
+ user = hs_get_user(get_handle_info(iter_key(it)), 1);
+ //rd = iter_data(it);
+ /* nothing in here, yet */
+ managerSL = hs_add_manager_secondlevel(slfh, user);
+ if (database_get_data(db, KEY_ACTIVE, RECDB_QSTRING))
+ managerSL->active = 1;
+ else
+ managerSL->active = 0;
+ }
+ }
+
+ if ((object = database_get_data(db, KEY_ASSIGNMENTS, RECDB_OBJECT)))
+ dict_foreach(object, hostserv_saxdb_read_assignments, slfh);
+ }
+ return 0;