@@ -166,7 +166,7 @@ async fn run_display_manager(args: Args, config: Config) -> Result<()> { |
| 166 | 166 | |
| 167 | 167 | // Handle greeter authentication |
| 168 | 168 | let session_result = tokio::select! { |
| 169 | | - result = handle_greeter_session(&server, &x_display) => result, |
| 169 | + result = handle_greeter_session(&server, &x_display, &config.general.default_session) => result, |
| 170 | 170 | _ = sigterm.recv() => { |
| 171 | 171 | tracing::info!("Received SIGTERM during greeter"); |
| 172 | 172 | break; |
@@ -328,6 +328,7 @@ impl std::fmt::Debug for SessionStartInfo { |
| 328 | 328 | async fn handle_greeter_session( |
| 329 | 329 | server: &ipc::Server, |
| 330 | 330 | _display: &str, |
| 331 | + default_session: &str, |
| 331 | 332 | ) -> Result<Option<SessionStartInfo>> { |
| 332 | 333 | let mut conn = server.accept().await?; |
| 333 | 334 | let mut auth = AuthSession::new(); |
@@ -338,7 +339,7 @@ async fn handle_greeter_session( |
| 338 | 339 | None => return Ok(None), // Greeter disconnected |
| 339 | 340 | }; |
| 340 | 341 | |
| 341 | | - let (response, session_info) = handle_greeter_request(request, &mut auth).await; |
| 342 | + let (response, session_info) = handle_greeter_request(request, &mut auth, default_session).await; |
| 342 | 343 | |
| 343 | 344 | tracing::debug!(?response, has_session_info = session_info.is_some(), "Sending response to greeter"); |
| 344 | 345 | conn.send(&response).await?; |
@@ -359,6 +360,7 @@ async fn handle_greeter_session( |
| 359 | 360 | async fn handle_greeter_request( |
| 360 | 361 | request: Request, |
| 361 | 362 | auth: &mut AuthSession, |
| 363 | + default_session: &str, |
| 362 | 364 | ) -> (Response, Option<SessionStartInfo>) { |
| 363 | 365 | use gardmd::auth::AuthResponse; |
| 364 | 366 | |
@@ -447,7 +449,10 @@ async fn handle_greeter_request( |
| 447 | 449 | |
| 448 | 450 | Request::ListSessions => { |
| 449 | 451 | let sessions = gardmd::list_sessions(); |
| 450 | | - (Response::Sessions { sessions }, None) |
| 452 | + (Response::Sessions { |
| 453 | + sessions, |
| 454 | + default_session: Some(default_session.to_string()), |
| 455 | + }, None) |
| 451 | 456 | } |
| 452 | 457 | |
| 453 | 458 | Request::ListUsers => { |
@@ -458,13 +463,13 @@ async fn handle_greeter_request( |
| 458 | 463 | } |
| 459 | 464 | |
| 460 | 465 | /// Handle a test mode client (same as before, for backwards compatibility) |
| 461 | | -async fn handle_test_client(mut conn: ipc::ClientConnection, _config: Config) { |
| 466 | +async fn handle_test_client(mut conn: ipc::ClientConnection, config: Config) { |
| 462 | 467 | let mut auth = AuthSession::new(); |
| 463 | 468 | |
| 464 | 469 | loop { |
| 465 | 470 | match conn.recv().await { |
| 466 | 471 | Ok(Some(request)) => { |
| 467 | | - let (response, _) = handle_greeter_request(request, &mut auth).await; |
| 472 | + let (response, _) = handle_greeter_request(request, &mut auth, &config.general.default_session).await; |
| 468 | 473 | if let Err(e) = conn.send(&response).await { |
| 469 | 474 | tracing::error!("Failed to send response: {}", e); |
| 470 | 475 | break; |