|
@@ -266,7 +266,7 @@ extern unsigned int openais_service_unlink_and_exit (
|
|
|
strlen ("ver"),
|
|
strlen ("ver"),
|
|
|
(void *)&found_service_ver,
|
|
(void *)&found_service_ver,
|
|
|
NULL);
|
|
NULL);
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
/*
|
|
/*
|
|
|
* If service found and linked exit it
|
|
* If service found and linked exit it
|
|
|
*/
|
|
*/
|
|
@@ -294,34 +294,32 @@ extern unsigned int openais_service_unlink_all (
|
|
|
unsigned int *service_ver;
|
|
unsigned int *service_ver;
|
|
|
unsigned int object_service_handle;
|
|
unsigned int object_service_handle;
|
|
|
unsigned int object_find_handle;
|
|
unsigned int object_find_handle;
|
|
|
- unsigned int res;
|
|
|
|
|
|
|
+ int found;
|
|
|
|
|
|
|
|
log_printf(LOG_LEVEL_NOTICE, "Unloading all openais components\n");
|
|
log_printf(LOG_LEVEL_NOTICE, "Unloading all openais components\n");
|
|
|
-
|
|
|
|
|
- res = 0;
|
|
|
|
|
|
|
+
|
|
|
/*
|
|
/*
|
|
|
* TODO
|
|
* TODO
|
|
|
* Deleting of keys not supported during iteration at this time
|
|
* Deleting of keys not supported during iteration at this time
|
|
|
* hence this ugly hack
|
|
* hence this ugly hack
|
|
|
*/
|
|
*/
|
|
|
- for (;;) {
|
|
|
|
|
- corosync_api->object_find_create (
|
|
|
|
|
|
|
+ while(corosync_api->object_find_create (
|
|
|
object_internal_configuration_handle,
|
|
object_internal_configuration_handle,
|
|
|
"service",
|
|
"service",
|
|
|
strlen ("service"),
|
|
strlen ("service"),
|
|
|
- &object_find_handle);
|
|
|
|
|
|
|
+ &object_find_handle) == 0)
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ found = 0;
|
|
|
|
|
|
|
|
- res = corosync_api->object_find_next (
|
|
|
|
|
|
|
+ while(corosync_api->object_find_next (
|
|
|
object_find_handle,
|
|
object_find_handle,
|
|
|
- &object_service_handle);
|
|
|
|
|
|
|
+ &object_service_handle) == 0)
|
|
|
|
|
+ found = 1;
|
|
|
|
|
|
|
|
- /*
|
|
|
|
|
- * Exit from unloading
|
|
|
|
|
- */
|
|
|
|
|
- if (res == -1) {
|
|
|
|
|
|
|
+ if(!found)
|
|
|
break;
|
|
break;
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
corosync_api->object_key_get (
|
|
corosync_api->object_key_get (
|
|
|
object_service_handle,
|
|
object_service_handle,
|
|
|
"name",
|
|
"name",
|
|
@@ -335,7 +333,7 @@ extern unsigned int openais_service_unlink_all (
|
|
|
strlen ("ver"),
|
|
strlen ("ver"),
|
|
|
(void *)&service_ver,
|
|
(void *)&service_ver,
|
|
|
NULL);
|
|
NULL);
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
openais_service_unlink_common (
|
|
openais_service_unlink_common (
|
|
|
corosync_api, object_service_handle,
|
|
corosync_api, object_service_handle,
|
|
|
service_name, *service_ver);
|
|
service_name, *service_ver);
|