Le dimanche 20 janvier 2013 à 00:32 +0100, Laurent Vivier a écrit : > ping ?
ping > Le mardi 01 janvier 2013 à 19:24 +0100, Laurent Vivier a écrit : > > From: Laurent Vivier <laur...@vivier.eu> > > > > SO_SNDTIMEO and SO_RCVTIMEO take a struct timeval, not an int > > > > To test this, you can use : > > > > QEMU_STRACE= ping localhost 2>&1 |grep TIMEO > > 568 setsockopt(3,SOL_SOCKET,SO_SNDTIMEO,{1,0},8) = 0 > > 568 setsockopt(3,SOL_SOCKET,SO_RCVTIMEO,{1,0},8) = 0 > > > > Signed-off-by: Laurent Vivier <laur...@vivier.eu> > > --- > > v2: pass checkpatch.pl > > > > linux-user/syscall.c | 28 ++++++++++++++++++++++------ > > 1 file changed, 22 insertions(+), 6 deletions(-) > > > > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > > index e99adab..2b2bd2b 100644 > > --- a/linux-user/syscall.c > > +++ b/linux-user/syscall.c > > @@ -1491,6 +1491,28 @@ static abi_long do_setsockopt(int sockfd, int level, > > int optname, > > break; > > case TARGET_SOL_SOCKET: > > switch (optname) { > > + case TARGET_SO_RCVTIMEO: > > + { > > + struct timeval tv; > > + > > + optname = SO_RCVTIMEO; > > + > > +set_timeout: > > + if (optlen != sizeof(struct target_timeval)) { > > + return -TARGET_EINVAL; > > + } > > + > > + if (copy_from_user_timeval(&tv, optval_addr)) { > > + return -TARGET_EFAULT; > > + } > > + > > + ret = get_errno(setsockopt(sockfd, SOL_SOCKET, optname, > > + &tv, sizeof(tv))); > > + return ret; > > + } > > + case TARGET_SO_SNDTIMEO: > > + optname = SO_SNDTIMEO; > > + goto set_timeout; > > /* Options with 'int' argument. */ > > case TARGET_SO_DEBUG: > > optname = SO_DEBUG; > > @@ -1542,12 +1564,6 @@ static abi_long do_setsockopt(int sockfd, int level, > > int optname, > > case TARGET_SO_RCVLOWAT: > > optname = SO_RCVLOWAT; > > break; > > - case TARGET_SO_RCVTIMEO: > > - optname = SO_RCVTIMEO; > > - break; > > - case TARGET_SO_SNDTIMEO: > > - optname = SO_SNDTIMEO; > > - break; > > break; > > default: > > goto unimplemented; > -- "Just play. Have fun. Enjoy the game." - Michael Jordan "Just play. Have fun. Enjoy the game." - Michael Jordan