@@ -42,6 +42,16 @@ static void clear_descriptor(data_stream_descriptor_t *desc)
4242 memset (desc , 0 , sizeof (data_stream_descriptor_t ));
4343}
4444
45+ static void reset_stream_state (data_stream_descriptor_t * desc )
46+ {
47+ desc -> active = false;
48+ desc -> stream_id [0 ] = '\0' ;
49+ desc -> next_chunk_index = 0 ;
50+ desc -> bytes_processed = 0 ;
51+ desc -> total_length = 0 ;
52+ desc -> has_total_length = false;
53+ }
54+
4555static data_stream_descriptor_t * find_empty_slot (data_stream_manager_t * mgr )
4656{
4757 for (int i = 0 ; i < CONFIG_LK_MAX_DATA_STREAMS ; i ++ ) {
@@ -199,7 +209,7 @@ data_stream_manager_err_t data_stream_manager_handle_chunk(data_stream_manager_h
199209
200210 if (desc -> has_total_length && desc -> bytes_processed > desc -> total_length ) {
201211 ESP_LOGE (TAG , "Stream %s exceeded total_length" , chunk -> stream_id );
202- clear_descriptor (desc );
212+ reset_stream_state (desc );
203213 return DATA_STREAM_MANAGER_ERR_NONE ;
204214 }
205215
@@ -239,6 +249,6 @@ data_stream_manager_err_t data_stream_manager_handle_trailer(data_stream_manager
239249 desc -> handler .on_close (& trailer_info , desc -> handler .ctx );
240250 }
241251
242- clear_descriptor (desc );
252+ reset_stream_state (desc );
243253 return DATA_STREAM_MANAGER_ERR_NONE ;
244254}
0 commit comments