diff options
author | Vladislav Yasevich <vladislav.yasevich@hp.com> | 2006-05-19 17:32:06 -0400 |
---|---|---|
committer | Sridhar Samudrala <sri@us.ibm.com> | 2006-05-19 17:32:06 -0400 |
commit | b89498a1c2941c00889dd025f52dcb653a5083bc (patch) | |
tree | a677c2ec38b9acf7e648bf3c89d22540cc563944 /net/sctp/socket.c | |
parent | a601266e4f3c479790f373c2e3122a766d123652 (diff) |
[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.c | 12 |
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) | |||
1242 | if (sctp_state(asoc, CLOSED)) { | 1242 | if (sctp_state(asoc, CLOSED)) { |
1243 | sctp_unhash_established(asoc); | 1243 | sctp_unhash_established(asoc); |
1244 | sctp_association_free(asoc); | 1244 | sctp_association_free(asoc); |
1245 | continue; | ||
1246 | } | ||
1247 | } | ||
1245 | 1248 | ||
1246 | } else if (sock_flag(sk, SOCK_LINGER) && | 1249 | if (sock_flag(sk, SOCK_LINGER) && !sk->sk_lingertime) |
1247 | !sk->sk_lingertime) | 1250 | sctp_primitive_ABORT(asoc, NULL); |
1248 | sctp_primitive_ABORT(asoc, NULL); | 1251 | else |
1249 | else | ||
1250 | sctp_primitive_SHUTDOWN(asoc, NULL); | ||
1251 | } else | ||
1252 | sctp_primitive_SHUTDOWN(asoc, NULL); | 1252 | sctp_primitive_SHUTDOWN(asoc, NULL); |
1253 | } | 1253 | } |
1254 | 1254 | ||