瀏覽代碼

tipc: Simplify prohibition of listen and accept for connectionless sockets

Modifies the proto_ops structure used by TIPC DGRAM and RDM sockets
so that calls to listen() and accept() are handled by existing kernel
"unsupported operation" routines, and eliminates the related checks
in the listen and accept routines used by SEQPACKET and STREAM sockets
that are no longer needed.

Signed-off-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Ying Xue 14 年之前
父節點
當前提交
245f3d342d
共有 1 個文件被更改,包括 3 次插入9 次删除
  1. 3 9
      net/tipc/socket.c

+ 3 - 9
net/tipc/socket.c

@@ -1483,9 +1483,7 @@ static int listen(struct socket *sock, int len)
 
 
 	lock_sock(sk);
 	lock_sock(sk);
 
 
-	if (sock->state == SS_READY)
-		res = -EOPNOTSUPP;
-	else if (sock->state != SS_UNCONNECTED)
+	if (sock->state != SS_UNCONNECTED)
 		res = -EINVAL;
 		res = -EINVAL;
 	else {
 	else {
 		sock->state = SS_LISTENING;
 		sock->state = SS_LISTENING;
@@ -1513,10 +1511,6 @@ static int accept(struct socket *sock, struct socket *new_sock, int flags)
 
 
 	lock_sock(sk);
 	lock_sock(sk);
 
 
-	if (sock->state == SS_READY) {
-		res = -EOPNOTSUPP;
-		goto exit;
-	}
 	if (sock->state != SS_LISTENING) {
 	if (sock->state != SS_LISTENING) {
 		res = -EINVAL;
 		res = -EINVAL;
 		goto exit;
 		goto exit;
@@ -1793,11 +1787,11 @@ static const struct proto_ops msg_ops = {
 	.bind		= bind,
 	.bind		= bind,
 	.connect	= connect,
 	.connect	= connect,
 	.socketpair	= sock_no_socketpair,
 	.socketpair	= sock_no_socketpair,
-	.accept		= accept,
+	.accept		= sock_no_accept,
 	.getname	= get_name,
 	.getname	= get_name,
 	.poll		= poll,
 	.poll		= poll,
 	.ioctl		= sock_no_ioctl,
 	.ioctl		= sock_no_ioctl,
-	.listen		= listen,
+	.listen		= sock_no_listen,
 	.shutdown	= shutdown,
 	.shutdown	= shutdown,
 	.setsockopt	= setsockopt,
 	.setsockopt	= setsockopt,
 	.getsockopt	= getsockopt,
 	.getsockopt	= getsockopt,