Fix soabort(). This should fix
https://code.google.com/p/sctp-refimpl/issues/detail?id=19
git-svn-id: http://sctp-refimpl.googlecode.com/svn/trunk/KERN/usrsctp/usrsctplib@9278 9df1edf5-d72c-5b5f-11c0-5f5209eb73f7
diff --git a/user_socket.c b/user_socket.c
index 6b39585..d97f5db 100755
--- a/user_socket.c
+++ b/user_socket.c
@@ -274,11 +274,9 @@
/* Taken from /src/sys/kern/uipc_socket.c */
-int
-soabort(so)
- struct socket *so;
+void
+soabort(struct socket *so)
{
- int error;
#if defined(INET6)
struct sctp_inpcb *inp;
#endif
@@ -286,24 +284,17 @@
#if defined(INET6)
inp = (struct sctp_inpcb *)so->so_pcb;
if (inp->sctp_flags & SCTP_PCB_FLAGS_BOUND_V6) {
- error = sctp6_abort(so);
+ sctp6_abort(so);
} else {
#if defined(INET)
- error = sctp_abort(so);
-#else
- error = EAFNOSUPPORT;
+ sctp_abort(so);
#endif
}
#elif defined(INET)
- error = sctp_abort(so);
-#else
- error = EAFNOSUPPORT;
+ sctp_abort(so);
#endif
- if (error) {
- sofree(so);
- return error;
- }
- return (0);
+ SOCK_LOCK(so);
+ sofree(so);
}