etcp: переупорядочить close + защита state==2 во всех API-точках; topo: правильная очистка group nodes и registry; chat/member: новый модуль member_sync; chatgui: обновления транспорта и UI
This commit is contained in:
1 parent
b2e4aadbf0
commit
7f901c01e1
38 files changed
+1275
-540
No files matched your search
@@ -29,7 +29,6 @@ static GuiBridgeReceiver* g_receiver = nullptr;
|
||||
static gui_connect_result_fn g_connect_result_cb = nullptr;
|
||||
static gui_msg_received_fn g_msg_received_cb = nullptr;
|
||||
static gui_channel_updated_fn g_channel_updated_cb = nullptr;
|
||||
static gui_members_changed_fn g_members_changed_cb = nullptr;
|
||||
static gui_my_node_id_fn g_my_node_id_cb = nullptr;
|
||||
static gui_auto_connect_status_fn g_auto_connect_status_cb = nullptr;
|
||||
static gui_channel_peers_online_fn g_channel_peers_online_cb = nullptr;
|
||||
@@ -41,6 +40,10 @@ static gui_nodeinfo_update_fn g_nodeinfo_update_cb = nullptr;
|
||||
static gui_invite_received_fn g_invite_received_cb = nullptr;
|
||||
static gui_conn_list_fn g_conn_list_cb = nullptr;
|
||||
static gui_conn_metrics_fn g_conn_metrics_cb = nullptr;
|
||||
static gui_member_detail_fn g_member_detail_cb = nullptr;
|
||||
static gui_member_list_fn g_member_list_cb = nullptr;
|
||||
static gui_member_updated_fn g_member_updated_cb = nullptr;
|
||||
static gui_member_removed_fn g_member_removed_cb = nullptr;
|
||||
static struct UASYNC* g_ua = nullptr;
|
||||
|
||||
/* ── GuiBridgeReceiver implementation ── */
|
||||
@@ -98,15 +101,6 @@ void GuiBridgeReceiver::processPost(int eventType, QByteArray data) {
|
||||
DEBUG_WARN(DEBUG_CATEGORY_DEBUG, "gui_bridge: CHANNEL_UPDATED data too short %d", dlen);
|
||||
}
|
||||
break;
|
||||
case GUI_EVT_MEMBERS_CHANGED:
|
||||
if (dlen >= 2) {
|
||||
uint8_t chLen = d[0];
|
||||
if (dlen >= 1 + chLen) {
|
||||
QString chId = QString::fromUtf8((const char*)d + 1, chLen);
|
||||
if (g_members_changed_cb) g_members_changed_cb((const char*)d + 1, chLen);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case GUI_EVT_MY_NODE_ID:
|
||||
if (dlen >= 8) {
|
||||
uint64_t nid; memcpy(&nid, d, 8);
|
||||
@@ -188,6 +182,18 @@ void GuiBridgeReceiver::processPost(int eventType, QByteArray data) {
|
||||
case GUI_EVT_CONN_METRICS:
|
||||
if (g_conn_metrics_cb) g_conn_metrics_cb(d, dlen);
|
||||
break;
|
||||
case GUI_EVT_MEMBER_DETAIL:
|
||||
if (g_member_detail_cb) g_member_detail_cb(d, dlen);
|
||||
break;
|
||||
case GUI_EVT_MEMBER_LIST:
|
||||
if (g_member_list_cb) g_member_list_cb(d, dlen);
|
||||
break;
|
||||
case GUI_EVT_MEMBER_UPDATED:
|
||||
if (g_member_updated_cb) g_member_updated_cb(d, dlen);
|
||||
break;
|
||||
case GUI_EVT_MEMBER_REMOVED:
|
||||
if (g_member_removed_cb) g_member_removed_cb(d, dlen);
|
||||
break;
|
||||
default:
|
||||
DEBUG_WARN(DEBUG_CATEGORY_DEBUG, "gui_bridge: unknown event type %d", eventType);
|
||||
break;
|
||||
@@ -245,10 +251,6 @@ void gui_bridge_set_channel_updated_cb(gui_channel_updated_fn cb) {
|
||||
g_channel_updated_cb = cb;
|
||||
}
|
||||
|
||||
void gui_bridge_set_members_changed_cb(gui_members_changed_fn cb) {
|
||||
g_members_changed_cb = cb;
|
||||
}
|
||||
|
||||
void gui_bridge_set_my_node_id_cb(gui_my_node_id_fn cb) {
|
||||
g_my_node_id_cb = cb;
|
||||
}
|
||||
@@ -293,6 +295,22 @@ void gui_bridge_set_conn_metrics_cb(gui_conn_metrics_fn cb) {
|
||||
g_conn_metrics_cb = cb;
|
||||
}
|
||||
|
||||
void gui_bridge_set_member_detail_cb(gui_member_detail_fn cb) {
|
||||
g_member_detail_cb = cb;
|
||||
}
|
||||
|
||||
void gui_bridge_set_member_list_cb(gui_member_list_fn cb) {
|
||||
g_member_list_cb = cb;
|
||||
}
|
||||
|
||||
void gui_bridge_set_member_updated_cb(gui_member_updated_fn cb) {
|
||||
g_member_updated_cb = cb;
|
||||
}
|
||||
|
||||
void gui_bridge_set_member_removed_cb(gui_member_removed_fn cb) {
|
||||
g_member_removed_cb = cb;
|
||||
}
|
||||
|
||||
} /* extern "C" */
|
||||
|
||||
/* ── uTun nodeinfo callback (called from uasync thread) ── */
|
||||
|
||||
Reference in new issue
Block a user