fix(chat): require both member notification subscriptions at startup

This commit is contained in:
evgeny committed 2026-10-27 11:48:09 +01:00
1 parent 1aface994f
commit ed00f1ad9a
2 files changed
+11 -4

No files matched your search

+9 -3
View File
@@ -410,10 +410,16 @@ static void on_member_route_changed(struct TOPO_GROUP* group, struct TOPO_GROUP_
on_member_props_changed(node->node_id, NULL, group->channel_id, arg);
}
void chat_member_init(struct UTUN_INSTANCE* inst) {
member_sync_add_props_cbk(inst, on_member_props_changed, inst);
utun_add_nodeinfo_cbk(inst, on_member_route_changed, inst);
int chat_member_init(struct UTUN_INSTANCE* inst) {
if (member_sync_add_props_cbk(inst, on_member_props_changed, inst) < 0) {
DEBUG_ERROR(DEBUG_CATEGORY_CHAT_SYNC, "chat_member: properties subscription failed"); return -1;
}
if (utun_add_nodeinfo_cbk(inst, on_member_route_changed, inst) < 0) {
DEBUG_ERROR(DEBUG_CATEGORY_CHAT_SYNC, "chat_member: routes subscription failed");
member_sync_remove_props_cbk(inst, on_member_props_changed, inst); return -1;
}
DEBUG_INFO(DEBUG_CATEGORY_CHAT_SYNC, "chat_member: initialized (group properties/routes -> complete MEMBER_UPDATED)");
return 0;
}
void chat_member_destroy(struct UTUN_INSTANCE* inst) {
+2 -1
View File
@@ -110,7 +110,8 @@ struct chat_member_radio_mute_req { struct UTUN_INSTANCE* inst; char ch_id[64];
void chat_core_toggle_member_radio_mute_trampoline(void* arg);
/* Подписки свойств/маршрутов → MEMBER_UPDATED; вызываются в uasync при init/destroy чата. */
void chat_member_init(struct UTUN_INSTANCE* inst);
/* Установить обе подписки0/-1;при отказе частичная регистрация снята. Вызывается один раз из chat_core_init. */
int chat_member_init(struct UTUN_INSTANCE* inst);
void chat_member_destroy(struct UTUN_INSTANCE* inst);
/* Дополнительная диагностика карточки; online/RTT берутся только из chat_member_display.