MT#55283 support accept4() in tester

Change-Id: I842b65571dc571c7c1a482dea62bb69d47700efd
(cherry picked from commit 928dd269b0)
(cherry picked from commit f9c12aa1b5)
mr12.5.1
Richard Fuchs 2 months ago
parent 4c7878250a
commit a25dbfcfa6

@ -502,9 +502,9 @@ do_connect:;
return ret; return ret;
} }
int accept(int fd, struct sockaddr *addr, socklen_t *addrlen) { int accept4(int fd, struct sockaddr *addr, socklen_t *addrlen, int flags) {
const char *err; const char *err;
int (*real_accept)(int, struct sockaddr *, socklen_t *) = dlsym(RTLD_NEXT, "accept"); int (*real_accept4)(int, struct sockaddr *, socklen_t *, int) = dlsym(RTLD_NEXT, "accept4");
err = "fd out of bounds"; err = "fd out of bounds";
if (fd < 0 || fd >= MAX_SOCKETS) if (fd < 0 || fd >= MAX_SOCKETS)
@ -523,7 +523,7 @@ do_accept_warn:
do_accept:; do_accept:;
struct sockaddr_un sun; struct sockaddr_un sun;
socklen_t sun_len = sizeof(sun); socklen_t sun_len = sizeof(sun);
int new_fd = real_accept(fd, (struct sockaddr *) &sun, &sun_len); int new_fd = real_accept4(fd, (struct sockaddr *) &sun, &sun_len, flags);
if (new_fd == -1) if (new_fd == -1)
return -1; return -1;
if (new_fd < 0 || new_fd >= MAX_SOCKETS || real_sockets[new_fd].open) { if (new_fd < 0 || new_fd >= MAX_SOCKETS || real_sockets[new_fd].open) {
@ -554,6 +554,10 @@ do_accept:;
return new_fd; return new_fd;
} }
int accept(int fd, struct sockaddr *addr, socklen_t *addrlen) {
return accept4(fd, addr, addrlen, 0);
}
int dup(int fd) { int dup(int fd) {
int (*real_dup)(int) = dlsym(RTLD_NEXT, "dup"); int (*real_dup)(int) = dlsym(RTLD_NEXT, "dup");
int ret = real_dup(fd); int ret = real_dup(fd);

Loading…
Cancel
Save