Andrew Geissler | d583833 | 2022-05-27 11:33:10 -0500 | [diff] [blame^] | 1 | From ad1428f29196bcc88ae382ee67ff705928e2be24 Mon Sep 17 00:00:00 2001 |
| 2 | From: Khem Raj <raj.khem@gmail.com> |
| 3 | Date: Thu, 5 May 2022 20:25:37 -0700 |
| 4 | Subject: [PATCH] resolve: Use sockaddr pointer type for bind() |
| 5 | |
| 6 | bind() expects sockaddr* but SERVER_ADDRESS is sockaddr_in type struct |
| 7 | |
| 8 | Fixes errors with clang e.g. |
| 9 | |
| 10 | ../git/src/resolve/test-resolved-stream.c:112:32: error: incompatible pointer types passing 'struct sockaddr_in *' to parameter of type 'const struct sockaddr *' [-Werror,-Wincompatible-pointer-types] |
| 11 | assert_se(bind(bindfd, &SERVER_ADDRESS, sizeof(SERVER_ADDRESS)) >= 0); |
| 12 | ^~~~~~~~~~~~~~~ |
| 13 | ../git/src/resolve/test-resolved-stream.c:251:39: error: incompatible pointer types passing 'struct sockaddr_in *' to parameter of type 'const struct sockaddr *' [-Werror,-Wincompatible-pointer-types] |
| 14 | r = connect(clientfd, &SERVER_ADDRESS, sizeof(SERVER_ADDRESS)); |
| 15 | |
| 16 | Upstream-Status: Submitted [https://github.com/systemd/systemd/pull/23281] |
| 17 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 18 | --- |
| 19 | src/resolve/test-resolved-stream.c | 4 ++-- |
| 20 | 1 file changed, 2 insertions(+), 2 deletions(-) |
| 21 | |
| 22 | diff --git a/src/resolve/test-resolved-stream.c b/src/resolve/test-resolved-stream.c |
| 23 | index f12c729e50..504b532002 100644 |
| 24 | --- a/src/resolve/test-resolved-stream.c |
| 25 | +++ b/src/resolve/test-resolved-stream.c |
| 26 | @@ -109,7 +109,7 @@ static void *tcp_dns_server(void *p) { |
| 27 | |
| 28 | assert_se((bindfd = socket(AF_INET, SOCK_STREAM | SOCK_CLOEXEC, 0)) >= 0); |
| 29 | assert_se(setsockopt(bindfd, SOL_SOCKET, SO_REUSEADDR, &(int){1}, sizeof(int)) >= 0); |
| 30 | - assert_se(bind(bindfd, &SERVER_ADDRESS, sizeof(SERVER_ADDRESS)) >= 0); |
| 31 | + assert_se(bind(bindfd, (struct sockaddr*)&SERVER_ADDRESS, sizeof(SERVER_ADDRESS)) >= 0); |
| 32 | assert_se(listen(bindfd, 1) >= 0); |
| 33 | assert_se((acceptfd = accept(bindfd, NULL, NULL)) >= 0); |
| 34 | server_handle(acceptfd); |
| 35 | @@ -248,7 +248,7 @@ static void test_dns_stream(bool tls) { |
| 36 | assert_se((clientfd = socket(AF_INET, SOCK_STREAM | SOCK_CLOEXEC, 0)) >= 0); |
| 37 | |
| 38 | for (int i = 0; i < 100; i++) { |
| 39 | - r = connect(clientfd, &SERVER_ADDRESS, sizeof(SERVER_ADDRESS)); |
| 40 | + r = connect(clientfd, (struct sockaddr*)&SERVER_ADDRESS, sizeof(SERVER_ADDRESS)); |
| 41 | if (r >= 0) |
| 42 | break; |
| 43 | usleep(EVENT_TIMEOUT_USEC / 100); |
| 44 | -- |
| 45 | 2.36.0 |
| 46 | |