aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/raw_ip.c6
-rw-r--r--sys/netinet/sctp_usrreq.c6
-rw-r--r--sys/netinet/tcp_usrreq.c6
-rw-r--r--sys/netinet/udp_usrreq.c6
4 files changed, 13 insertions, 11 deletions
diff --git a/sys/netinet/raw_ip.c b/sys/netinet/raw_ip.c
index a6bef1c7e275..004aaea01bfa 100644
--- a/sys/netinet/raw_ip.c
+++ b/sys/netinet/raw_ip.c
@@ -994,10 +994,12 @@ rip_shutdown(struct socket *so, enum shutdown_how how)
switch (how) {
case SHUT_RD:
- sorflush(so);
+ socantrcvmore(so);
+ sbrelease(so, SO_RCV);
break;
case SHUT_RDWR:
- sorflush(so);
+ socantrcvmore(so);
+ sbrelease(so, SO_RCV);
/* FALLTHROUGH */
case SHUT_WR:
socantsendmore(so);
diff --git a/sys/netinet/sctp_usrreq.c b/sys/netinet/sctp_usrreq.c
index ec9f211b519b..51c056e052a5 100644
--- a/sys/netinet/sctp_usrreq.c
+++ b/sys/netinet/sctp_usrreq.c
@@ -868,11 +868,7 @@ sctp_shutdown(struct socket *so, enum shutdown_how how)
SCTP_TCB_UNLOCK(stcb);
}
SCTP_INP_WUNLOCK(inp);
- /*
- * XXXGL: does SCTP need sorflush()? This is what old
- * soshutdown() used to do for all kinds of sockets.
- */
- sorflush(so);
+ socantrcvmore(so);
if (how == SHUT_RD)
break;
/* FALLTHROUGH */
diff --git a/sys/netinet/tcp_usrreq.c b/sys/netinet/tcp_usrreq.c
index ccd6a6149dae..7c8e3d7e72db 100644
--- a/sys/netinet/tcp_usrreq.c
+++ b/sys/netinet/tcp_usrreq.c
@@ -824,10 +824,12 @@ tcp_usr_shutdown(struct socket *so, enum shutdown_how how)
switch (how) {
case SHUT_RD:
- sorflush(so);
+ socantrcvmore(so);
+ sbrelease(so, SO_RCV);
break;
case SHUT_RDWR:
- sorflush(so);
+ socantrcvmore(so);
+ sbrelease(so, SO_RCV);
/* FALLTHROUGH */
case SHUT_WR:
/*
diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c
index f91a96edeb68..b68ec95a923a 100644
--- a/sys/netinet/udp_usrreq.c
+++ b/sys/netinet/udp_usrreq.c
@@ -1696,10 +1696,12 @@ udp_shutdown(struct socket *so, enum shutdown_how how)
switch (how) {
case SHUT_RD:
- sorflush(so);
+ socantrcvmore(so);
+ sbrelease(so, SO_RCV);
break;
case SHUT_RDWR:
- sorflush(so);
+ socantrcvmore(so);
+ sbrelease(so, SO_RCV);
/* FALLTHROUGH */
case SHUT_WR:
socantsendmore(so);