test/vsock: refactor vsock_accept
This is a preliminary patch to introduce SOCK_STREAM bind connect test. vsock_accept() is split into vsock_listen() and vsock_accept(). Co-developed-by: Luigi Leonardi <luigi.leonardi@outlook.com> Signed-off-by: Luigi Leonardi <luigi.leonardi@outlook.com> Signed-off-by: Filippo Storniolo <f.storniolo95@gmail.com> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
bfada5a767
commit
84d5fb9741
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user