You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, I used spdylay to build some programs well before.But today I found a problem when I implementing the callback on_ctrl_not_send_callback.
Background:
In my client program, every stream is associated with a structure -- "request" -- which I implement by myself. The program will new a request structure when it want to send a request, and call the function spdylay_submit_request with the request structure as the argument stream_user_data. So I can free the request structure in callback on_stream_close_callback when the stream is closing.
Problem:
Today, I found a problem when I implementing the callback on_ctrl_not_send_callback.
When on_ctrl_not_send_callback is called, and the argument type is SPDYLAY_SYN_STREAM, it means a STREAM is being canceled. Then I try to free the request structure of this stream, and I found I can't do it, because the frame->syn_stream->stream_id is zero and I can't find the structure from the stream by calling spdylay_session_get_stream_user_data().
This is the problem what I found. And thanks for reply.
The text was updated successfully, but these errors were encountered:
This is indeed an issue. The thing is we only create stream after we decided to send SYN_STREAM, so in this case, stream is not created, and no stream ID is assigned.
We fixed this in nghttp2 API, but not ported to spdylay, since it would break API compatibility.
I think I can fix this problem, by allocating stream ID when spdylay_submit_request or spdylay_submit_syn_stream are called. And create stream as needed when calling on_ctrl_not_send_callback.
Hi, I used spdylay to build some programs well before.But today I found a problem when I implementing the callback on_ctrl_not_send_callback.
Background:
In my client program, every stream is associated with a structure -- "request" -- which I implement by myself. The program will new a request structure when it want to send a request, and call the function spdylay_submit_request with the request structure as the argument stream_user_data. So I can free the request structure in callback on_stream_close_callback when the stream is closing.
Problem:
Today, I found a problem when I implementing the callback on_ctrl_not_send_callback.
When on_ctrl_not_send_callback is called, and the argument type is SPDYLAY_SYN_STREAM, it means a STREAM is being canceled. Then I try to free the request structure of this stream, and I found I can't do it, because the frame->syn_stream->stream_id is zero and I can't find the structure from the stream by calling spdylay_session_get_stream_user_data().
This is the problem what I found. And thanks for reply.
The text was updated successfully, but these errors were encountered: