On Fri, 2024-06-21 at 18:35 +0800, Geliang Tang wrote: [...] > @@ -883,12 +881,10 @@ static void drop_on_lookup(const struct test *t) > if (server_fd < 0) > goto detach; > > - client_fd = make_socket(t->sotype, t->connect_to.ip, > - t->connect_to.port, &dst, &len); > + client_fd = connect_to_fd(server_fd, 0); Nit: make_socket() used timeout { .tv_sec = IO_TIMEOUT_SEC }, while here commect_to_fd is called with timeout disabled. Same applies to other replacements below. > if (client_fd < 0) > goto close_srv; > > - err = connect(client_fd, (void *)&dst, len); > if (t->sotype == SOCK_DGRAM) { > err = send_byte(client_fd); > if (err) [...] > @@ -1257,17 +1247,13 @@ static void run_multi_prog_lookup(const struct test_multi_prog *t) > if (err) > goto out_close_server; > > - client_fd = make_socket(SOCK_STREAM, EXT_IP4, EXT_PORT, &dst, &len); > - if (client_fd < 0) > - goto out_close_server; > - > - err = connect(client_fd, (void *)&dst, len); > - if (CHECK(err && !t->expect_errno, "connect", > + client_fd = connect_to_fd(server_fd, 0); I'm not sure this is correct. The original test uses EXT_IP4, EXT_PORT here, while t->listen_at could be both { EXT_IP4, EXT_PORT } and { INT_IP4, INT_PORT }. See test_multi_prog_lookup(). > + if (CHECK(client_fd < 0 && !t->expect_errno, "connect", > "unexpected error %d\n", errno)) > - goto out_close_client; > - if (CHECK(err && t->expect_errno && errno != t->expect_errno, > + goto out_close_server; > + if (CHECK(client_fd < 0 && t->expect_errno && errno != t->expect_errno, > "connect", "unexpected error %d\n", errno)) > - goto out_close_client; > + goto out_close_server; > > done = 0; > prog_idx = PROG1; [...]