fix(core): notify app about driver group deletion

This commit is contained in:
eeff
2024-03-05 17:20:15 +08:00
parent 53ff65ca4b
commit 34cd23cc79
2 changed files with 19 additions and 1 deletions
+4 -1
View File
@@ -911,7 +911,10 @@ static int adapter_loop(enum neu_event_io_type type, int fd, void *usr_data)
error.error = neu_adapter_driver_del_group(
(neu_adapter_driver_t *) adapter, cmd->group);
} else {
error.error = NEU_ERR_GROUP_NOT_ALLOW;
adapter->module->intf_funs->request(
adapter->plugin, (neu_reqresp_head_t *) header, &header[1]);
neu_msg_free(msg);
break;
}
if (error.error == NEU_ERR_SUCCESS) {
+15
View File
@@ -1098,9 +1098,24 @@ static int manager_loop(enum neu_event_io_type type, int fd, void *usr_data)
neu_msg_exchange(header);
reply(manager, header, &e);
} else {
UT_array *apps = neu_subscribe_manager_find(
manager->subscribe_manager, cmd->driver, cmd->group);
forward_msg(manager, header, header->receiver);
neu_subscribe_manager_remove(manager->subscribe_manager,
cmd->driver, cmd->group);
if (NULL == apps) {
break;
}
// notify app node about group deletion
utarray_foreach(apps, neu_app_subscribe_t *, app)
{
forward_msg_copy(manager, header, app->app_name);
}
utarray_free(apps);
}
break;
}