aa4184eba9
Copy from network:ha-clustering:Factory/corosync based on submit request 42251 from user tserong OBS-URL: https://build.opensuse.org/request/show/42251 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/corosync?expand=0&rev=1
61 lines
1.6 KiB
Diff
61 lines
1.6 KiB
Diff
Index: trunk/exec/objdb.c
|
|
===================================================================
|
|
--- trunk/exec/objdb.c (revision 2745)
|
|
+++ trunk/exec/objdb.c (revision 2746)
|
|
@@ -1087,6 +1087,10 @@
|
|
}
|
|
|
|
hdb_handle_put (&object_instance_database, object_handle);
|
|
+ if (res == 0) {
|
|
+ object_key_changed_notification (object_handle, key_name, key_len,
|
|
+ object_key->value, object_key->value_len, OBJECT_KEY_REPLACED);
|
|
+ }
|
|
objdb_rdunlock();
|
|
return (res);
|
|
|
|
@@ -1170,6 +1174,10 @@
|
|
}
|
|
|
|
hdb_handle_put (&object_instance_database, object_handle);
|
|
+ if (res == 0) {
|
|
+ object_key_changed_notification (object_handle, key_name, key_len,
|
|
+ object_key->value, object_key->value_len, OBJECT_KEY_REPLACED);
|
|
+ }
|
|
objdb_rdunlock();
|
|
return (res);
|
|
|
|
@@ -1244,6 +1252,7 @@
|
|
struct object_key *object_key = NULL;
|
|
struct list_head *list;
|
|
int found = 0;
|
|
+ int value_changed = 0;
|
|
|
|
objdb_rdlock();
|
|
|
|
@@ -1308,8 +1317,14 @@
|
|
free(object_key->value);
|
|
object_key->value = replacement_value;
|
|
}
|
|
- memcpy(object_key->value, new_value, new_value_len);
|
|
- object_key->value_len = new_value_len;
|
|
+ if (memcmp (object_key->value, new_value, new_value_len) == 0) {
|
|
+ value_changed = 0;
|
|
+ }
|
|
+ else {
|
|
+ memcpy(object_key->value, new_value, new_value_len);
|
|
+ object_key->value_len = new_value_len;
|
|
+ value_changed = 1;
|
|
+ }
|
|
}
|
|
else {
|
|
ret = -1;
|
|
@@ -1317,7 +1332,7 @@
|
|
}
|
|
|
|
hdb_handle_put (&object_instance_database, object_handle);
|
|
- if (ret == 0) {
|
|
+ if (ret == 0 && value_changed) {
|
|
object_key_changed_notification (object_handle, key_name, key_len,
|
|
new_value, new_value_len, OBJECT_KEY_REPLACED);
|
|
}
|