if (index < 0)
return index;
- fprintf(fout, "%d socket - %d\n", syscall(SYS_gettid), index);
+ fprintf(fout, "%d socket %d\n", syscall(SYS_gettid), index);
fflush(fout);
recursive = 1;
ret = rsocket(domain, type, protocol);
fd_store(index, ret, fd_rsocket);
set_rsocket_options(ret);
}
- fprintf(fout, "%d socket - %d fd %d type %d\n",
+ fprintf(fout, "%d socket %d real fd %d type %d\n",
syscall(SYS_gettid), index, ret, fd_gett(index));
fflush(fout);
return index;
int bind(int socket, const struct sockaddr *addr, socklen_t addrlen)
{
int fd;
+ fprintf(fout, "%d bind %d\n", syscall(SYS_gettid), socket);
+ fflush(fout);
return (fd_get(socket, &fd) == fd_rsocket) ?
rbind(fd, addr, addrlen) : real.bind(fd, addr, addrlen);
}
int listen(int socket, int backlog)
{
int fd;
+ fprintf(fout, "%d listen %d\n", syscall(SYS_gettid), socket);
+ fflush(fout);
return (fd_get(socket, &fd) == fd_rsocket) ?
rlisten(fd, backlog) : real.listen(fd, backlog);
}
enum fd_type type;
type = fd_get(socket, &fd);
- fprintf(fout, "%d accept fd %d\n", syscall(SYS_gettid), socket);
+ fprintf(fout, "%d accept %d\n", syscall(SYS_gettid), socket);
fflush(fout);
if (type == fd_rsocket || type == fd_fork) {
index = fd_open();
return ret;
}
- fprintf(fout, "%d accept fd %d new fd %d\n", syscall(SYS_gettid), socket, index);
+ fprintf(fout, "%d accept %d new fd %d new real fd %d\n",
+ syscall(SYS_gettid), socket, index, ret);
fflush(fout);
fd_store(index, ret, type);
return index;
uint32_t msg;
fd_get(socket, &sfd);
- fprintf(fout, "%d fork_passive - %d fd %d\n", syscall(SYS_gettid), socket, sfd);
+ fprintf(fout, "%d fork_passive %d real fd %d\n", syscall(SYS_gettid), socket, sfd);
fflush(fout);
len = sizeof sin6;
ret = rlisten(lfd, 1);
if (ret)
goto lclose;
- fprintf(fout, "%d fork_passive - %d listening for fork\n", syscall(SYS_gettid), socket);
+ fprintf(fout, "%d fork_passive %d, listening for fork\n", syscall(SYS_gettid), socket);
fflush(fout);
msg = 0;
real.shutdown(sfd, SHUT_RDWR);
real.close(sfd);
fd_store(socket, dfd, fd_rsocket);
- fprintf(fout, "%d fork_passive success - %d new fd %d\n", syscall(SYS_gettid), socket, dfd);
+ fprintf(fout, "%d fork_passive success %d new fd %d old fd %d\n",
+ syscall(SYS_gettid), socket, dfd, sfd);
fflush(fout);
lclose:
{
int fd;
init_preload();
+ fprintf(fout, "%d read %d read fd %d\n", syscall(SYS_gettid), socket, fd_getd(socket));
+ fflush(fout);
return (fd_fork_get(socket, &fd) == fd_rsocket) ?
rread(fd, buf, count) : real.read(fd, buf, count);
}
int ret;
init_preload();
+ fprintf(fout, "%d close %d real fd %d\n", syscall(SYS_gettid), socket, fd_getd(socket));
+ fflush(fout);
fdi = idm_lookup(&idm, socket);
if (!fdi)
return real.close(socket);
init_preload();
fprintf(fout, "%d dup2 %d -> %d\n", syscall(SYS_gettid), oldfd, newfd);
+ fflush(fout);
oldfdi = idm_lookup(&idm, oldfd);
if (oldfdi && oldfdi->type == fd_fork)
fork_passive(oldfd);
atomic_init(&newfdi->refcnt);
atomic_set(&newfdi->refcnt, 1);
atomic_inc(&oldfdi->refcnt);
+ fprintf(fout, "%d dup2 %d -> %d, real fd %d type %d\n",
+ syscall(SYS_gettid), oldfd, newfd, newfdi->fd, newfdi->type);
+ fflush(fout);
return newfd;
}