Browse Source

[SCTP]: Do not increase rwnd when reading partial notification.

When a user reads a partial notification message, do not
update rwnd since notifications must not be counted towards
receive window.

Tested-by: Oliver Roll <mail@oliroll.de>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Vlad Yasevich 17 years ago
parent
commit
0eca8fee0c
1 changed files with 2 additions and 1 deletions
  1. 2 1
      net/sctp/socket.c

+ 2 - 1
net/sctp/socket.c

@@ -1911,7 +1911,8 @@ SCTP_STATIC int sctp_recvmsg(struct kiocb *iocb, struct sock *sk,
 		 * rwnd by that amount. If all the data in the skb is read,
 		 * rwnd by that amount. If all the data in the skb is read,
 		 * rwnd is updated when the event is freed.
 		 * rwnd is updated when the event is freed.
 		 */
 		 */
-		sctp_assoc_rwnd_increase(event->asoc, copied);
+		if (!sctp_ulpevent_is_notification(event))
+			sctp_assoc_rwnd_increase(event->asoc, copied);
 		goto out;
 		goto out;
 	} else if ((event->msg_flags & MSG_NOTIFICATION) ||
 	} else if ((event->msg_flags & MSG_NOTIFICATION) ||
 		   (event->msg_flags & MSG_EOR))
 		   (event->msg_flags & MSG_EOR))