Remove a function, which is not used anymore.
This commit is contained in:
parent
3764d53f49
commit
3024748bc8
@ -4594,159 +4594,6 @@ sctp_add_to_readq(struct sctp_inpcb *inp,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
sctp_append_to_readq(struct sctp_inpcb *inp,
|
||||
struct sctp_tcb *stcb,
|
||||
struct sctp_queued_to_read *control,
|
||||
struct mbuf *m,
|
||||
int end,
|
||||
int ctls_cumack,
|
||||
struct sockbuf *sb)
|
||||
{
|
||||
/*
|
||||
* A partial delivery API event is underway. OR we are appending on
|
||||
* the reassembly queue.
|
||||
*
|
||||
* If PDAPI this means we need to add m to the end of the data.
|
||||
* Increase the length in the control AND increment the sb_cc.
|
||||
* Otherwise sb is NULL and all we need to do is put it at the end
|
||||
* of the mbuf chain.
|
||||
*/
|
||||
int len = 0;
|
||||
struct mbuf *mm, *tail = NULL, *prev = NULL;
|
||||
|
||||
if (inp) {
|
||||
SCTP_INP_READ_LOCK(inp);
|
||||
}
|
||||
if (control == NULL) {
|
||||
get_out:
|
||||
if (inp) {
|
||||
SCTP_INP_READ_UNLOCK(inp);
|
||||
}
|
||||
return (-1);
|
||||
}
|
||||
if (inp && (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_CANT_READ)) {
|
||||
SCTP_INP_READ_UNLOCK(inp);
|
||||
return (0);
|
||||
}
|
||||
if (control->end_added) {
|
||||
/* huh this one is complete? */
|
||||
goto get_out;
|
||||
}
|
||||
mm = m;
|
||||
if (mm == NULL) {
|
||||
goto get_out;
|
||||
}
|
||||
while (mm) {
|
||||
if (SCTP_BUF_LEN(mm) == 0) {
|
||||
/* Skip mbufs with NO lenght */
|
||||
if (prev == NULL) {
|
||||
/* First one */
|
||||
m = sctp_m_free(mm);
|
||||
mm = m;
|
||||
} else {
|
||||
SCTP_BUF_NEXT(prev) = sctp_m_free(mm);
|
||||
mm = SCTP_BUF_NEXT(prev);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
prev = mm;
|
||||
len += SCTP_BUF_LEN(mm);
|
||||
if (sb) {
|
||||
if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
|
||||
sctp_sblog(sb, control->do_not_ref_stcb ? NULL : stcb, SCTP_LOG_SBALLOC, SCTP_BUF_LEN(mm));
|
||||
}
|
||||
sctp_sballoc(stcb, sb, mm);
|
||||
if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) {
|
||||
sctp_sblog(sb, control->do_not_ref_stcb ? NULL : stcb, SCTP_LOG_SBRESULT, 0);
|
||||
}
|
||||
}
|
||||
mm = SCTP_BUF_NEXT(mm);
|
||||
}
|
||||
if (prev) {
|
||||
tail = prev;
|
||||
} else {
|
||||
/* Really there should always be a prev */
|
||||
if (m == NULL) {
|
||||
/* Huh nothing left? */
|
||||
#ifdef INVARIANTS
|
||||
panic("Nothing left to add?");
|
||||
#else
|
||||
goto get_out;
|
||||
#endif
|
||||
}
|
||||
tail = m;
|
||||
}
|
||||
if (control->tail_mbuf) {
|
||||
/* append */
|
||||
SCTP_BUF_NEXT(control->tail_mbuf) = m;
|
||||
control->tail_mbuf = tail;
|
||||
} else {
|
||||
/* nothing there */
|
||||
#ifdef INVARIANTS
|
||||
if (control->data != NULL) {
|
||||
panic("This should NOT happen");
|
||||
}
|
||||
#endif
|
||||
control->data = m;
|
||||
control->tail_mbuf = tail;
|
||||
}
|
||||
atomic_add_int(&control->length, len);
|
||||
if (end) {
|
||||
/* message is complete */
|
||||
if (stcb && (control == stcb->asoc.control_pdapi)) {
|
||||
stcb->asoc.control_pdapi = NULL;
|
||||
}
|
||||
control->held_length = 0;
|
||||
control->end_added = 1;
|
||||
}
|
||||
if (stcb == NULL) {
|
||||
control->do_not_ref_stcb = 1;
|
||||
}
|
||||
/*
|
||||
* When we are appending in partial delivery, the cum-ack is used
|
||||
* for the actual pd-api highest tsn on this mbuf. The true cum-ack
|
||||
* is populated in the outbound sinfo structure from the true cumack
|
||||
* if the association exists...
|
||||
*/
|
||||
control->sinfo_tsn = control->sinfo_cumtsn = ctls_cumack;
|
||||
if (inp) {
|
||||
SCTP_INP_READ_UNLOCK(inp);
|
||||
}
|
||||
if (inp && inp->sctp_socket) {
|
||||
if (sctp_is_feature_on(inp, SCTP_PCB_FLAGS_ZERO_COPY_ACTIVE)) {
|
||||
SCTP_ZERO_COPY_EVENT(inp, inp->sctp_socket);
|
||||
} else {
|
||||
#if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING)
|
||||
struct socket *so;
|
||||
|
||||
so = SCTP_INP_SO(inp);
|
||||
if (stcb) {
|
||||
atomic_add_int(&stcb->asoc.refcnt, 1);
|
||||
SCTP_TCB_UNLOCK(stcb);
|
||||
}
|
||||
SCTP_SOCKET_LOCK(so, 1);
|
||||
if (stcb) {
|
||||
SCTP_TCB_LOCK(stcb);
|
||||
atomic_subtract_int(&stcb->asoc.refcnt, 1);
|
||||
}
|
||||
if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) {
|
||||
SCTP_SOCKET_UNLOCK(so, 1);
|
||||
return (0);
|
||||
}
|
||||
#endif
|
||||
sctp_sorwakeup(inp, inp->sctp_socket);
|
||||
#if defined(__APPLE__) || defined(SCTP_SO_LOCK_TESTING)
|
||||
SCTP_SOCKET_UNLOCK(so, 1);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*************HOLD THIS COMMENT FOR PATCH FILE OF
|
||||
*************ALTERNATE ROUTING CODE
|
||||
*/
|
||||
|
@ -128,16 +128,6 @@ sctp_add_to_readq(struct sctp_inpcb *inp,
|
||||
#endif
|
||||
);
|
||||
|
||||
int
|
||||
sctp_append_to_readq(struct sctp_inpcb *inp,
|
||||
struct sctp_tcb *stcb,
|
||||
struct sctp_queued_to_read *control,
|
||||
struct mbuf *m,
|
||||
int end,
|
||||
int new_cumack,
|
||||
struct sockbuf *sb);
|
||||
|
||||
|
||||
void sctp_iterator_worker(void);
|
||||
|
||||
uint32_t sctp_get_prev_mtu(uint32_t);
|
||||
|
Loading…
Reference in New Issue
Block a user