chiark / gitweb /
login: tag the Mimo 720 ID_AUTOSEAT
[elogind.git] / src / ratelimit.c
index 1e5ed03c55dbde295d096ba679cdacaae588db07..93157c7a2e071cb177676909e04cab3be11d54ed 100644 (file)
@@ -1,4 +1,4 @@
-/*-*- Mode: C; c-basic-offset: 8 -*-*/
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
 
 /***
   This file is part of systemd.
  * <hidave.darkstar@gmail.com>, which is licensed GPLv2. */
 
 bool ratelimit_test(RateLimit *r) {
-        usec_t timestamp;
-
-        timestamp = now(CLOCK_MONOTONIC);
+        usec_t ts;
 
         assert(r);
-        assert(r->interval > 0);
-        assert(r->burst > 0);
 
-        if (r->begin <= 0 ||
-            r->begin + r->interval < timestamp) {
+        if (r->interval <= 0 || r->burst <= 0)
+                return true;
 
-                if (r->n_missed > 0)
-                        log_warning("%u events suppressed", r->n_missed);
+        ts = now(CLOCK_MONOTONIC);
 
-                r->begin = timestamp;
+        if (r->begin <= 0 ||
+            r->begin + r->interval < ts) {
+                r->begin = ts;
 
-                /* Reset counters */
-                r->n_printed = 0;
-                r->n_missed = 0;
+                /* Reset counter */
+                r->num = 0;
                 goto good;
         }
 
-        if (r->n_printed <= r->burst)
+        if (r->num <= r->burst)
                 goto good;
 
-        r->n_missed++;
         return false;
 
 good:
-        r->n_printed++;
+        r->num++;
         return true;
 }