|
@@ -1533,7 +1533,8 @@ static int sctp_cmd_interpreter(sctp_event_t event_type,
|
|
|
case SCTP_CMD_PROCESS_CTSN:
|
|
|
/* Dummy up a SACK for processing. */
|
|
|
sackh.cum_tsn_ack = cmd->obj.be32;
|
|
|
- sackh.a_rwnd = 0;
|
|
|
+ sackh.a_rwnd = asoc->peer.rwnd +
|
|
|
+ asoc->outqueue.outstanding_bytes;
|
|
|
sackh.num_gap_ack_blocks = 0;
|
|
|
sackh.num_dup_tsns = 0;
|
|
|
sctp_add_cmd_sf(commands, SCTP_CMD_PROCESS_SACK,
|
|
@@ -1632,9 +1633,9 @@ out:
|
|
|
*/
|
|
|
if (asoc && SCTP_EVENT_T_CHUNK == event_type && chunk) {
|
|
|
if (chunk->end_of_packet || chunk->singleton)
|
|
|
- sctp_outq_uncork(&asoc->outqueue);
|
|
|
+ error = sctp_outq_uncork(&asoc->outqueue);
|
|
|
} else if (local_cork)
|
|
|
- sctp_outq_uncork(&asoc->outqueue);
|
|
|
+ error = sctp_outq_uncork(&asoc->outqueue);
|
|
|
return error;
|
|
|
nomem:
|
|
|
error = -ENOMEM;
|