summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authortuexen <tuexen@FreeBSD.org>2010-04-25 15:04:57 +0000
committertuexen <tuexen@FreeBSD.org>2010-04-25 15:04:57 +0000
commit92b6c67524374ea9773be360f73afa192011ea8c (patch)
tree4bf082f36f9c5679f568a7928190a9c6caf716a5 /sys
parent53d6a79d5b1b206b12ea3bac1d619392f1d0a326 (diff)
downloadFreeBSD-src-92b6c67524374ea9773be360f73afa192011ea8c.zip
FreeBSD-src-92b6c67524374ea9773be360f73afa192011ea8c.tar.gz
Undo my lastest fix since that wasn't one at all.
MFC after: 3 days.
Diffstat (limited to 'sys')
-rw-r--r--sys/netinet/sctp_indata.c38
1 files changed, 19 insertions, 19 deletions
diff --git a/sys/netinet/sctp_indata.c b/sys/netinet/sctp_indata.c
index 4b00fc3..2ed6c16 100644
--- a/sys/netinet/sctp_indata.c
+++ b/sys/netinet/sctp_indata.c
@@ -3514,25 +3514,6 @@ sctp_strike_gap_ack_chunks(struct sctp_tcb *stcb, struct sctp_association *asoc,
if (tp1->sent == SCTP_DATAGRAM_RESEND) {
struct sctp_nets *alt;
- if ((stcb->asoc.peer_supports_prsctp) &&
- (PR_SCTP_RTX_ENABLED(tp1->flags))) {
- /*
- * Has it been retransmitted tv_sec times? -
- * we store the retran count there.
- */
- if (tp1->snd_count > tp1->rec.data.timetodrop.tv_sec) {
- /* Yes, so drop it */
- if (tp1->data != NULL) {
- (void)sctp_release_pr_sctp_chunk(stcb, tp1,
- (SCTP_RESPONSE_TO_USER_REQ | SCTP_NOTIFY_DATAGRAM_SENT),
- SCTP_SO_NOT_LOCKED);
- }
- /* Make sure to flag we had a FR */
- tp1->whoTo->net_ack++;
- tp1 = TAILQ_NEXT(tp1, sctp_next);
- continue;
- }
- }
/* fix counts and things */
if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_FLIGHT_LOGGING_ENABLE) {
sctp_misc_ints(SCTP_FLIGHT_LOG_DOWN_RSND,
@@ -3555,6 +3536,25 @@ sctp_strike_gap_ack_chunks(struct sctp_tcb *stcb, struct sctp_association *asoc,
/* remove from the total flight */
sctp_total_flight_decrease(stcb, tp1);
+ if ((stcb->asoc.peer_supports_prsctp) &&
+ (PR_SCTP_RTX_ENABLED(tp1->flags))) {
+ /*
+ * Has it been retransmitted tv_sec times? -
+ * we store the retran count there.
+ */
+ if (tp1->snd_count > tp1->rec.data.timetodrop.tv_sec) {
+ /* Yes, so drop it */
+ if (tp1->data != NULL) {
+ (void)sctp_release_pr_sctp_chunk(stcb, tp1,
+ (SCTP_RESPONSE_TO_USER_REQ | SCTP_NOTIFY_DATAGRAM_SENT),
+ SCTP_SO_NOT_LOCKED);
+ }
+ /* Make sure to flag we had a FR */
+ tp1->whoTo->net_ack++;
+ tp1 = TAILQ_NEXT(tp1, sctp_next);
+ continue;
+ }
+ }
/* printf("OK, we are now ready to FR this guy\n"); */
if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_FR_LOGGING_ENABLE) {
sctp_log_fr(tp1->rec.data.TSN_seq, tp1->snd_count,
OpenPOWER on IntegriCloud