use ldap3_proto::LdapMsg; use crate::db::{Database, DatabaseInterface}; use crate::ldap::{LdapStream, LdapStreamError}; #[tracing::instrument(name = "ldap", skip(s, db), fields(session = %s.session))] pub async fn ldap_handler(mut s: LdapStream, db: Database) { tracing::info! { remote_addr = ?s.remote_addr, "New client connection" }; loop { match s.next().await { Ok(msg) => { if let Err(e) = ldap_handler_inner(msg).await { tracing::debug!( reason = ?e, "Failed to respond" ); return; } } Err(e) => { tracing::debug!( reason = ?e, "Closing connection" ); return; } } } } pub async fn ldap_handler_inner(msg: LdapMsg) -> Result<(), LdapStreamError> { tracing::debug!(msg = ?msg, "Received LDAP message"); Ok(()) }