| 3448 | } |
| 3449 | |
| 3450 | static void |
| 3451 | sctp_clean_up_stream_reset(struct sctp_tcb *stcb) |
| 3452 | { |
| 3453 | struct sctp_association *asoc; |
| 3454 | struct sctp_tmit_chunk *chk; |
| 3455 | |
| 3456 | asoc = &stcb->asoc; |
| 3457 | chk = asoc->str_reset; |
| 3458 | if (chk == NULL) { |
| 3459 | return; |
| 3460 | } |
| 3461 | asoc->str_reset = NULL; |
| 3462 | sctp_timer_stop(SCTP_TIMER_TYPE_STRRESET, stcb->sctp_ep, stcb, |
| 3463 | NULL, SCTP_FROM_SCTP_INPUT + SCTP_LOC_28); |
| 3464 | TAILQ_REMOVE(&asoc->control_send_queue, chk, sctp_next); |
| 3465 | asoc->ctrl_queue_cnt--; |
| 3466 | if (chk->data) { |
| 3467 | sctp_m_freem(chk->data); |
| 3468 | chk->data = NULL; |
| 3469 | } |
| 3470 | sctp_free_a_chunk(stcb, chk, SCTP_SO_NOT_LOCKED); |
| 3471 | } |
| 3472 | |
| 3473 | static int |
| 3474 | sctp_handle_stream_reset_response(struct sctp_tcb *stcb, |
no test coverage detected