summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar David Benjamin <davidben@mit.edu>2013-08-19 05:49:56 -0400
committerGravatar Karl Ramm <kcr@1ts.org>2013-09-28 13:45:17 -0400
commit241ec6e5c75b6872a32c5e05c17ebb4238e120e0 (patch)
tree0e32140698f4707d8027727ca0bef7c92c815b54
parentfa474fe09f89d69a058eb85c863c8778e9dfb77a (diff)
Bump find_or_insert_uid's time limit
Basing it on krb4's CLOCK_SKEW value doesn't make any sense. We pick 900 because it is just over 128 + 256 + 512, the longest group of three timeouts in the retransmit schedule used by the zephyrd. This allows us to miss two packets in a row and still be fine.
-rw-r--r--h/internal.h5
-rw-r--r--lib/Zinternal.c4
2 files changed, 3 insertions, 6 deletions
diff --git a/h/internal.h b/h/internal.h
index 0753e67..93d76ab 100644
--- a/h/internal.h
+++ b/h/internal.h
@@ -19,10 +19,6 @@
#include <hesiod.h>
#endif
-#ifndef HAVE_KRB4
-#define CLOCK_SKEW 300 /* max time to cache packet ids */
-#endif
-
#include <arpa/nameser.h>
#ifdef HAVE_ARPA_NAMESER_COMPAT_H
#include <arpa/nameser_compat.h>
@@ -43,6 +39,7 @@
#define Z_FRAGFUDGE 13 /* Room to for multinotice field */
#define Z_NOTICETIMELIMIT 30 /* Time to wait for fragments */
#define Z_INITFILTERSIZE 30 /* Starting size of uid filter */
+#define Z_FILTERTIMELIMIT 900 /* Max time to cache packet ids */
#define Z_AUTHMODE_NONE 0 /* no authentication */
#define Z_AUTHMODE_KRB4 1 /* authenticate using Kerberos V4 */
diff --git a/lib/Zinternal.c b/lib/Zinternal.c
index ace1a81..07cd342 100644
--- a/lib/Zinternal.c
+++ b/lib/Zinternal.c
@@ -145,9 +145,9 @@ find_or_insert_uid(ZUnique_Id_t *uid,
return 0;
}
- /* Age the uid buffer, discarding any uids older than the clock skew. */
+ /* Age the uid buffer, discarding any uids older than the time limit. */
time(&now);
- while (num && (now - buffer[start % size].t) > CLOCK_SKEW)
+ while (num && (now - buffer[start % size].t) > Z_FILTERTIMELIMIT)
start++, num--;
start %= size;