chiark / gitweb /
login: tag the Mimo 720 ID_AUTOSEAT
[elogind.git] / src / ratelimit.c
index 5adf1ae10d39606eb11216282cb30ec70e1e410a..93157c7a2e071cb177676909e04cab3be11d54ed 100644 (file)
 bool ratelimit_test(RateLimit *r) {
         usec_t ts;
 
-        ts = now(CLOCK_MONOTONIC);
-
         assert(r);
-        assert(r->interval > 0);
-        assert(r->burst > 0);
 
-        if (r->begin <= 0 ||
-            r->begin + r->interval < ts) {
+        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);
 
+        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;
 }