From: Geliang Tang <tanggeli...@kylinos.cn>

This patch moves "post_socket_cb" and "noconnect" into connect_to_addr(),
then connect_to_fd_opts() can be implemented by getsockname() and
connect_to_addr(). This change makes connect_to_* interfaces more unified.

Acked-by: Eduard Zingerman <eddy...@gmail.com>
Signed-off-by: Geliang Tang <tanggeli...@kylinos.cn>
---
 tools/testing/selftests/bpf/network_helpers.c | 33 ++++---------------
 1 file changed, 7 insertions(+), 26 deletions(-)

diff --git a/tools/testing/selftests/bpf/network_helpers.c 
b/tools/testing/selftests/bpf/network_helpers.c
index c0646d5a4283..5d1b4f165def 100644
--- a/tools/testing/selftests/bpf/network_helpers.c
+++ b/tools/testing/selftests/bpf/network_helpers.c
@@ -293,9 +293,14 @@ int connect_to_addr(int type, const struct 
sockaddr_storage *addr, socklen_t add
        if (settimeo(fd, opts->timeout_ms))
                goto error_close;
 
-       if (connect_fd_to_addr(fd, addr, addrlen, opts->must_fail))
+       if (opts->post_socket_cb &&
+           opts->post_socket_cb(fd, opts->cb_opts))
                goto error_close;
 
+       if (!opts->noconnect)
+               if (connect_fd_to_addr(fd, addr, addrlen, opts->must_fail))
+                       goto error_close;
+
        return fd;
 
 error_close:
@@ -306,9 +311,7 @@ int connect_to_addr(int type, const struct sockaddr_storage 
*addr, socklen_t add
 int connect_to_fd_opts(int server_fd, int type, const struct 
network_helper_opts *opts)
 {
        struct sockaddr_storage addr;
-       struct sockaddr_in *addr_in;
        socklen_t addrlen;
-       int fd;
 
        if (!opts)
                opts = &default_opts;
@@ -319,29 +322,7 @@ int connect_to_fd_opts(int server_fd, int type, const 
struct network_helper_opts
                return -1;
        }
 
-       addr_in = (struct sockaddr_in *)&addr;
-       fd = socket(addr_in->sin_family, type, opts->proto);
-       if (fd < 0) {
-               log_err("Failed to create client socket");
-               return -1;
-       }
-
-       if (settimeo(fd, opts->timeout_ms))
-               goto error_close;
-
-       if (opts->post_socket_cb &&
-           opts->post_socket_cb(fd, opts->cb_opts))
-               goto error_close;
-
-       if (!opts->noconnect)
-               if (connect_fd_to_addr(fd, &addr, addrlen, opts->must_fail))
-                       goto error_close;
-
-       return fd;
-
-error_close:
-       save_errno_close(fd);
-       return -1;
+       return connect_to_addr(type, &addr, addrlen, opts);
 }
 
 int connect_to_fd(int server_fd, int timeout_ms)
-- 
2.43.0


Reply via email to