[OpenAFS-devel] Windows2000 - Global drive Map, Rename Pthread

James Peterson jimpeter@us.ibm.com
Fri, 28 Dec 2001 15:33:09 -0800


Changes from 1.2.2a to 1.2.2b

1. The default Open AFS is set to normal security (doesn't generate random
user names).
If you are installing over a previous version (before 1.2.2b) it's default
is
high security; therefore, if you want the normal security, you should
uninstall the previous version (1.2.2a or earlier) and select to 'Not
Preserve previous settings'.

To manually change security you need to set the following registry keys:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemond\NetworkProvider
     LogonOptions = 1 - Integrated Logon
     LogonOptions = 2 - High Security options, Random User name generation
     LogonOptions = 3 - both

3. Windows 2000/NT, Win9x - First time installations will create necessary
directories when user decides to download CellServDB

4. Windows 2000/NT, Global Drive working.

5. Windows XP - Drive mapping via GUI working.

6. Rename pthread.dll to afspthread.dll

These patches are derived from openafs-snap-2001-12-14

diff -Nur --exclude-from=exclude bas/src/NTMake9x upd/src/NTMake9x
--- bas/src/NTMake9x     Sat Nov 10 14:31:04 2001
+++ upd/src/NTMake9x     Thu Dec 27 14:41:24 2001
@@ -42,7 +42,7 @@
     $(MKDIR) $(DESTDIR)
 !   ENDIF

-config:
+config:start
      echo ***** $@
     $(CD) $(OBJ)\$@
     $(NTMAKE)
@@ -315,7 +315,7 @@
 # Fake the version copy so clean will go through the complete cycle with
undefines
 clean: start
     if not exist .\src\config\NTMakefile.version copy .
\src\config\NTMakefile.version-NOCML .\src\config\NTMakefile.version
-    nmake /nologo /f ntmake9x "NTMAKE = nmake /nologo /f ntmakefile clean"
"NTMAKE_HEADERS = nmake /nologo /f ntmakefile clean" "NTMAKE_LIBUTILS =
nmake /nologo /f ntmakefile clean" install
+    nmake /nologo /f ntmake9x "NTMAKE = nmake /nologo /f ntmakefile clean"
"NTMAKE_HEADERS = nmake /nologo /f ntmakefile clean" "NTMAKE_LIBUTILS =
nmake /nologo /f ntmakefile clean" "NTMAKE_OBJS = nmake /nologo /f
ntmakefile clean" install
     $(CD) $(OBJ)\WINNT\install\Win9x
     nmake /nologo /f NTMakefile clean
     $(CD) ..\..\..\..
diff -Nur --exclude-from=exclude bas/src/NTMakefile upd/src/NTMakefile
--- bas/src/NTMakefile   Sat Nov 10 14:31:04 2001
+++ upd/src/NTMakefile   Fri Dec 14 09:52:42 2001
@@ -471,6 +471,7 @@
     $(CD) $(OBJ)\$@
     $(NTMAKE)
     $(CD) ..\..
+    echo Build Finished Successfully

 install: start finale

@@ -487,12 +488,13 @@
     $(CD) ..\..\..\..

 media: InstallShield5
+    echo Install Script Finished Successfully



 # Clean target for obj tree
 clean: start
-        nmake /nologo /f ntmakefile "NTMAKE = nmake /nologo /f ntmakefile
clean" "NTMAKE_HEADERS = nmake /nologo /f ntmakefile clean" install
+    nmake /nologo /f ntmakefile "NTMAKE = nmake /nologo /f ntmakefile
clean" "NTMAKE_HEADERS = nmake /nologo /f ntmakefile clean" "NTMAKE_OBJS =
nmake /nologo /f ntmakefile clean" install
     $(CD) $(OBJ)\config
     nmake /nologo /f ntmakefile clean_version
     $(CD) ..\..
diff -Nur --exclude-from=exclude
bas/src/WINNT/afs_setup_utils/_isuser/_IsUser.RC
upd/src/WINNT/afs_setup_utils/_isuser/_IsUser.RC
--- bas/src/WINNT/afs_setup_utils/_isuser/_IsUser.RC    Thu Sep  6 20:54:58
2001
+++ upd/src/WINNT/afs_setup_utils/_isuser/_IsUser.RC    Fri Dec 14 09:52:42
2001
@@ -10,7 +10,7 @@
 #define APSTUDIO_HIDDEN_SYMBOLS
 #include "windows.h"
 #undef APSTUDIO_HIDDEN_SYMBOLS
-#include <.\sdrc.h>
+#include <sdrc.h>


/////////////////////////////////////////////////////////////////////////////
 #undef APSTUDIO_READONLY_SYMBOLS
diff -Nur --exclude-from=exclude
bas/src/WINNT/afs_setup_utils/_isuser/_IsUser.dep
upd/src/WINNT/afs_setup_utils/_isuser/_IsUser.dep
--- bas/src/WINNT/afs_setup_utils/_isuser/_IsUser.dep   Thu Sep  6 20:54:58
2001
+++ upd/src/WINNT/afs_setup_utils/_isuser/_IsUser.dep   Wed Dec 31 16:00:00
1969
@@ -1,5 +0,0 @@
-# Microsoft Developer Studio Generated Dependency File, included by
_IsUser.mak
-
-.\_Isuser.RC : \
-    ".\sdrc.h"\
-
diff -Nur --exclude-from=exclude
bas/src/WINNT/afs_setup_utils/_isuser/ntmakefile
upd/src/WINNT/afs_setup_utils/_isuser/ntmakefile
--- bas/src/WINNT/afs_setup_utils/_isuser/ntmakefile    Mon Sep 10 09:39:50
2001
+++ upd/src/WINNT/afs_setup_utils/_isuser/ntmakefile    Fri Dec 14 09:52:42
2001
@@ -30,14 +30,6 @@
 "$(OUTDIR)" ::
     if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"

-HEADERS = ".\sdrc.h"
-
-".\sdrc.h" : $(IS5ROOT)\INCLUDE\sdrc.h
-    $(COPY) $(IS5ROOT)\INCLUDE\sdrc.h .
-!   IF EXIST($(IS5ROOT)\Script\ISRT\Include\sdrc.h)
-    $(COPY) $(IS5ROOT)\Script\ISRT\Include\sdrc.h .
-!      ENDIF
-
 CPP=cl.exe
 CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "
_MBCS" /D "_USRDLL" /D "_ISUSER_EXPORTS" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)
\\" /FD /c

@@ -85,20 +77,10 @@
     "$(INTDIR)\_isuser.obj" \
     "$(INTDIR)\_Isuser.res"

-"$(OUTDIR)\_IsUser.dll" : "$(OUTDIR)" $(HEADERS) $(DEF_FILE)
$(LINK32_OBJS)
+"$(OUTDIR)\_IsUser.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
     $(LINK32) @<<
   $(LINK32_FLAGS) $(LINK32_OBJS)
 <<
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("_IsUser.dep")
-!INCLUDE "_IsUser.dep"
-!ELSE
-!MESSAGE Warning: cannot find "_IsUser.dep"
-!ENDIF
-!ENDIF
-

 SOURCE=.\_isuser.c

diff -Nur --exclude-from=exclude
bas/src/WINNT/afs_setup_utils/afs_setup_utils.cpp
upd/src/WINNT/afs_setup_utils/afs_setup_utils.cpp
--- bas/src/WINNT/afs_setup_utils/afs_setup_utils.cpp   Sat Nov 10 14:31:08
2001
+++ upd/src/WINNT/afs_setup_utils/afs_setup_utils.cpp   Fri Dec 14 10:45:06
2001
@@ -419,7 +419,7 @@
     { TARGETDIR"\\Common\\afsadminutil.dll",            SERVER | CLIENT |
LCLIENT | CC },
     { TARGETDIR"\\Common\\afsrpc.dll",                  SERVER | CLIENT |
LCLIENT | CC },
     { TARGETDIR"\\Common\\afsauthent.dll",              SERVER | CLIENT |
LCLIENT | CC },
-    { TARGETDIR"\\Common\\pthread.dll",                 SERVER | CLIENT |
LCLIENT | CC },
+    { TARGETDIR"\\Common\\afspthread.dll",              SERVER | CLIENT |
LCLIENT | CC },
     { TARGETDIR"\\Common\\TaAfsAppLib.dll",             SERVER | CLIENT |
LCLIENT | CC },
     { TARGETDIR"\\Common\\afsprocmgmt.dll",             SERVER | CLIENT |
LCLIENT },
     { TARGETDIR"\\Common\\afs_config.exe",              CLIENT | LCLIENT|
CC },
diff -Nur --exclude-from=exclude bas/src/WINNT/afsd/NTMakefile
upd/src/WINNT/afsd/NTMakefile
--- bas/src/WINNT/afsd/NTMakefile  Tue Nov 20 22:44:28 2001
+++ upd/src/WINNT/afsd/NTMakefile  Fri Dec 14 09:52:42 2001
@@ -169,8 +169,8 @@
     $(EXEDIR)\tokens.exe \
     $(EXEDIR)\unlog.exe $(EXEDIR)\afsd.exe $(EXEDIR)\afsd_service.exe \
     $(EXEDIR)\fs.exe $(EXEDIR)\symlink.exe \
-    $(LOGON_DLLFILE) $(LOG95_DLLFILE) \
-    $(EXEDIR)\afsshare.exe \
+    $(LOGON_DLLFILE) \
+    $(EXEDIR)\afsshare.exe \
     $(DESTDIR)\bin\kpasswd.exe

 install9X: install_headers $(CONF_DLLFILE) \
diff -Nur --exclude-from=exclude bas/src/WINNT/afsd/afsd_service.c
upd/src/WINNT/afsd/afsd_service.c
--- bas/src/WINNT/afsd/afsd_service.c    Thu Dec 27 18:09:14 2001
+++ upd/src/WINNT/afsd/afsd_service.c    Thu Dec 27 18:31:54 2001
@@ -137,6 +137,8 @@
     }
 }

+#if 0
+/* This code was moved to Drivemap.cpp*/
 /* Mount a drive into AFS if the user wants us to */
 void CheckMountDrive()
 {
@@ -177,6 +179,7 @@

         RegCloseKey(hKey);
 }
+#endif

 void afsd_Main()
 {
@@ -248,7 +251,7 @@
     }

         /* Check if we should mount a drive into AFS */
-        CheckMountDrive();
+/*        CheckMountDrive();*/

     WaitForSingleObject(WaitToTerminate, INFINITE);

diff -Nur --exclude-from=exclude bas/src/WINNT/afsd/afslogon.c
upd/src/WINNT/afsd/afslogon.c
--- bas/src/WINNT/afsd/afslogon.c  Sat Nov 10 14:31:08 2001
+++ upd/src/WINNT/afsd/afslogon.c  Tue Dec 18 17:29:24 2001
@@ -373,8 +373,6 @@
     if ( ISLOGONINTEGRATED(LogonOption) && (password[0] == 0) )  {
          code = GT_PW_NULL;
          reason = "zero length password is illegal";
-         if (!ISHIGHSECURITY(LogonOption))
-              goto checkauth;     /*skip the rest if integrated logon and
not high security*/
          code=0;
     }

@@ -385,8 +383,6 @@
          if (code < 0) {
               code = KTC_NOCELL;
               reason = "unknown cell";
-              if (!ISHIGHSECURITY(LogonOption))
-                   goto checkauth;      /*skip the rest if integrated
logon and not high security*/
               code=0;
          }
     }
@@ -396,24 +392,16 @@

     afsWillAutoStart = AFSWillAutoStart();

-    if ( ISHIGHSECURITY(LogonOption))
-         *lpLogonScript = GetLogonScript(GenRandomName(RandomName));
/*only do if high security option is on*/
+    *lpLogonScript = GetLogonScript(GenRandomName(RandomName));  /*only do
if high security option is on*/


-    /* Possibly loop until AFS is started. */
-    while ( (ISHIGHSECURITY(LogonOption) ||
ISLOGONINTEGRATED(LogonOption))) {
+    /* loop until AFS is started. */
+    while (TRUE) {
          code=0;

          /* is service started yet?*/

-         if (ISHIGHSECURITY(LogonOption) &&
!ISLOGONINTEGRATED(LogonOption))   /* if high security only then check for
service started only*/
-         {
-              if (IsServiceRunning())
-                   break;
-              code = KTC_NOCM;
-              if (!afsWillAutoStart)
-                   break;
-         } else if (ISLOGONINTEGRATED(LogonOption) &&
!ISHIGHSECURITY(LogonOption)) /* if Integrated Logon only */
+         if (ISLOGONINTEGRATED(LogonOption) &&
!ISHIGHSECURITY(LogonOption)) /* if Integrated Logon only */
          {
               DebugEvent("AFS AfsLogon -
ka_UserAuthenticateGeneral2","Code[%x],uame[%s] Cell[%s]",code,uname,cell);
               code = ka_UserAuthenticateGeneral2(
@@ -428,8 +416,12 @@
                    uname, "", cell, password,RandomName, 0, &pw_exp, 0,
                    &reason);
               DebugEvent("AFS AfsLogon -
(Both)ka_UserAuthenticateGeneral2","Code[%x],RandomName
[%s]",code,RandomName);
-         } else {
-              code = KTC_NOCM;    /* we shouldn't ever get here*/
+         } else {  /*JUST check to see if its running*/
+              if (IsServiceRunning())
+                   break;
+              code = KTC_NOCM;
+              if (!afsWillAutoStart)
+                   break;
          }

          /* If we've failed because the client isn't running yet and the
@@ -465,7 +457,6 @@
         retryInterval -= sleepInterval;
      }

-checkauth:
     if (code) {
                 char msg[128];
         sprintf(msg, "Integrated login failed: %s", reason);
diff -Nur --exclude-from=exclude bas/src/WINNT/afsd/cm_callback.c
upd/src/WINNT/afsd/cm_callback.c
--- bas/src/WINNT/afsd/cm_callback.c     Fri Oct  5 15:40:46 2001
+++ upd/src/WINNT/afsd/cm_callback.c     Mon Dec 17 14:23:40 2001
@@ -325,6 +325,12 @@
     return RXGEN_OPCODE;
 }

+SRXAFSCB_GetCE64(struct rx_call *callp, long index, AFSDBCacheEntry *cep)
+{
+    /* XXXX */
+    return RXGEN_OPCODE;
+}
+
 /* debug interface: not implemented */
 SRXAFSCB_XStatsVersion(struct rx_call *callp, long *vp)
 {
diff -Nur --exclude-from=exclude bas/src/WINNT/afsd/cm_dcache.c
upd/src/WINNT/afsd/cm_dcache.c
--- bas/src/WINNT/afsd/cm_dcache.c Fri Oct  5 15:40:46 2001
+++ upd/src/WINNT/afsd/cm_dcache.c Fri Dec 14 15:57:58 2001
@@ -1155,7 +1155,7 @@
          afsStatus.UnixModeBits = 0x1ff;
          afsStatus.ParentVnode = 0x1;
          afsStatus.ParentUnique = 0x1;
-         afsStatus.SegSize = 0;
+         afsStatus.ResidencyMask = 0;
          afsStatus.ClientModTime = 0x3b49f6e2;
          afsStatus.ServerModTime = 0x3b49f6e2;
          afsStatus.Group = 0;
diff -Nur --exclude-from=exclude bas/src/WINNT/afsd/cm_scache.c
upd/src/WINNT/afsd/cm_scache.c
--- bas/src/WINNT/afsd/cm_scache.c Fri Oct  5 15:40:46 2001
+++ upd/src/WINNT/afsd/cm_scache.c Fri Dec 14 15:09:04 2001
@@ -806,7 +806,7 @@
          statusp->UnixModeBits = 0x1ff;
          statusp->ParentVnode = 0x1;
          statusp->ParentUnique = 0x1;
-         statusp->SegSize = 0;
+         statusp->ResidencyMask = 0;
          statusp->ClientModTime = 0x3b49f6e2;
          statusp->ServerModTime = 0x3b49f6e2;
          statusp->Group = 0;
diff -Nur --exclude-from=exclude
bas/src/WINNT/client_config/dlg_automap.cpp
upd/src/WINNT/client_config/dlg_automap.cpp
--- bas/src/WINNT/client_config/dlg_automap.cpp    Wed Apr  4 06:43:44 2001
+++ upd/src/WINNT/client_config/dlg_automap.cpp    Thu Dec 27 18:31:54 2001
@@ -237,13 +237,20 @@

 BOOL DefineDosDrive(DRIVEMAP *pDrive, DDDACTION dddAction)
 {
-   TCHAR szAfsPath[MAX_PATH];
-   TCHAR szDrive[3] = TEXT("?:");
+//   TCHAR szAfsPath[MAX_PATH];
+//   TCHAR szDrive[3] = TEXT("?:");
    BOOL fResult = FALSE;
-
    if (!pDrive)
       return FALSE;
-
+   if (dddAction == DDD_REMOVE) {
+      if (!(fResult=(DisMountDOSDrive(pDrive->chDrive)==NO_ERROR)))
+           Message (MB_OK | MB_ICONHAND, IDS_ERROR_UNMAP,
IDS_ERROR_UNMAP_DESC, TEXT("%08lX"), GetLastError());
+   } else if (dddAction == DDD_ADD) {
+      if (!(fResult=(MountDOSDrive(pDrive->chDrive,
pDrive->szSubmount,FALSE)==NO_ERROR)))
+         Message (MB_OK | MB_ICONHAND, IDS_ERROR_MAP, IDS_ERROR_MAP_DESC,
TEXT("%08lX"), GetLastError());
+   }
+   /*
+   Replace this code with Drive mapping routine that doesn't require
different formats for each OS
    szDrive[0] = pDrive->chDrive;
    _stprintf(szAfsPath, TEXT("
\\Device\\LanmanRedirector\\%s\\%s-AFS\\%s"), szDrive, szHostName,
pDrive->szSubmount);

@@ -256,7 +263,7 @@
       if (!fResult)
          Message (MB_OK | MB_ICONHAND, IDS_ERROR_MAP, IDS_ERROR_MAP_DESC,
TEXT("%08lX"), GetLastError());
    }
-
+    */
    if (fResult)
          UpdateRegistry(pDrive, dddAction == DDD_REMOVE);

diff -Nur --exclude-from=exclude bas/src/WINNT/client_config/drivemap.cpp
upd/src/WINNT/client_config/drivemap.cpp
--- bas/src/WINNT/client_config/drivemap.cpp  Tue Nov 20 22:44:28 2001
+++ upd/src/WINNT/client_config/drivemap.cpp  Thu Dec 27 18:31:54 2001
@@ -1,3 +1,4 @@
+
 /*
  * Copyright 2000, International Business Machines Corporation and others.
  * All Rights Reserved.
@@ -20,7 +21,6 @@
 #include <time.h>
 #include <adssts.h>
 #include <osilog.h>
-
 /*
  * REGISTRY
___________________________________________________________________
  *
@@ -640,7 +640,8 @@
    Resource.lpLocalName = szLocal;
    Resource.lpRemoteName = szRemote;

-   DWORD rc = WNetAddConnection2 (&Resource, NULL, NULL, ((fPersistent) ?
CONNECT_UPDATE_PROFILE : 0));
+//   DWORD rc = WNetAddConnection2 (&Resource, NULL, NULL, ((fPersistent)
? CONNECT_UPDATE_PROFILE : 0));
+   DWORD rc=MountDOSDrive(chDrive,szSubmount,fPersistent);
    if (rc == NO_ERROR)
       return TRUE;

@@ -652,10 +653,7 @@

 BOOL InactivateDriveMap (TCHAR chDrive, DWORD *pdwStatus)
 {
-   TCHAR szLocal[ MAX_PATH ] = TEXT("*:");
-   szLocal[0] = chDrive;
-
-   DWORD rc = WNetCancelConnection (szLocal, FALSE);
+   DWORD rc = DisMountDOSDrive(chDrive, FALSE);
    if (rc == NO_ERROR)
       return TRUE;

@@ -764,8 +762,12 @@
           if (*(++pszSubmount) != TEXT('0'))
              return FALSE;

-      if (*(++pszSubmount) != TEXT('\\'))
-         return FALSE;
+    // scan for next "\"
+    while (*(++pszSubmount) != TEXT('\\'))
+    {
+         if (*pszSubmount==0)
+              return FALSE;
+    }
       for (++pszSubmount; *pszSubmount && (*pszSubmount != TEXT('\\'));
++pszSubmount)
          if (!lstrncmpi (pszSubmount, TEXT("-afs\\"), lstrlen(TEXT("
-afs\\"))))
             break;
@@ -871,14 +873,15 @@

 BOOL TestAndDoMapShare(DWORD dwState)
 {
-    if ((dwState!=SERVICE_RUNNING) || (dwOldState!=SERVICE_START_PENDING)
-         || (!RWLogonOption(TRUE,LOGON_OPTION_HIGHSECURITY)))
+    if ((dwState!=SERVICE_RUNNING) || (dwOldState!=SERVICE_START_PENDING)
)
     {
          dwOldState=dwState;
          return TRUE;
     }
     dwOldState=SERVICE_RUNNING;
-    return DoMapShare();
+    if (RWLogonOption(TRUE,LOGON_OPTION_HIGHSECURITY))
+         return (DoMapShare() && GlobalMountDrive());
+    return GlobalMountDrive();
 }

 BOOL IsServiceActive()
@@ -935,10 +938,12 @@
                         if ((lpnrLocal[i].lpLocalName) &&
(strlen(lpnrLocal[i].lpLocalName)>0))
                         {
                              if (drivemap)
-
WNetCancelConnection(lpnrLocal[i].lpLocalName,TRUE);
+                                  DisMountDOSDrive
(*lpnrLocal[i].lpLocalName);
+//
WNetCancelConnection(lpnrLocal[i].lpLocalName,TRUE);
                         } else
-
WNetCancelConnection(lpnrLocal[i].lpRemoteName,TRUE);
-                        DEBUG_EVENT1("AFS DriveUnMap","UnMap-Remote
=%x",res);
+
DisMountDOSDriveFull(lpnrLocal[i].lpRemoteName);
+//
WNetCancelConnection(lpnrLocal[i].lpRemoteName,TRUE);
+//                      DEBUG_EVENT1("AFS DriveUnMap","UnMap-Remote
=%x",res);
                    }
               }
          }
@@ -994,8 +999,7 @@
                         }
                    }
                    // wasn't on list so lets remove
-                   sprintf(szPath,"\\\\%s-afs\\%s",szMachine,pSubmount);
-                   WNetCancelConnection(szPath,TRUE);
+                   DisMountDOSDrive(pSubmount);
                    nextname:;
               }
          }
@@ -1023,8 +1027,8 @@
          nr.dwType=RESOURCETYPE_DISK;
          nr.lpLocalName="";
          nr.lpRemoteName=szPath;
-         DWORD res=WNetAddConnection2(&nr,NULL,pUser,0);
-
+//       DWORD res=WNetAddConnection2(&nr,NULL,pUser,0);
+         DWORD
res=MountDOSDrive(0,List.aSubmounts[j].szSubmount,FALSE,pUser);
     }
     return TRUE;
 }
@@ -1055,8 +1059,8 @@
               nr.dwType=RESOURCETYPE_DISK;
               nr.lpLocalName="";
               nr.lpRemoteName=szPath;
-              DWORD res=WNetAddConnection2(&nr,NULL,pUserName,0);
-              DEBUG_EVENT2("AFS DriveMap","Remote[%s]=%x",szPath,res);
+//            DWORD res=WNetAddConnection2(&nr,NULL,pUserName,0);
+              DWORD
res=MountDOSDrive(0,List.aSubmounts[i].szSubmount,FALSE,pUserName);
               if (strcmpi("all",List.aSubmounts[i].szSubmount)==0)
                    bMappedAll=TRUE;
          }
@@ -1069,29 +1073,111 @@
               nr.dwType=RESOURCETYPE_DISK;
               nr.lpLocalName="";
               nr.lpRemoteName=szPath;
-              DWORD res=WNetAddConnection2(&nr,NULL,pUserName,0);
+//            DWORD res=WNetAddConnection2(&nr,NULL,pUserName,0);
+              DWORD res=MountDOSDrive(0,"all",FALSE,pUserName);
               DEBUG_EVENT2("AFS DriveMap","Remote[%s]=%x",szPath,res);
               if (res==ERROR_SESSION_CREDENTIAL_CONFLICT)
               {
-                   WNetCancelConnection(szPath,TRUE);
-                   WNetAddConnection2(&nr,NULL,pUserName,0);
+//                 WNetCancelConnection(szPath,TRUE);
+                   DisMountDOSDrive("all");
+                   MountDOSDrive(0,"all",FALSE,pUserName);
               }
     }
     for (TCHAR chDrive = chDRIVE_A; chDrive <= chDRIVE_Z; ++chDrive)
     {
-         TCHAR szRemote[3];
          if (List.aDriveMap[chDrive-chDRIVE_A].fActive)
          {
-              sprintf(szRemote,"%c:",chDrive);
-              sprintf(szPath,"
\\\\%s-afs\\%s",szMachine,List.aDriveMap[chDrive-chDRIVE_A].szSubmount);
-              NETRESOURCE nr;
-              memset (&nr, 0x00, sizeof(NETRESOURCE));
-              nr.dwType=RESOURCETYPE_DISK;
-              nr.lpLocalName=szRemote;
-              nr.lpRemoteName=szPath;
-              DWORD res=WNetAddConnection2
(&nr,NULL,NULL,(List.aDriveMap[chDrive-chDRIVE_A].fPersistent)?CONNECT_UPDATE_PROFILE:0);
-              DEBUG_EVENT3("AFS DriveMap","Persistant[%d] Remote[%s]
=%x",List.aDriveMap[chDrive-chDRIVE_A].fPersistent,szPath,res);
+              DWORD res=MountDOSDrive(chDrive
+                   ,List.aDriveMap[chDrive-chDRIVE_A].szSubmount
+                   ,List.aDriveMap[chDrive-chDRIVE_A].fPersistent);
+//            DEBUG_EVENT3("AFS DriveMap","Persistant[%d] Remote[%s]
=%x",List.aDriveMap[chDrive-chDRIVE_A].fPersistent,szPath,res);
          }
     }
     return TRUE;
+}
+
+BOOL GlobalMountDrive()
+{
+    char szDriveToMapTo[5];
+    DWORD dwResult;
+    char szKeyName[256];
+    HKEY hKey;
+    DWORD dwIndex = 0;
+    DWORD dwDriveSize;
+    DWORD dwSubMountSize;
+    char unsigned szSubMount[256];
+    char cm_HostName[200];
+    DWORD dwType=sizeof(cm_HostName);
+    if (!IsServiceActive())
+         return TRUE;
+    if (!GetComputerName(cm_HostName, &dwType))
+         return TRUE;
+    sprintf(szKeyName, "%s\\GlobalAutoMapper", sAFSConfigKeyName);
+
+    dwResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, szKeyName, 0,
KEY_QUERY_VALUE, &hKey);
+    if (dwResult != ERROR_SUCCESS)
+            return TRUE;
+
+    while (1) {
+        dwDriveSize = sizeof(szDriveToMapTo);
+        dwSubMountSize = sizeof(szSubMount);
+        dwResult = RegEnumValue(hKey, dwIndex++, szDriveToMapTo,
&dwDriveSize, 0, &dwType, szSubMount, &dwSubMountSize);
+        if (dwResult != ERROR_MORE_DATA) {
+                if (dwResult != ERROR_SUCCESS) {
+                        if (dwResult != ERROR_NO_MORE_ITEMS)
+                             {
+                                  DEBUG_EVENT1("AFS DriveMap","Failed to
read GlobalAutoMapper values: %d",dwResult);
+                             }
+                        break;
+                }
+        }
+         dwResult=MountDOSDrive(*szDriveToMapTo,(const char
*)szSubMount,FALSE);
+//       DEBUG_EVENT3("AFS DriveMap","GlobalAutoMap of %s to %s
%s",szDriveToMapTo, szSubMount, dwResult ? "succeeded" : "failed");
+    }
+    RegCloseKey(hKey);
+    return TRUE;
+}
+
+DWORD MountDOSDrive(char chDrive,const char *szSubmount,BOOL
bPersistent,const char * pUsername)
+{
+    TCHAR szPath[MAX_PATH];
+    TCHAR szClient[MAX_PATH];
+    TCHAR szDrive[3] = TEXT("?:");
+    sprintf(szDrive,"%c:",chDrive);
+    GetClientNetbiosName (szClient);
+    sprintf(szPath,"\\\\%s\\%s",szClient,szSubmount);
+    NETRESOURCE nr;
+    memset (&nr, 0x00, sizeof(NETRESOURCE));
+    nr.dwType=RESOURCETYPE_DISK;
+    nr.lpLocalName=szDrive;
+    nr.lpRemoteName=szPath;
+    nr.dwDisplayType = RESOURCEDISPLAYTYPE_GENERIC;
+    nr.dwDisplayType = RESOURCEDISPLAYTYPE_SHARE;
+    DWORD res=WNetAddConnection2
(&nr,NULL,pUsername,(bPersistent)?CONNECT_UPDATE_PROFILE:0);
+    DEBUG_EVENT3("AFS DriveMap","Mount %s Remote[%s]
=%x",(bPersistent)?"Presistant" : "NonPresistant",szPath,res);
+    return res;
+}
+
+DWORD DisMountDOSDriveFull(const char *szPath,BOOL bForce)
+{
+    DWORD res=WNetCancelConnection(szPath,bForce);
+    DEBUG_EVENT2("AFS DriveMap","Dismount Remote[%s]=%x",szPath,res);
+    return (res==ERROR_NOT_CONNECTED)?NO_ERROR:res;
+}
+
+DWORD DisMountDOSDrive(const char *pSubmount,BOOL bForce)
+{
+    TCHAR szPath[MAX_PATH];
+    TCHAR szClient[MAX_PATH];
+    GetClientNetbiosName (szClient);
+    sprintf(szPath,"\\\\%s\\%s",szClient,pSubmount);
+    return DisMountDOSDriveFull(szPath,bForce);
+}
+
+
+DWORD DisMountDOSDrive(const char chDrive,BOOL bForce)
+{
+    TCHAR szPath[MAX_PATH];
+    sprintf(szPath,"%c:",chDrive);
+    return DisMountDOSDriveFull(szPath,bForce);
 }
diff -Nur --exclude-from=exclude bas/src/WINNT/client_config/drivemap.h
upd/src/WINNT/client_config/drivemap.h
--- bas/src/WINNT/client_config/drivemap.h    Sat Nov 10 14:31:10 2001
+++ upd/src/WINNT/client_config/drivemap.h    Thu Dec 27 18:31:54 2001
@@ -91,6 +91,11 @@
 void DoUnMapShare(BOOL);
 BOOL DoMapShareChange();
 DWORD RWLogonOption(BOOL read,DWORD value);
+BOOL GlobalMountDrive();
+DWORD MountDOSDrive(char chDrive,const char *szSubmount,BOOL
bPresistant=TRUE,const char *puser=NULL);
+DWORD DisMountDOSDrive(const char *szSubmount,BOOL bForce=TRUE);
+DWORD DisMountDOSDrive(char chDrive,BOOL bForce=TRUE);
+DWORD DisMountDOSDriveFull(const char *pPath,BOOL bForce=TRUE);
 #ifndef DRIVEMAP_DEF_H
 extern void TestAndDoUnMapShare();
 extern TCHAR pUserName[];
diff -Nur --exclude-from=exclude bas/src/WINNT/client_creds/NTMakefile
upd/src/WINNT/client_creds/NTMakefile
--- bas/src/WINNT/client_creds/NTMakefile     Sat Nov  4 02:02:44 2000
+++ upd/src/WINNT/client_creds/NTMakefile     Tue Dec 18 12:56:24 2001
@@ -14,7 +14,6 @@
 AFSDEV_AUXCDEFINES = $(AFSDEV_AUXCDEFINES) -I ..\afsd

 # include the primary makefile
-
 !INCLUDE ..\..\config\NTMakefile.$(SYS_NAME)
 !INCLUDE ..\..\config\NTMakefile.version

diff -Nur --exclude-from=exclude bas/src/WINNT/client_creds/main.cpp
upd/src/WINNT/client_creds/main.cpp
--- bas/src/WINNT/client_creds/main.cpp  Sat Nov 10 14:31:10 2001
+++ upd/src/WINNT/client_creds/main.cpp  Thu Dec 27 18:31:54 2001
@@ -15,7 +15,10 @@
 #include "afscreds.h"
 #include "..\afsreg\afsreg.h" // So we can see if the server's installed
 #include "drivemap.h"
-
+#include <stdlib.h>
+#include <stdio.h>
+#include <osilog.h>
+#include "rxkad.h"

 /*
  * DEFINITIONS
________________________________________________________________
@@ -70,6 +73,8 @@
    return 0;
 }

+#define ISHIGHSECURITY(v) ( ((v) & LOGON_OPTION_HIGHSECURITY)
==LOGON_OPTION_HIGHSECURITY)
+#define REG_CLIENT_PROVIDER_KEY
"SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\NetworkProvider"

 BOOL InitApp (LPSTR pszCmdLineA)
 {
@@ -117,7 +122,18 @@
                break;
          case 'x':
          case 'X':
-               DoMapShare();
+              DWORD LogonOption;
+              DWORD LSPtype, LSPsize;
+              HKEY NPKey;
+              LSPsize=sizeof(LogonOption);
+              (void) RegOpenKeyEx(HKEY_LOCAL_MACHINE,
REG_CLIENT_PROVIDER_KEY,
+                  0, KEY_QUERY_VALUE, &NPKey);
+              RegQueryValueEx(NPKey, "LogonOptions", NULL,
+                             &LSPtype, (LPBYTE)&LogonOption, &LSPsize);
+              RegCloseKey (NPKey);
+              if (ISHIGHSECURITY(LogonOption))
+                   DoMapShare();
+               GlobalMountDrive();
                return 0;
          }

diff -Nur --exclude-from=exclude
bas/src/WINNT/install/InstallShield5/Default.txt
upd/src/WINNT/install/InstallShield5/Default.txt
--- bas/src/WINNT/install/InstallShield5/Default.txt    Sat Nov 10 14:31:12
2001
+++ upd/src/WINNT/install/InstallShield5/Default.txt    Fri Dec 14 09:52:42
2001
@@ -195,7 +195,7 @@
 ---Comment---=
 (Default)=S,
 Class=N,2
-LogonOptions=N,2
+LogonOptions=N,0
 Name=S,TransarcAFSDaemon
 LogonScript=S,<TARGETDIR>\Client\Program\afscreds.exe -:%s -x
 ProviderPath=S,<LOGON_DLL>
diff -Nur --exclude-from=exclude
bas/src/WINNT/install/InstallShield5/GenFileGroups.bat
upd/src/WINNT/install/InstallShield5/GenFileGroups.bat
--- bas/src/WINNT/install/InstallShield5/GenFileGroups.bat   Thu Dec 27
18:09:14 2001
+++ upd/src/WINNT/install/InstallShield5/GenFileGroups.bat   Thu Dec 27
18:31:54 2001
@@ -54,7 +54,7 @@
 echo file0=%IS5_DEST%\root.client\usr\vice\etc\afs_config.exe >>
Client_Common_Files.fgl
 echo file1=%IS5_DEST%\lib\afsrpc.dll >> Client_Common_Files.fgl
 echo file2=%IS5_DEST%\lib\afsauthent.dll >> Client_Common_Files.fgl
-echo file3=%IS5_DEST%\lib\pthread.dll >> Client_Common_Files.fgl
+echo file3=%IS5_DEST%\lib\afspthread.dll >> Client_Common_Files.fgl
 echo file4=%IS5_DEST%\root.server\usr\afs\bin\afsprocmgmt.dll >>
Client_Common_Files.fgl
 echo file5=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAppLib.dll >>
Client_Common_Files.fgl
 echo file6=%IS5_DEST%\root.server\usr\afs\bin\afsadminutil.dll >>
Client_Common_Files.fgl
@@ -130,7 +130,7 @@
 echo file0=%IS5_DEST%\root.client\usr\vice\etc\afs_config.exe >>
Light_Client_Common_Files.fgl
 echo file1=%IS5_DEST%\lib\afsrpc.dll >> Light_Client_Common_Files.fgl
 echo file2=%IS5_DEST%\lib\afsauthent.dll >> Light_Client_Common_Files.fgl
-echo file3=%IS5_DEST%\lib\pthread.dll >> Light_Client_Common_Files.fgl
+echo file3=%IS5_DEST%\lib\afspthread.dll >> Light_Client_Common_Files.fgl
 echo file4=%IS5_DEST%\root.server\usr\afs\bin\afsprocmgmt.dll >>
Light_Client_Common_Files.fgl
 echo file5=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAppLib.dll >>
Light_Client_Common_Files.fgl
 echo file6=%IS5_DEST%\root.server\usr\afs\bin\afsadminutil.dll >>
Light_Client_Common_Files.fgl
@@ -188,7 +188,7 @@
 echo file0=%IS5_DEST%\root.client\usr\vice\etc\afs_config.exe >>
Light95_Client_Common_Files.fgl
 echo file1=%IS5_DEST%\lib\afsrpc.dll >> Light95_Client_Common_Files.fgl
 echo file2=%IS5_DEST%\lib\afsauthent.dll >>
Light95_Client_Common_Files.fgl
-echo file3=%IS5_DEST%\lib\win95\pthread.dll >>
Light95_Client_Common_Files.fgl
+echo file3=%IS5_DEST%\lib\win95\afspthread.dll >>
Light95_Client_Common_Files.fgl
 echo file4=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAppLib.dll >>
Light95_Client_Common_Files.fgl
 echo file5=%IS5_DEST%\root.server\usr\afs\bin\afsadminutil.dll >>
Light95_Client_Common_Files.fgl
 echo file6=%IS5_DEST%\root.server\usr\afs\bin\afsclientadmin.dll >>
Light95_Client_Common_Files.fgl
@@ -258,7 +258,7 @@
 echo file6=%IS5_DEST%\root.server\usr\afs\bin\afsadminutil.dll >>
Server_Common_Files.fgl
 echo file7=%IS5_DEST%\lib\afsrpc.dll >> Server_Common_Files.fgl
 echo file8=%IS5_DEST%\lib\afsauthent.dll >> Server_Common_Files.fgl
-echo file9=%IS5_DEST%\lib\pthread.dll >> Server_Common_Files.fgl
+echo file9=%IS5_DEST%\lib\afspthread.dll >> Server_Common_Files.fgl
 echo file10=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAppLib.dll >>
Server_Common_Files.fgl
 echo file11=%IS5_DEST%\root.server\usr\afs\bin\afsprocmgmt.dll >>
Server_Common_Files.fgl
 echo.  >> Server_Common_Files.fgl
@@ -312,7 +312,7 @@
 echo file6=%IS5_DEST%\root.server\usr\afs\bin\afsadminutil.dll >>
Control_Center_Common_Files.fgl
 echo file7=%IS5_DEST%\lib\afsrpc.dll >> Control_Center_Common_Files.fgl
 echo file8=%IS5_DEST%\lib\afsauthent.dll >>
Control_Center_Common_Files.fgl
-echo file9=%IS5_DEST%\lib\pthread.dll >> Control_Center_Common_Files.fgl
+echo file9=%IS5_DEST%\lib\afspthread.dll >>
Control_Center_Common_Files.fgl
 echo file10=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAppLib.dll >>
Control_Center_Common_Files.fgl
 echo file11=%IS5_DEST%\root.client\usr\vice\etc\afs_config.exe >>
Control_Center_Common_Files.fgl
 echo.  >> Control_Center_Common_Files.fgl
diff -Nur --exclude-from=exclude
bas/src/WINNT/install/InstallShield5/NTMakefile
upd/src/WINNT/install/InstallShield5/NTMakefile
--- bas/src/WINNT/install/InstallShield5/NTMakefile     Sat Nov 10 14:31:12
2001
+++ upd/src/WINNT/install/InstallShield5/NTMakefile     Fri Dec 14 09:52:42
2001
@@ -60,7 +60,7 @@
          $(MKDIR) $(DESTDIR)\Wininstall\PackageWeb
 !   ENDIF
     $(DEL) /q $(DESTDIR)\Wininstall\PackageWeb\*.*
-    $(ISWEB)\Pftwwiz.exe $(AFSROOT)
\src\winnt\install\InstallShield5\PackageWeb.pfw -s -a
+    "$(ISWEB)\Pftwwiz.exe" $(AFSROOT)
\src\winnt\install\InstallShield5\PackageWeb.pfw -s -a
 !ENDIF
     xcopy /s/e/y "Media\OpenAFS\Disk Images\disk1\*.*" $(DESTDIR)
\WinInstall
     copy AFS_component_version_number.txt $(DESTDIR)
\WinInstall\Version.txt
diff -Nur --exclude-from=exclude
bas/src/WINNT/install/InstallShield5/setup.rul
upd/src/WINNT/install/InstallShield5/setup.rul
--- bas/src/WINNT/install/InstallShield5/setup.rul      Thu Sep  6 20:55:00
2001
+++ upd/src/WINNT/install/InstallShield5/setup.rul      Fri Dec 14 09:52:42
2001
@@ -442,6 +442,7 @@
     szErrMsg="
";
     Enable (STATUS);
     SetStatusWindow (50, "Now Downloading CellServDB file...");
+    CreateDir(TARGETDIR);
     nResult=GetWebPage(szErrMsg,szDestFile,szDefaultWeb);
     SetStatusWindow (100, "Downloading completed.");
     Delay (2);
diff -Nur --exclude-from=exclude bas/src/WINNT/install/Win9x/NTMakeFile
upd/src/WINNT/install/Win9x/NTMakeFile
--- bas/src/WINNT/install/Win9x/NTMakeFile    Sat Nov 10 14:31:12 2001
+++ upd/src/WINNT/install/Win9x/NTMakeFile    Thu Dec 13 17:17:58 2001
@@ -29,7 +29,7 @@
     $(DESTDIR)\root.client\usr\vice\etc\libosi.dll \
     $(DESTDIR)\root.client\usr\vice\etc\libafsconf.dll \
     $(DESTDIR)\root.client\usr\vice\etc\afs_shl_ext.dll \
-    $(DESTDIR)\lib\win95\pthread.dll \
+    $(DESTDIR)\lib\win95\afspthread.dll \
     $(DESTDIR)\lib\afsrpc.dll

 $(COMPONENTS)::
diff -Nur --exclude-from=exclude bas/src/WINNT/pthread/NTMakefile
upd/src/WINNT/pthread/NTMakefile
--- bas/src/WINNT/pthread/NTMakefile     Fri Sep  7 22:31:26 2001
+++ upd/src/WINNT/pthread/NTMakefile     Fri Dec 14 09:52:42 2001
@@ -16,9 +16,9 @@
     $(DESTDIR)\include\pthread.h


############################################################################
-# Build standard pthread.dll
+# Build standard afspthread.dll

-PTHR_DLLFILE = $(DESTDIR)\lib\pthread.dll
+PTHR_DLLFILE = $(DESTDIR)\lib\afspthread.dll

 PTHR_DLLOBJS = \
     pthread.obj \
@@ -29,9 +29,9 @@
     $(DLLPREP)


############################################################################
-# Build Windows 95 version of pthread.dll
+# Build Windows 95 version of afspthread.dll

-PTHR95_DLLFILE = $(DESTDIR)\lib\win95\pthread.dll
+PTHR95_DLLFILE = $(DESTDIR)\lib\win95\afspthread.dll

 PTHR95_DLLOBJS = \
     pthread_95.obj \
diff -Nur --exclude-from=exclude bas/src/WINNT/pthread/test/NTMakefile
upd/src/WINNT/pthread/test/NTMakefile
--- bas/src/WINNT/pthread/test/NTMakefile     Sat Nov  4 02:03:04 2000
+++ upd/src/WINNT/pthread/test/NTMakefile     Fri Dec 14 09:52:42 2001
@@ -10,12 +10,12 @@
 test tests: ptest.exe tsd.exe native.exe


-ptest.exe: ptest.obj $(DESTDIR)/lib/pthread.lib
$(DESTDIR)/lib/afs/afsutil.lib
+ptest.exe: ptest.obj $(DESTDIR)/lib/afspthread.lib
$(DESTDIR)/lib/afs/afsutil.lib
     $(EXECONLINK)

-tsd.exe: tsd.obj $(DESTDIR)/lib/pthread.lib $(DESTDIR)/lib/afs/afsutil.lib
+tsd.exe: tsd.obj $(DESTDIR)/lib/afspthread.lib
$(DESTDIR)/lib/afs/afsutil.lib
     $(EXECONLINK)

-native.exe: native.obj $(DESTDIR)/lib/pthread.lib
$(DESTDIR)/lib/afs/afsutil.lib
+native.exe: native.obj $(DESTDIR)/lib/afspthread.lib
$(DESTDIR)/lib/afs/afsutil.lib
     $(EXECONLINK)

diff -Nur --exclude-from=exclude bas/src/config/NTDllmap.txt
upd/src/config/NTDllmap.txt
--- bas/src/config/NTDllmap.txt    Fri Dec 14 08:58:00 2001
+++ upd/src/config/NTDllmap.txt    Fri Dec 21 13:13:40 2001
@@ -1,4 +1,4 @@
-pthread.dll                    0x61000000    0x00080000
+afspthread.dll                 0x61000000    0x00080000
 afsrpc.dll                     0x61080000    0x00080000
 afsauthent.dll                 0x61100000    0x00080000
 afspioctl.dll                  0x61200000    0x00080000
diff -Nur --exclude-from=exclude bas/src/config/NTMakefile.i386_nt40
upd/src/config/NTMakefile.i386_nt40
--- bas/src/config/NTMakefile.i386_nt40  Sat Nov 10 14:31:14 2001
+++ upd/src/config/NTMakefile.i386_nt40  Thu Dec 27 17:42:04 2001
@@ -37,7 +37,7 @@
 !ENDIF

 #define used in WinNT/2000 installation and program version display
-AFSPRODUCT_VERSION=1.2.2 a
+AFSPRODUCT_VERSION=1.2.2 b
 CELLNAME_DEFAULT=Your Cell Name
 CELLSERVDB_INSTALL=CellServDB.GrandCentral
 CELLSERVDB_WEB=http://grand.central.org/dl/cellservdb/CellServDB
@@ -312,7 +312,7 @@
 RC = $(rc) $(rcvars) $(rcflags) $(AFSDEV_AUXRCFLAGS) /d
"AFSPRODUCT_VERSION=\"$(AFSPRODUCT_VERSION)\""

 # Lex/Yacc macros
-LEX = flex -l
+LEX =1.2.2 a
 YACC = bison

 # Inference rules for building and installing targets
diff -Nur --exclude-from=exclude bas/src/config/NTMakefile.i386_win95
upd/src/config/NTMakefile.i386_win95
--- bas/src/config/NTMakefile.i386_win95      Sat Nov 10 14:31:14 2001
+++ upd/src/config/NTMakefile.i386_win95      Thu Dec 27 17:42:36 2001
@@ -37,7 +37,7 @@
 !ENDIF

 #define used in Win9x installation and program version display
-AFSPRODUCT_VERSION=1.1.1 a
+AFSPRODUCT_VERSION=1.2.2 b
 CELLNAME_DEFAULT=Your Cell Name
 CELLSERVDB_INSTALL=CellServDB.GrandCentral
 CELLSERVDB_WEB=http://grand.central.org/dl/cellservdb/CellServDB
diff -Nur --exclude-from=exclude bas/src/kauth/kautils.p.h
upd/src/kauth/kautils.p.h
--- bas/src/kauth/kautils.p.h Mon Sep 17 22:27:12 2001
+++ upd/src/kauth/kautils.p.h Fri Dec 14 09:52:44 2001
@@ -279,6 +279,18 @@
   char **reasonP
 );

+extern afs_int32 ka_UserAuthenticateGeneral2 (
+  afs_int32 flags,
+  char *name,
+  char *instance,
+  char *realm,
+  char *password,
+  char *smbname,
+  Date lifetime,
+  afs_int32 *password_expires,
+  afs_int32 spare2,
+  char **reasonP
+);
 extern afs_int32 ka_UserAuthenticate (
   char *name,
   char *instance,
diff -Nur --exclude-from=exclude bas/src/libadmin/adminutil/NTMakefile
upd/src/libadmin/adminutil/NTMakefile
--- bas/src/libadmin/adminutil/NTMakefile     Sat Nov  4 02:04:46 2000
+++ upd/src/libadmin/adminutil/NTMakefile     Fri Dec 14 09:52:44 2001
@@ -105,7 +105,7 @@
 ILIBDIR = $(DESTDIR)\lib\afs

 DLLLIBS =\
-    $(DESTDIR)\lib\pthread.lib \
+    $(DESTDIR)\lib\afspthread.lib \
     $(DESTDIR)\lib\afsrpc.lib \
     $(DESTDIR)\lib\afsauthent.lib

diff -Nur --exclude-from=exclude bas/src/libadmin/bos/NTMakefile
upd/src/libadmin/bos/NTMakefile
--- bas/src/libadmin/bos/NTMakefile      Sat Nov  4 02:04:48 2000
+++ upd/src/libadmin/bos/NTMakefile      Fri Dec 14 09:52:44 2001
@@ -35,7 +35,7 @@
     $(DESTDIR)\lib\afs\afsvosadmin.lib \
     $(DESTDIR)\lib\afsauthent.lib \
     $(DESTDIR)\lib\afsrpc.lib \
-    $(DESTDIR)\lib\pthread.lib
+    $(DESTDIR)\lib\afspthread.lib

 $(DLLFILE): $(DLLOBJS) $(DLLLIBS)
     $(DLLCONLINK) /DEF:bosadmin.def
diff -Nur --exclude-from=exclude bas/src/libadmin/cfg/NTMakefile
upd/src/libadmin/cfg/NTMakefile
--- bas/src/libadmin/cfg/NTMakefile      Sat Nov  4 02:04:48 2000
+++ upd/src/libadmin/cfg/NTMakefile      Fri Dec 14 09:52:44 2001
@@ -40,7 +40,7 @@
     afscfgadmin.res

 DLLLIBS =\
-    $(DESTDIR)\lib\pthread.lib \
+    $(DESTDIR)\lib\afspthread.lib \
     $(DESTDIR)\lib\afs\afsadminutil.lib \
     $(DESTDIR)\lib\afs\afsbosadmin.lib \
     $(DESTDIR)\lib\afs\afskasadmin.lib \
diff -Nur --exclude-from=exclude bas/src/libadmin/cfg/test/NTMakefile
upd/src/libadmin/cfg/test/NTMakefile
--- bas/src/libadmin/cfg/test/NTMakefile      Sat Nov  4 02:04:50 2000
+++ upd/src/libadmin/cfg/test/NTMakefile      Fri Dec 14 09:52:44 2001
@@ -13,7 +13,7 @@
 test tests: cfgtest.exe

 CFGTEST_EXELIBS =\
-    $(DESTDIR)\lib\pthread.lib \
+    $(DESTDIR)\lib\afspthread.lib \
     $(DESTDIR)\lib\afs\afsadminutil.lib \
     $(DESTDIR)\lib\afs\afsclientadmin.lib \
     $(DESTDIR)\lib\afs\afscfgadmin.lib \
diff -Nur --exclude-from=exclude bas/src/libadmin/client/NTMakefile
upd/src/libadmin/client/NTMakefile
--- bas/src/libadmin/client/NTMakefile   Sat Nov  4 02:04:50 2000
+++ upd/src/libadmin/client/NTMakefile   Fri Dec 14 09:52:44 2001
@@ -26,7 +26,7 @@
     $(DESTDIR)\lib\afs\afsadminutil.lib \
     $(DESTDIR)\lib\afsauthent.lib \
     $(DESTDIR)\lib\afsrpc.lib \
-    $(DESTDIR)\lib\pthread.lib
+    $(DESTDIR)\lib\afspthread.lib

 $(DLLFILE): $(DLLOBJS) $(DLLLIBS)
     $(DLLCONLINK) /DEF:clientadmin.def
diff -Nur --exclude-from=exclude bas/src/libadmin/kas/NTMakefile
upd/src/libadmin/kas/NTMakefile
--- bas/src/libadmin/kas/NTMakefile      Sat Nov  4 02:04:52 2000
+++ upd/src/libadmin/kas/NTMakefile      Fri Dec 14 09:52:44 2001
@@ -31,7 +31,7 @@
     $(DESTDIR)\lib\afs\afsadminutil.lib \
     $(DESTDIR)\lib\afsauthent.lib \
     $(DESTDIR)\lib\afsrpc.lib \
-    $(DESTDIR)\lib\pthread.lib
+    $(DESTDIR)\lib\afspthread.lib

 $(DLLFILE): $(DLLOBJS) $(DLLLIBS)
     $(DLLCONLINK) /DEF:kasadmin.def
diff -Nur --exclude-from=exclude bas/src/libadmin/pts/NTMakefile
upd/src/libadmin/pts/NTMakefile
--- bas/src/libadmin/pts/NTMakefile      Sat Nov  4 02:04:52 2000
+++ upd/src/libadmin/pts/NTMakefile      Fri Dec 14 09:52:44 2001
@@ -33,7 +33,7 @@
     $(DESTDIR)\lib\afs\afsadminutil.lib \
     $(DESTDIR)\lib\afsauthent.lib \
     $(DESTDIR)\lib\afsrpc.lib \
-    $(DESTDIR)\lib\pthread.lib
+    $(DESTDIR)\lib\afspthread.lib

 $(DLLFILE): $(DLLOBJS) $(DLLLIBS)
     $(DLLCONLINK) /DEF:ptsadmin.def
diff -Nur --exclude-from=exclude bas/src/libadmin/test/NTMakefile
upd/src/libadmin/test/NTMakefile
--- bas/src/libadmin/test/NTMakefile     Sat Nov  4 02:04:58 2000
+++ upd/src/libadmin/test/NTMakefile     Fri Dec 14 09:52:44 2001
@@ -13,7 +13,7 @@
 install test tests: afscp.exe

 AFSCP_EXELIBS =\
-    $(DESTDIR)\lib\pthread.lib \
+    $(DESTDIR)\lib\afspthread.lib \
     $(DESTDIR)\lib\afs\afsadminutil.lib \
     $(DESTDIR)\lib\afs\afsclientadmin.lib \
     $(DESTDIR)\lib\afs\afsbosadmin.lib \
diff -Nur --exclude-from=exclude bas/src/libadmin/vos/NTMakefile
upd/src/libadmin/vos/NTMakefile
--- bas/src/libadmin/vos/NTMakefile      Sat Nov  4 02:05:00 2000
+++ upd/src/libadmin/vos/NTMakefile      Fri Dec 14 09:52:44 2001
@@ -50,7 +50,7 @@
 ILIBDIR = $(DESTDIR)\lib\afs

 DLLLIBS =\
-    $(DESTDIR)\lib\pthread.lib \
+    $(DESTDIR)\lib\afspthread.lib \
     $(DESTDIR)\lib\afs\afsadminutil.lib \
     $(DESTDIR)\lib\afsauthent.lib \
     $(DESTDIR)\lib\afsrpc.lib
diff -Nur --exclude-from=exclude bas/src/libafsauthent/NTMakefile
upd/src/libafsauthent/NTMakefile
--- bas/src/libafsauthent/NTMakefile     Fri Oct  5 15:40:48 2001
+++ upd/src/libafsauthent/NTMakefile     Fri Dec 14 09:52:44 2001
@@ -209,9 +209,9 @@

 DLLLIBS =\
 !IF (("$(SYS_NAME)"=="i386_win95" ) || ("$(SYS_NAME)"=="I386_WIN95" ))
-    $(DESTDIR)\lib\win95\pthread.lib \
+    $(DESTDIR)\lib\win95\afspthread.lib \
 !ELSE
-    $(DESTDIR)\lib\pthread.lib \
+    $(DESTDIR)\lib\afspthread.lib \
 !ENDIF
     $(DESTDIR)\lib\afsrpc.lib \
     $(DESTDIR)\lib\afsdes.lib \
diff -Nur --exclude-from=exclude bas/src/libafsrpc/NTMakefile
upd/src/libafsrpc/NTMakefile
--- bas/src/libafsrpc/NTMakefile   Mon Apr 30 01:02:26 2001
+++ upd/src/libafsrpc/NTMakefile   Fri Dec 14 09:52:44 2001
@@ -257,9 +257,9 @@

 DLLLIBS =\
 !IF (("$(SYS_NAME)"=="i386_win95" ) || ("$(SYS_NAME)"=="I386_WIN95" ))
-    $(DESTDIR)\lib\win95\pthread.lib \
+    $(DESTDIR)\lib\win95\afspthread.lib \
 !ELSE
-    $(DESTDIR)\lib\pthread.lib \
+    $(DESTDIR)\lib\afspthread.lib \
 !ENDIF
     $(DESTDIR)\lib\afs\afsutil.lib \
     $(DESTDIR)\lib\afs\afsreg.lib
diff -Nur --exclude-from=exclude bas/src/procmgmt/NTMakefile
upd/src/procmgmt/NTMakefile
--- bas/src/procmgmt/NTMakefile    Mon Apr 30 01:03:24 2001
+++ upd/src/procmgmt/NTMakefile    Fri Dec 14 09:52:44 2001
@@ -27,7 +27,7 @@
     afsprocmgmt.res

 DLLLIBS =\
-    $(DESTDIR)\lib\pthread.lib \
+    $(DESTDIR)\lib\afspthread.lib \
     $(DESTDIR)\lib\afs\afsutil.lib

 $(DLLFILE): $(DLLOBJS) $(DLLLIBS)
diff -Nur --exclude-from=exclude bas/src/procmgmt/test/NTMakefile
upd/src/procmgmt/test/NTMakefile
--- bas/src/procmgmt/test/NTMakefile     Sat Nov  4 02:05:22 2000
+++ upd/src/procmgmt/test/NTMakefile     Fri Dec 14 09:52:44 2001
@@ -10,7 +10,7 @@
 test tests: pmgttest.exe

 PMGTTEST_EXELIBS =\
-    $(DESTDIR)\lib\pthread.lib \
+    $(DESTDIR)\lib\afspthread.lib \
     $(DESTDIR)\lib\afs\afsprocmgmt.lib \
     $(DESTDIR)\lib\afs\afsutil.lib

diff -Nur --exclude-from=exclude bas/src/tbutc/NTMakefile
upd/src/tbutc/NTMakefile
--- bas/src/tbutc/NTMakefile  Wed Oct 31 19:40:30 2001
+++ upd/src/tbutc/NTMakefile  Fri Dec 14 09:52:44 2001
@@ -69,9 +69,9 @@
          $(DESTDIR)\lib\afs\afsprocmgmt.lib \
              $(DESTDIR)\lib\afs\afseventlog.lib \
 !IF (("$(SYS_NAME)"=="i386_win95" ) || ("$(SYS_NAME)"=="I386_WIN95" ))
-    $(DESTDIR)\lib\win95\pthread.lib \
+    $(DESTDIR)\lib\win95\afspthread.lib \
 !ELSE
-    $(DESTDIR)\lib\pthread.lib \
+    $(DESTDIR)\lib\afspthread.lib \
 !ENDIF
          $(DESTDIR)\lib\afsdes.lib \
          $(DESTDIR)\lib\cm_dns.obj
diff -Nur --exclude-from=exclude bas/src/tviced/NTMakefile
upd/src/tviced/NTMakefile
--- bas/src/tviced/NTMakefile Sun Aug 19 08:44:46 2001
+++ upd/src/tviced/NTMakefile Fri Dec 14 09:52:44 2001
@@ -191,7 +191,7 @@
     $(DESTDIR)\lib\afs\afsprocmgmt.lib \
     $(DESTDIR)\lib\afs\afseventlog.lib \
     $(DESTDIR)\lib\afs\afsutil.lib \
-    $(DESTDIR)\lib\pthread.lib
+    $(DESTDIR)\lib\afspthread.lib

 $(EXEFILE): $(EXEOBJS) $(EXELIBS)
     $(EXECONLINK)
diff -Nur --exclude-from=exclude bas/src/vol/NTMakefile
upd/src/vol/NTMakefile
--- bas/src/vol/NTMakefile    Sat Nov  4 02:06:20 2000
+++ upd/src/vol/NTMakefile    Fri Dec 14 09:52:44 2001
@@ -63,7 +63,7 @@
     $(DESTDIR)\lib\afs\afsreg.lib \
     $(DESTDIR)\lib\afs\afsprocmgmt.lib \
     $(DESTDIR)\lib\afs\afseventlog.lib \
-    $(DESTDIR)\lib\pthread.lib
+    $(DESTDIR)\lib\afspthread.lib


############################################################################
 # build salvager

James Peterson
"Integrity is the base of excellence."