--- server/gam_poll.c 2005/05/09 13:45:55 1.52 +++ server/gam_poll.c 2005/05/20 11:26:07 1.53 @@ -631,6 +631,21 @@ g_list_free(children); } +static void +unregister_node (GamNode * node) +{ + if (missing_resources != NULL) { + gam_poll_remove_missing(node); + } + if (busy_resources != NULL) { + gam_poll_remove_busy(node); + } + if (all_resources != NULL) { + all_resources = g_list_remove(all_resources, node); + } +} + + static gboolean remove_directory_subscription(GamNode * node, GamSubscription * sub) { @@ -650,12 +665,8 @@ if ((!gam_node_get_subscriptions(child)) && (remove_dir) && (!gam_tree_has_children(tree, child))) { - if (missing_resources != NULL) { - gam_poll_remove_missing(child); - } - if (busy_resources != NULL) { - gam_poll_remove_busy(child); - } + unregister_node (child); + gam_tree_remove(tree, child); } else { remove_dir = FALSE; @@ -790,15 +801,7 @@ "prune_tree: node %s\n", gam_node_get_path(node)); parent = gam_node_parent(node); - if (missing_resources != NULL) { - gam_poll_remove_missing(node); - } - if (busy_resources != NULL) { - gam_poll_remove_busy(node); - } - if (all_resources != NULL) { - all_resources = g_list_remove(all_resources, node); - } + unregister_node(node); gam_tree_remove(tree, node); prune_tree(parent); } @@ -975,15 +978,7 @@ if (!gam_node_get_subscriptions(node)) { GamNode *parent; - if (missing_resources != NULL) { - gam_poll_remove_missing(node); - } - if (busy_resources != NULL) { - gam_poll_remove_busy(node); - } - if (all_resources != NULL) { - all_resources = g_list_remove(all_resources, node); - } + unregister_node (node); if (gam_tree_has_children(tree, node)) { fprintf(stderr, "node %s is not dir but has children\n", @@ -1004,15 +999,7 @@ if (remove_directory_subscription(node, sub)) { GamNode *parent; - if (missing_resources != NULL) { - gam_poll_remove_missing(node); - } - if (busy_resources != NULL) { - gam_poll_remove_busy(node); - } - if (all_resources != NULL) { - all_resources = g_list_remove(all_resources, node); - } + unregister_node (node); parent = gam_node_parent(node); if (!gam_tree_has_children(tree, node)) { gam_tree_remove(tree, node); --- libgamin/gam_data.c 2005/05/12 11:38:21 1.13 +++ libgamin/gam_data.c 2005/05/18 14:43:12 1.14 @@ -650,7 +650,7 @@ return (0); } - switch (req->type) { + switch (req->state) { case REQ_NONE: case REQ_SUSPENDED: GAM_DEBUG(DEBUG_INFO, @@ -665,7 +665,7 @@ req->type); return (0); case REQ_INIT: - req->type = REQ_CONFIRMED; + req->state = REQ_CONFIRMED; case REQ_CONFIRMED: break; }