fix(routing): report nodeinfo subscription allocation failure
This commit is contained in:
1 parent
6429d4ca23
commit
1aface994f
2 files changed
+6
-4
No files matched your search
@@ -1961,13 +1961,14 @@ void topo_group_remove_node_cbk(struct TOPO_GROUP* group, topo_node_event_fn fn,
|
||||
/* ── Global nodeinfo callbacks (instance-level, any node change) ── */
|
||||
|
||||
/* Регистрирует глобальный колбэк изменения nodeinfo (уровень инстанса). */
|
||||
void utun_add_nodeinfo_cbk(struct UTUN_INSTANCE* instance, nodeinfo_cbk_fn fn, void* arg) {
|
||||
if (!instance || !fn) { DEBUG_ERROR(DEBUG_CATEGORY_BGP, "nodeinfo subscription: invalid arguments"); return; }
|
||||
int utun_add_nodeinfo_cbk(struct UTUN_INSTANCE* instance, nodeinfo_cbk_fn fn, void* arg) {
|
||||
if (!instance || !fn) { DEBUG_ERROR(DEBUG_CATEGORY_BGP, "nodeinfo subscription: invalid arguments"); return -1; }
|
||||
struct nodeinfo_cbk_entry* e = u_malloc(sizeof(*e));
|
||||
if (!e) { DEBUG_ERROR(DEBUG_CATEGORY_BGP, "nodeinfo subscription allocation failed"); return; }
|
||||
if (!e) { DEBUG_ERROR(DEBUG_CATEGORY_BGP, "nodeinfo subscription allocation failed"); return -1; }
|
||||
e->fn = fn; e->arg = arg;
|
||||
e->next = instance->nodeinfo_cbks;
|
||||
instance->nodeinfo_cbks = e;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Снимает глобальный колбэк nodeinfo. */
|
||||
|
||||
@@ -108,7 +108,8 @@ struct nodeinfo_cbk_entry {
|
||||
struct nodeinfo_cbk_entry* next;
|
||||
};
|
||||
|
||||
void utun_add_nodeinfo_cbk(struct UTUN_INSTANCE* instance, nodeinfo_cbk_fn fn, void* arg);
|
||||
/* Зарегистрировать0/-1;fn/arg принадлежат caller до remove/уничтожения instance. */
|
||||
int utun_add_nodeinfo_cbk(struct UTUN_INSTANCE* instance, nodeinfo_cbk_fn fn, void* arg);
|
||||
void utun_remove_nodeinfo_cbk(struct UTUN_INSTANCE* instance, nodeinfo_cbk_fn fn, void* arg);
|
||||
void topo_fire_nodeinfo_cbk(struct UTUN_INSTANCE* instance, struct TOPO_GROUP* group, struct TOPO_GROUP_NODE* node);
|
||||
|
||||
|
||||
Reference in new issue
Block a user