aboutsummaryrefslogtreecommitdiffstats
path: root/net/sctp/socket.c
diff options
context:
space:
mode:
authorVladislav Yasevich <vladislav.yasevich@hp.com>2006-05-19 14:32:06 -0700
committerSridhar Samudrala <sri@us.ibm.com>2006-05-19 14:32:06 -0700
commitb89498a1c2941c00889dd025f52dcb653a5083bc (patch)
treea677c2ec38b9acf7e648bf3c89d22540cc563944 /net/sctp/socket.c
parent[SCTP]: Validate the parameter length in HB-ACK chunk. (diff)
downloadlinux-dev-b89498a1c2941c00889dd025f52dcb653a5083bc.tar.xz
linux-dev-b89498a1c2941c00889dd025f52dcb653a5083bc.zip
[SCTP]: Allow linger to abort 1-N style sockets.
Enable SO_LINGER functionality for 1-N style sockets. The socket API draft will be clarfied to allow for this functionality. The linger settings will apply to all associations on a given socket. Signed-off-by: Vladislav Yasevich <vladislav.yasevich@hp.com> Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
Diffstat (limited to 'net/sctp/socket.c')
-rw-r--r--net/sctp/socket.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index b1a17758003a..174d4d35e951 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -1242,13 +1242,13 @@ SCTP_STATIC void sctp_close(struct sock *sk, long timeout)
if (sctp_state(asoc, CLOSED)) {
sctp_unhash_established(asoc);
sctp_association_free(asoc);
+ continue;
+ }
+ }
- } else if (sock_flag(sk, SOCK_LINGER) &&
- !sk->sk_lingertime)
- sctp_primitive_ABORT(asoc, NULL);
- else
- sctp_primitive_SHUTDOWN(asoc, NULL);
- } else
+ if (sock_flag(sk, SOCK_LINGER) && !sk->sk_lingertime)
+ sctp_primitive_ABORT(asoc, NULL);
+ else
sctp_primitive_SHUTDOWN(asoc, NULL);
}