X-Git-Url: http://git.openafs.org/?p=openafs.git;a=blobdiff_plain;f=src%2FWINNT%2Fafsd%2Fsmb.c;h=6b04d44e01eb9d95e61458e3248b67f845cb3379;hp=10e69c5faac9b0e4cbc73eadf22dcecd3eacbe8f;hb=8e3383a9eacb39a0e90eaabf5c78679c720f8e39;hpb=f2235b4832f9745608cde593daa22fcf79070220 diff --git a/src/WINNT/afsd/smb.c b/src/WINNT/afsd/smb.c index 10e69c5..6b04d44 100644 --- a/src/WINNT/afsd/smb.c +++ b/src/WINNT/afsd/smb.c @@ -1388,36 +1388,40 @@ int smb_FindShareCSCPolicy(char *shareName) { DWORD len; char policy[1024]; - char sbmtpath[256]; - -#ifndef DJGPP - strcpy(sbmtpath, "afsdsbmt.ini"); -#else /* DJGPP */ - strcpy(sbmtpath, cm_confDir); - strcat(sbmtpath, "/afsdsbmt.ini"); -#endif /* !DJGPP */ - len = GetPrivateProfileString("CSC Policy", shareName, "", - policy, sizeof(policy), sbmtpath); - if (len == 0 || len == sizeof(policy) - 1) { - return CSC_POLICY_MANUAL; - } - - if (stricmp(policy, "documents") == 0) + DWORD dwType; + HKEY hkCSCPolicy; + int retval = CSC_POLICY_MANUAL; + + RegCreateKeyEx( HKEY_LOCAL_MACHINE, + "SOFTWARE\\OpenAFS\\Client\\CSCPolicy", + 0, + "AFS", + REG_OPTION_NON_VOLATILE, + KEY_READ, + NULL, + &hkCSCPolicy, + NULL ); + + len = sizeof(policy); + if ( RegQueryValueEx( hkCSCPolicy, shareName, 0, &dwType, policy, &len ) || + len == 0) { + retval = CSC_POLICY_MANUAL; + } + else if (stricmp(policy, "documents") == 0) { - return CSC_POLICY_DOCUMENTS; + retval = CSC_POLICY_DOCUMENTS; } - - if (stricmp(policy, "programs") == 0) + else if (stricmp(policy, "programs") == 0) { - return CSC_POLICY_PROGRAMS; + retval = CSC_POLICY_PROGRAMS; } - - if (stricmp(policy, "disable") == 0) + else if (stricmp(policy, "disable") == 0) { - return CSC_POLICY_DISABLE; + retval = CSC_POLICY_DISABLE; } - return CSC_POLICY_MANUAL; + RegCloseKey(hkCSCPolicy); + return retval; } /* find a dir search structure by cookie value, and return it held.