X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FSocket%2FProtocols%2FDatagramSocketProtocol.cc;fp=senf%2FSocket%2FProtocols%2FDatagramSocketProtocol.cc;h=738c692c1871708ec84ed465a41e468c1b0cfc0f;hb=cb50871835b7a5c37e4fd32d38de67fa12570ebc;hp=fe1ec717640978b58f9dfc5b57192d8f22b4ecd2;hpb=4bef943029d23ad3b509dd0e939b252eaa169ffa;p=senf.git diff --git a/senf/Socket/Protocols/DatagramSocketProtocol.cc b/senf/Socket/Protocols/DatagramSocketProtocol.cc index fe1ec71..738c692 100644 --- a/senf/Socket/Protocols/DatagramSocketProtocol.cc +++ b/senf/Socket/Protocols/DatagramSocketProtocol.cc @@ -47,10 +47,11 @@ prefix_ senf::ClockService::clock_type senf::DatagramSocketProtocol::timestamp() prefix_ senf::ClockService::clock_type senf::DatagramSocketProtocol::timestamp_system() const { + // we use gettimeofday() here, since on some boxes the above ioctl() return bogus values. + // this may reduce the precision, but we only care about +/- 1ms, for now struct timeval tv; - if (::ioctl(fd(), SIOCGSTAMP, &tv) < 0) - SENF_THROW_SYSTEM_EXCEPTION(""); - return tv.tv_sec * 1000000000LL + tv.tv_usec * 1000; + ::gettimeofday( &tv, NULL); + return tv.tv_sec * 1000000000LL + tv.tv_usec * 1000LL; }