From aa2c784b5902691ec56103394c6725d7af6eaaa5 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Wed, 14 Dec 2005 05:27:09 +0000 Subject: [PATCH] windows-registry-20051214 Change all of the daemon check interval values so they can be set via the registry. --- src/WINNT/afsd/cm_daemon.c | 66 +++++++++++++++++++++++++++++++++++--- 1 file changed, 61 insertions(+), 5 deletions(-) diff --git a/src/WINNT/afsd/cm_daemon.c b/src/WINNT/afsd/cm_daemon.c index 6b719f5a5..6e1ce7128 100644 --- a/src/WINNT/afsd/cm_daemon.c +++ b/src/WINNT/afsd/cm_daemon.c @@ -23,16 +23,17 @@ #include #include +#include #include "afsd.h" #include "afsicf.h" /* in seconds */ -long cm_daemonCheckDownInterval = 180; -long cm_daemonCheckUpInterval = 600; -long cm_daemonCheckVolInterval = 3600; -long cm_daemonCheckCBInterval = 60; -long cm_daemonCheckLockInterval = 60; +long cm_daemonCheckDownInterval = 180; +long cm_daemonCheckUpInterval = 600; +long cm_daemonCheckVolInterval = 3600; +long cm_daemonCheckCBInterval = 60; +long cm_daemonCheckLockInterval = 60; long cm_daemonTokenCheckInterval = 180; osi_rwlock_t cm_daemonLock; @@ -173,6 +174,58 @@ IsWindowsFirewallPresent(void) return result; } +void +cm_DaemonCheckInit(void) +{ + HKEY parmKey; + DWORD dummyLen; + DWORD dummy; + DWORD code; + + code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_PARAM_SUBKEY, + 0, KEY_QUERY_VALUE, &parmKey); + if (code) + return; + + dummyLen = sizeof(DWORD); + code = RegQueryValueEx(parmKey, "DownServerCheckInterval", NULL, NULL, + (BYTE *) &dummy, &dummyLen); + if (code == ERROR_SUCCESS) + cm_daemonCheckDownInterval = dummy; + + dummyLen = sizeof(DWORD); + code = RegQueryValueEx(parmKey, "UpServerCheckInterval", NULL, NULL, + (BYTE *) &dummy, &dummyLen); + if (code == ERROR_SUCCESS) + cm_daemonCheckUpInterval = dummy; + + dummyLen = sizeof(DWORD); + code = RegQueryValueEx(parmKey, "VolumeCheckInterval", NULL, NULL, + (BYTE *) &dummy, &dummyLen); + if (code == ERROR_SUCCESS) + cm_daemonCheckVolInterval = dummy; + + dummyLen = sizeof(DWORD); + code = RegQueryValueEx(parmKey, "CallbackCheckInterval", NULL, NULL, + (BYTE *) &dummy, &dummyLen); + if (code == ERROR_SUCCESS) + cm_daemonCheckCBInterval = dummy; + + dummyLen = sizeof(DWORD); + code = RegQueryValueEx(parmKey, "LockCheckInterval", NULL, NULL, + (BYTE *) &dummy, &dummyLen); + if (code == ERROR_SUCCESS) + cm_daemonCheckLockInterval = dummy; + + dummyLen = sizeof(DWORD); + code = RegQueryValueEx(parmKey, "TokenCheckInterval", NULL, NULL, + (BYTE *) &dummy, &dummyLen); + if (code == ERROR_SUCCESS) + cm_daemonTokenCheckInterval = dummy; + + RegCloseKey(parmKey); +} + /* periodic check daemon */ void cm_Daemon(long parm) { @@ -206,8 +259,11 @@ void cm_Daemon(long parm) code = 0; else memcpy(&code, thp->h_addr_list[0], 4); + srand(ntohl(code)); + cm_DaemonCheckInit(); + now = osi_Time(); lastVolCheck = now - cm_daemonCheckVolInterval/2 + (rand() % cm_daemonCheckVolInterval); lastCBExpirationCheck = now - cm_daemonCheckCBInterval/2 + (rand() % cm_daemonCheckCBInterval); -- 2.39.5