diff --git a/backend/sqlx-data.json b/backend/sqlx-data.json index da1517f32..b129ec354 100644 --- a/backend/sqlx-data.json +++ b/backend/sqlx-data.json @@ -47,7 +47,7 @@ { "name": "id: u32", "ordinal": 0, - "type_info": "Null" + "type_info": "Int64" } ], "parameters": { @@ -68,6 +68,16 @@ "nullable": [] } }, + "2932aa02735b6422fca4ba889abfb3de8598178d4690076dc278898753d9df62": { + "query": "UPDATE session SET logged_out = CURRENT_TIMESTAMP WHERE id = ?", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + } + }, "3502e58f2ab48fb4566d21c920c096f81acfa3ff0d02f970626a4dcd67bac71d": { "query": "SELECT tor_key FROM account", "describe": { diff --git a/backend/src/db/mod.rs b/backend/src/db/mod.rs index 219fa2520..410f11c11 100644 --- a/backend/src/db/mod.rs +++ b/backend/src/db/mod.rs @@ -148,6 +148,10 @@ async fn deal_with_messages( } return Ok(()) } + None => { + tracing::info!("Closing WebSocket: Stream Finished"); + return Ok(()) + } _ => (), } } diff --git a/backend/src/middleware/auth.rs b/backend/src/middleware/auth.rs index 4158f8e7f..772695a94 100644 --- a/backend/src/middleware/auth.rs +++ b/backend/src/middleware/auth.rs @@ -39,12 +39,16 @@ impl HasLoggedOutSessions { .by_ref() .map(|x| x.as_logout_session_id()) .collect::>(); - sqlx::query(&format!( - "UPDATE session SET logged_out = CURRENT_TIMESTAMP WHERE id IN ('{}')", - sessions.join("','") - )) - .execute(&mut ctx.secret_store.acquire().await?) - .await?; + let mut sqlx_conn = ctx.secret_store.acquire().await?; + for session in &sessions { + sqlx::query!( + "UPDATE session SET logged_out = CURRENT_TIMESTAMP WHERE id = ?", + session + ) + .execute(&mut sqlx_conn) + .await?; + } + drop(sqlx_conn); for session in sessions { for socket in ctx .open_authed_websockets