Remove a function, which is not used anymore.

This commit is contained in:
Michael Tuexen 2016-04-23 09:15:58 +00:00
parent 62bc9ed546
commit 7e372b1a40
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=298508
2 changed files with 0 additions and 163 deletions

View File

@ -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
*/

View File

@ -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);