[OpenAFS-devel] Patch for WINNT afscreds to add kerberos 5 functionality

Dave Bailey D.Bailey@bristol.ac.uk
Wed, 3 Apr 2002 12:27:32 +0100


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_000_01C1DB02.8BA5A1F0
Content-Type: text/plain;
	charset="iso-8859-1"

Hi all,

Attached is a patch for the WINNT afs credentials GUI utility that adds
support for getting tickets using kerberos 5. 

The new features are disabled by default but can be enabled with the
following registy key:

HKLM\System\CurrentControlSet\Services\TransarcAFSDaemon\Parameters\EnableKe
rberos5

which should be a REG_DWORD value. If the value does not exist or is 0 the
kerberos 5 features are hidden, a non-zero value turns them on.

The patch assumes you have kinit and aklog somewhere on your path and just
attempts to run them. There is a small patch attached for kinit (for the MIT
krb5 1.2.4 distribution) that adds the ability to take a password on the
command line which is needed to make this work.

There are two ways to get a ticket using krb5. The first just takes a
principal, cell and password and attempts the following:

kinit -w password <principal>@<REALM> where <REALM> is just the uppercase
cell name, followed by
aklog -c <cell>

The second allows you to use ms2mit to convert your windows tgt (win2k only)
to an MIT one and then runs aklog. This means you don't have to type a
password in every time but does restrict you to having the same afs and
windows principal names.

Standard AFS authentication works as normal, just don't check the "Use
Kerberos 5" box.

The patch is against the openafs-1.2.3 release. Just go to the top level of
the source tree and

patch -p3 < afscreds.patch

At the moment, the patch only updates the en_US resources as I've not
attempted to do any translation... but the changes are fairly minimal and
should be easy to port over.

The code runs fine on the test system I have here in Bristol, but if there
are any glaring bugs let me know and I'll try to fix 'em.

Cheers,
	Dave


                                              __  _
David Bailey                              .-.'  `; `-._  __  _
Bristol University                       (_,         .-:'  `; `-._
Email: D.Bailey@Bristol.ac.uk          ,'o"(        (_,           )
Tel:   +44 117 9546879                (__,-'      ,'o"(            )>
Fax:   +44 117 9255624                   (       (__,-'            )
                                          `-'._.--._(             )
                                             |||  |||`-'._.--._.-'
                                                        |||  |||


------_=_NextPart_000_01C1DB02.8BA5A1F0
Content-Type: application/octet-stream;
	name="afscreds.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="afscreds.patch"

*** src/WINNT/client_creds/creds.h	Sat Nov  4 10:02:46 2000=0A=
--- /h/openafs-1.2.3/src/WINNT/client_creds/creds.h	Tue Apr  2 14:33:27 =
2002=0A=
***************=0A=
*** 24,30 ****=0A=
  =0A=
  int DestroyCurrentCredentials (LPCTSTR pszCell);=0A=
  =0A=
! int ObtainNewCredentials (LPCTSTR pszCell, LPCTSTR pszUser, LPCTSTR =
pszPassword);=0A=
  =0A=
  int GetDefaultCell (LPTSTR pszCell);=0A=
  =0A=
--- 24,32 ----=0A=
  =0A=
  int DestroyCurrentCredentials (LPCTSTR pszCell);=0A=
  =0A=
! int ObtainNewCredentials (LPCTSTR pszCell, LPCTSTR pszUser, LPCTSTR =
pszPassword, BOOL fUseMit);=0A=
! =0A=
! int ObtainNewCredentialsMs2Mit (void);=0A=
  =0A=
  int GetDefaultCell (LPTSTR pszCell);=0A=
  =0A=
*** src/WINNT/client_creds/afscreds.h	Sat Nov  4 10:02:46 2000=0A=
--- /h/openafs-1.2.3/src/WINNT/client_creds/afscreds.h	Wed Apr  3 =
09:59:37 2002=0A=
***************=0A=
*** 65,70 ****=0A=
--- 65,72 ----=0A=
     TCHAR szUser[ MAX_PATH ];=0A=
     SYSTEMTIME stExpires;=0A=
     BOOL fRemind;=0A=
+    BOOL fUseMit;=0A=
+    BOOL fUseMs2Mit;=0A=
     } CREDS, *LPCREDS;=0A=
  =0A=
  typedef struct=0A=
***************=0A=
*** 77,82 ****=0A=
--- 79,85 ----=0A=
     LPWIZARD pWizard;=0A=
     BOOL fStartup;=0A=
     BOOL fIsWinNT;=0A=
+    BOOL fEnableKrb5;=0A=
     TCHAR szHelpFile[ MAX_PATH ];=0A=
     } GLOBALS;=0A=
  =0A=
***************=0A=
*** 146,151 ****=0A=
--- 149,156 ----=0A=
  =0A=
  void LoadRemind (size_t iCreds);=0A=
  void SaveRemind (size_t iCreds);=0A=
+ void LoadMit    (size_t iCreds);=0A=
+ void SaveMit    (size_t iCreds);=0A=
  =0A=
  void TimeToSystemTime (SYSTEMTIME *pst, time_t TimeT);=0A=
  =0A=
*** src/WINNT/client_creds/credstab.h	Sat Nov  4 10:02:46 2000=0A=
--- /h/openafs-1.2.3/src/WINNT/client_creds/credstab.h	Tue Apr  2 =
13:07:05 2002=0A=
***************=0A=
*** 16,22 ****=0A=
   *=0A=
   */=0A=
  =0A=
! void ShowObtainCreds (BOOL fExpiring, LPTSTR pszCell);=0A=
  =0A=
  BOOL CALLBACK Creds_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM =
lp);=0A=
  =0A=
--- 16,22 ----=0A=
   *=0A=
   */=0A=
  =0A=
! void ShowObtainCreds (BOOL fExpiring, LPTSTR pszCell,BOOL =
fUseMit);=0A=
  =0A=
  BOOL CALLBACK Creds_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM =
lp);=0A=
  =0A=
*** src/WINNT/client_creds/resource.h	Sat Nov  4 10:02:47 2000=0A=
--- /h/openafs-1.2.3/src/WINNT/client_creds/resource.h	Tue Apr  2 =
12:06:32 2002=0A=
***************=0A=
*** 1,150 ****=0A=
! /*=0A=
!  * Copyright 2000, International Business Machines Corporation and =
others.=0A=
!  * All Rights Reserved.=0A=
!  * =0A=
!  * This software has been released under the terms of the IBM =
Public=0A=
!  * License.  For details, see the LICENSE file in the top-level =
source=0A=
!  * directory or online at http://www.openafs.org/dl/license10.html=0A=
!  */=0A=
! =0A=
! #define IDS_TOOLTIP                     1=0A=
! #define IDS_CREDENTIALS                 2=0A=
! #define IDS_UNKNOWN                     3=0A=
! #define IDS_ADVANCED                    4=0A=
! #define IDS_CREDS                       5=0A=
! #define IDS_NO_CREDS                    6=0A=
! #define IDS_SERVICE_BROKEN              9=0A=
! #define IDS_SERVICE_RUNNING             10=0A=
! #define IDS_SERVICE_STOPPED             11=0A=
! #define IDS_SERVICE_STOPPING            12=0A=
! #define IDS_SERVICE_STARTING            13=0A=
! #define IDS_SERVICE_UNKNOWN             14=0A=
! #define IDS_SERVICE_FAIL_STOP           15=0A=
! #define IDS_SERVICE_FAIL_START          16=0A=
! #define IDS_SERVICE_FAIL_CONFIG         17=0A=
! #define IDS_SERVICE_ERROR               18=0A=
! #define IDS_ERROR_TITLE                 19=0A=
! #define IDS_ERROR_DESTROY_NOCM          20=0A=
! #define IDS_ERROR_DESTROY_UNKNOWN       21=0A=
! #define IDS_ERROR_OBTAIN                22=0A=
! #define IDS_TITLE_VERSION               23=0A=
! #define IDS_TITLE_VERSION_NOPATCH       24=0A=
! #define IDS_MOUNT_SOME                  25=0A=
! #define IDS_MOUNT_NONE                  26=0A=
! #define IDS_MOUNT                       27=0A=
! #define IDS_WIZ_NEXT                    28=0A=
! #define IDS_WIZ_FINISH                  29=0A=
! #define IDS_MAP_LETTER                  30=0A=
! #define IDS_DRIVE_MAP                   31=0A=
! #define IDS_ERROR_MAP                   32=0A=
! #define IDS_ERROR_MAP_DESC              33=0A=
! #define IDS_ERROR_UNMAP                 34=0A=
! #define IDS_ERROR_UNMAP_DESC            35=0A=
! #define IDS_CELL_GATEWAY                36=0A=
! #define IDS_BADMAP_TITLE                37=0A=
! #define IDS_BADMAP_DESC                 38=0A=
! #define IDS_UNCONFIG_TITLE              39=0A=
! #define IDS_UNCONFIG_DESC               40=0A=
! #define IDS_NEWSUB_TITLE                41=0A=
! #define IDS_NEWSUB_DESC                 42=0A=
! #define IDS_BADSUB_TITLE                43=0A=
! #define IDS_BADSUB_DESC                 44=0A=
! #define IDS_TITLE_95                    45=0A=
! #define IDS_TOOLTIP_95                  46=0A=
! #define IDS_ERROR_TITLE_95              48=0A=
! #define IDS_ERROR_DESTROY_95            49=0A=
! #define IDS_ERROR_OBTAIN_95             50=0A=
! #define IDS_UNCONFIG_TITLE_95           51=0A=
! #define IDS_UNCONFIG_DESC_95            52=0A=
! #define IDS_NEWSUB_TITLE_95             53=0A=
! #define IDS_BADSUB_TITLE_95             54=0A=
! #define IDI_MAIN                        100=0A=
! #define IDD_MAIN                        101=0A=
! #define IDD_TAB_CREDS                   102=0A=
! #define IDD_TAB_NOCREDS                 103=0A=
! #define MENU_TRAYICON                   104=0A=
! #define IDD_TAB_ADVANCED                104=0A=
! #define IDI_CREDS_NO                    105=0A=
! #define IDI_CREDS_SOME                  106=0A=
! #define IDI_CREDS_YES                   107=0A=
! #define IDD_NEWCREDS                    108=0A=
! #define IDD_NEWCREDS_EXPIRE             109=0A=
! #define IDD_TAB_MOUNT                   110=0A=
! #define IDD_WIZARD                      111=0A=
! #define IDD_WIZ_START                   112=0A=
! #define IDB_WIZ16                       112=0A=
! #define IDD_WIZ_CREDS                   113=0A=
! #define IDB_WIZ256                      113=0A=
! #define IDD_WIZ_STARTING                114=0A=
! #define IDD_WIZ_MOUNT                   115=0A=
! #define IDD_TERMINATE                   116=0A=
! #define IDD_TERMINATE_SMALL             117=0A=
! #define IDD_WIZ_MOUNTING                118=0A=
! #define IDD_WIZ_FINISH                  119=0A=
! #define IDD_MAPPING                     120=0A=
! #define IDD_TERMINATE_SMALL_95          121=0A=
! #define M_TERMINATE                     3000=0A=
! #define M_ACTIVATE                      3001=0A=
! #define M_REMIND                        3002=0A=
! #define M_TERMINATE_NOW                 3003=0A=
! #define IDC_TITLE_AFS                   5000=0A=
! #define IDC_TITLE_VERSION               5001=0A=
! #define IDC_TITLE_NT                    5002=0A=
! #define IDC_TABS                        5003=0A=
! #define IDC_CREDS_CELL                  5004=0A=
! #define IDC_CREDS_INFO                  5005=0A=
! #define IDC_CREDS_REMIND                5006=0A=
! #define IDC_CREDS_DESTROY               5007=0A=
! #define IDC_CREDS_OBTAIN                5008=0A=
! #define IDC_SERVICE_STATUS              5009=0A=
! #define IDC_SERVICE_AUTO                5011=0A=
! #define IDC_SERVICE_LOGIN               5012=0A=
! #define IDC_SERVICE_START               5013=0A=
! #define IDC_SERVICE_STOP                5014=0A=
! #define IDC_NEWCREDS_CELL               5014=0A=
! #define IDC_OPEN_CPL                    5015=0A=
! #define IDC_NEWCREDS_USER               5015=0A=
! #define IDC_NEWCREDS_PASSWORD           5016=0A=
! #define IDC_NEWCREDS_TITLE              5017=0A=
! #define IDC_LIST                        5019=0A=
! #define IDC_TITLE                       5020=0A=
! #define IDC_REMOVE                      5021=0A=
! #define IDC_EDIT                        5022=0A=
! #define IDC_STARTUP                     5022=0A=
! #define IDC_ADD                         5023=0A=
! #define IDC_LHS                         5024=0A=
! #define IDC_RHS                         5025=0A=
! #define IDC_NOCREDS                     5026=0A=
! #define IDC_YESCREDS                    5027=0A=
! #define IDC_START_FAIL                  5029=0A=
! #define IDC_START_TRY                   5030=0A=
! #define IDC_NOMAP                       5031=0A=
! #define IDNEXT                          5032=0A=
! #define IDBACK                          5034=0A=
! #define IDC_YESMAP                      5035=0A=
! #define IDC_MAP_LETTER                  5036=0A=
! #define IDC_MAP_PATH                    5037=0A=
! #define IDC_LEAVE                       5038=0A=
! #define IDC_MAP_DESC                    5038=0A=
! #define IDC_STOP                        5039=0A=
! #define IDC_MAP_FAIL                    5045=0A=
! #define IDC_MAP_TRY                     5046=0A=
! #define IDC_MAP_FINISH                  5047=0A=
! #define IDC_MAP_PERSISTENT              5049=0A=
! #define IDC_RUNNING                     5050=0A=
! #define IDC_STOPPED                     5051=0A=
! #define IDC_STATIC                      -1=0A=
! =0A=
! // Next default values for new objects=0A=
! // =0A=
! #ifdef APSTUDIO_INVOKED=0A=
! #ifndef APSTUDIO_READONLY_SYMBOLS=0A=
! #define _APS_NO_MFC                     1=0A=
! #define _APS_3D_CONTROLS                     1=0A=
! #define _APS_NEXT_RESOURCE_VALUE        122=0A=
! #define _APS_NEXT_COMMAND_VALUE         3004=0A=
! #define _APS_NEXT_CONTROL_VALUE         5053=0A=
! #define _APS_NEXT_SYMED_VALUE           7000=0A=
! #endif=0A=
! #endif=0A=
! =0A=
--- 1,147 ----=0A=
! //{{NO_DEPENDENCIES}}
! // Microsoft Developer Studio generated include file.
! // Used by afscreds.rc
! //
! #define IDS_TOOLTIP                     1
! #define IDS_CREDENTIALS                 2
! #define IDS_UNKNOWN                     3
! #define IDS_ADVANCED                    4
! #define IDS_CREDS                       5
! #define IDS_NO_CREDS                    6
! #define IDS_SERVICE_BROKEN              9
! #define IDS_SERVICE_RUNNING             10
! #define IDS_SERVICE_STOPPED             11
! #define IDS_SERVICE_STOPPING            12
! #define IDS_SERVICE_STARTING            13
! #define IDS_SERVICE_UNKNOWN             14
! #define IDS_SERVICE_FAIL_STOP           15
! #define IDS_SERVICE_FAIL_START          16
! #define IDS_SERVICE_FAIL_CONFIG         17
! #define IDS_SERVICE_ERROR               18
! #define IDS_ERROR_TITLE                 19
! #define IDS_ERROR_DESTROY_NOCM          20
! #define IDS_ERROR_DESTROY_UNKNOWN       21
! #define IDS_ERROR_OBTAIN                22
! #define IDS_TITLE_VERSION               23
! #define IDS_TITLE_VERSION_NOPATCH       24
! #define IDS_MOUNT_SOME                  25
! #define IDS_MOUNT_NONE                  26
! #define IDS_MOUNT                       27
! #define IDS_WIZ_NEXT                    28
! #define IDS_WIZ_FINISH                  29
! #define IDS_MAP_LETTER                  30
! #define IDS_DRIVE_MAP                   31
! #define IDS_ERROR_MAP                   32
! #define IDS_ERROR_MAP_DESC              33
! #define IDS_ERROR_UNMAP                 34
! #define IDS_ERROR_UNMAP_DESC            35
! #define IDS_CELL_GATEWAY                36
! #define IDS_BADMAP_TITLE                37
! #define IDS_BADMAP_DESC                 38
! #define IDS_UNCONFIG_TITLE              39
! #define IDS_UNCONFIG_DESC               40
! #define IDS_NEWSUB_TITLE                41
! #define IDS_NEWSUB_DESC                 42
! #define IDS_BADSUB_TITLE                43
! #define IDS_BADSUB_DESC                 44
! #define IDS_TITLE_95                    45
! #define IDS_TOOLTIP_95                  46
! #define IDS_ERROR_TITLE_95              48
! #define IDS_ERROR_DESTROY_95            49
! #define IDS_ERROR_OBTAIN_95             50
! #define IDS_UNCONFIG_TITLE_95           51
! #define IDS_UNCONFIG_DESC_95            52
! #define IDS_NEWSUB_TITLE_95             53
! #define IDS_BADSUB_TITLE_95             54
! #define IDI_MAIN                        100
! #define IDD_MAIN                        101
! #define IDD_TAB_CREDS                   102
! #define IDD_TAB_NOCREDS                 103
! #define MENU_TRAYICON                   104
! #define IDD_TAB_ADVANCED                104
! #define IDI_CREDS_NO                    105
! #define IDI_CREDS_SOME                  106
! #define IDI_CREDS_YES                   107
! #define IDD_NEWCREDS                    108
! #define IDD_NEWCREDS_EXPIRE             109
! #define IDD_TAB_MOUNT                   110
! #define IDD_WIZARD                      111
! #define IDD_WIZ_START                   112
! #define IDB_WIZ16                       112
! #define IDD_WIZ_CREDS                   113
! #define IDB_WIZ256                      113
! #define IDD_WIZ_STARTING                114
! #define IDD_WIZ_MOUNT                   115
! #define IDD_TERMINATE                   116
! #define IDD_TERMINATE_SMALL             117
! #define IDD_WIZ_MOUNTING                118
! #define IDD_WIZ_FINISH                  119
! #define IDD_MAPPING                     120
! #define IDD_TERMINATE_SMALL_95          121
! #define M_TERMINATE                     3000
! #define M_ACTIVATE                      3001
! #define M_REMIND                        3002
! #define M_TERMINATE_NOW                 3003
! #define IDC_TITLE_AFS                   5000
! #define IDC_TITLE_VERSION               5001
! #define IDC_TITLE_NT                    5002
! #define IDC_TABS                        5003
! #define IDC_CREDS_CELL                  5004
! #define IDC_CREDS_INFO                  5005
! #define IDC_CREDS_REMIND                5006
! #define IDC_CREDS_DESTROY               5007
! #define IDC_CREDS_OBTAIN                5008
! #define IDC_SERVICE_STATUS              5009
! #define IDC_SERVICE_AUTO                5011
! #define IDC_SERVICE_LOGIN               5012
! #define IDC_SERVICE_START               5013
! #define IDC_SERVICE_STOP                5014
! #define IDC_NEWCREDS_CELL               5014
! #define IDC_OPEN_CPL                    5015
! #define IDC_NEWCREDS_USER               5015
! #define IDC_NEWCREDS_PASSWORD           5016
! #define IDC_NEWCREDS_TITLE              5017
! #define IDC_LIST                        5019
! #define IDC_TITLE                       5020
! #define IDC_REMOVE                      5021
! #define IDC_EDIT                        5022
! #define IDC_STARTUP                     5022
! #define IDC_ADD                         5023
! #define IDC_LHS                         5024
! #define IDC_RHS                         5025
! #define IDC_NOCREDS                     5026
! #define IDC_YESCREDS                    5027
! #define IDC_START_FAIL                  5029
! #define IDC_START_TRY                   5030
! #define IDC_NOMAP                       5031
! #define IDNEXT                          5032
! #define IDBACK                          5034
! #define IDC_YESMAP                      5035
! #define IDC_MAP_LETTER                  5036
! #define IDC_MAP_PATH                    5037
! #define IDC_LEAVE                       5038
! #define IDC_MAP_DESC                    5038
! #define IDC_STOP                        5039
! #define IDC_MAP_FAIL                    5045
! #define IDC_MAP_TRY                     5046
! #define IDC_MAP_FINISH                  5047
! #define IDC_MAP_PERSISTENT              5049
! #define IDC_RUNNING                     5050
! #define IDC_STOPPED                     5051
! #define IDC_USEKRB5                     5052
! #define IDC_USEMIT                      5052
! #define IDC_USEMS2MIT                   5053
! #define IDC_STATIC                      -1
!=20
! // Next default values for new objects
! //=20
! #ifdef APSTUDIO_INVOKED
! #ifndef APSTUDIO_READONLY_SYMBOLS
! #define _APS_NO_MFC                     1
! #define _APS_3D_CONTROLS                     1
! #define _APS_NEXT_RESOURCE_VALUE        122
! #define _APS_NEXT_COMMAND_VALUE         3004
! #define _APS_NEXT_CONTROL_VALUE         5061
! #define _APS_NEXT_SYMED_VALUE           7000
! #endif
! #endif
*** src/WINNT/client_creds/afswiz.cpp	Thu Nov 15 03:38:49 2001=0A=
--- /h/openafs-1.2.3/src/WINNT/client_creds/afswiz.cpp	Wed Apr  3 =
10:24:43 2002=0A=
***************=0A=
*** 292,297 ****=0A=
--- 292,307 ----=0A=
           case WM_COMMAND:=0A=
              switch (LOWORD(wp))=0A=
                 {=0A=
+ 	       case IDC_USEMIT:=0A=
+ 		 if (IsDlgButtonChecked (hDlg, IDC_USEMIT))=0A=
+ 		   {=0A=
+ 		     EnableWindow(GetDlgItem(hDlg,IDC_USEMS2MIT),TRUE);=0A=
+ 		   }=0A=
+ 		 else=0A=
+ 		   {=0A=
+ 		     EnableWindow(GetDlgItem(hDlg,IDC_USEMS2MIT),FALSE);=0A=
+ 		   }=0A=
+ 		 break;=0A=
                 case IDNEXT:=0A=
                    if (!IsDlgButtonChecked (hDlg, IDC_YESCREDS))=0A=
                       {=0A=
***************=0A=
*** 308,322 ****=0A=
  =0A=
                       WizCreds_OnEnable (hDlg, FALSE);=0A=
  =0A=
!                      if (ObtainNewCredentials (szCell, szUser, =
szPassword) =3D=3D 0)=0A=
!                         {=0A=
!                         g.pWizard->SetState (STEP_MOUNT);=0A=
!                         }=0A=
!                      else=0A=
!                         {=0A=
!                         WizCreds_OnEnable (hDlg);=0A=
!                         }=0A=
!                      }=0A=
                    break;=0A=
  =0A=
                 case IDC_NOCREDS:=0A=
--- 318,340 ----=0A=
  =0A=
                       WizCreds_OnEnable (hDlg, FALSE);=0A=
  =0A=
! 		     BOOL fKrb5 =3D IsDlgButtonChecked(hDlg, IDC_USEMIT);=0A=
! =0A=
! 		     if (!IsDlgButtonChecked(hDlg, IDC_USEMS2MIT))=0A=
! 		       {=0A=
! 			 if (ObtainNewCredentials (szCell, szUser, szPassword, fKrb5) =
=3D=3D 0)=0A=
! 			   {=0A=
! 			     g.pWizard->SetState (STEP_MOUNT);=0A=
! 			   }=0A=
! 			 else=0A=
! 			   {=0A=
! 			     WizCreds_OnEnable (hDlg);=0A=
! 			   }=0A=
! 		       }=0A=
! 		     else=0A=
! 		       { // To be implemented=0A=
! 		       }=0A=
! 		     }=0A=
                    break;=0A=
  =0A=
                 case IDC_NOCREDS:=0A=
***************=0A=
*** 354,361 ****=0A=
--- 372,384 ----=0A=
     SetDlgItemText (hDlg, IDC_NEWCREDS_USER, szUser);=0A=
     g.pWizard->SetDefaultControl (IDC_NEWCREDS_PASSWORD);=0A=
  =0A=
+    if (!g.fEnableKrb5) =
ShowWindow(GetDlgItem(hDlg,IDC_USEMIT),SW_HIDE);=0A=
+ =0A=
     CheckDlgButton (hDlg, IDC_NOCREDS, FALSE);=0A=
     CheckDlgButton (hDlg, IDC_YESCREDS, TRUE);=0A=
+    EnableWindow(GetDlgItem(hDlg,IDC_USEMIT),TRUE);=0A=
+    CheckDlgButton(hDlg,IDC_USEMIT,FALSE);=0A=
+    EnableWindow(GetDlgItem(hDlg,IDC_USEMS2MIT),FALSE);=0A=
     WizCreds_OnEnable (hDlg);=0A=
  }=0A=
  =0A=
***************=0A=
*** 384,394 ****=0A=
--- 407,419 ----=0A=
  =0A=
     EnableWindow (GetDlgItem (hDlg, IDC_NOCREDS), fAllowEnable);=0A=
     EnableWindow (GetDlgItem (hDlg, IDC_YESCREDS), fAllowEnable);=0A=
+    EnableWindow (GetDlgItem (hDlg, IDC_USEMIT), fAllowEnable);=0A=
  =0A=
     fEnable =3D fAllowEnable && IsDlgButtonChecked (hDlg, =
IDC_YESCREDS);=0A=
     EnableWindow (GetDlgItem (hDlg, IDC_NEWCREDS_CELL), fEnable);=0A=
     EnableWindow (GetDlgItem (hDlg, IDC_NEWCREDS_USER), fEnable);=0A=
     EnableWindow (GetDlgItem (hDlg, IDC_NEWCREDS_PASSWORD), =
fEnable);=0A=
+    EnableWindow (GetDlgItem (hDlg, IDC_USEMIT), fEnable);=0A=
  }=0A=
  =0A=
  =0A=
*** src/WINNT/client_creds/creds.cpp	Sat Nov  4 10:02:46 2000=0A=
--- /h/openafs-1.2.3/src/WINNT/client_creds/creds.cpp	Tue Apr  2 =
16:01:46 2002=0A=
***************=0A=
*** 7,12 ****=0A=
--- 7,14 ----=0A=
   * directory or online at http://www.openafs.org/dl/license10.html=0A=
   */=0A=
  =0A=
+ #include <cstring>=0A=
+ =0A=
  #include "afscreds.h"=0A=
  =0A=
  extern "C" {=0A=
***************=0A=
*** 321,326 ****=0A=
--- 323,329 ----=0A=
           lstrcpy (g.aCreds[ iCreds ].szUser, szUser);=0A=
           memcpy (&g.aCreds[ iCreds ].stExpires, &stExpires, =
sizeof(SYSTEMTIME));=0A=
           LoadRemind (iCreds);=0A=
+ 	 LoadMit (iCreds);=0A=
           }=0A=
        }=0A=
  =0A=
***************=0A=
*** 361,367 ****=0A=
  }=0A=
  =0A=
  =0A=
! int ObtainNewCredentials (LPCTSTR pszCell, LPCTSTR pszUser, LPCTSTR =
pszPassword)=0A=
  {=0A=
     int rc =3D KTC_NOCM;=0A=
     char *Result =3D NULL;=0A=
--- 364,370 ----=0A=
  }=0A=
  =0A=
  =0A=
! int ObtainNewCredentials (LPCTSTR pszCell, LPCTSTR pszUser, LPCTSTR =
pszPassword, BOOL fUseMit)=0A=
  {=0A=
     int rc =3D KTC_NOCM;=0A=
     char *Result =3D NULL;=0A=
***************=0A=
*** 381,399 ****=0A=
        char szPasswordA[ 256 ];=0A=
        CopyStringToAnsi (szPasswordA, pszPassword);=0A=
  =0A=
!       int Expiration =3D 0;=0A=
! =0A=
!       rc =3D ka_UserAuthenticateGeneral(KA_USERAUTH_VERSION, szNameA, =
"", szCellA, szPasswordA, 0, &Expiration, 0, &Result);=0A=
        }=0A=
  =0A=
     if (rc !=3D 0)=0A=
!       {=0A=
        int idsTitle =3D (g.fIsWinNT) ? IDS_ERROR_TITLE : =
IDS_ERROR_TITLE_95;=0A=
        int idsDesc =3D (g.fIsWinNT) ? IDS_ERROR_OBTAIN : =
IDS_ERROR_OBTAIN_95;=0A=
!       Message (MB_ICONHAND | MB_OK, idsTitle, idsDesc, =
TEXT("%s%s%s%ld"), pszCell, pszUser, (Result) ? Result : TEXT(""), =
rc);=0A=
!       }=0A=
  =0A=
!    return rc;=0A=
  }=0A=
  =0A=
  =0A=
--- 384,536 ----=0A=
        char szPasswordA[ 256 ];=0A=
        CopyStringToAnsi (szPasswordA, pszPassword);=0A=
  =0A=
!       if (!fUseMit)=0A=
! 	{=0A=
! 	  int Expiration =3D 0;=0A=
! =0A=
! 	  rc =3D ka_UserAuthenticateGeneral(KA_USERAUTH_VERSION, szNameA, =
"", szCellA, szPasswordA, 0, &Expiration, 0, &Result);=0A=
! 	}=0A=
!       else=0A=
! 	{=0A=
! 	  char szCommandA[1024];=0A=
! 	  char szRealmA[256];=0A=
! 	  STARTUPINFO si;=0A=
! 	  PROCESS_INFORMATION pi;=0A=
! 		  =0A=
! 	  ZeroMemory(szCommandA,sizeof(szCommandA));=0A=
! 	  ZeroMemory(&si,sizeof(STARTUPINFO));=0A=
! 	  ZeroMemory(&pi,sizeof(PROCESS_INFORMATION));=0A=
! =0A=
! 	  rc =3D 0;=0A=
! =0A=
! 	  ::strcpy(szRealmA,szCellA);=0A=
! 	  ::_strupr(szRealmA);=0A=
! 	  ::strcpy(szCommandA,"kinit -w ");=0A=
! 	  ::strcat(szCommandA,szPasswordA);=0A=
! 	  ::strcat(szCommandA," ");=0A=
! 	  ::strcat(szCommandA,szNameA);=0A=
! 	  ::strcat(szCommandA,"@");=0A=
! 	  ::strcat(szCommandA,szRealmA);=0A=
! =0A=
! 	  if (!CreateProcess(NULL,=0A=
! 			     szCommandA,=0A=
! 			     NULL,=0A=
! 			     NULL,=0A=
! 			     FALSE,=0A=
! 			     CREATE_NO_WINDOW,=0A=
! 			     NULL,=0A=
! 			     NULL,=0A=
! 			     &si,=0A=
! 			     &pi))=0A=
! 	    rc =3D 1;=0A=
! 	  else=0A=
! 	    {=0A=
! 	      WaitForSingleObject(pi.hProcess,INFINITE);=0A=
! 	      CloseHandle(pi.hProcess);=0A=
! 	      CloseHandle(pi.hThread);=0A=
! 	    }=0A=
! =0A=
! 	  =0A=
! 	  ZeroMemory(szCommandA,sizeof(szCommandA));=0A=
! 	  ZeroMemory(&si,sizeof(STARTUPINFO));=0A=
! 	  ZeroMemory(&pi,sizeof(PROCESS_INFORMATION));=0A=
! =0A=
! 	  ::strcpy(szCommandA,"aklog -c ");=0A=
! 	  ::strcat(szCommandA,szCellA);=0A=
! =0A=
! 	  if (!CreateProcess(NULL,=0A=
! 			     szCommandA,=0A=
! 			     NULL,=0A=
! 			     NULL,=0A=
! 			     FALSE,=0A=
! 			     CREATE_NO_WINDOW,=0A=
! 			     NULL,=0A=
! 			     NULL,=0A=
! 			     &si,=0A=
! 			     &pi))=0A=
! 	    rc +=3D 10;=0A=
! 	  else=0A=
! 	    {=0A=
! 	      WaitForSingleObject(pi.hProcess,INFINITE);=0A=
! 	      CloseHandle(pi.hProcess);=0A=
! 	      CloseHandle(pi.hThread);=0A=
! 	    }=0A=
! 	}=0A=
        }=0A=
  =0A=
     if (rc !=3D 0)=0A=
!      {=0A=
!        int idsTitle =3D (g.fIsWinNT) ? IDS_ERROR_TITLE : =
IDS_ERROR_TITLE_95;=0A=
!        int idsDesc =3D (g.fIsWinNT) ? IDS_ERROR_OBTAIN : =
IDS_ERROR_OBTAIN_95;=0A=
!        Message (MB_ICONHAND | MB_OK, idsTitle, idsDesc, =
TEXT("%s%s%s%ld"), pszCell, pszUser, (Result) ? Result : TEXT(""), =
rc);=0A=
!      }=0A=
! =0A=
!    return rc;=0A=
! }=0A=
! =0A=
! int ObtainNewCredentialsMs2Mit (void)=0A=
! {=0A=
!   char szCommandA[256];=0A=
!   STARTUPINFO si;=0A=
!   PROCESS_INFORMATION pi;=0A=
!   int rc =3D 0;=0A=
!   =0A=
!   ZeroMemory(szCommandA,sizeof(szCommandA));=0A=
!   ZeroMemory(&si,sizeof(STARTUPINFO));=0A=
!   ZeroMemory(&pi,sizeof(PROCESS_INFORMATION));=0A=
! =0A=
!   ::strcpy(szCommandA,"ms2mit");=0A=
! =0A=
!   if (!CreateProcess(NULL,=0A=
! 		     szCommandA,=0A=
! 		     NULL,=0A=
! 		     NULL,=0A=
! 		     FALSE,=0A=
! 		     CREATE_NO_WINDOW,=0A=
! 		     NULL,=0A=
! 		     NULL,=0A=
! 		     &si,=0A=
! 		     &pi))=0A=
!     rc =3D 1;=0A=
!   else=0A=
!     {=0A=
!       WaitForSingleObject(pi.hProcess,INFINITE);=0A=
!       CloseHandle(pi.hProcess);=0A=
!       CloseHandle(pi.hThread);=0A=
!     }=0A=
! =0A=
!   ZeroMemory(szCommandA,sizeof(szCommandA));=0A=
!   ZeroMemory(&si,sizeof(STARTUPINFO));=0A=
!   ZeroMemory(&pi,sizeof(PROCESS_INFORMATION));=0A=
! =0A=
!   ::strcpy(szCommandA,"aklog");=0A=
! =0A=
!   if (!CreateProcess(NULL,=0A=
! 		     szCommandA,=0A=
! 		     NULL,=0A=
! 		     NULL,=0A=
! 		     FALSE,=0A=
! 		     CREATE_NO_WINDOW,=0A=
! 		     NULL,=0A=
! 		     NULL,=0A=
! 		     &si,=0A=
! 		     &pi))=0A=
!     rc +=3D 10;=0A=
!   else=0A=
!     {=0A=
!       WaitForSingleObject(pi.hProcess,INFINITE);=0A=
!       CloseHandle(pi.hProcess);=0A=
!       CloseHandle(pi.hThread);=0A=
!     }=0A=
! =0A=
!   if (rc !=3D 0)=0A=
!     {=0A=
        int idsTitle =3D (g.fIsWinNT) ? IDS_ERROR_TITLE : =
IDS_ERROR_TITLE_95;=0A=
        int idsDesc =3D (g.fIsWinNT) ? IDS_ERROR_OBTAIN : =
IDS_ERROR_OBTAIN_95;=0A=
!       Message (MB_ICONHAND | MB_OK, idsTitle, idsDesc, TEXT("Error =
authenticating. Code %ld"), rc);=0A=
!     }=0A=
  =0A=
!   return rc;=0A=
  }=0A=
  =0A=
  =0A=
*** src/WINNT/client_creds/credstab.cpp	Sat Nov  4 10:02:46 2000=0A=
--- /h/openafs-1.2.3/src/WINNT/client_creds/credstab.cpp	Wed Apr  3 =
10:22:59 2002=0A=
***************=0A=
*** 7,12 ****=0A=
--- 7,14 ----=0A=
   * directory or online at http://www.openafs.org/dl/license10.html=0A=
   */=0A=
  =0A=
+ #include <cstdlib>=0A=
+ =0A=
  extern "C" {=0A=
  #include <afs/param.h>=0A=
  #include <afs/stds.h>=0A=
***************=0A=
*** 24,36 ****=0A=
  void Creds_OnCheckRemind (HWND hDlg);=0A=
  void Creds_OnClickObtain (HWND hDlg);=0A=
  void Creds_OnClickDestroy (HWND hDlg);=0A=
  =0A=
  BOOL CALLBACK NewCreds_DlgProc (HWND hDlg, UINT msg, WPARAM wp, =
LPARAM lp);=0A=
  void NewCreds_OnInitDialog (HWND hDlg);=0A=
  void NewCreds_OnEnable (HWND hDlg);=0A=
! BOOL NewCreds_OnOK (HWND hDlg);=0A=
  void NewCreds_OnCancel (HWND hDlg);=0A=
  =0A=
  =0A=
  /*=0A=
   * ROUTINES =
___________________________________________________________________=0A=
--- 26,45 ----=0A=
  void Creds_OnCheckRemind (HWND hDlg);=0A=
  void Creds_OnClickObtain (HWND hDlg);=0A=
  void Creds_OnClickDestroy (HWND hDlg);=0A=
+ void Creds_OnCheckUseMit (HWND hDlg);=0A=
+ void Creds_OnCheckUseMs2Mit (HWND hDlg);=0A=
  =0A=
  BOOL CALLBACK NewCreds_DlgProc (HWND hDlg, UINT msg, WPARAM wp, =
LPARAM lp);=0A=
  void NewCreds_OnInitDialog (HWND hDlg);=0A=
  void NewCreds_OnEnable (HWND hDlg);=0A=
! BOOL NewCreds_OnOK (HWND hDlg, BOOL fUseMit);=0A=
  void NewCreds_OnCancel (HWND hDlg);=0A=
  =0A=
+ typedef struct _CredParams {=0A=
+   LPTSTR pszCell;=0A=
+   BOOL fUseMit;=0A=
+ } CredParams, *pCredParams;=0A=
+ =0A=
  =0A=
  /*=0A=
   * ROUTINES =
___________________________________________________________________=0A=
***************=0A=
*** 58,63 ****=0A=
--- 67,80 ----=0A=
                 Creds_OnCheckRemind (hDlg);=0A=
                 break;=0A=
  =0A=
+ 	    case IDC_USEMIT:=0A=
+ 	      Creds_OnCheckUseMit (hDlg);=0A=
+ 	      break;=0A=
+ =0A=
+ 	    case IDC_USEMS2MIT:=0A=
+ 	      Creds_OnCheckUseMs2Mit (hDlg);=0A=
+ 	      break;=0A=
+ =0A=
              case IDC_CREDS_OBTAIN:=0A=
                 Creds_OnClickObtain (hDlg);=0A=
                 break;=0A=
***************=0A=
*** 102,107 ****=0A=
--- 119,161 ----=0A=
        }=0A=
  }=0A=
  =0A=
+ void Creds_OnCheckUseMit (HWND hDlg)=0A=
+ {=0A=
+   LPTSTR pszCell =3D (LPTSTR)GetWindowLong(hDlg, DWL_USER);=0A=
+ =0A=
+   =
EnableWindow(GetDlgItem(hDlg,IDC_USEMS2MIT),IsDlgButtonChecked(hDlg,IDC_=
USEMIT));=0A=
+ =0A=
+   for (size_t iCreds =3D 0; iCreds < g.cCreds; ++iCreds)=0A=
+     {=0A=
+       if (!lstrcmpi (g.aCreds[ iCreds ].szCell, pszCell))=0A=
+ 	break;=0A=
+     }=0A=
+   if (iCreds !=3D g.cCreds)=0A=
+     {=0A=
+       g.aCreds[ iCreds ].fUseMit =3D IsDlgButtonChecked (hDlg, =
IDC_USEMIT);=0A=
+       if (!g.aCreds[ iCreds ].fUseMit) =0A=
+ 	g.aCreds[ iCreds ].fUseMs2Mit =3D FALSE;=0A=
+       else=0A=
+ 	g.aCreds[ iCreds ].fUseMs2Mit =3D IsDlgButtonChecked (hDlg, =
IDC_USEMS2MIT);=0A=
+       SaveMit(iCreds);=0A=
+     }=0A=
+ }=0A=
+ =0A=
+ void Creds_OnCheckUseMs2Mit (HWND hDlg)=0A=
+ {=0A=
+   LPTSTR pszCell =3D (LPTSTR)GetWindowLong(hDlg, DWL_USER);=0A=
+   for (size_t iCreds =3D 0; iCreds < g.cCreds; ++iCreds)=0A=
+     {=0A=
+       if (!lstrcmp (g.aCreds[ iCreds ].szCell, pszCell))=0A=
+ 	break;=0A=
+     }=0A=
+ =0A=
+   if (iCreds !=3D g.cCreds)=0A=
+     {=0A=
+       g.aCreds[ iCreds ].fUseMs2Mit =3D IsDlgButtonChecked (hDlg, =
IDC_USEMS2MIT);=0A=
+       SaveMit (iCreds);=0A=
+     }=0A=
+ }=0A=
  =0A=
  void Creds_OnUpdate (HWND hDlg)=0A=
  {=0A=
***************=0A=
*** 163,168 ****=0A=
--- 217,234 ----=0A=
        }=0A=
  =0A=
     CheckDlgButton (hDlg, IDC_CREDS_REMIND, (iCreds =3D=3D g.cCreds) ? =
FALSE : g.aCreds[iCreds].fRemind);=0A=
+    =0A=
+    if (g.fEnableKrb5) {=0A=
+      CheckDlgButton (hDlg, IDC_USEMIT, (iCreds =3D=3D g.cCreds) ? =
FALSE : g.aCreds[iCreds].fUseMit);=0A=
+      CheckDlgButton (hDlg, IDC_USEMS2MIT, (iCreds =3D=3D g.cCreds) ? =
FALSE : g.aCreds[iCreds].fUseMs2Mit);=0A=
+      EnableWindow   (GetDlgItem(hDlg, IDC_USEMS2MIT), (iCreds =3D=3D =
g.cCreds) ? FALSE : g.aCreds[iCreds].fUseMit);=0A=
+      EnableWindow (GetDlgItem (hDlg, IDC_USEMIT),       (iCreds !=3D =
g.cCreds));=0A=
+    }=0A=
+    else=0A=
+    {=0A=
+      ShowWindow(GetDlgItem(hDlg, IDC_USEMIT), SW_HIDE);=0A=
+      ShowWindow(GetDlgItem(hDlg, IDC_USEMS2MIT), SW_HIDE);=0A=
+    }=0A=
  =0A=
     EnableWindow (GetDlgItem (hDlg, IDC_CREDS_OBTAIN), =
IsServiceRunning());=0A=
     EnableWindow (GetDlgItem (hDlg, IDC_CREDS_REMIND), (iCreds !=3D =
g.cCreds));=0A=
***************=0A=
*** 175,181 ****=0A=
     LPTSTR pszCell =3D (LPTSTR)GetWindowLong (hDlg, DWL_USER);=0A=
  =0A=
     InterlockedIncrement (&g.fShowingMessage);=0A=
!    ShowObtainCreds (FALSE, pszCell);=0A=
  }=0A=
  =0A=
  =0A=
--- 241,255 ----=0A=
     LPTSTR pszCell =3D (LPTSTR)GetWindowLong (hDlg, DWL_USER);=0A=
  =0A=
     InterlockedIncrement (&g.fShowingMessage);=0A=
!    =0A=
!    BOOL fUseMitLocal =3D IsDlgButtonChecked(hDlg,IDC_USEMIT);=0A=
! =0A=
!    if (!(fUseMitLocal && IsDlgButtonChecked(hDlg,IDC_USEMS2MIT)))=0A=
!      ShowObtainCreds (FALSE, pszCell, fUseMitLocal);=0A=
!    else=0A=
!      {=0A=
!        ObtainNewCredentialsMs2Mit();=0A=
!      }=0A=
  }=0A=
  =0A=
  =0A=
***************=0A=
*** 191,217 ****=0A=
  }=0A=
  =0A=
  =0A=
! void ShowObtainCreds (BOOL fExpiring, LPTSTR pszCell)=0A=
  {=0A=
     HWND hParent =3D (IsWindowVisible (g.hMain)) ? g.hMain : NULL;=0A=
  =0A=
     if (fExpiring)=0A=
        {=0A=
!       ModalDialogParam (IDD_NEWCREDS_EXPIRE, hParent, =
(DLGPROC)NewCreds_DlgProc, (LPARAM)pszCell);=0A=
        }=0A=
     else // (!fExpiring)=0A=
        {=0A=
!       ModalDialogParam (IDD_NEWCREDS, hParent, =
(DLGPROC)NewCreds_DlgProc, (LPARAM)pszCell);=0A=
        }=0A=
  }=0A=
  =0A=
  =0A=
  BOOL CALLBACK NewCreds_DlgProc (HWND hDlg, UINT msg, WPARAM wp, =
LPARAM lp)=0A=
  {=0A=
     switch (msg)=0A=
        {=0A=
        case WM_INITDIALOG:=0A=
!          SetWindowLong (hDlg, DWL_USER, lp);=0A=
           NewCreds_OnInitDialog (hDlg);=0A=
           break;=0A=
  =0A=
--- 265,299 ----=0A=
  }=0A=
  =0A=
  =0A=
! void ShowObtainCreds (BOOL fExpiring, LPTSTR pszCell, BOOL =
fUseMit)=0A=
  {=0A=
     HWND hParent =3D (IsWindowVisible (g.hMain)) ? g.hMain : NULL;=0A=
  =0A=
+    static CredParams cpLocalParams;=0A=
+    cpLocalParams.pszCell =3D pszCell;=0A=
+    cpLocalParams.fUseMit =3D fUseMit;=0A=
+ =0A=
     if (fExpiring)=0A=
        {=0A=
!       ModalDialogParam (IDD_NEWCREDS_EXPIRE, hParent, =
(DLGPROC)NewCreds_DlgProc, (LPARAM)&cpLocalParams);=0A=
        }=0A=
     else // (!fExpiring)=0A=
        {=0A=
!       ModalDialogParam (IDD_NEWCREDS, hParent, =
(DLGPROC)NewCreds_DlgProc, (LPARAM)&cpLocalParams);=0A=
        }=0A=
  }=0A=
  =0A=
  =0A=
  BOOL CALLBACK NewCreds_DlgProc (HWND hDlg, UINT msg, WPARAM wp, =
LPARAM lp)=0A=
  {=0A=
+ =0A=
+    static BOOL fUseMit;=0A=
+ =0A=
     switch (msg)=0A=
        {=0A=
        case WM_INITDIALOG:=0A=
! 	 fUseMit =3D ((pCredParams)(lp))->fUseMit;=0A=
!          SetWindowLong (hDlg, DWL_USER, =
LPARAM(((pCredParams)(lp))->pszCell));=0A=
           NewCreds_OnInitDialog (hDlg);=0A=
           break;=0A=
  =0A=
***************=0A=
*** 224,230 ****=0A=
           switch (LOWORD(wp))=0A=
              {=0A=
              case IDOK:=0A=
!                if (NewCreds_OnOK (hDlg))=0A=
                    EndDialog (hDlg, IDOK);=0A=
                 break;=0A=
  =0A=
--- 306,312 ----=0A=
           switch (LOWORD(wp))=0A=
              {=0A=
              case IDOK:=0A=
!                if (NewCreds_OnOK (hDlg, fUseMit))=0A=
                    EndDialog (hDlg, IDOK);=0A=
                 break;=0A=
  =0A=
***************=0A=
*** 238,243 ****=0A=
--- 320,329 ----=0A=
                 NewCreds_OnEnable (hDlg);=0A=
                 break;=0A=
  =0A=
+ 	    case IDC_USEMIT:=0A=
+ 	      fUseMit =3D IsDlgButtonChecked(hDlg,IDC_USEMIT);=0A=
+ 	      break;=0A=
+ =0A=
              case IDHELP:=0A=
                 NewCreds_DlgProc (hDlg, WM_HELP, 0, 0);=0A=
                 break;=0A=
***************=0A=
*** 278,283 ****=0A=
--- 364,371 ----=0A=
        SetDlgItemText (hDlg, IDC_NEWCREDS_CELL, szCell);=0A=
        }=0A=
  =0A=
+    if (!g.fEnableKrb5) =
ShowWindow(GetDlgItem(hDlg,IDC_USEMIT),SW_HIDE);=0A=
+ =0A=
     for (size_t iCreds =3D 0; iCreds < g.cCreds; ++iCreds)=0A=
        {=0A=
        if (*pszCell && !lstrcmpi (g.aCreds[ iCreds ].szCell, =
pszCell))=0A=
***************=0A=
*** 291,296 ****=0A=
--- 379,386 ----=0A=
        {=0A=
        SetDlgItemText (hDlg, IDC_NEWCREDS_USER, g.aCreds[ iCreds =
].szUser);=0A=
        PostMessage (hDlg, WM_NEXTDLGCTL, (WPARAM)GetDlgItem (hDlg, =
IDC_NEWCREDS_PASSWORD), TRUE);=0A=
+       if (g.fEnableKrb5)=0A=
+ 	CheckDlgButton(hDlg,IDC_USEMIT,g.aCreds[ iCreds ].fUseMit ? =
BST_CHECKED : BST_UNCHECKED);=0A=
        }=0A=
  =0A=
     NewCreds_OnEnable (hDlg);=0A=
***************=0A=
*** 316,322 ****=0A=
  }=0A=
  =0A=
  =0A=
! BOOL NewCreds_OnOK (HWND hDlg)=0A=
  {=0A=
     TCHAR szCell[ cchRESOURCE ];=0A=
     GetDlgItemText (hDlg, IDC_NEWCREDS_CELL, szCell, cchRESOURCE);=0A=
--- 406,412 ----=0A=
  }=0A=
  =0A=
  =0A=
! BOOL NewCreds_OnOK (HWND hDlg, BOOL fUseMit)=0A=
  {=0A=
     TCHAR szCell[ cchRESOURCE ];=0A=
     GetDlgItemText (hDlg, IDC_NEWCREDS_CELL, szCell, cchRESOURCE);=0A=
***************=0A=
*** 328,342 ****=0A=
     GetDlgItemText (hDlg, IDC_NEWCREDS_PASSWORD, szPassword, =
cchRESOURCE);=0A=
  =0A=
     int rc;=0A=
!    if ((rc =3D ObtainNewCredentials (szCell, szUser, szPassword)) =
!=3D 0)=0A=
!       {=0A=
!       EnableWindow (GetDlgItem (hDlg, IDOK), TRUE);=0A=
!       EnableWindow (GetDlgItem (hDlg, IDCANCEL), TRUE);=0A=
!       EnableWindow (GetDlgItem (hDlg, IDC_NEWCREDS_CELL), TRUE);=0A=
!       EnableWindow (GetDlgItem (hDlg, IDC_NEWCREDS_USER), TRUE);=0A=
!       EnableWindow (GetDlgItem (hDlg, IDC_NEWCREDS_PASSWORD), =
TRUE);=0A=
!       return FALSE;=0A=
!       }=0A=
  =0A=
     Main_RepopulateTabs (FALSE);=0A=
     return TRUE;=0A=
--- 418,433 ----=0A=
     GetDlgItemText (hDlg, IDC_NEWCREDS_PASSWORD, szPassword, =
cchRESOURCE);=0A=
  =0A=
     int rc;=0A=
! =0A=
!    if ((rc =3D ObtainNewCredentials (szCell, szUser, szPassword, =
fUseMit)) !=3D 0)=0A=
!      {=0A=
!        EnableWindow (GetDlgItem (hDlg, IDOK), TRUE);=0A=
!        EnableWindow (GetDlgItem (hDlg, IDCANCEL), TRUE);=0A=
!        EnableWindow (GetDlgItem (hDlg, IDC_NEWCREDS_CELL), TRUE);=0A=
!        EnableWindow (GetDlgItem (hDlg, IDC_NEWCREDS_USER), TRUE);=0A=
!        EnableWindow (GetDlgItem (hDlg, IDC_NEWCREDS_PASSWORD), =
TRUE);=0A=
!        return FALSE;=0A=
!      }=0A=
  =0A=
     Main_RepopulateTabs (FALSE);=0A=
     return TRUE;=0A=
***************=0A=
*** 353,359 ****=0A=
--- 444,453 ----=0A=
           if (!lstrcmpi (g.aCreds[ iCreds ].szCell, pszCell))=0A=
              {=0A=
              g.aCreds[ iCreds ].fRemind =3D FALSE;=0A=
+ 	    g.aCreds[ iCreds ].fUseMit =3D FALSE;=0A=
+ 	    g.aCreds[ iCreds ].fUseMs2Mit =3D FALSE;=0A=
              SaveRemind (iCreds);=0A=
+ 	    SaveMit (iCreds);=0A=
  =0A=
              // Check the active tab, and fix its checkbox if =
necessary=0A=
              //=0A=
***************=0A=
*** 363,372 ****=0A=
                 {=0A=
                 HWND hDlg =3D GetTabChild (hTab);=0A=
                 if (hDlg)=0A=
!                   CheckDlgButton (hDlg, IDC_CREDS_REMIND, FALSE);=0A=
                 }=0A=
              }=0A=
           }=0A=
        }=0A=
  }=0A=
  =0A=
--- 457,483 ----=0A=
                 {=0A=
                 HWND hDlg =3D GetTabChild (hTab);=0A=
                 if (hDlg)=0A=
! 		 {=0A=
! 		   CheckDlgButton (hDlg, IDC_CREDS_REMIND, FALSE);=0A=
! 		   if (g.fEnableKrb5)=0A=
! 		   {=0A=
! 		     CheckDlgButton (hDlg, IDC_USEMIT, FALSE);=0A=
! 		     CheckDlgButton (hDlg, IDC_USEMS2MIT, FALSE);=0A=
! 		     EnableWindow(GetDlgItem(hDlg,IDC_USEMS2MIT),FALSE);=0A=
! 		   }=0A=
! 		 }=0A=
                 }=0A=
              }=0A=
           }=0A=
        }=0A=
  }=0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
+ =0A=
  =0A=
*** src/WINNT/client_creds/main.cpp	Sun Jan 20 09:09:13 2002=0A=
--- /h/openafs-1.2.3/src/WINNT/client_creds/main.cpp	Wed Apr  3 =
10:04:10 2002=0A=
***************=0A=
*** 195,200 ****=0A=
--- 195,208 ----=0A=
        DWORD dwSize =3D sizeof(g.fStartup);=0A=
        DWORD dwType =3D REG_DWORD;=0A=
        RegQueryValueEx (hk, TEXT("ShowTrayIcon"), NULL, &dwType, =
(PBYTE)&g.fStartup, &dwSize);=0A=
+ =0A=
+       DWORD dwBuffer =3D 0;=0A=
+       g.fEnableKrb5 =3D FALSE;=0A=
+       dwSize =3D sizeof(dwBuffer);=0A=
+       dwType =3D REG_DWORD;=0A=
+       RegQueryValueEx (hk, TEXT("EnableKerberos5"), NULL, &dwType, =
(PBYTE)&dwBuffer, &dwSize);=0A=
+       if (dwBuffer !=3D 0) g.fEnableKrb5 =3D TRUE; =0A=
+ =0A=
        RegCloseKey (hk);=0A=
        }=0A=
  =0A=
*** src/WINNT/client_creds/misc.cpp	Sat Nov  4 10:02:47 2000=0A=
--- /h/openafs-1.2.3/src/WINNT/client_creds/misc.cpp	Sat Mar 30 =
17:17:49 2002=0A=
***************=0A=
*** 63,85 ****=0A=
        DWORD dwSize =3D sizeof(dwValue);=0A=
        DWORD dwType =3D REG_DWORD;=0A=
        if (RegQueryValueEx (hk, g.aCreds[ iCreds ].szCell, NULL, =
&dwType, (PBYTE)&dwValue, &dwSize) =3D=3D 0)=0A=
!          g.aCreds[ iCreds ].fRemind =3D dwValue;=0A=
        RegCloseKey (hk);=0A=
        }=0A=
  }=0A=
  =0A=
  =0A=
  void SaveRemind (size_t iCreds)=0A=
  {=0A=
     HKEY hk;=0A=
!    if (RegCreateKey (REGSTR_BASE, REGSTR_PATH_AFSCREDS, &hk) =3D=3D =
0)=0A=
!       {=0A=
!       DWORD dwValue =3D g.aCreds[ iCreds ].fRemind;=0A=
!       RegSetValueEx (hk, g.aCreds[ iCreds ].szCell, NULL, REG_DWORD, =
(PBYTE)&dwValue, sizeof(DWORD));=0A=
!       RegCloseKey (hk);=0A=
!       }=0A=
  }=0A=
  =0A=
  =0A=
  void TimeToSystemTime (SYSTEMTIME *pst, time_t TimeT)=0A=
  {=0A=
--- 63,160 ----=0A=
        DWORD dwSize =3D sizeof(dwValue);=0A=
        DWORD dwType =3D REG_DWORD;=0A=
        if (RegQueryValueEx (hk, g.aCreds[ iCreds ].szCell, NULL, =
&dwType, (PBYTE)&dwValue, &dwSize) =3D=3D 0)=0A=
!          g.aCreds[ iCreds ].fRemind =3D (dwValue & 0x1);=0A=
        RegCloseKey (hk);=0A=
        }=0A=
  }=0A=
  =0A=
+ void LoadMit (size_t iCreds)=0A=
+ {=0A=
+   g.aCreds[ iCreds ].fUseMit    =3D FALSE;=0A=
+   g.aCreds[ iCreds ].fUseMs2Mit =3D FALSE;=0A=
+ =0A=
+   HKEY hk;=0A=
+   if (RegOpenKey (REGSTR_BASE, REGSTR_PATH_AFSCREDS, &hk) =3D=3D =
0)=0A=
+     {=0A=
+       DWORD dwValue =3D 0;=0A=
+       DWORD dwSize  =3D sizeof(dwValue);=0A=
+       DWORD dwType  =3D REG_DWORD;=0A=
+       if (RegQueryValueEx (hk,g.aCreds[ iCreds ].szCell, NULL, =
&dwType, (PBYTE)&dwValue, &dwSize) =3D=3D 0)=0A=
+ 	{=0A=
+ 	  if ((dwValue & 0x2) !=3D 0) g.aCreds[ iCreds ].fUseMit    =3D =
TRUE;=0A=
+ 	  if ((dwValue & 0x4) !=3D 0) g.aCreds[ iCreds ].fUseMs2Mit =3D =
TRUE;=0A=
+ 	}=0A=
+       RegCloseKey(hk);=0A=
+     }=0A=
+ }=0A=
  =0A=
  void SaveRemind (size_t iCreds)=0A=
  {=0A=
     HKEY hk;=0A=
!    if (RegOpenKey (REGSTR_BASE, REGSTR_PATH_AFSCREDS, &hk) =3D=3D =
0)=0A=
!      {=0A=
!        DWORD dwValue =3D 0;=0A=
!        DWORD dwSize =3D sizeof(dwValue);=0A=
!        DWORD dwType =3D REG_DWORD;=0A=
!        if (RegQueryValueEx(hk,g.aCreds[ iCreds =
].szCell,NULL,&dwType,(PBYTE)&dwValue,&dwSize) =3D=3D 0)=0A=
! 	 {=0A=
! 	   dwValue &=3D 0x6;=0A=
! 	   dwValue |=3D g.aCreds[ iCreds].fRemind;=0A=
! 	   RegSetValueEx(hk, g.aCreds[ iCreds =
].szCell,NULL,REG_DWORD,(PBYTE)&dwValue,sizeof(DWORD));=0A=
! 	 }=0A=
!        else=0A=
! 	 {=0A=
! 	   dwValue =3D g.aCreds[ iCreds ].fRemind;=0A=
! 	   RegSetValueEx(hk,g.aCreds[ iCreds ].szCell, NULL, REG_DWORD, =
(PBYTE)&dwValue, sizeof(DWORD));=0A=
! 	 }=0A=
!        RegCloseKey(hk);=0A=
!      }=0A=
!    else=0A=
!      {=0A=
!        if (RegCreateKey (REGSTR_BASE, REGSTR_PATH_AFSCREDS, &hk) =
=3D=3D 0)=0A=
! 	 {=0A=
! 	   DWORD dwValue =3D g.aCreds[ iCreds ].fRemind;=0A=
! 	   RegSetValueEx (hk, g.aCreds[ iCreds ].szCell, NULL, REG_DWORD, =
(PBYTE)&dwValue, sizeof(DWORD));=0A=
! 	   RegCloseKey (hk);=0A=
! 	 }=0A=
!      }=0A=
  }=0A=
  =0A=
+ void SaveMit (size_t iCreds)=0A=
+ {=0A=
+   HKEY hk;=0A=
+   if (RegOpenKey (REGSTR_BASE, REGSTR_PATH_AFSCREDS, &hk) =3D=3D =
0)=0A=
+     {=0A=
+       DWORD dwValue =3D 0;=0A=
+       DWORD dwSize  =3D sizeof(dwValue);=0A=
+       DWORD dwType  =3D REG_DWORD;=0A=
+       if (RegQueryValueEx(hk,g.aCreds[ iCreds =
].szCell,NULL,&dwType,(PBYTE)&dwValue,&dwSize) =3D=3D 0)=0A=
+ 	{=0A=
+ 	  dwValue &=3D 0x1;=0A=
+ 	  if (g.aCreds[ iCreds ].fUseMit) dwValue |=3D 0x2;=0A=
+ 	  if (g.aCreds[ iCreds ].fUseMs2Mit) dwValue |=3D 0x4;=0A=
+ 	  RegSetValueEx(hk,g.aCreds[ iCreds =
].szCell,NULL,REG_DWORD,(PBYTE)&dwValue,sizeof(DWORD));=0A=
+ 	}=0A=
+       else=0A=
+ 	{=0A=
+ 	  if (g.aCreds[ iCreds ].fUseMit) dwValue |=3D 0x2;=0A=
+ 	  if (g.aCreds[ iCreds ].fUseMs2Mit) dwValue |=3D 0x4;=0A=
+ 	  RegSetValueEx(hk,g.aCreds[ iCreds =
].szCell,NULL,REG_DWORD,(PBYTE)&dwValue,sizeof(DWORD));=0A=
+ 	}=0A=
+       RegCloseKey(hk);=0A=
+     }=0A=
+   else=0A=
+     {=0A=
+       if (RegCreateKey (REGSTR_BASE, REGSTR_PATH_AFSCREDS, &hk) =
=3D=3D 0)=0A=
+ 	{=0A=
+ 	  DWORD dwValue =3D 0;=0A=
+ 	  if (g.aCreds[ iCreds ].fUseMit) dwValue |=3D 0x2;=0A=
+ 	  if (g.aCreds[ iCreds ].fUseMs2Mit) dwValue |=3D 0x4;=0A=
+ 	  RegSetValueEx(hk,g.aCreds[ iCreds =
].szCell,NULL,REG_DWORD,(PBYTE)&dwValue,sizeof(DWORD));=0A=
+ 	  RegCloseKey(hk);=0A=
+ 	}	  =0A=
+     }=0A=
+ }=0A=
  =0A=
  void TimeToSystemTime (SYSTEMTIME *pst, time_t TimeT)=0A=
  {=0A=
*** src/WINNT/client_creds/window.cpp	Sat Nov  4 10:02:48 2000=0A=
--- /h/openafs-1.2.3/src/WINNT/client_creds/window.cpp	Tue Apr  2 =
14:47:45 2002=0A=
***************=0A=
*** 314,320 ****=0A=
        if (InterlockedIncrement (&g.fShowingMessage) !=3D 1)=0A=
           InterlockedDecrement (&g.fShowingMessage);=0A=
        else=0A=
!          ShowObtainCreds (TRUE, g.aCreds[ iExpired ].szCell);=0A=
        }=0A=
  }=0A=
  =0A=
--- 314,330 ----=0A=
        if (InterlockedIncrement (&g.fShowingMessage) !=3D 1)=0A=
           InterlockedDecrement (&g.fShowingMessage);=0A=
        else=0A=
! 	{=0A=
! 	  BOOL fUseMitLocal =3D g.aCreds[ iExpired ].fUseMit;=0A=
! 	  if (!(fUseMitLocal && g.aCreds[ iExpired ].fUseMs2Mit))=0A=
! 	    {=0A=
! 	      ShowObtainCreds (TRUE, g.aCreds[ iExpired =
].szCell,fUseMitLocal);=0A=
! 	    }=0A=
! 	  else=0A=
! 	    {=0A=
! 	      ObtainNewCredentialsMs2Mit();=0A=
! 	    }=0A=
! 	}=0A=
        }=0A=
  }=0A=
  =0A=
*** src/WINNT/client_creds/shortcut.cpp	Sat Nov  4 10:02:48 2000=0A=
--- /h/openafs-1.2.3/src/WINNT/client_creds/shortcut.cpp	Thu Feb 21 =
09:40:33 2002=0A=
***************=0A=
*** 16,21 ****=0A=
--- 16,22 ----=0A=
  #include <initguid.h>=0A=
  #include <windows.h>=0A=
  #include <windowsx.h>=0A=
+ #include <shlguid.h>=0A=
  #include <shlobj.h>=0A=
  #include <shellapi.h>=0A=
  #include "shortcut.h"=0A=
*** src/WINNT/client_creds/lang/en_US/afscreds.rc	Sat Nov  4 10:02:49 =
2000=0A=
--- /h/openafs-1.2.3/src/WINNT/client_creds/lang/en_US/afscreds.rc	Wed =
Apr  3 10:41:26 2002=0A=
***************=0A=
*** 1,569 ****=0A=
! /*=0A=
!  * Copyright 2000, International Business Machines Corporation and =
others.=0A=
!  * All Rights Reserved.=0A=
!  * =0A=
!  * This software has been released under the terms of the IBM =
Public=0A=
!  * License.  For details, see the LICENSE file in the top-level =
source=0A=
!  * directory or online at http://www.openafs.org/dl/license10.html=0A=
!  */=0A=
! =0A=
! #include "resource.h"=0A=
! =0A=
! #define APSTUDIO_READONLY_SYMBOLS=0A=
! =
////////////////////////////////////////////////////////////////////////=
/////=0A=
! //=0A=
! // Generated from the TEXTINCLUDE 2 resource.=0A=
! //=0A=
! #include <windows.h>=0A=
! =0A=
! //////////////////////////////////////////////////////////////////////=
///////=0A=
! #undef APSTUDIO_READONLY_SYMBOLS=0A=
! =0A=
! =
////////////////////////////////////////////////////////////////////////=
/////=0A=
! // English (U.S.) resources=0A=
! =0A=
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)=0A=
! #ifdef _WIN32=0A=
! LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US=0A=
! #pragma code_page(1252)=0A=
! #endif //_WIN32=0A=
! =0A=
! =0A=
! =
////////////////////////////////////////////////////////////////////////=
/////=0A=
! //=0A=
! // Version=0A=
! //=0A=
! =0A=
! #define  AFS_VERINFO_FILE_DESCRIPTION "AFS Client"=0A=
! =0A=
! #include "AFS_component_version_number.h"=0A=
! #include "..\..\config\NTVersioninfo.rc"=0A=
! =0A=
! =0A=
! =
////////////////////////////////////////////////////////////////////////=
/////=0A=
! //=0A=
! // Icon=0A=
! //=0A=
! =0A=
! // Icon with lowest ID value placed first to ensure application =
icon=0A=
! // remains consistent on all systems.=0A=
! IDI_MAIN                ICON    DISCARDABLE     "afscreds.ico"=0A=
! IDI_CREDS_NO            ICON    DISCARDABLE     "creds_3.ico"=0A=
! IDI_CREDS_SOME          ICON    DISCARDABLE     "creds_2.ico"=0A=
! IDI_CREDS_YES           ICON    DISCARDABLE     "creds_1.ico"=0A=
! =0A=
! #ifdef APSTUDIO_INVOKED=0A=
! =
////////////////////////////////////////////////////////////////////////=
/////=0A=
! //=0A=
! // TEXTINCLUDE=0A=
! //=0A=
! =0A=
! 1 TEXTINCLUDE DISCARDABLE =0A=
! BEGIN=0A=
!     "resource.h\0"=0A=
! END=0A=
! =0A=
! 2 TEXTINCLUDE DISCARDABLE =0A=
! BEGIN=0A=
!     "#include <windows.h>\r\n"=0A=
!     "\0"=0A=
! END=0A=
! =0A=
! 3 TEXTINCLUDE DISCARDABLE =0A=
! BEGIN=0A=
!     "\r\n"=0A=
!     "\0"=0A=
! END=0A=
! =0A=
! #endif    // APSTUDIO_INVOKED=0A=
! =0A=
! =0A=
! =
////////////////////////////////////////////////////////////////////////=
/////=0A=
! //=0A=
! // Dialog=0A=
! //=0A=
! =0A=
! IDD_MAIN DIALOG DISCARDABLE  0, 0, 307, 131=0A=
! STYLE DS_SETFOREGROUND | DS_CENTER | WS_POPUP | WS_CAPTION | =
WS_SYSMENU=0A=
! CAPTION "AFS Client"=0A=
! CLASS "AfsCreds"=0A=
! FONT 9, "MS Shell Dlg"=0A=
! BEGIN=0A=
!     RTEXT           "AFS Version %s (patch =
%lu)",IDC_TITLE_VERSION,210,8,90,=0A=
!                     8=0A=
!     LTEXT           "Currently logged on to Windows Networking as =
""%s""",=0A=
!                     IDC_TITLE_NT,7,8,203,8=0A=
!     CONTROL         "",IDC_TABS,"SysTabControl32",0x0,7,27,293,97=0A=
! END=0A=
! =0A=
! IDD_TAB_CREDS DIALOG DISCARDABLE  0, 0, 289, 81=0A=
! STYLE WS_CHILD=0A=
! FONT 9, "MS Shell Dlg"=0A=
! BEGIN=0A=
!     LTEXT           "Cell:     ",IDC_STATIC,7,9,24,8=0A=
!     LTEXT           "(none)",IDC_CREDS_CELL,51,9,193,8=0A=
!     LTEXT           "Tokens:",IDC_STATIC,7,26,27,8=0A=
!     LTEXT           "(none)",IDC_CREDS_INFO,51,26,193,8=0A=
!     CONTROL         "&Show a warning before these tokens expire",=0A=
!                     IDC_CREDS_REMIND,"Button",BS_AUTOCHECKBOX | =
WS_TABSTOP,=0A=
!                     51,43,193,10=0A=
!     PUSHBUTTON      "&Obtain New =
Tokens...",IDC_CREDS_OBTAIN,51,63,88,14=0A=
!     PUSHBUTTON      "&Discard These =
Tokens",IDC_CREDS_DESTROY,142,63,92,14=0A=
!     PUSHBUTTON      "Help",9,237,63,45,14=0A=
! END=0A=
! =0A=
! IDD_TAB_NOCREDS DIALOG DISCARDABLE  0, 0, 289, 81=0A=
! STYLE WS_CHILD=0A=
! FONT 9, "MS Shell Dlg"=0A=
! BEGIN=0A=
!     LTEXT           "You do not have tokens within any AFS cell.",=0A=
!                     IDC_RUNNING,7,9,275,8=0A=
!     LTEXT           "The AFS Client is not configured properly, or =
the AFS Client service is not running.\n\nUse the Advanced tab to start =
the AFS Client service.",=0A=
!                     IDC_STOPPED,7,9,275,25=0A=
!     PUSHBUTTON      "Help",9,237,63,45,14=0A=
!     PUSHBUTTON      "&Obtain New =
Tokens...",IDC_CREDS_OBTAIN,51,63,88,14=0A=
! END=0A=
! =0A=
! IDD_TAB_ADVANCED DIALOG DISCARDABLE  0, 0, 289, 81=0A=
! STYLE WS_CHILD=0A=
! FONT 9, "MS Shell Dlg"=0A=
! BEGIN=0A=
!     LTEXT           "(querying...)",IDC_SERVICE_STATUS,7,9,275,8=0A=
!     PUSHBUTTON      "&Start Service",IDC_SERVICE_START,51,28,63,14=0A=
!     PUSHBUTTON      "S&top Service",IDC_SERVICE_STOP,118,28,63,14=0A=
!     PUSHBUTTON      "&Configure AFS =
Client",IDC_OPEN_CPL,185,28,97,14=0A=
!     CONTROL         "St&art the AFS Client Service whenever this =
computer restarts",=0A=
!                     IDC_SERVICE_AUTO,"Button",BS_AUTOCHECKBOX | =
WS_TABSTOP,7,=0A=
!                     51,204,10=0A=
!     CONTROL         "&Always show the AFS Client icon in the =
taskbar",=0A=
!                     IDC_STARTUP,"Button",BS_AUTOCHECKBOX | =
WS_TABSTOP,7,65,=0A=
!                     204,10=0A=
!     PUSHBUTTON      "Help",9,237,63,45,14=0A=
! END=0A=
! =0A=
! IDD_NEWCREDS DIALOG DISCARDABLE  0, 0, 232, 127=0A=
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU=0A=
! CAPTION "Obtain New AFS Tokens"=0A=
! FONT 9, "MS Shell Dlg"=0A=
! BEGIN=0A=
!     LTEXT           "To obtain new AFS tokens, enter your AFS user =
name and the password for your AFS account. You can have tokens in =
multiple AFS cells simultaneously.",=0A=
!                     IDC_STATIC,7,7,218,24=0A=
!     LTEXT           "AFS &Cell:",IDC_STATIC,24,42,30,8=0A=
!     EDITTEXT        IDC_NEWCREDS_CELL,67,40,132,14,ES_AUTOHSCROLL | =
ES_LOWERCASE=0A=
!     LTEXT           "User &Name:",IDC_STATIC,24,60,38,8=0A=
!     EDITTEXT        IDC_NEWCREDS_USER,67,58,97,14,ES_AUTOHSCROLL=0A=
!     LTEXT           "&Password:",IDC_STATIC,23,78,34,8=0A=
!     EDITTEXT        IDC_NEWCREDS_PASSWORD,67,76,97,14,ES_PASSWORD | =
=0A=
!                     ES_AUTOHSCROLL=0A=
!     DEFPUSHBUTTON   "OK",IDOK,69,106,50,14=0A=
!     PUSHBUTTON      "Cancel",IDCANCEL,122,106,50,14=0A=
!     PUSHBUTTON      "Help",9,175,106,50,14=0A=
! END=0A=
! =0A=
! IDD_NEWCREDS_EXPIRE DIALOG DISCARDABLE  0, 0, 232, 155=0A=
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | =
WS_SYSMENU=0A=
! CAPTION "Obtain New AFS Tokens"=0A=
! FONT 9, "MS Shell Dlg"=0A=
! BEGIN=0A=
!     LTEXT           "To obtain new AFS tokens, enter your AFS user =
name and the password for your AFS account. You can have tokens in =
multiple AFS cells simultaneously.",=0A=
!                     IDC_STATIC,7,29,218,24=0A=
!     LTEXT           "AFS &Cell:",IDC_STATIC,24,70,30,8=0A=
!     EDITTEXT        IDC_NEWCREDS_CELL,67,68,132,14,ES_AUTOHSCROLL | =
ES_LOWERCASE=0A=
!     LTEXT           "User &Name:",IDC_STATIC,24,88,38,8=0A=
!     EDITTEXT        IDC_NEWCREDS_USER,67,86,97,14,ES_AUTOHSCROLL=0A=
!     LTEXT           "&Password:",IDC_STATIC,23,106,34,8=0A=
!     EDITTEXT        IDC_NEWCREDS_PASSWORD,67,104,97,14,ES_PASSWORD | =
=0A=
!                     ES_AUTOHSCROLL=0A=
!     LTEXT           "Your tokens within the %1 cell are about to =
expire.",=0A=
!                     IDC_NEWCREDS_TITLE,7,7,218,16=0A=
!     DEFPUSHBUTTON   "OK",IDOK,69,134,50,14=0A=
!     PUSHBUTTON      "Cancel",IDCANCEL,122,134,50,14=0A=
!     PUSHBUTTON      "Help",9,175,134,50,14=0A=
! END=0A=
! =0A=
! IDD_TAB_MOUNT DIALOG DISCARDABLE  0, 0, 289, 81=0A=
! STYLE WS_CHILD=0A=
! FONT 9, "MS Shell Dlg"=0A=
! BEGIN=0A=
!     LTEXT           "You have chosen to map the following drive =
letters to paths in AFS:",=0A=
!                     IDC_TITLE,7,8,275,8=0A=
!     PUSHBUTTON      "&Add...",IDC_ADD,51,63,45,14=0A=
!     PUSHBUTTON      "&Change...",IDC_EDIT,99,63,45,14=0A=
!     PUSHBUTTON      "&Remove",IDC_REMOVE,147,63,45,14=0A=
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_VSCROLL | =
=0A=
!                     WS_TABSTOP | 0x1d3,51,21,231,37=0A=
!     PUSHBUTTON      "Help",9,237,63,45,14=0A=
! END=0A=
! =0A=
! IDD_WIZARD DIALOGEX 0, 0, 272, 152=0A=
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | =
WS_SYSMENU=0A=
! EXSTYLE WS_EX_CONTROLPARENT=0A=
! CAPTION "AFS Client Wizard"=0A=
! FONT 9, "MS Shell Dlg", 0, 0, 0x1=0A=
! BEGIN=0A=
!     DEFPUSHBUTTON   "&Next >",IDNEXT,162,131,50,14=0A=
!     PUSHBUTTON      "Cance&l",IDCANCEL,215,131,50,14=0A=
!     CONTROL         "",IDC_LHS,"Static",SS_BLACKFRAME,7,7,76,112=0A=
!     CONTROL         "",IDC_RHS,"Static",SS_BLACKFRAME,91,7,174,112=0A=
!     CONTROL         =
"",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,125,258,1=0A=
!     PUSHBUTTON      "&Help",9,59,131,50,14=0A=
!     PUSHBUTTON      "< &Back",IDBACK,112,131,50,14=0A=
! END=0A=
! =0A=
! IDD_WIZ_START DIALOG DISCARDABLE  0, 0, 174, 112=0A=
! STYLE DS_CONTROL | WS_CHILD=0A=
! FONT 9, "MS Shell Dlg"=0A=
! BEGIN=0A=
!     LTEXT           "The AFS Client Service has not yet =
started.",IDC_STATIC,=0A=
!                     0,0,173,8=0A=
!     LTEXT           "To start the AFS Client Service, click =
Next.",=0A=
!                     IDC_STATIC,0,73,173,8=0A=
!     LTEXT           "Until the AFS Client Service is running, you =
will be unable to use files stored in AFS.",=0A=
!                     IDC_STATIC,0,17,173,17=0A=
!     LTEXT           "To leave the AFS Client Service stopped, click =
Cancel.",=0A=
!                     IDC_STATIC,0,88,173,8=0A=
! END=0A=
! =0A=
! IDD_WIZ_CREDS DIALOG DISCARDABLE  0, 0, 174, 112=0A=
! STYLE DS_CONTROL | WS_CHILD=0A=
! FONT 9, "MS Shell Dlg"=0A=
! BEGIN=0A=
!     LTEXT           "The AFS Client Service is now running, but you =
have not yet obtained any tokens for using AFS.",=0A=
!                     IDC_STATIC,0,0,173,16=0A=
!     CONTROL         "Do not obtain tokens for any =
cell",IDC_NOCREDS,"Button",=0A=
!                     BS_AUTORADIOBUTTON,10,28,141,10=0A=
!     CONTROL         "Obtain tokens in the following =
cell:",IDC_YESCREDS,=0A=
!                     "Button",BS_AUTORADIOBUTTON,10,44,141,10=0A=
!     LTEXT           "AFS &Cell:",IDC_STATIC,34,64,30,8=0A=
!     EDITTEXT        IDC_NEWCREDS_CELL,77,62,96,14,ES_AUTOHSCROLL | =
ES_LOWERCASE=0A=
!     LTEXT           "User &Name:",IDC_STATIC,34,82,38,8=0A=
!     EDITTEXT        IDC_NEWCREDS_USER,77,80,96,14,ES_AUTOHSCROLL=0A=
!     LTEXT           "&Password:",IDC_STATIC,33,100,34,8=0A=
!     EDITTEXT        IDC_NEWCREDS_PASSWORD,77,97,96,14,ES_PASSWORD | =
=0A=
!                     ES_AUTOHSCROLL=0A=
! END=0A=
! =0A=
! IDD_WIZ_STARTING DIALOG DISCARDABLE  0, 0, 174, 112=0A=
! STYLE DS_CONTROL | WS_CHILD=0A=
! FONT 9, "MS Shell Dlg"=0A=
! BEGIN=0A=
!     LTEXT           "Please wait; the AFS Client Service is =
starting...",=0A=
!                     IDC_START_TRY,0,33,173,8=0A=
!     LTEXT           "The AFS Client Service could not be =
started.\n\nCheck your network settings, and use the AFS icon in the =
Control Panel to check the configuration of the AFS Client on this =
computer.",=0A=
!                     IDC_START_FAIL,0,25,173,41=0A=
! END=0A=
! =0A=
! IDD_WIZ_MOUNT DIALOG DISCARDABLE  0, 0, 174, 112=0A=
! STYLE DS_CONTROL | WS_CHILD=0A=
! FONT 9, "MS Shell Dlg"=0A=
! BEGIN=0A=
!     LTEXT           "To access files stored in AFS, you must map =
drive letters to paths in AFS.",=0A=
!                     IDC_STATIC,0,0,173,16=0A=
!     CONTROL         "&Do not map any drive letters to paths in =
AFS",=0A=
!                     =
IDC_NOMAP,"Button",BS_AUTORADIOBUTTON,10,23,152,10=0A=
!     CONTROL         "&Map at least one drive letter to a path in =
AFS:",=0A=
!                     =
IDC_YESMAP,"Button",BS_AUTORADIOBUTTON,10,40,156,10=0A=
!     LTEXT           "Drive &Letter:",IDC_STATIC,34,58,40,8=0A=
!     COMBOBOX        IDC_MAP_LETTER,77,56,48,125,CBS_DROPDOWNLIST | =
CBS_SORT | =0A=
!                     WS_VSCROLL | WS_TABSTOP=0A=
!     LTEXT           "AFS &Path:",IDC_STATIC,34,76,33,8=0A=
!     EDITTEXT        IDC_MAP_PATH,77,74,96,14,ES_AUTOHSCROLL=0A=
!     LTEXT           "D&escription:",IDC_STATIC,34,94,38,8=0A=
!     EDITTEXT        IDC_MAP_DESC,77,92,60,14,ES_AUTOHSCROLL=0A=
! END=0A=
! =0A=
! IDD_TERMINATE DIALOGEX 0, 0, 291, 117=0A=
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | =
WS_SYSMENU=0A=
! EXSTYLE WS_EX_CONTROLPARENT=0A=
! CAPTION "AFS Client"=0A=
! FONT 9, "MS Shell Dlg", 0, 0, 0x1=0A=
! BEGIN=0A=
!     PUSHBUTTON      "&Remove Icon",IDOK,167,96,63,14=0A=
!     PUSHBUTTON      "Cance&l",IDCANCEL,234,96,50,14=0A=
!     LTEXT           "You have chosen to remove the AFS Client icon =
from your computer's taskbar. Unless the AFS Client icon is in your =
computer's taskbar, AFS cannot warn you when your AFS tokens are about =
to expire.",=0A=
!                     IDC_STATIC,7,7,277,25=0A=
!     LTEXT           "The AFS Client Service is currently running. If =
you want, you can stop it at this time.",=0A=
!                     IDC_STATIC,7,41,277,8=0A=
!     CONTROL         "&Leave the AFS Client Service =
running",IDC_LEAVE,"Button",=0A=
!                     BS_AUTORADIOBUTTON,26,55,228,10=0A=
!     CONTROL         "&Stop the AFS Client =
Service",IDC_STOP,"Button",=0A=
!                     BS_AUTORADIOBUTTON,26,69,228,10=0A=
!     CONTROL         "S&how the icon when my computer =
restarts",IDC_STARTUP,=0A=
!                     "Button",BS_AUTOCHECKBOX | =
WS_TABSTOP,7,98,148,10=0A=
! END=0A=
! =0A=
! IDD_TERMINATE_SMALL DIALOGEX 0, 0, 291, 68=0A=
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | =
WS_SYSMENU=0A=
! EXSTYLE WS_EX_CONTROLPARENT=0A=
! CAPTION "AFS Client"=0A=
! FONT 9, "MS Shell Dlg", 0, 0, 0x1=0A=
! BEGIN=0A=
!     PUSHBUTTON      "&Remove Icon",IDOK,167,47,63,14=0A=
!     PUSHBUTTON      "Cance&l",IDCANCEL,234,47,50,14=0A=
!     LTEXT           "You have chosen to remove the AFS Client icon =
from your computer's taskbar. Unless the AFS Client icon is in your =
computer's taskbar, AFS cannot warn you when your AFS tokens are about =
to expire.",=0A=
!                     -1,7,7,277,25=0A=
!     CONTROL         "S&how the icon when my computer =
restarts",IDC_STARTUP,=0A=
!                     "Button",BS_AUTOCHECKBOX | =
WS_TABSTOP,7,49,148,10=0A=
! END=0A=
! =0A=
! IDD_TERMINATE_SMALL_95 DIALOGEX 0, 0, 291, 68=0A=
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | =
WS_SYSMENU=0A=
! EXSTYLE WS_EX_CONTROLPARENT=0A=
! CAPTION "AFS Light"=0A=
! FONT 9, "MS Shell Dlg", 0, 0, 0x1=0A=
! BEGIN=0A=
!     PUSHBUTTON      "&Remove Icon",IDOK,167,47,63,14=0A=
!     PUSHBUTTON      "Cance&l",IDCANCEL,234,47,50,14=0A=
!     LTEXT           "You have chosen to remove the AFS Light icon =
from your computer's taskbar. Unless the AFS Light icon is in your =
computer's taskbar, AFS cannot warn you when your AFS tokens are about =
to expire.",=0A=
!                     -1,7,7,277,25=0A=
!     CONTROL         "S&how the icon when my computer =
restarts",IDC_STARTUP,=0A=
!                     "Button",BS_AUTOCHECKBOX | =
WS_TABSTOP,7,49,148,10=0A=
! END=0A=
! =0A=
! IDD_WIZ_MOUNTING DIALOG DISCARDABLE  0, 0, 174, 112=0A=
! STYLE DS_CONTROL | WS_CHILD=0A=
! FONT 9, "MS Shell Dlg"=0A=
! BEGIN=0A=
!     LTEXT           "One or more of the drive letters you have chosen =
could not be mapped to the appropriate paths in AFS.\n\nYou may need to =
close any applications which are already trying to use paths in =
AFS.",=0A=
!                     IDC_MAP_FAIL,1,26,173,41=0A=
!     LTEXT           "Please wait; mapping drive letters to paths in =
AFS...",=0A=
!                     IDC_MAP_TRY,0,33,173,8=0A=
! END=0A=
! =0A=
! IDD_WIZ_FINISH DIALOG DISCARDABLE  0, 0, 174, 112=0A=
! STYLE DS_CONTROL | WS_CHILD=0A=
! FONT 9, "MS Shell Dlg"=0A=
! BEGIN=0A=
!     LTEXT           "The AFS Client is ready for =
use.",IDC_STATIC,0,0,173,8=0A=
!     LTEXT           "To close this wizard, click =
Finish.",IDC_STATIC,0,73,=0A=
!                     173,8=0A=
! END=0A=
! =0A=
! IDD_MAPPING DIALOG DISCARDABLE  0, 0, 275, 152=0A=
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU=0A=
! CAPTION "Map Drive Letter"=0A=
! FONT 9, "MS Shell Dlg"=0A=
! BEGIN=0A=
!     LTEXT           "You can map drive letters on your computer to =
paths in AFS.\n\nFor instance, if you map Q: as =
\\afs\\acme.com\\usr\\bob, then the files available in AFS as =
\\afs\\acme.com\\usr\\bob\\* will be visible in Q:\\",=0A=
!                     IDC_STATIC,7,7,261,32=0A=
!     LTEXT           "Drive &Letter:",IDC_STATIC,23,53,40,8=0A=
!     COMBOBOX        IDC_MAP_LETTER,73,51,56,162,CBS_DROPDOWNLIST | =
CBS_SORT | =0A=
!                     WS_VSCROLL | WS_TABSTOP=0A=
!     LTEXT           "AFS &Path:",IDC_STATIC,23,70,33,8=0A=
!     EDITTEXT        IDC_MAP_PATH,73,68,178,13,ES_AUTOHSCROLL=0A=
!     LTEXT           "D&escription:",IDC_STATIC,23,88,38,8=0A=
!     EDITTEXT        IDC_MAP_DESC,73,86,60,13,ES_AUTOHSCROLL=0A=
!     CONTROL         "&Restore this mapping whenever I logon",=0A=
!                     IDC_MAP_PERSISTENT,"Button",BS_AUTOCHECKBOX | =
WS_TABSTOP,=0A=
!                     73,105,185,10=0A=
!     DEFPUSHBUTTON   "OK",IDOK,112,131,50,14=0A=
!     PUSHBUTTON      "Cancel",IDCANCEL,165,131,50,14=0A=
!     PUSHBUTTON      "Help",9,218,131,50,14=0A=
! END=0A=
! =0A=
! =0A=
! =
////////////////////////////////////////////////////////////////////////=
/////=0A=
! //=0A=
! // DESIGNINFO=0A=
! //=0A=
! =0A=
! #ifdef APSTUDIO_INVOKED=0A=
! GUIDELINES DESIGNINFO DISCARDABLE =0A=
! BEGIN=0A=
!     IDD_MAIN, DIALOG=0A=
!     BEGIN=0A=
!         LEFTMARGIN, 7=0A=
!         RIGHTMARGIN, 300=0A=
!         TOPMARGIN, 8=0A=
!         BOTTOMMARGIN, 124=0A=
!     END=0A=
! =0A=
!     IDD_TAB_CREDS, DIALOG=0A=
!     BEGIN=0A=
!         LEFTMARGIN, 7=0A=
!         RIGHTMARGIN, 282=0A=
!         TOPMARGIN, 9=0A=
!         BOTTOMMARGIN, 77=0A=
!     END=0A=
! =0A=
!     IDD_TAB_NOCREDS, DIALOG=0A=
!     BEGIN=0A=
!         LEFTMARGIN, 7=0A=
!         RIGHTMARGIN, 282=0A=
!         TOPMARGIN, 9=0A=
!         BOTTOMMARGIN, 77=0A=
!     END=0A=
! =0A=
!     IDD_TAB_ADVANCED, DIALOG=0A=
!     BEGIN=0A=
!         LEFTMARGIN, 7=0A=
!         RIGHTMARGIN, 282=0A=
!         TOPMARGIN, 9=0A=
!         BOTTOMMARGIN, 77=0A=
!     END=0A=
! =0A=
!     IDD_NEWCREDS, DIALOG=0A=
!     BEGIN=0A=
!         LEFTMARGIN, 7=0A=
!         RIGHTMARGIN, 225=0A=
!         TOPMARGIN, 7=0A=
!         BOTTOMMARGIN, 120=0A=
!     END=0A=
! =0A=
!     IDD_NEWCREDS_EXPIRE, DIALOG=0A=
!     BEGIN=0A=
!         LEFTMARGIN, 7=0A=
!         RIGHTMARGIN, 225=0A=
!         TOPMARGIN, 7=0A=
!         BOTTOMMARGIN, 148=0A=
!     END=0A=
! =0A=
!     IDD_TAB_MOUNT, DIALOG=0A=
!     BEGIN=0A=
!         LEFTMARGIN, 7=0A=
!         RIGHTMARGIN, 282=0A=
!         TOPMARGIN, 9=0A=
!         BOTTOMMARGIN, 77=0A=
!     END=0A=
! =0A=
!     IDD_WIZARD, DIALOG=0A=
!     BEGIN=0A=
!         LEFTMARGIN, 7=0A=
!         RIGHTMARGIN, 265=0A=
!         TOPMARGIN, 7=0A=
!         BOTTOMMARGIN, 145=0A=
!     END=0A=
! =0A=
!     IDD_TERMINATE, DIALOG=0A=
!     BEGIN=0A=
!         LEFTMARGIN, 7=0A=
!         RIGHTMARGIN, 284=0A=
!         TOPMARGIN, 7=0A=
!         BOTTOMMARGIN, 110=0A=
!     END=0A=
! =0A=
!     IDD_TERMINATE_SMALL, DIALOG=0A=
!     BEGIN=0A=
!         LEFTMARGIN, 7=0A=
!         RIGHTMARGIN, 284=0A=
!         TOPMARGIN, 7=0A=
!         BOTTOMMARGIN, 61=0A=
!     END=0A=
! =0A=
!     IDD_MAPPING, DIALOG=0A=
!     BEGIN=0A=
!         LEFTMARGIN, 7=0A=
!         RIGHTMARGIN, 268=0A=
!         TOPMARGIN, 7=0A=
!         BOTTOMMARGIN, 145=0A=
!     END=0A=
! END=0A=
! #endif    // APSTUDIO_INVOKED=0A=
! =0A=
! =0A=
! =
////////////////////////////////////////////////////////////////////////=
/////=0A=
! //=0A=
! // Menu=0A=
! //=0A=
! =0A=
! MENU_TRAYICON MENU DISCARDABLE =0A=
! BEGIN=0A=
!     MENUITEM "&Show Tokens...",             M_ACTIVATE=0A=
!     MENUITEM "&Warn Before Expiration",     M_REMIND, CHECKED=0A=
!     MENUITEM SEPARATOR=0A=
!     MENUITEM "&Remove Icon",                M_TERMINATE=0A=
! END=0A=
! =0A=
! =0A=
! =
////////////////////////////////////////////////////////////////////////=
/////=0A=
! //=0A=
! // Bitmap=0A=
! //=0A=
! =0A=
! IDB_WIZ16               BITMAP  DISCARDABLE     "wiz16.bmp"=0A=
! IDB_WIZ256              BITMAP  DISCARDABLE     "wiz256.bmp"=0A=
! =0A=
! =
////////////////////////////////////////////////////////////////////////=
/////=0A=
! //=0A=
! // String Table=0A=
! //=0A=
! =0A=
! STRINGTABLE DISCARDABLE =0A=
! BEGIN=0A=
!     IDS_TOOLTIP             "AFS Client"=0A=
!     IDS_TOOLTIP_95          "AFS Light"=0A=
!     IDS_CREDENTIALS         "Tokens"=0A=
!     IDS_UNKNOWN             "(unknown)"=0A=
!     IDS_ADVANCED            "Advanced"=0A=
!     IDS_CREDS               "%1   (tokens expire %2)"=0A=
!     IDS_NO_CREDS            "(you have no tokens in this cell)"=0A=
!     IDS_SERVICE_BROKEN      "The AFS Client Service is not properly =
installed, or you do not have authorization to query its status."=0A=
!     IDS_SERVICE_RUNNING     "The AFS Client Service is running =
normally."=0A=
!     IDS_SERVICE_STOPPED     "The AFS Client Service is currently =
stopped."=0A=
!     IDS_SERVICE_STOPPING    "Please wait; the AFS Client Service is =
stopping..."=0A=
!     IDS_SERVICE_STARTING    "Please wait; the AFS Client Service is =
starting..."=0A=
!     IDS_SERVICE_UNKNOWN     "The status of the AFS Client Service =
could not be determined."=0A=
!     IDS_SERVICE_FAIL_STOP   "The AFS Client Service could not be =
stopped successfully. You might not have authorization to perform this =
operation.\n\nError 0x%1."=0A=
! END=0A=
! =0A=
! STRINGTABLE DISCARDABLE =0A=
! BEGIN=0A=
!     IDS_SERVICE_FAIL_START  "The AFS Client Service could not be =
started successfully. You might not have authorization to perform this =
operation.\n\nError 0x%1."=0A=
!     IDS_SERVICE_FAIL_CONFIG "The AFS Client Service's startup =
parameters could not be changed. You might not have authorization to =
perform this operation.\n\nError 0x%1."=0A=
!     IDS_SERVICE_ERROR       "Error Configuring Service"=0A=
!     IDS_ERROR_TITLE         "Error - AFS Client"=0A=
!     IDS_ERROR_TITLE_95      "Error - AFS Light"=0A=
!     IDS_ERROR_DESTROY_95    "Your tokens in the %1 cell could not be =
destroyed.\n\nError: %2"=0A=
!     IDS_ERROR_DESTROY_NOCM  "Your tokens in the %1 cell could not be =
destroyed because the AFS Client Service is not responding.\n\nCheck =
the Advanced tab to see if the AFS Client is running =
properly.\n\nError: %2"=0A=
!     IDS_ERROR_DESTROY_UNKNOWN =0A=
!                             "Your tokens in the %1 cell could not be =
destroyed.\n\nCheck the Advanced tab to see if the AFS Client is =
running properly.\n\nError: %2"=0A=
!     IDS_ERROR_OBTAIN        "The AFS Client was unable to obtain =
tokens as %2 in cell %1.\n\nError: %4 (%3)"=0A=
!     IDS_ERROR_OBTAIN_95     "AFS Light was unable to obtain tokens as =
%2 in cell %1.\n\nError: %4 (%3)"=0A=
!     IDS_TITLE_VERSION       "AFS Version %s"=0A=
!     IDS_TITLE_VERSION_NOPATCH "AFS Version %s"=0A=
!     IDS_MOUNT_SOME          "You have chosen to map the following =
drive letters to paths in AFS:"=0A=
!     IDS_MOUNT_NONE          "You have not yet chosen to map any drive =
letters to paths in AFS."=0A=
!     IDS_MOUNT               "Drive Letters"=0A=
!     IDS_WIZ_NEXT            "&Next >"=0A=
!     IDS_WIZ_FINISH          "&Finish"=0A=
!     IDS_MAP_LETTER          "Drive *:"=0A=
!     IDS_DRIVE_MAP           "Drive %1: \t%2"=0A=
! END=0A=
! =0A=
! STRINGTABLE DISCARDABLE =0A=
! BEGIN=0A=
!     IDS_ERROR_MAP           "Error Mapping Network Drive"=0A=
!     IDS_ERROR_MAP_DESC      "AFS was unable to map the network drive =
to the specified path in AFS. Check to make sure the drive letter is =
not currently in use.\n\nError: 0x%1."=0A=
!     IDS_ERROR_UNMAP         "Error Mapping Network Drive"=0A=
!     IDS_ERROR_UNMAP_DESC    "AFS was unable to unmap the specified =
network drive. Check to make sure the drive letter is not currently in =
use.\n\nError: 0x%1."=0A=
!     IDS_CELL_GATEWAY        "%s (via gateway %s)"=0A=
!     IDS_BADMAP_TITLE        "Error Mapping Network Drive"=0A=
!     IDS_BADMAP_DESC         "AFS cannot map a drive letter to the =
path specified because the path does not begin with ""\\afs"".\n\nMake =
sure that the path you enter begins with ""\\afs"", and try again."=0A=
!     IDS_UNCONFIG_TITLE_95   "Error - AFS Light"=0A=
!     IDS_UNCONFIG_DESC_95    "AFS Light cannot be used because it is =
not yet configured.\n\nTo configure AFS Light, open the Control Panel =
and double-click on the AFS Light Configuration icon."=0A=
!     IDS_UNCONFIG_TITLE      "Error - AFS Client"=0A=
!     IDS_UNCONFIG_DESC       "The AFS Client cannot be used because it =
is not yet configured.\n\nTo configure the AFS Client, open the Control =
Panel and double-click on the AFS Client icon."=0A=
!     IDS_NEWSUB_TITLE        "Caution - AFS Client"=0A=
!     IDS_NEWSUB_TITLE_95     "Caution - AFS Light"=0A=
!     IDS_NEWSUB_DESC         "AFS was unable to use the description =
you specified when connecting the network drive.\n\nThe specified =
description is already used for a different AFS path."=0A=
!     IDS_BADSUB_TITLE        "Error - AFS Client"=0A=
!     IDS_BADSUB_TITLE_95     "Error - AFS Light"=0A=
!     IDS_BADSUB_DESC         "The drive letter description you entered =
cannot be used.\n\nA drive letter description may have no more than 12 =
characters, and may not contain spaces or tabs."=0A=
!     IDS_TITLE_95            "AFS Light"=0A=
! END=0A=
! =0A=
! #endif    // English (U.S.) resources=0A=
! =
////////////////////////////////////////////////////////////////////////=
/////=0A=
! =0A=
! =0A=
! =0A=
! #ifndef APSTUDIO_INVOKED=0A=
! =
////////////////////////////////////////////////////////////////////////=
/////=0A=
! //=0A=
! // Generated from the TEXTINCLUDE 3 resource.=0A=
! //=0A=
! =0A=
! =0A=
! =
////////////////////////////////////////////////////////////////////////=
/////=0A=
! #endif    // not APSTUDIO_INVOKED=0A=
! =0A=
--- 1,613 ----=0A=
! //Microsoft Developer Studio generated resource script.
! //
! #include "resource.h"
!=20
! #define APSTUDIO_READONLY_SYMBOLS
! =
////////////////////////////////////////////////////////////////////////=
/////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include <windows.h>
!=20
! =
////////////////////////////////////////////////////////////////////////=
/////
! #undef APSTUDIO_READONLY_SYMBOLS
!=20
! =
////////////////////////////////////////////////////////////////////////=
/////
! // English (U.S.) resources
!=20
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
! #ifdef _WIN32
! LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
! #pragma code_page(1252)
! #endif //_WIN32
!=20
! #ifndef _MAC
! =
////////////////////////////////////////////////////////////////////////=
/////
! //
! // Version
! //
!=20
! 1 VERSIONINFO
!  FILEVERSION 0,0,0,0
!  PRODUCTVERSION 0,0,0,0
!  FILEFLAGSMASK 0x0L
! #ifdef _DEBUG
!  FILEFLAGS 0x1L
! #else
!  FILEFLAGS 0x0L
! #endif
!  FILEOS 0x0L
!  FILETYPE 0x0L
!  FILESUBTYPE 0x0L
! BEGIN
!     BLOCK "StringFileInfo"
!     BEGIN
!         BLOCK "040904E4"
!         BEGIN
!             VALUE "CompanyName", "OpenAFS Project\0"
!             VALUE "LegalCopyright", "Copyright =A9 IBM Corporation =
and others, 1998, 1999, 2000, 2001.\0"
!             VALUE "ProductName", "OpenAFS for Windows\0"
!             VALUE "ProductVersion", "1.1\0"
!             VALUE "FileVersion", "1.1\0"
!             VALUE "FileDescription", "AFS Client\0"
!             VALUE "Build", "CML not accessible: No version =
information\0"
!         END
!     END
! END
!=20
! #endif    // !_MAC
!=20
!=20
! =
////////////////////////////////////////////////////////////////////////=
/////
! //
! // Icon
! //
!=20
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! IDI_MAIN                ICON    DISCARDABLE     "afscreds.ico"
! IDI_CREDS_NO            ICON    DISCARDABLE     "creds_3.ico"
! IDI_CREDS_SOME          ICON    DISCARDABLE     "creds_2.ico"
! IDI_CREDS_YES           ICON    DISCARDABLE     "creds_1.ico"
!=20
! #ifdef APSTUDIO_INVOKED
! =
////////////////////////////////////////////////////////////////////////=
/////
! //
! // TEXTINCLUDE
! //
!=20
! 1 TEXTINCLUDE DISCARDABLE=20
! BEGIN
!     "resource.h\0"
! END
!=20
! 2 TEXTINCLUDE DISCARDABLE=20
! BEGIN
!     "#include <windows.h>\r\n"
!     "\0"
! END
!=20
! 3 TEXTINCLUDE DISCARDABLE=20
! BEGIN
!     "\r\n"
!     "\0"
! END
!=20
! #endif    // APSTUDIO_INVOKED
!=20
!=20
! =
////////////////////////////////////////////////////////////////////////=
/////
! //
! // Dialog
! //
!=20
! IDD_MAIN DIALOG DISCARDABLE  0, 0, 307, 158
! STYLE DS_SETFOREGROUND | DS_CENTER | WS_POPUP | WS_CAPTION | =
WS_SYSMENU
! CAPTION "AFS Client"
! CLASS "AfsCreds"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     RTEXT           "AFS Version %s (patch =
%lu)",IDC_TITLE_VERSION,210,8,90,
!                     8
!     LTEXT           "Currently logged on to Windows Networking as =
""%s""",
!                     IDC_TITLE_NT,7,8,203,8
!     CONTROL         "",IDC_TABS,"SysTabControl32",0x0,7,24,293,127
! END
!=20
! IDD_TAB_CREDS DIALOG DISCARDABLE  0, 0, 289, 102
! STYLE WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Cell:     ",IDC_STATIC,7,9,24,8
!     LTEXT           "(none)",IDC_CREDS_CELL,51,9,193,8
!     LTEXT           "Tokens:",IDC_STATIC,7,26,27,8
!     LTEXT           "(none)",IDC_CREDS_INFO,51,26,193,8
!     CONTROL         "&Show a warning before these tokens expire",
!                     IDC_CREDS_REMIND,"Button",BS_AUTOCHECKBOX | =
WS_TABSTOP,
!                     51,43,193,10
!     PUSHBUTTON      "&Obtain New =
Tokens...",IDC_CREDS_OBTAIN,51,84,88,14
!     PUSHBUTTON      "&Discard These =
Tokens",IDC_CREDS_DESTROY,142,84,92,14
!     PUSHBUTTON      "Help",9,237,84,45,14
!     CONTROL         "Use Kerberos =
5",IDC_USEMIT,"Button",BS_AUTOCHECKBOX |=20
!                     WS_TABSTOP,51,56,65,10
!     CONTROL         "Use =
ms2mit",IDC_USEMS2MIT,"Button",BS_AUTOCHECKBOX |=20
!                     WS_DISABLED | WS_TABSTOP,60,68,54,10
! END
!=20
! IDD_TAB_NOCREDS DIALOG DISCARDABLE  0, 0, 289, 98
! STYLE WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "You do not have tokens within any AFS cell.",
!                     IDC_RUNNING,7,9,275,8
!     LTEXT           "The AFS Client is not configured properly, or =
the AFS Client service is not running.\n\nUse the Advanced tab to start =
the AFS Client service.",
!                     IDC_STOPPED,7,9,275,25
!     PUSHBUTTON      "Help",9,233,77,45,14
!     PUSHBUTTON      "&Obtain New =
Tokens...",IDC_CREDS_OBTAIN,51,77,88,14
!     CONTROL         "Use Kerberos =
5",IDC_USEMIT,"Button",BS_AUTOCHECKBOX |=20
!                     WS_TABSTOP,24,38,65,10
!     CONTROL         "Use =
ms2mit",IDC_USEMS2MIT,"Button",BS_AUTOCHECKBOX |=20
!                     WS_DISABLED | WS_TABSTOP,34,51,54,10
! END
!=20
! IDD_TAB_ADVANCED DIALOG DISCARDABLE  0, 0, 289, 81
! STYLE WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "(querying...)",IDC_SERVICE_STATUS,7,9,275,8
!     PUSHBUTTON      "&Start Service",IDC_SERVICE_START,51,28,63,14
!     PUSHBUTTON      "S&top Service",IDC_SERVICE_STOP,118,28,63,14
!     PUSHBUTTON      "&Configure AFS Client",IDC_OPEN_CPL,185,28,97,14
!     CONTROL         "St&art the AFS Client Service whenever this =
computer restarts",
!                     IDC_SERVICE_AUTO,"Button",BS_AUTOCHECKBOX | =
WS_TABSTOP,7,
!                     51,204,10
!     CONTROL         "&Always show the AFS Client icon in the =
taskbar",
!                     IDC_STARTUP,"Button",BS_AUTOCHECKBOX | =
WS_TABSTOP,7,65,
!                     204,10
!     PUSHBUTTON      "Help",9,237,63,45,14
! END
!=20
! IDD_NEWCREDS DIALOG DISCARDABLE  0, 0, 232, 127
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "Obtain New AFS Tokens"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "To obtain new AFS tokens, enter your AFS user =
name and the password for your AFS account. You can have tokens in =
multiple AFS cells simultaneously.",
!                     IDC_STATIC,7,7,218,24
!     LTEXT           "AFS &Cell:",IDC_STATIC,24,42,30,8
!     EDITTEXT        IDC_NEWCREDS_CELL,67,40,132,14,ES_LOWERCASE |=20
!                     ES_AUTOHSCROLL
!     LTEXT           "User &Name:",IDC_STATIC,24,60,38,8
!     EDITTEXT        IDC_NEWCREDS_USER,67,58,97,14,ES_AUTOHSCROLL
!     LTEXT           "&Password:",IDC_STATIC,23,78,34,8
!     EDITTEXT        IDC_NEWCREDS_PASSWORD,67,76,97,14,ES_PASSWORD |=20
!                     ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "OK",IDOK,69,106,50,14
!     PUSHBUTTON      "Cancel",IDCANCEL,122,106,50,14
!     PUSHBUTTON      "Help",9,175,106,50,14
! END
!=20
! IDD_NEWCREDS_EXPIRE DIALOG DISCARDABLE  0, 0, 232, 155
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "Obtain New AFS Tokens"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "To obtain new AFS tokens, enter your AFS user =
name and the password for your AFS account. You can have tokens in =
multiple AFS cells simultaneously.",
!                     IDC_STATIC,7,29,218,24
!     LTEXT           "AFS &Cell:",IDC_STATIC,24,64,30,8
!     EDITTEXT        IDC_NEWCREDS_CELL,67,62,132,14,ES_LOWERCASE |=20
!                     ES_AUTOHSCROLL
!     LTEXT           "User &Name:",IDC_STATIC,24,82,38,8
!     EDITTEXT        IDC_NEWCREDS_USER,67,80,97,14,ES_AUTOHSCROLL
!     LTEXT           "&Password:",IDC_STATIC,23,100,34,8
!     EDITTEXT        IDC_NEWCREDS_PASSWORD,67,98,97,14,ES_PASSWORD |=20
!                     ES_AUTOHSCROLL
!     LTEXT           "Your tokens within the %1 cell are about to =
expire.",
!                     IDC_NEWCREDS_TITLE,7,7,218,16
!     DEFPUSHBUTTON   "OK",IDOK,69,134,50,14
!     PUSHBUTTON      "Cancel",IDCANCEL,122,134,50,14
!     PUSHBUTTON      "Help",9,175,134,50,14
!     CONTROL         "Use Kerberos =
5",IDC_USEMIT,"Button",BS_AUTOCHECKBOX |=20
!                     WS_TABSTOP,23,119,65,10
! END
!=20
! IDD_TAB_MOUNT DIALOG DISCARDABLE  0, 0, 289, 81
! STYLE WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "You have chosen to map the following drive =
letters to paths in AFS:",
!                     IDC_TITLE,7,8,275,8
!     PUSHBUTTON      "&Add...",IDC_ADD,51,63,45,14
!     PUSHBUTTON      "&Change...",IDC_EDIT,99,63,45,14
!     PUSHBUTTON      "&Remove",IDC_REMOVE,147,63,45,14
!     CONTROL         "",IDC_LIST,"CheckList",WS_BORDER | WS_VSCROLL |=20
!                     WS_TABSTOP | 0x1d3,51,21,231,37
!     PUSHBUTTON      "Help",9,237,63,45,14
! END
!=20
! IDD_WIZARD DIALOGEX 0, 0, 271, 185
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
! EXSTYLE WS_EX_CONTROLPARENT
! CAPTION "AFS Client Wizard"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     DEFPUSHBUTTON   "&Next >",IDNEXT,162,164,50,14
!     PUSHBUTTON      "Cance&l",IDCANCEL,214,164,50,14
!     CONTROL         "",IDC_LHS,"Static",SS_BLACKFRAME,7,7,76,112
!     CONTROL         "",IDC_RHS,"Static",SS_BLACKFRAME,90,7,174,146
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,156,257,1
!     PUSHBUTTON      "&Help",9,59,164,50,14
!     PUSHBUTTON      "< &Back",IDBACK,112,164,50,14
! END
!=20
! IDD_WIZ_START DIALOG DISCARDABLE  0, 0, 174, 112
! STYLE DS_CONTROL | WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "The AFS Client Service has not yet =
started.",IDC_STATIC,
!                     0,0,173,8
!     LTEXT           "To start the AFS Client Service, click Next.",
!                     IDC_STATIC,0,73,173,8
!     LTEXT           "Until the AFS Client Service is running, you =
will be unable to use files stored in AFS.",
!                     IDC_STATIC,0,17,173,17
!     LTEXT           "To leave the AFS Client Service stopped, click =
Cancel.",
!                     IDC_STATIC,0,88,173,8
! END
!=20
! IDD_WIZ_CREDS DIALOG DISCARDABLE  0, 0, 174, 142
! STYLE DS_CONTROL | WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "The AFS Client Service is now running, but you =
have not yet obtained any tokens for using AFS.",
!                     IDC_STATIC,0,0,173,16
!     CONTROL         "Do not obtain tokens for any =
cell",IDC_NOCREDS,"Button",
!                     BS_AUTORADIOBUTTON,10,28,141,10
!     CONTROL         "Obtain tokens in the following =
cell:",IDC_YESCREDS,
!                     "Button",BS_AUTORADIOBUTTON,10,44,141,10
!     LTEXT           "AFS &Cell:",IDC_STATIC,34,91,30,8
!     EDITTEXT        IDC_NEWCREDS_CELL,77,89,96,14,ES_LOWERCASE |=20
!                     ES_AUTOHSCROLL
!     LTEXT           "User &Name:",IDC_STATIC,34,109,38,8
!     EDITTEXT        IDC_NEWCREDS_USER,77,107,96,14,ES_AUTOHSCROLL
!     LTEXT           "&Password:",IDC_STATIC,33,127,34,8
!     EDITTEXT        IDC_NEWCREDS_PASSWORD,77,124,96,14,ES_PASSWORD |=20
!                     ES_AUTOHSCROLL
!     CONTROL         "Use Kerberos =
5",IDC_USEMIT,"Button",BS_AUTOCHECKBOX |=20
!                     WS_TABSTOP,21,58,65,10
!     CONTROL         "Use =
ms2mit",IDC_USEMS2MIT,"Button",BS_AUTOCHECKBOX |=20
!                     WS_DISABLED | WS_TABSTOP,34,72,54,10
! END
!=20
! IDD_WIZ_STARTING DIALOG DISCARDABLE  0, 0, 174, 112
! STYLE DS_CONTROL | WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Please wait; the AFS Client Service is =
starting...",
!                     IDC_START_TRY,0,33,173,8
!     LTEXT           "The AFS Client Service could not be =
started.\n\nCheck your network settings, and use the AFS icon in the =
Control Panel to check the configuration of the AFS Client on this =
computer.",
!                     IDC_START_FAIL,0,25,173,41
! END
!=20
! IDD_WIZ_MOUNT DIALOG DISCARDABLE  0, 0, 174, 112
! STYLE DS_CONTROL | WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "To access files stored in AFS, you must map =
drive letters to paths in AFS.",
!                     IDC_STATIC,0,0,173,16
!     CONTROL         "&Do not map any drive letters to paths in AFS",
!                     =
IDC_NOMAP,"Button",BS_AUTORADIOBUTTON,10,23,152,10
!     CONTROL         "&Map at least one drive letter to a path in =
AFS:",
!                     =
IDC_YESMAP,"Button",BS_AUTORADIOBUTTON,10,40,156,10
!     LTEXT           "Drive &Letter:",IDC_STATIC,34,58,40,8
!     COMBOBOX        IDC_MAP_LETTER,77,56,48,125,CBS_DROPDOWNLIST | =
CBS_SORT |=20
!                     WS_VSCROLL | WS_TABSTOP
!     LTEXT           "AFS &Path:",IDC_STATIC,34,76,33,8
!     EDITTEXT        IDC_MAP_PATH,77,74,96,14,ES_AUTOHSCROLL
!     LTEXT           "D&escription:",IDC_STATIC,34,94,38,8
!     EDITTEXT        IDC_MAP_DESC,77,92,60,14,ES_AUTOHSCROLL
! END
!=20
! IDD_TERMINATE DIALOGEX 0, 0, 291, 117
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
! EXSTYLE WS_EX_CONTROLPARENT
! CAPTION "AFS Client"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     PUSHBUTTON      "&Remove Icon",IDOK,167,96,63,14
!     PUSHBUTTON      "Cance&l",IDCANCEL,234,96,50,14
!     LTEXT           "You have chosen to remove the AFS Client icon =
from your computer's taskbar. Unless the AFS Client icon is in your =
computer's taskbar, AFS cannot warn you when your AFS tokens are about =
to expire.",
!                     IDC_STATIC,7,7,277,25
!     LTEXT           "The AFS Client Service is currently running. If =
you want, you can stop it at this time.",
!                     IDC_STATIC,7,41,277,8
!     CONTROL         "&Leave the AFS Client Service =
running",IDC_LEAVE,"Button",
!                     BS_AUTORADIOBUTTON,26,55,228,10
!     CONTROL         "&Stop the AFS Client Service",IDC_STOP,"Button",
!                     BS_AUTORADIOBUTTON,26,69,228,10
!     CONTROL         "S&how the icon when my computer =
restarts",IDC_STARTUP,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,98,148,10
! END
!=20
! IDD_TERMINATE_SMALL DIALOGEX 0, 0, 291, 68
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
! EXSTYLE WS_EX_CONTROLPARENT
! CAPTION "AFS Client"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     PUSHBUTTON      "&Remove Icon",IDOK,167,47,63,14
!     PUSHBUTTON      "Cance&l",IDCANCEL,234,47,50,14
!     LTEXT           "You have chosen to remove the AFS Client icon =
from your computer's taskbar. Unless the AFS Client icon is in your =
computer's taskbar, AFS cannot warn you when your AFS tokens are about =
to expire.",
!                     -1,7,7,277,25
!     CONTROL         "S&how the icon when my computer =
restarts",IDC_STARTUP,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,49,148,10
! END
!=20
! IDD_TERMINATE_SMALL_95 DIALOGEX 0, 0, 291, 68
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
! EXSTYLE WS_EX_CONTROLPARENT
! CAPTION "AFS Light"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     PUSHBUTTON      "&Remove Icon",IDOK,167,47,63,14
!     PUSHBUTTON      "Cance&l",IDCANCEL,234,47,50,14
!     LTEXT           "You have chosen to remove the AFS Light icon =
from your computer's taskbar. Unless the AFS Light icon is in your =
computer's taskbar, AFS cannot warn you when your AFS tokens are about =
to expire.",
!                     -1,7,7,277,25
!     CONTROL         "S&how the icon when my computer =
restarts",IDC_STARTUP,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,49,148,10
! END
!=20
! IDD_WIZ_MOUNTING DIALOG DISCARDABLE  0, 0, 174, 112
! STYLE DS_CONTROL | WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "One or more of the drive letters you have chosen =
could not be mapped to the appropriate paths in AFS.\n\nYou may need to =
close any applications which are already trying to use paths in AFS.",
!                     IDC_MAP_FAIL,1,26,173,41
!     LTEXT           "Please wait; mapping drive letters to paths in =
AFS...",
!                     IDC_MAP_TRY,0,33,173,8
! END
!=20
! IDD_WIZ_FINISH DIALOG DISCARDABLE  0, 0, 174, 112
! STYLE DS_CONTROL | WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "The AFS Client is ready for =
use.",IDC_STATIC,0,0,173,8
!     LTEXT           "To close this wizard, click =
Finish.",IDC_STATIC,0,73,
!                     173,8
! END
!=20
! IDD_MAPPING DIALOG DISCARDABLE  0, 0, 275, 152
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "Map Drive Letter"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "You can map drive letters on your computer to =
paths in AFS.\n\nFor instance, if you map Q: as =
\\afs\\acme.com\\usr\\bob, then the files available in AFS as =
\\afs\\acme.com\\usr\\bob\\* will be visible in Q:\\",
!                     IDC_STATIC,7,7,261,32
!     LTEXT           "Drive &Letter:",IDC_STATIC,23,53,40,8
!     COMBOBOX        IDC_MAP_LETTER,73,51,56,162,CBS_DROPDOWNLIST | =
CBS_SORT |=20
!                     WS_VSCROLL | WS_TABSTOP
!     LTEXT           "AFS &Path:",IDC_STATIC,23,70,33,8
!     EDITTEXT        IDC_MAP_PATH,73,68,178,13,ES_AUTOHSCROLL
!     LTEXT           "D&escription:",IDC_STATIC,23,88,38,8
!     EDITTEXT        IDC_MAP_DESC,73,86,60,13,ES_AUTOHSCROLL
!     CONTROL         "&Restore this mapping whenever I logon",
!                     IDC_MAP_PERSISTENT,"Button",BS_AUTOCHECKBOX | =
WS_TABSTOP,
!                     73,105,185,10
!     DEFPUSHBUTTON   "OK",IDOK,112,131,50,14
!     PUSHBUTTON      "Cancel",IDCANCEL,165,131,50,14
!     PUSHBUTTON      "Help",9,218,131,50,14
! END
!=20
!=20
! =
////////////////////////////////////////////////////////////////////////=
/////
! //
! // DESIGNINFO
! //
!=20
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE=20
! BEGIN
!     IDD_MAIN, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 300
!         TOPMARGIN, 8
!         BOTTOMMARGIN, 151
!     END
!=20
!     IDD_TAB_CREDS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 282
!         TOPMARGIN, 9
!         BOTTOMMARGIN, 98
!     END
!=20
!     IDD_TAB_NOCREDS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 282
!         TOPMARGIN, 9
!         BOTTOMMARGIN, 94
!     END
!=20
!     IDD_TAB_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 282
!         TOPMARGIN, 9
!         BOTTOMMARGIN, 77
!     END
!=20
!     IDD_NEWCREDS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 225
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 120
!     END
!=20
!     IDD_NEWCREDS_EXPIRE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 225
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 148
!     END
!=20
!     IDD_TAB_MOUNT, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 282
!         TOPMARGIN, 9
!         BOTTOMMARGIN, 77
!     END
!=20
!     IDD_WIZARD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 264
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 178
!     END
!=20
!     IDD_WIZ_CREDS, DIALOG
!     BEGIN
!         BOTTOMMARGIN, 112
!     END
!=20
!     IDD_TERMINATE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 284
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 110
!     END
!=20
!     IDD_TERMINATE_SMALL, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 284
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 61
!     END
!=20
!     IDD_MAPPING, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 268
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 145
!     END
! END
! #endif    // APSTUDIO_INVOKED
!=20
!=20
! =
////////////////////////////////////////////////////////////////////////=
/////
! //
! // Menu
! //
!=20
! MENU_TRAYICON MENU DISCARDABLE=20
! BEGIN
!     MENUITEM "&Show Tokens...",             M_ACTIVATE
!     MENUITEM "&Warn Before Expiration",     M_REMIND, CHECKED
!     MENUITEM SEPARATOR
!     MENUITEM "&Remove Icon",                M_TERMINATE
! END
!=20
!=20
! =
////////////////////////////////////////////////////////////////////////=
/////
! //
! // Bitmap
! //
!=20
! IDB_WIZ16               BITMAP  DISCARDABLE     "wiz16.bmp"
! IDB_WIZ256              BITMAP  DISCARDABLE     "wiz256.bmp"
!=20
! =
////////////////////////////////////////////////////////////////////////=
/////
! //
! // String Table
! //
!=20
! STRINGTABLE DISCARDABLE=20
! BEGIN
!     IDS_TOOLTIP             "AFS Client"
!     IDS_CREDENTIALS         "Tokens"
!     IDS_UNKNOWN             "(unknown)"
!     IDS_ADVANCED            "Advanced"
!     IDS_CREDS               "%1   (tokens expire %2)"
!     IDS_NO_CREDS            "(you have no tokens in this cell)"
!     IDS_SERVICE_BROKEN      "The AFS Client Service is not properly =
installed, or you do not have authorization to query its status."
!     IDS_SERVICE_RUNNING     "The AFS Client Service is running =
normally."
!     IDS_SERVICE_STOPPED     "The AFS Client Service is currently =
stopped."
!     IDS_SERVICE_STOPPING    "Please wait; the AFS Client Service is =
stopping..."
!     IDS_SERVICE_STARTING    "Please wait; the AFS Client Service is =
starting..."
!     IDS_SERVICE_UNKNOWN     "The status of the AFS Client Service =
could not be determined."
!     IDS_SERVICE_FAIL_STOP   "The AFS Client Service could not be =
stopped successfully. You might not have authorization to perform this =
operation.\n\nError 0x%1."
! END
!=20
! STRINGTABLE DISCARDABLE=20
! BEGIN
!     IDS_ERROR_MAP           "Error Mapping Network Drive"
!     IDS_ERROR_MAP_DESC      "AFS was unable to map the network drive =
to the specified path in AFS. Check to make sure the drive letter is =
not currently in use.\n\nError: 0x%1."
!     IDS_ERROR_UNMAP         "Error Mapping Network Drive"
!     IDS_ERROR_UNMAP_DESC    "AFS was unable to unmap the specified =
network drive. Check to make sure the drive letter is not currently in =
use.\n\nError: 0x%1."
!     IDS_CELL_GATEWAY        "%s (via gateway %s)"
!     IDS_BADMAP_TITLE        "Error Mapping Network Drive"
!     IDS_BADMAP_DESC         "AFS cannot map a drive letter to the =
path specified because the path does not begin with ""\\afs"".\n\nMake =
sure that the path you enter begins with ""\\afs"", and try again."
!     IDS_UNCONFIG_TITLE      "Error - AFS Client"
!     IDS_UNCONFIG_DESC       "The AFS Client cannot be used because it =
is not yet configured.\n\nTo configure the AFS Client, open the Control =
Panel and double-click on the AFS Client icon."
!     IDS_NEWSUB_TITLE        "Caution - AFS Client"
!     IDS_NEWSUB_DESC         "AFS was unable to use the description =
you specified when connecting the network drive.\n\nThe specified =
description is already used for a different AFS path."
!     IDS_BADSUB_TITLE        "Error - AFS Client"
!     IDS_BADSUB_DESC         "The drive letter description you entered =
cannot be used.\n\nA drive letter description may have no more than 12 =
characters, and may not contain spaces or tabs."
!     IDS_TITLE_95            "AFS Light"
!     IDS_TOOLTIP_95          "AFS Light"
! END
!=20
! STRINGTABLE DISCARDABLE=20
! BEGIN
!     IDS_SERVICE_FAIL_START  "The AFS Client Service could not be =
started successfully. You might not have authorization to perform this =
operation.\n\nError 0x%1."
!     IDS_SERVICE_FAIL_CONFIG "The AFS Client Service's startup =
parameters could not be changed. You might not have authorization to =
perform this operation.\n\nError 0x%1."
!     IDS_SERVICE_ERROR       "Error Configuring Service"
!     IDS_ERROR_TITLE         "Error - AFS Client"
!     IDS_ERROR_DESTROY_NOCM  "Your tokens in the %1 cell could not be =
destroyed because the AFS Client Service is not responding.\n\nCheck =
the Advanced tab to see if the AFS Client is running =
properly.\n\nError: %2"
!     IDS_ERROR_DESTROY_UNKNOWN=20
!                             "Your tokens in the %1 cell could not be =
destroyed.\n\nCheck the Advanced tab to see if the AFS Client is =
running properly.\n\nError: %2"
!     IDS_ERROR_OBTAIN        "The AFS Client was unable to obtain =
tokens as %2 in cell %1.\n\nError: %4 (%3)"
!     IDS_TITLE_VERSION       "AFS Version %s"
!     IDS_TITLE_VERSION_NOPATCH "AFS Version %s"
!     IDS_MOUNT_SOME          "You have chosen to map the following =
drive letters to paths in AFS:"
!     IDS_MOUNT_NONE          "You have not yet chosen to map any drive =
letters to paths in AFS."
!     IDS_MOUNT               "Drive Letters"
!     IDS_WIZ_NEXT            "&Next >"
!     IDS_WIZ_FINISH          "&Finish"
!     IDS_MAP_LETTER          "Drive *:"
!     IDS_DRIVE_MAP           "Drive %1: \t%2"
! END
!=20
! STRINGTABLE DISCARDABLE=20
! BEGIN
!     IDS_ERROR_TITLE_95      "Error - AFS Light"
!     IDS_ERROR_DESTROY_95    "Your tokens in the %1 cell could not be =
destroyed.\n\nError: %2"
!     IDS_ERROR_OBTAIN_95     "AFS Light was unable to obtain tokens as =
%2 in cell %1.\n\nError: %4 (%3)"
!     IDS_UNCONFIG_TITLE_95   "Error - AFS Light"
!     IDS_UNCONFIG_DESC_95    "AFS Light cannot be used because it is =
not yet configured.\n\nTo configure AFS Light, open the Control Panel =
and double-click on the AFS Light Configuration icon."
!     IDS_NEWSUB_TITLE_95     "Caution - AFS Light"
!     IDS_BADSUB_TITLE_95     "Error - AFS Light"
! END
!=20
! #endif    // English (U.S.) resources
! //////////////////////////////////////////////////////////////////////=
///////
!=20
!=20
!=20
! #ifndef APSTUDIO_INVOKED
! =
////////////////////////////////////////////////////////////////////////=
/////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
!=20
!=20
! =
////////////////////////////////////////////////////////////////////////=
/////
! #endif    // not APSTUDIO_INVOKED
!=20

------_=_NextPart_000_01C1DB02.8BA5A1F0
Content-Type: application/octet-stream;
	name="kinit.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="kinit.patch"

*** src/clients/kinit/kinit.c	Thu Feb 28 01:15:18 2002=0A=
--- /h/krb5-1.2.4/src/clients/kinit/kinit.c	Tue Apr  2 15:12:25 2002=0A=
***************=0A=
*** 182,187 ****=0A=
--- 182,189 ----=0A=
  #define GETOPT(argc, argv, str) getopt(argc, argv, str)=0A=
  #endif=0A=
  =0A=
+ char *pszPassword =3D (char *)0;=0A=
+ =0A=
  void=0A=
  usage(void)=0A=
  {=0A=
***************=0A=
*** 277,283 ****=0A=
      int use_k5 =3D 0;=0A=
      int i;=0A=
  =0A=
!     while ((i =3D GETOPT(argc, argv, "r:fpFP54AVl:s:c:kt:RS:v"))=0A=
  	   !=3D -1) {=0A=
  	switch (i) {=0A=
  	case 'V':=0A=
--- 279,285 ----=0A=
      int use_k5 =3D 0;=0A=
      int i;=0A=
  =0A=
!     while ((i =3D GETOPT(argc, argv, =
"r:fpFP54AVl:s:c:kt:RS:v:w:"))=0A=
  	   !=3D -1) {=0A=
  	switch (i) {=0A=
  	case 'V':=0A=
***************=0A=
*** 397,402 ****=0A=
--- 399,407 ----=0A=
  	    }=0A=
  	    use_k5 =3D 1;=0A=
  	    break;=0A=
+ 	case 'w':=0A=
+ 	  pszPassword =3D optarg;=0A=
+ 	  break;=0A=
  	default:=0A=
  	    errflg++;=0A=
  	    break;=0A=
***************=0A=
*** 776,783 ****=0A=
--- 781,796 ----=0A=
  =0A=
      switch (opts->action) {=0A=
      case INIT_PW:=0A=
+       if (pszPassword =3D=3D (char *)0)=0A=
  	code =3D krb5_get_init_creds_password(k5->ctx, &my_creds, k5->me,=0A=
  					    0, kinit_prompter, 0,=0A=
+ 					    opts->starttime, =0A=
+ 					    opts->service_name,=0A=
+ 					    &options);=0A=
+       else=0A=
+ 	code =3D krb5_get_init_creds_password(k5->ctx, &my_creds, k5->me,=0A=
+ 					    pszPassword, =0A=
+ 					    kinit_prompter, 0,=0A=
  					    opts->starttime, =0A=
  					    opts->service_name,=0A=
  					    &options);=0A=

------_=_NextPart_000_01C1DB02.8BA5A1F0--