-
-
Notifications
You must be signed in to change notification settings - Fork 378
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SCTP] Stream::read: partial read OR returning the expected size of the buffer #273
Comments
From the last issue, the agreement seems to be that we should mimic the TCP implementation. My only concern is whether it would be tricky to use an API like this for the data channels |
If anyone is interested in looking at this the first step should be to verify that the change in SCTP would not make its use impossible in the upstream crates. If it turns out to be okay the next step is to implement this |
I'm looking at this right now. |
Well, with the merged monorepo I should think that we are okay as long as the code still compiles and the tests all pass 🤔 |
See #304 (comment). Requires more thinking and design. |
The problem I'm facing right now is where I'm passing a buffer to Stream::read, which is not big enough (Error::ErrShortBuffer). Note there's no indication of the expected size => you're forced to guess the number.
Also note it's different from TcpStream https://doc.rust-lang.org/std/io/trait.Read.html#tymethod.read, which partially reads the data and does not put any restrictions on the size of the buffer (i.e. you, the caller, is in control of how fast you're consuming data).
I can see that the code in Pion is identical to one here, but I nonetheless think we need to change something.
Either
(1) is more "rust" therefore preferred.
There's also talk about auto-tuning buffer size, which is slightly related pion/sctp#218 (comment)
https://github.com/webrtc-rs/sctp/blob/ed21dae1aa7dc5f37bd40fb344fa19746b932570/src/queue/reassembly_queue.rs#L282
also, why are we subtracting n_bytes before we've actually successfully written them to client's buffer?
Migrated from webrtc-rs/sctp#28
The text was updated successfully, but these errors were encountered: