summaryrefslogtreecommitdiffstats
path: root/sys/netinet/sctputil.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netinet/sctputil.c')
-rw-r--r--sys/netinet/sctputil.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/netinet/sctputil.c b/sys/netinet/sctputil.c
index b09fe7e..543967a 100644
--- a/sys/netinet/sctputil.c
+++ b/sys/netinet/sctputil.c
@@ -2500,7 +2500,6 @@ sctp_mtu_size_reset(struct sctp_inpcb *inp,
}
eff_mtu = mtu - ovh;
TAILQ_FOREACH(chk, &asoc->send_queue, sctp_next) {
-
if (chk->send_size > eff_mtu) {
chk->flags |= CHUNK_FLAGS_FRAGMENT_OK;
}
@@ -3763,9 +3762,10 @@ sctp_report_all_outbound(struct sctp_tcb *stcb, int holds_lock, int so_locked
sp->data = NULL;
}
}
- if (sp->net)
+ if (sp->net) {
sctp_free_remote_addr(sp->net);
- sp->net = NULL;
+ sp->net = NULL;
+ }
/* Free the chunk */
sctp_free_a_strmoq(stcb, sp);
/* sa_ignore FREED_MEMORY */
@@ -4818,7 +4818,10 @@ next_on_sent:
chk->rec.data.payloadtype = sp->ppid;
chk->rec.data.context = sp->context;
chk->flags = sp->act_flags;
- chk->whoTo = sp->net;
+ if (sp->net)
+ chk->whoTo = sp->net;
+ else
+ chk->whoTo = stcb->asoc.primary_destination;
atomic_add_int(&chk->whoTo->ref_count, 1);
chk->rec.data.TSN_seq = atomic_fetchadd_int(&stcb->asoc.sending_seq, 1);
stcb->asoc.pr_sctp_cnt++;
OpenPOWER on IntegriCloud