summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgilles <gilles@openbsd.org>2012-09-11 19:19:13 +0000
committergilles <gilles@openbsd.org>2012-09-11 19:19:13 +0000
commitc4489374edaca3b02387bb59521f293f50ce3539 (patch)
tree77d64cc91ad9dda485684d7ce4db51857db06203
parentsync (diff)
downloadwireguard-openbsd-c4489374edaca3b02387bb59521f293f50ce3539.tar.xz
wireguard-openbsd-c4489374edaca3b02387bb59521f293f50ce3539.zip
- simplify scheduler_compute_schedule by making it a quadratic delaying.
no more if/else, we derive the delay from the retry count. works for qmail, should work for us too. ok eric@
-rw-r--r--usr.sbin/smtpd/scheduler_backend.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/usr.sbin/smtpd/scheduler_backend.c b/usr.sbin/smtpd/scheduler_backend.c
index 41ca95e8b41..6fccd4da8ae 100644
--- a/usr.sbin/smtpd/scheduler_backend.c
+++ b/usr.sbin/smtpd/scheduler_backend.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: scheduler_backend.c,v 1.5 2012/08/24 12:29:50 eric Exp $ */
+/* $OpenBSD: scheduler_backend.c,v 1.6 2012/09/11 19:19:13 gilles Exp $ */
/*
* Copyright (c) 2012 Gilles Chehade <gilles@openbsd.org>
@@ -61,18 +61,12 @@ scheduler_compute_schedule(struct scheduler_info *sched)
{
time_t delay;
- if (sched->retry == 0)
- delay = 0;
-#if 0
- /* for testing scheduler sleep */
- delay = arc4random() % 30;
-#endif
- else if (sched->retry < 4)
- delay = (sched->retry * 15 * 60);
- else if (sched->retry < 8)
- delay = ((sched->retry - 3) * 60 * 60);
+ if (sched->type == D_MTA)
+ delay = 800;
else
- delay = ((sched->retry - 7) * 24 * 60 * 60);
+ delay = 10;
- return (sched->creation + delay);
+ delay = ((delay * sched->retry) * sched->retry) / 2;
+
+ return (sched->creation + delay);
}