Message ID | 1286215294-29166-1-git-send-email-alban.crequy@collabora.co.uk |
---|---|
State | Superseded, archived |
Delegated to: | David Miller |
Headers | show |
Le lundi 04 octobre 2010 à 19:01 +0100, Alban Crequy a écrit : > Userspace applications can already request to receive timestamps with: > setsockopt(sockfd, SOL_SOCKET, SO_TIMESTAMP, ...) > > Although setsockopt() returns zero (success), timestamps are not added to the > ancillary data. This patch fixes that on SOCK_DGRAM and SOCK_SEQPACKET Unix > sockets. > > Signed-off-by: Alban Crequy <alban.crequy@collabora.co.uk> > --- > net/unix/af_unix.c | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c > index 617bea4..bca0c1e 100644 > --- a/net/unix/af_unix.c > +++ b/net/unix/af_unix.c > @@ -1697,6 +1697,9 @@ static int unix_dgram_recvmsg(struct kiocb *iocb, struct socket *sock, > if (err) > goto out_free; > > + if (sock_flag(sk, SOCK_RCVTSTAMP)) > + __sock_recv_timestamp(msg, sk, skb); > + > if (!siocb->scm) { > siocb->scm = &tmp_scm; > memset(&tmp_scm, 0, sizeof(tmp_scm)); Hmm, but how is set skb->tstamp ? I think its zero at this point, so __sock_recv_timestamp() use current time, not time of send(). gettimeofday() might be better/cheaper :) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Le Mon, 04 Oct 2010 20:09:49 +0200, Eric Dumazet <eric.dumazet@gmail.com> a écrit : > Le lundi 04 octobre 2010 à 19:01 +0100, Alban Crequy a écrit : > > Userspace applications can already request to receive timestamps > > with: setsockopt(sockfd, SOL_SOCKET, SO_TIMESTAMP, ...) > > > > Although setsockopt() returns zero (success), timestamps are not > > added to the ancillary data. This patch fixes that on SOCK_DGRAM > > and SOCK_SEQPACKET Unix sockets. > > > > Signed-off-by: Alban Crequy <alban.crequy@collabora.co.uk> > > --- > > net/unix/af_unix.c | 3 +++ > > 1 files changed, 3 insertions(+), 0 deletions(-) > > > > diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c > > index 617bea4..bca0c1e 100644 > > --- a/net/unix/af_unix.c > > +++ b/net/unix/af_unix.c > > @@ -1697,6 +1697,9 @@ static int unix_dgram_recvmsg(struct kiocb > > *iocb, struct socket *sock, if (err) > > goto out_free; > > > > + if (sock_flag(sk, SOCK_RCVTSTAMP)) > > + __sock_recv_timestamp(msg, sk, skb); > > + > > if (!siocb->scm) { > > siocb->scm = &tmp_scm; > > memset(&tmp_scm, 0, sizeof(tmp_scm)); > > Hmm, but how is set skb->tstamp ? > > I think its zero at this point, so __sock_recv_timestamp() use current > time, not time of send(). > > gettimeofday() might be better/cheaper :) You're right, I just tested it and it was the time of reception. Thanks for the review. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index 617bea4..bca0c1e 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c @@ -1697,6 +1697,9 @@ static int unix_dgram_recvmsg(struct kiocb *iocb, struct socket *sock, if (err) goto out_free; + if (sock_flag(sk, SOCK_RCVTSTAMP)) + __sock_recv_timestamp(msg, sk, skb); + if (!siocb->scm) { siocb->scm = &tmp_scm; memset(&tmp_scm, 0, sizeof(tmp_scm));
Userspace applications can already request to receive timestamps with: setsockopt(sockfd, SOL_SOCKET, SO_TIMESTAMP, ...) Although setsockopt() returns zero (success), timestamps are not added to the ancillary data. This patch fixes that on SOCK_DGRAM and SOCK_SEQPACKET Unix sockets. Signed-off-by: Alban Crequy <alban.crequy@collabora.co.uk> --- net/unix/af_unix.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)