diff options
author | 1999-08-06 01:34:52 +0000 | |
---|---|---|
committer | 1999-08-06 01:34:52 +0000 | |
commit | 4c219b06208bd537c7050c476b6529581e532b1a (patch) | |
tree | 9b2f125871cdbdf4f5478bc7b50eef41688adb9a | |
parent | reformat and simplify a little (diff) | |
download | wireguard-openbsd-4c219b06208bd537c7050c476b6529581e532b1a.tar.xz wireguard-openbsd-4c219b06208bd537c7050c476b6529581e532b1a.zip |
If the clock is put back, ensure that we don't end up dividing by
zero when calculating our throughput
-rw-r--r-- | usr.sbin/ppp/ppp/throughput.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/usr.sbin/ppp/ppp/throughput.c b/usr.sbin/ppp/ppp/throughput.c index 6246298fc4a..c6596800e94 100644 --- a/usr.sbin/ppp/ppp/throughput.c +++ b/usr.sbin/ppp/ppp/throughput.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: throughput.c,v 1.4 1999/08/05 10:32:14 brian Exp $ + * $Id: throughput.c,v 1.5 1999/08/06 01:34:52 brian Exp $ */ #include <sys/types.h> @@ -75,6 +75,15 @@ throughput_uptime(struct pppThroughput *t) time_t downat; downat = t->downtime ? t->downtime : time(NULL); + if (t->uptime && downat < t->uptime) { + /* Euch ! The clock's gone back ! */ + int i; + + for (i = 0; i < t->SamplePeriod; i++) + t->SampleOctets[i] = 0; + t->nSample = 0; + t->uptime = downat; + } return t->uptime ? downat - t->uptime : 0; } |