diff options
| -rw-r--r-- | tools/testing/vsock/util.c | 32 | 
1 files changed, 20 insertions, 12 deletions
| diff --git a/tools/testing/vsock/util.c b/tools/testing/vsock/util.c index 698b0b44a2ee..2fc96f29bdf2 100644 --- a/tools/testing/vsock/util.c +++ b/tools/testing/vsock/util.c @@ -136,11 +136,8 @@ int vsock_seqpacket_connect(unsigned int cid, unsigned int port)  	return vsock_connect(cid, port, SOCK_SEQPACKET);  } -/* Listen on <cid, port> and return the first incoming connection.  The remote - * address is stored to clientaddrp.  clientaddrp may be NULL. - */ -static int vsock_accept(unsigned int cid, unsigned int port, -			struct sockaddr_vm *clientaddrp, int type) +/* Listen on <cid, port> and return the file descriptor. */ +static int vsock_listen(unsigned int cid, unsigned int port, int type)  {  	union {  		struct sockaddr sa; @@ -152,14 +149,7 @@ static int vsock_accept(unsigned int cid, unsigned int port,  			.svm_cid = cid,  		},  	}; -	union { -		struct sockaddr sa; -		struct sockaddr_vm svm; -	} clientaddr; -	socklen_t clientaddr_len = sizeof(clientaddr.svm);  	int fd; -	int client_fd; -	int old_errno;  	fd = socket(AF_VSOCK, type, 0);  	if (fd < 0) { @@ -177,6 +167,24 @@ static int vsock_accept(unsigned int cid, unsigned int port,  		exit(EXIT_FAILURE);  	} +	return fd; +} + +/* Listen on <cid, port> and return the first incoming connection.  The remote + * address is stored to clientaddrp.  clientaddrp may be NULL. + */ +static int vsock_accept(unsigned int cid, unsigned int port, +			struct sockaddr_vm *clientaddrp, int type) +{ +	union { +		struct sockaddr sa; +		struct sockaddr_vm svm; +	} clientaddr; +	socklen_t clientaddr_len = sizeof(clientaddr.svm); +	int fd, client_fd, old_errno; + +	fd = vsock_listen(cid, port, type); +  	control_writeln("LISTENING");  	timeout_begin(TIMEOUT); |