From: Jeffrey Altman Date: Wed, 8 Aug 2012 20:42:47 +0000 (-0400) Subject: Windows: Freelance Discovery configuration X-Git-Tag: upstream/1.8.0_pre1^2~2105 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=ecb3568210777fab98c51811aecaa1d2a085bc0b;p=packages%2Fo%2Fopenafs.git Windows: Freelance Discovery configuration Add new "FreelanceDiscovery" configuration option to permit Freelance dynroot mode to be used without the automatic discovery of cells and generation of mount points. Change-Id: I5520c3b3e2388b984c7120212d4f0167dc2f2bc3 Reviewed-on: http://gerrit.openafs.org/7950 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- diff --git a/doc/xml/ReleaseNotesWindows/relnotes.xml b/doc/xml/ReleaseNotesWindows/relnotes.xml index e40926036..b62c8e68c 100644 --- a/doc/xml/ReleaseNotesWindows/relnotes.xml +++ b/doc/xml/ReleaseNotesWindows/relnotes.xml @@ -3640,6 +3640,42 @@ Default: 0 Variable: cm_freelanceEnabled Enables freelance client. +
+ Value: FreelanceImportCellServDB + + FreelanceImportCellServDB + + + dynroot + + Regkey: [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters] + Type: DWORD {1,0} + + + Default: 0 + + + Variable: cm_freelanceImportCellServDB + Creates Freelance Mount Points for each cell listed in the CellServDB during startup. +
+
+ Value: FreelanceDiscovery + + FreelanceDiscovery + + + dynroot + + Regkey: [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters] + Type: DWORD {1,0} + + + Default: 1 + + + Variable: cm_freelanceDiscovery + Enables automatic discovery of cell mount points within the Freelance root. +
Value: HideDotFiles diff --git a/src/WINNT/afsd/afsd_init.c b/src/WINNT/afsd/afsd_init.c index 44763cfb6..714ac2a9d 100644 --- a/src/WINNT/afsd/afsd_init.c +++ b/src/WINNT/afsd/afsd_init.c @@ -1073,6 +1073,13 @@ afsd_InitCM(char **reasonP) (BYTE *) &cm_freelanceImportCellServDB, &dummyLen); afsi_log("Freelance client %s import CellServDB", cm_freelanceImportCellServDB ? "does" : "does not"); + + dummyLen = sizeof(cm_freelanceDiscovery); + code = RegQueryValueEx(parmKey, "FreelanceDiscovery", NULL, NULL, + (BYTE *) &cm_freelanceDiscovery, &dummyLen); + afsi_log("Freelance client discovery is %s", + cm_freelanceDiscovery ? "on" : "off"); + #endif /* AFS_FREELANCE_CLIENT */ dummyLen = sizeof(smb_UseUnicode); diff --git a/src/WINNT/afsd/cm_freelance.c b/src/WINNT/afsd/cm_freelance.c index 2a5901481..b55d94287 100644 --- a/src/WINNT/afsd/cm_freelance.c +++ b/src/WINNT/afsd/cm_freelance.c @@ -31,6 +31,7 @@ static cm_localMountPoint_t* cm_localMountPoints; osi_mutex_t cm_Freelance_Lock; static int cm_localMountPointChangeFlag = 0; int cm_freelanceEnabled = 1; +int cm_freelanceDiscovery = 1; int cm_freelanceImportCellServDB = 0; time_t FakeFreelanceModTime = 0x3b49f6e2; diff --git a/src/WINNT/afsd/cm_freelance.h b/src/WINNT/afsd/cm_freelance.h index 6b92f4c4d..39475710e 100644 --- a/src/WINNT/afsd/cm_freelance.h +++ b/src/WINNT/afsd/cm_freelance.h @@ -35,4 +35,5 @@ extern int cm_FakeRootFid(cm_fid_t *fidp); extern time_t FakeFreelanceModTime; extern int cm_freelanceEnabled; extern int cm_freelanceImportCellServDB; +extern int cm_freelanceDiscovery; #endif // _CM_FREELANCE_H diff --git a/src/WINNT/afsd/cm_vnodeops.c b/src/WINNT/afsd/cm_vnodeops.c index 2432edb8a..6a94dfd2d 100644 --- a/src/WINNT/afsd/cm_vnodeops.c +++ b/src/WINNT/afsd/cm_vnodeops.c @@ -1151,7 +1151,7 @@ retry_lookup: notfound: getroot = (dscp==cm_data.rootSCachep) ; if (!rock.found) { - if (!cm_freelanceEnabled || !getroot) { + if (!(cm_freelanceEnabled && cm_freelanceDiscovery) || !getroot) { if (flags & CM_FLAG_CHECKPATH) code = CM_ERROR_NOSUCHPATH; else