diff options
| author | Thomas Zimmermann <[email protected]> | 2023-10-11 09:50:59 +0200 | 
|---|---|---|
| committer | Thomas Zimmermann <[email protected]> | 2023-10-11 09:50:59 +0200 | 
| commit | 57390019b68b83f96eb98f490367b9df1f2d77cb (patch) | |
| tree | e6d4b6c75efdd2d7fb7d37f980688c491be3ff6a /tools/testing/selftests/bpf/prog_tests/sockmap_helpers.h | |
| parent | e5f9d543419c78ac58f3b3557bc5a76b20ff600b (diff) | |
| parent | 389af786f92ecdff35883551d54bf4e507ffcccb (diff) | |
Merge drm/drm-next into drm-misc-next
Updating drm-misc-next to the state of Linux v6.6-rc2.
Signed-off-by: Thomas Zimmermann <[email protected]>
Diffstat (limited to 'tools/testing/selftests/bpf/prog_tests/sockmap_helpers.h')
| -rw-r--r-- | tools/testing/selftests/bpf/prog_tests/sockmap_helpers.h | 26 | 
1 files changed, 26 insertions, 0 deletions
diff --git a/tools/testing/selftests/bpf/prog_tests/sockmap_helpers.h b/tools/testing/selftests/bpf/prog_tests/sockmap_helpers.h index d12665490a90..36d829a65aa4 100644 --- a/tools/testing/selftests/bpf/prog_tests/sockmap_helpers.h +++ b/tools/testing/selftests/bpf/prog_tests/sockmap_helpers.h @@ -179,6 +179,32 @@  		__ret;                                                         \  	}) +static inline int poll_connect(int fd, unsigned int timeout_sec) +{ +	struct timeval timeout = { .tv_sec = timeout_sec }; +	fd_set wfds; +	int r, eval; +	socklen_t esize = sizeof(eval); + +	FD_ZERO(&wfds); +	FD_SET(fd, &wfds); + +	r = select(fd + 1, NULL, &wfds, NULL, &timeout); +	if (r == 0) +		errno = ETIME; +	if (r != 1) +		return -1; + +	if (getsockopt(fd, SOL_SOCKET, SO_ERROR, &eval, &esize) < 0) +		return -1; +	if (eval != 0) { +		errno = eval; +		return -1; +	} + +	return 0; +} +  static inline int poll_read(int fd, unsigned int timeout_sec)  {  	struct timeval timeout = { .tv_sec = timeout_sec };  |