afscreds-shortcut-params-20040227
authorJeffrey Altman <jaltman@mit.edu>
Sat, 28 Feb 2004 06:26:05 +0000 (06:26 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Sat, 28 Feb 2004 06:26:05 +0000 (06:26 +0000)
Obtain Shortcut Parameters from Registry Key

   {HKLM, HKCU}\SOFTWARE\OpenAFS\Client
(REG_SZ) AfscredsShortcutParams
   Default value is "-A -M -N -Q" if not found

src/WINNT/client_creds/afskfw.c
src/WINNT/client_creds/shortcut.cpp

index e4f1df1..3e5c3ca 100644 (file)
@@ -457,7 +457,7 @@ KFW_cleanup(void)
         FreeLibrary(hCCAPI);
 }
 
-char OpenAFSConfigKeyName[] = "SOFTWARE\\OpenAFS\\Client";
+static char OpenAFSConfigKeyName[] = "SOFTWARE\\OpenAFS\\Client";
 
 int 
 KFW_is_available(void)
index 811c901..9508dd2 100644 (file)
@@ -41,6 +41,7 @@ void Shortcut_Exit (void)
    CoUninitialize();
 }
 
+static char OpenAFSConfigKeyName[] = "SOFTWARE\\OpenAFS\\Client";
 
 BOOL Shortcut_Create (LPTSTR pszTarget, LPCTSTR pszSource, LPTSTR pszDesc, LPTSTR pszArgs)
 {
@@ -110,12 +111,27 @@ void Shortcut_FixStartup (LPCTSTR pszLinkName, BOOL fAutoStart)
    GetModuleFileName (GetModuleHandle(NULL), szSource, MAX_PATH);
 
    if (fAutoStart)
-      {
-      Shortcut_Create (szShortcut, szSource, "Autostart Authentication Agent", AFSCREDS_SHORTCUT_OPTIONS);
-      }
+   {
+       DWORD code, len, type; 
+       TCHAR szParams[ 64 ] = TEXT(AFSCREDS_SHORTCUT_OPTIONS);
+
+       code = RegOpenKeyEx(HKEY_CURRENT_USER, OpenAFSConfigKeyName,
+                            0, KEY_QUERY_VALUE, &hk);
+       if (code != ERROR_SUCCESS)
+           code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, OpenAFSConfigKeyName,
+                                0, KEY_QUERY_VALUE, &hk);
+       if (code == ERROR_SUCCESS) {
+           len = sizeof(szParams);
+           type = REG_SZ;
+           code = RegQueryValueEx(hk, "AfscredsShortcutParams", NULL, &type,
+                                   (BYTE *) &szParams, &len);
+           RegCloseKey (hk);
+       }
+       Shortcut_Create (szShortcut, szSource, "Autostart Authentication Agent", szParams);
+   }
    else // (!g.fAutoStart)
-      {
+   {
       DeleteFile (szShortcut);
-      }
+   }
 }