From 984a90afa75e3237535946be4775aedff8c80623 Mon Sep 17 00:00:00 2001 From: Greg Fodor Date: Tue, 30 Jan 2024 10:08:33 -0800 Subject: [PATCH] Add recv stream id so stream can be tracked during callbacks --- lib/wtransport/stream.ex | 1 + native/wtransport_native/src/lib.rs | 3 +++ 2 files changed, 4 insertions(+) diff --git a/lib/wtransport/stream.ex b/lib/wtransport/stream.ex index dcb4d14..b69f017 100644 --- a/lib/wtransport/stream.ex +++ b/lib/wtransport/stream.ex @@ -1,5 +1,6 @@ defmodule Wtransport.Stream do defstruct [ + :recv_stream_id, :stream_type, :connection, :request_tx, diff --git a/native/wtransport_native/src/lib.rs b/native/wtransport_native/src/lib.rs index 2622019..40f1de8 100644 --- a/native/wtransport_native/src/lib.rs +++ b/native/wtransport_native/src/lib.rs @@ -70,6 +70,7 @@ struct NifConnectionRequest { #[derive(NifStruct)] #[module = "Wtransport.StreamRequest"] struct NifStreamRequest { + recv_stream_id: u64, stream_type: Atom, request_tx: ResourceArc, write_all_tx: Option>, @@ -446,11 +447,13 @@ async fn handle_stream( atoms::stream_request(), match send_stream { Some(_) => NifStreamRequest { + recv_stream_id: recv_stream.id().into_u64(), stream_type: atoms::bi(), request_tx: ResourceArc::new(XRequestSender(request_tx)), write_all_tx: Some(ResourceArc::new(XDataSender(write_all_tx))), }, None => NifStreamRequest { + recv_stream_id: recv_stream.id().into_u64(), stream_type: atoms::uni(), request_tx: ResourceArc::new(XRequestSender(request_tx)), write_all_tx: None,