mirror of
https://github.com/emqx/neuron.git
synced 2026-10-18 13:41:22 +08:00
fix(mqtt): handle driver delete
This commit is contained in:
@@ -707,3 +707,10 @@ int handle_update_driver(neu_plugin_t *plugin, neu_req_update_node_t *req)
|
||||
req->new_name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int handle_del_driver(neu_plugin_t *plugin, neu_reqresp_node_deleted_t *req)
|
||||
{
|
||||
route_tbl_del_driver(&plugin->route_tbl, req->node);
|
||||
plog_notice(plugin, "delete route driver:%s", req->node);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -49,6 +49,7 @@ int handle_unsubscribe_group(neu_plugin_t * plugin,
|
||||
neu_req_unsubscribe_t *unsub_info);
|
||||
|
||||
int handle_update_driver(neu_plugin_t *plugin, neu_req_update_node_t *req);
|
||||
int handle_del_driver(neu_plugin_t *plugin, neu_reqresp_node_deleted_t *req);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -377,6 +377,7 @@ static int mqtt_plugin_request(neu_plugin_t *plugin, neu_reqresp_head_t *head,
|
||||
error = handle_update_driver(plugin, data);
|
||||
break;
|
||||
case NEU_REQRESP_NODE_DELETED:
|
||||
error = handle_del_driver(plugin, data);
|
||||
break;
|
||||
case NEU_REQ_UPDATE_LICENSE:
|
||||
break;
|
||||
|
||||
@@ -140,6 +140,18 @@ static inline void route_tbl_update_driver(route_entry_t **tbl,
|
||||
}
|
||||
}
|
||||
|
||||
static inline void route_tbl_del_driver(route_entry_t **tbl, const char *driver)
|
||||
{
|
||||
route_entry_t *e = NULL, *tmp = NULL;
|
||||
HASH_ITER(hh, *tbl, e, tmp)
|
||||
{
|
||||
if (0 == strcmp(e->key.driver, driver)) {
|
||||
HASH_DEL(*tbl, e);
|
||||
route_entry_free(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static inline void route_tbl_del(route_entry_t **tbl, const char *driver,
|
||||
const char *group)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user