[Fix] Add chats, propper rho selection

This commit is contained in:
Alex Emmet 2026-03-27 00:26:37 +01:00
commit 05006980f7
5 changed files with 36 additions and 16 deletions

View file

@ -412,7 +412,7 @@ impl ClientConnection {
&& cv
.get_data(DataTypes::chat_partner_id)
.as_number()
.is_some()
.is_none()
{
let chat_partner_name = cv
.get_data(DataTypes::chat_partner_name)

View file

@ -270,6 +270,9 @@ impl GeneralConnection {
let user_id = id as i64;
let client = ClientConnection::from_general(self.clone(), id).await;
client.clone().start();
let mut rho = rho_manager::get_rho_con_for_user(user_id).await;
if rho.is_none() {
@ -295,12 +298,10 @@ impl GeneralConnection {
*self.rho_connection.write().await = rho.clone();
let client = ClientConnection::from_general(self.clone(), id).await;
if let Some(rho_conn) = rho {
// Make sure user is bound before the client starts forwarding
rho_conn.bind_user_id(user_id).await;
rho_conn.add_client_connection(client.clone()).await;
rho_conn.add_client_connection(client).await;
} else {
log_err!(
user_id,
@ -309,8 +310,6 @@ impl GeneralConnection {
id
);
}
client.start();
}
ConnectionKind::Iota => {
let notify = CommunicationValue::new(CommunicationType::iota_connected)
@ -323,6 +322,10 @@ impl GeneralConnection {
iota.set_rho_connection(rho.clone()).await;
rho_manager::add_rho(rho).await;
iota.clone().start();
let get_iota_msg = CommunicationValue::new(CommunicationType::get_iota_data)
.add_data(DataTypes::iota_id, DataValue::Number(id as i64));
@ -340,10 +343,6 @@ impl GeneralConnection {
iota.set_user_ids(user_ids).await;
}
}
rho_manager::add_rho(rho).await;
iota.start();
}
ConnectionKind::AnonymousClient => {
let client = AnonymousClientConnection::from_general(self.clone(), id).await;

View file

@ -94,7 +94,7 @@ impl IotaConnection {
if let Some(rho_conn) = self.get_rho_connection().await {
let user_ids_i64: Vec<i64> = user_ids.into_iter().map(|u| u as i64).collect();
rho_conn.set_user_ids(user_ids_i64);
rho_conn.set_user_ids(user_ids_i64).await;
}
}