On Jan 27, Toke wrote: > Stanislav Fomichev <sdf@xxxxxxxxxx> writes: > > >> > > + > >> > > + ctrl_sockfd = accept(sockfd, (struct sockaddr *)&ctrl_addr, &len); > >> > > + if (ctrl_sockfd < 0) { > >> > > + fprintf(stderr, "Failed to accept connection on DUT socket\n"); > >> > > + close(sockfd); > >> > > + return -errno; > >> > > + } > >> > > + > >> > >> [...] > >> > >> > > >> > There is also connect_to_fd, maybe we can use that? It should take > >> > care of the timeouts.. (requires plumbing server_fd, not sure whether > >> > it's a problem or not) > >> > >> please correct me if I am wrong, but in order to have server_fd it is mandatory > >> both tester and DUT are running on the same process, right? Here, I guess 99% of > >> the times DUT and tester will run on two separated devices. Agree? > > > > Yes, it's targeting more the case where you have a server fd and a > > bunch of clients in the same process. But I think it's still usable in > > your case, you're not using fork() anywhere afaict, so even if these > > are separate devices, connect_to_fd should still work. (unless I'm > > missing something, haven't looked too closely) > > Just to add a bit of context here, "separate devices" can refer to the > hosts as well as the netdevs. I.e., it should also be possible to run > this in a mode where the client bit runs on a different physical machine > than the server bit (as it will not be feasible in any case to connect > things with loopback cables). yes, this is what I meant with 'DUT and tester will run on two separated devices' (sorry to have not been so clear). Looking at the code server_fd is always obtained from start_server(), while here the client on the tester just knows the IPv4/IPv6 address and the port of the server running on the DUT. Regards, Lorenzo > > -Toke >
Attachment:
signature.asc
Description: PGP signature