diff options
author | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2013-11-13 15:35:45 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2013-11-13 15:35:45 +0100 |
commit | 51e093bd1cbe6d91278f72c82fbd54711e4a9ede (patch) | |
tree | 7fd0dd0e0ae27464761eb8e5407d3522d510aeb3 /src/llc.cpp | |
parent | 985fd114f243dfe5095cd2d5e90bf4f0c0a760a5 (diff) |
llc: Use timeradd and timercmp and fix for < 1s PDU llc timeouts
Diffstat (limited to 'src/llc.cpp')
-rw-r--r-- | src/llc.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/llc.cpp b/src/llc.cpp index 19bf66ab..88b701a1 100644 --- a/src/llc.cpp +++ b/src/llc.cpp @@ -91,11 +91,10 @@ void gprs_llc::calc_pdu_lifetime(BTS *bts, const uint16_t pdu_delay_csec, struct } /* calculate timestamp of timeout */ - gettimeofday(tv, NULL); - tv->tv_usec += (delay_csec % 100) * 10000; - tv->tv_sec += delay_csec / 100; - if (tv->tv_usec > 999999) { - tv->tv_usec -= 1000000; - tv->tv_sec++; - } + struct timeval now, csec; + gettimeofday(&now, NULL); + csec.tv_usec = (delay_csec % 100) * 10000; + csec.tv_sec = delay_csec / 100; + + timeradd(&now, &csec, tv); } |