Skip to content

Commit ee15c0b

Browse files
committed
dekaf: Gracefully handle invalid connection attempts without shutting down the whole server
1 parent 8c314dd commit ee15c0b

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

crates/dekaf/src/main.rs

+11-4
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,8 @@ async fn main() -> anyhow::Result<()> {
161161
tls_cfg.certificate_file.clone().unwrap(),
162162
tls_cfg.certificate_key_file.clone().unwrap(),
163163
)
164-
.await?;
164+
.await
165+
.context("failed to open or read certificate or certificate key file")?;
165166

166167
let schema_server_task = axum_server::bind_rustls(schema_addr, axum_rustls_config.clone())
167168
.serve(schema_router.into_make_service());
@@ -195,8 +196,12 @@ async fn main() -> anyhow::Result<()> {
195196
let acceptor = acceptor.clone();
196197
tokio::select! {
197198
accept = kafka_listener.accept() => {
198-
let (socket, addr) = accept?;
199-
let socket = acceptor.accept(socket).await?;
199+
let Ok((socket, addr)) = accept else {
200+
continue
201+
};
202+
let Ok(socket) = acceptor.accept(socket).await else {
203+
continue
204+
};
200205

201206
tokio::spawn(serve(Session::new(app.clone(), cli.encryption_secret.to_owned()), socket, addr, stop.clone()));
202207
}
@@ -214,7 +219,9 @@ async fn main() -> anyhow::Result<()> {
214219
loop {
215220
tokio::select! {
216221
accept = kafka_listener.accept() => {
217-
let (socket, addr) = accept?;
222+
let Ok((socket, addr)) = accept else {
223+
continue
224+
};
218225
socket.set_nodelay(true)?;
219226

220227
tokio::spawn(serve(Session::new(app.clone(), cli.encryption_secret.to_owned()), socket, addr, stop.clone()));

0 commit comments

Comments
 (0)