diff --git a/tools/chatgui/src/mainwindow.cpp b/tools/chatgui/src/mainwindow.cpp index fb50cecd..fb0384e9 100644 --- a/tools/chatgui/src/mainwindow.cpp +++ b/tools/chatgui/src/mainwindow.cpp @@ -479,7 +479,7 @@ void MainWindow::onCreateGroupRequested() { struct chat_channel_create* req = (struct chat_channel_create*)u_malloc(sizeof(*req)); memset(req, 0, sizeof(*req)); snprintf(req->channel_id, sizeof(req->channel_id), "%s", qPrintable(channelId)); - snprintf(req->name, sizeof(req->name), "%s", qPrintable(name)); + snprintf(req->name, sizeof(req->name), "%s", name.toUtf8().constData()); req->owner_node_id = ownerNodeId; memcpy(req->x25519_pubkey, x25519_pub, 32); memcpy(req->x25519_privkey, x25519_priv, 32); diff --git a/tools/chatgui/transport/chat_sync.c b/tools/chatgui/transport/chat_sync.c index 04a661c1..34de5e52 100644 --- a/tools/chatgui/transport/chat_sync.c +++ b/tools/chatgui/transport/chat_sync.c @@ -650,6 +650,18 @@ static void cm_invite_trampoline(void* arg) { conn_mgr_connect_from_invite(g->conn_mgr, ni, channel_id, 0, NULL, NULL); } + if (g_cs && g_cs->pending_invite_ch_id != 0 && !g_cs->info_req_timer) { + struct ETCP_CONN* conn = NULL; + { + struct ll_entry* e = queue_find_data_by_index(inst->connections, (const uint8_t*)&node_id); + if (e) { struct conn_queue_entry* ce = (struct conn_queue_entry*)e->data; if (ce->conn->links_up) conn = ce->conn; } + } + if (conn) { + DEBUG_INFO(DEBUG_CATEGORY_DB_SYNC, "%s: invite conn already UP node=0x%016llx, triggering cs_on_conn_up", CS_ID, (unsigned long long)node_id); + cs_on_conn_up(conn, NULL); + } + } + /* free caller-owned ni */ while (ni->v4_addrs) { struct TOPO_ADDR4* n = ni->v4_addrs->next; u_free(ni->v4_addrs); ni->v4_addrs = n; } u_free(ni);