|
@@ -343,6 +343,8 @@ LSR_dres_update (
|
|
* REMOVE user data.
|
|
* REMOVE user data.
|
|
*/
|
|
*/
|
|
|
|
|
|
|
|
+ bool is_new;
|
|
|
|
+
|
|
if (rm_data) {
|
|
if (rm_data) {
|
|
size_t ct_loop, i, j;
|
|
size_t ct_loop, i, j;
|
|
for (i = 0; rm_data[i] != NULL; i++) {
|
|
for (i = 0; rm_data[i] != NULL; i++) {
|
|
@@ -368,7 +370,8 @@ LSR_dres_update (
|
|
ct += ct_loop;
|
|
ct += ct_loop;
|
|
// TODO if graph is empty after removal, remove it.
|
|
// TODO if graph is empty after removal, remove it.
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
+ is_new = false;
|
|
|
|
+ } else is_new = true;
|
|
|
|
|
|
/*
|
|
/*
|
|
* ADD user data.
|
|
* ADD user data.
|
|
@@ -475,10 +478,13 @@ LSR_dres_update (
|
|
// If the resource is a special type, handle specific workflow.
|
|
// If the resource is a special type, handle specific workflow.
|
|
if (hashmap_get (LSR_managed_types, spo->o)) {
|
|
if (hashmap_get (LSR_managed_types, spo->o)) {
|
|
if (
|
|
if (
|
|
|
|
+ !is_new && (
|
|
strcmp (spo->o->data, "lsup:List") == 0 ||
|
|
strcmp (spo->o->data, "lsup:List") == 0 ||
|
|
strcmp (spo->o->data, "lsup:ListItem") == 0 ||
|
|
strcmp (spo->o->data, "lsup:ListItem") == 0 ||
|
|
strcmp (spo->o->data, "lsup:Set") == 0 ||
|
|
strcmp (spo->o->data, "lsup:Set") == 0 ||
|
|
- strcmp (spo->o->data, "lsup:Proxy") == 0) {
|
|
|
|
|
|
+ strcmp (spo->o->data, "lsup:Proxy") == 0
|
|
|
|
+ )
|
|
|
|
+ ) {
|
|
// TODO handle system-managed types.
|
|
// TODO handle system-managed types.
|
|
} else {
|
|
} else {
|
|
log_error (
|
|
log_error (
|