STABLE122-windows-updates-20010120

Special branch to provide literal 1.2.2b version

"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"
This commit is contained in:
James Peterson 2002-01-20 09:23:04 +00:00 committed by Derrick Brashear
parent 517bc2c644
commit ae84611549
43 changed files with 247 additions and 141 deletions

View File

@ -42,7 +42,7 @@ start:
$(MKDIR) $(DESTDIR)
! ENDIF
config:
config: start
echo ***** $@
$(CD) $(OBJ)\$@
$(NTMAKE)
@ -315,7 +315,7 @@ media: Win9x
# 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) ..\..\..\..

View File

@ -471,6 +471,7 @@ finale: client_creds
$(CD) $(OBJ)\$@
$(NTMAKE)
$(CD) ..\..
echo Build Finished Successfully
install: start finale
@ -487,12 +488,12 @@ InstallShield5:
$(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) ..\..

View File

@ -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

View File

@ -1,5 +0,0 @@
# Microsoft Developer Studio Generated Dependency File, included by _IsUser.mak
.\_Isuser.RC : \
".\sdrc.h"\

View File

@ -30,14 +30,6 @@ CLEAN ::
"$(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,21 +77,11 @@ LINK32_OBJS= \
"$(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
"$(INTDIR)\_isuser.obj" : $(SOURCE) "$(INTDIR)"

View File

@ -419,7 +419,7 @@ struct FILEINFO fileInfo[] = {
{ 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 },

View File

@ -169,7 +169,7 @@ install: install_headers $(CONF_DLLFILE) \
$(EXEDIR)\tokens.exe \
$(EXEDIR)\unlog.exe $(EXEDIR)\afsd.exe $(EXEDIR)\afsd_service.exe \
$(EXEDIR)\fs.exe $(EXEDIR)\symlink.exe \
$(LOGON_DLLFILE) $(LOG95_DLLFILE) \
$(LOGON_DLLFILE) \
$(EXEDIR)\afsshare.exe \
$(DESTDIR)\bin\kpasswd.exe
@ -307,7 +307,7 @@ $(DESTDIR)\bin\kpasswd.exe: $(KPASSWD_OBJS) $(KPASSWD_LIBS)
$(EXECONLINK)
$(EXEPREP)
############################################################################
# generate versioninfo resources

View File

@ -137,6 +137,8 @@ doneTrace:
}
}
#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 @@ void CheckMountDrive()
RegCloseKey(hKey);
}
#endif
void afsd_Main()
{
@ -248,7 +251,7 @@ void afsd_Main()
}
/* Check if we should mount a drive into AFS */
CheckMountDrive();
/* CheckMountDrive();*/
WaitForSingleObject(WaitToTerminate, INFINITE);

View File

@ -373,8 +373,6 @@ DWORD APIENTRY NPLogonNotify(
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 @@ DWORD APIENTRY NPLogonNotify(
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,15 @@ DWORD APIENTRY NPLogonNotify(
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))) {
code=0;
/* 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 */
/* is service started yet?*/
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 +415,12 @@ DWORD APIENTRY NPLogonNotify(
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 +456,6 @@ DWORD APIENTRY NPLogonNotify(
retryInterval -= sleepInterval;
}
checkauth:
if (code) {
char msg[128];
sprintf(msg, "Integrated login failed: %s", reason);

View File

@ -311,6 +311,13 @@ SRXAFSCB_Probe(struct rx_call *callp)
return 0;
}
/* debug interface: not implemented */
SRXAFSCB_GetCE64(struct rx_call *callp, long index, AFSDBCacheEntry *cep)
{
/* XXXX */
return RXGEN_OPCODE;
}
/* debug interface: not implemented */
SRXAFSCB_GetLock(struct rx_call *callp, long index, AFSDBLock *lockp)
{

View File

@ -1155,7 +1155,7 @@ long cm_GetBuffer(cm_scache_t *scp, cm_buf_t *bufp, int *cpffp, cm_user_t *up,
afsStatus.UnixModeBits = 0x1ff;
afsStatus.ParentVnode = 0x1;
afsStatus.ParentUnique = 0x1;
afsStatus.SegSize = 0;
afsStatus.ResidencyMask = 0;
afsStatus.ClientModTime = 0x3b49f6e2;
afsStatus.ServerModTime = 0x3b49f6e2;
afsStatus.Group = 0;

View File

@ -806,7 +806,7 @@ void cm_MergeStatus(cm_scache_t *scp, AFSFetchStatus *statusp, AFSVolSync *volp,
statusp->UnixModeBits = 0x1ff;
statusp->ParentVnode = 0x1;
statusp->ParentUnique = 0x1;
statusp->SegSize = 0;
statusp->ResidencyMask = 0;
statusp->ClientModTime = 0x3b49f6e2;
statusp->ServerModTime = 0x3b49f6e2;
statusp->Group = 0;

View File

@ -237,29 +237,39 @@ BOOL UpdateRegistry(DRIVEMAP *pDrive, BOOL bRemove)
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;
szDrive[0] = pDrive->chDrive;
_stprintf(szAfsPath, TEXT("\\Device\\LanmanRedirector\\%s\\%s-AFS\\%s"), szDrive, szHostName, pDrive->szSubmount);
if (dddAction == DDD_REMOVE) {
fResult = DefineDosDevice(DDD_RAW_TARGET_PATH | DDD_REMOVE_DEFINITION | DDD_EXACT_MATCH_ON_REMOVE, szDrive, szAfsPath);
if (!fResult)
Message (MB_OK | MB_ICONHAND, IDS_ERROR_UNMAP, IDS_ERROR_UNMAP_DESC, TEXT("%08lX"), GetLastError());
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) {
fResult = DefineDosDevice(DDD_RAW_TARGET_PATH, szDrive, szAfsPath);
if (!fResult)
Message (MB_OK | MB_ICONHAND, IDS_ERROR_MAP, IDS_ERROR_MAP_DESC, TEXT("%08lX"), GetLastError());
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);
if (dddAction == DDD_REMOVE) {
fResult = DefineDosDevice(DDD_RAW_TARGET_PATH | DDD_REMOVE_DEFINITION | DDD_EXACT_MATCH_ON_REMOVE, szDrive, szAfsPath);
if (!fResult)
Message (MB_OK | MB_ICONHAND, IDS_ERROR_UNMAP, IDS_ERROR_UNMAP_DESC, TEXT("%08lX"), GetLastError());
} else if (dddAction == DDD_ADD) {
fResult = DefineDosDevice(DDD_RAW_TARGET_PATH, szDrive, szAfsPath);
if (!fResult)
Message (MB_OK | MB_ICONHAND, IDS_ERROR_MAP, IDS_ERROR_MAP_DESC, TEXT("%08lX"), GetLastError());
}
*/
if (fResult)
UpdateRegistry(pDrive, dddAction == DDD_REMOVE);
UpdateRegistry(pDrive, dddAction == DDD_REMOVE);
return fResult;
}

View File

@ -640,7 +640,8 @@ BOOL ActivateDriveMap (TCHAR chDrive, LPTSTR pszMapping, LPTSTR pszSubmountReq,
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 ActivateDriveMap (TCHAR chDrive, LPTSTR pszMapping, LPTSTR pszSubmountReq,
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 @@ BOOL GetDriveSubmount (TCHAR chDrive, LPTSTR pszSubmountNow)
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 @@ void GenRandomName(TCHAR *pname,int len)
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,9 +938,11 @@ void DoUnMapShare(BOOL drivemap) //disconnect drivemap
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);
DisMountDOSDriveFull(lpnrLocal[i].lpRemoteName);
//WNetCancelConnection(lpnrLocal[i].lpRemoteName,TRUE);
DEBUG_EVENT1("AFS DriveUnMap","UnMap-Remote=%x",res);
}
}
@ -994,8 +999,7 @@ BOOL DoMapShareChange()
}
}
// wasn't on list so lets remove
sprintf(szPath,"\\\\%s-afs\\%s",szMachine,pSubmount);
WNetCancelConnection(szPath,TRUE);
DisMountDOSDrive(pSubmount);
nextname:;
}
}
@ -1023,8 +1027,8 @@ BOOL DoMapShareChange()
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,7 +1059,8 @@ BOOL DoMapShare()
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,List.aSubmounts[i].szSubmount,FALSE,pUserName);
DEBUG_EVENT2("AFS DriveMap","Remote[%s]=%x",szPath,res);
if (strcmpi("all",List.aSubmounts[i].szSubmount)==0)
bMappedAll=TRUE;
@ -1069,29 +1074,109 @@ BOOL DoMapShare()
nr.dwType=RESOURCETYPE_DISK;
nr.lpLocalName="";
nr.lpRemoteName=szPath;
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);
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);
}
}
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);
}
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)?"Persistant" : "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);
}

View File

@ -91,6 +91,11 @@ void MapShareName(char *);
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[];

View File

@ -14,7 +14,6 @@ AFSDEV_AUXCDEFINES = $(AFSDEV_AUXCDEFINES) -WX
AFSDEV_AUXCDEFINES = $(AFSDEV_AUXCDEFINES) -I ..\afsd
# include the primary makefile
!INCLUDE ..\..\config\NTMakefile.$(SYS_NAME)
!INCLUDE ..\..\config\NTMakefile.version

View File

@ -15,7 +15,10 @@ extern "C" {
#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 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR pCmdLine, int nCmdSh
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,8 +122,19 @@ BOOL InitApp (LPSTR pszCmdLineA)
break;
case 'x':
case 'X':
DoMapShare();
return 0;
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;
}
while (*pszCmdLineA && (*pszCmdLineA != ' '))

View File

@ -195,7 +195,7 @@ AFS Client FME=S,<TARGETDIR>\Client\Program\afs_fme.dll
---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>

View File

@ -54,7 +54,7 @@ echo [TopDir] > Client_Common_Files.fgl
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 [TopDir] > Light_Client_Common_Files.fgl
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 [TopDir] > Light95_Client_Common_Files.fgl
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 file5=%IS5_DEST%\root.server\usr\afs\bin\afsvosadmin.dll >> Server_Common_F
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 file5=%IS5_DEST%\root.server\usr\afs\bin\afsvosadmin.dll >> Control_Center_
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

View File

@ -442,6 +442,7 @@ begin
szErrMsg=" ";
Enable (STATUS);
SetStatusWindow (50, "Now Downloading CellServDB file...");
CreateDir(TARGETDIR);
nResult=GetWebPage(szErrMsg,szDestFile,szDefaultWeb);
SetStatusWindow (100, "Downloading completed.");
Delay (2);

View File

@ -29,7 +29,7 @@ DLLCOMPONENTS = \
$(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)::

View File

@ -16,9 +16,9 @@ LIBINCLUDES = \
$(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 @@ $(PTHR_DLLFILE): $(PTHR_DLLOBJS)
$(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 \

View File

@ -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)

View File

@ -1,4 +1,4 @@
pthread.dll 0x61000000 0x00080000
afspthread.dll 0x61000000 0x00080000
afsrpc.dll 0x61080000 0x00080000
afsauthent.dll 0x61100000 0x00080000
afspioctl.dll 0x61200000 0x00080000

View File

@ -37,7 +37,7 @@ APPVER = 4.0
!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 @@ CPP2OBJ = $(cc) $(cflags) $(cdebug) $(cvarsdll) $(afscflags) $(afscdefs) /c
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

View File

@ -37,7 +37,7 @@ APPVER = 4.0
!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

View File

@ -279,6 +279,18 @@ extern afs_int32 ka_UserAuthenticateGeneral (
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,

View File

@ -105,7 +105,7 @@ DLLFILE = $(DESTDIR)\root.server\usr\afs\bin\afsadminutil.dll
ILIBDIR = $(DESTDIR)\lib\afs
DLLLIBS =\
$(DESTDIR)\lib\pthread.lib \
$(DESTDIR)\lib\afspthread.lib \
$(DESTDIR)\lib\afsrpc.lib \
$(DESTDIR)\lib\afsauthent.lib

View File

@ -35,7 +35,7 @@ DLLLIBS =\
$(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

View File

@ -40,7 +40,7 @@ DLLOBJS =\
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 \

View File

@ -13,7 +13,7 @@ AFSDEV_AUXCDEFINES = -DAFS_PTHREAD_ENV
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 \

View File

@ -26,7 +26,7 @@ DLLLIBS =\
$(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

View File

@ -31,7 +31,7 @@ DLLLIBS =\
$(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

View File

@ -33,7 +33,7 @@ DLLLIBS =\
$(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

View File

@ -13,7 +13,7 @@ AFSDEV_AUXCDEFINES = -DAFS_PTHREAD_ENV
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 \

View File

@ -50,7 +50,7 @@ DLLFILE = $(DESTDIR)\root.server\usr\afs\bin\afsvosadmin.dll
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

View File

@ -209,9 +209,9 @@ cm_config.obj: $(WINNTAFSD)\cm_config.c
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 \

View File

@ -257,9 +257,9 @@ NTMAKE = nmake /nologo /f ntmakefile
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

View File

@ -27,7 +27,7 @@ DLLOBJS =\
afsprocmgmt.res
DLLLIBS =\
$(DESTDIR)\lib\pthread.lib \
$(DESTDIR)\lib\afspthread.lib \
$(DESTDIR)\lib\afs\afsutil.lib
$(DLLFILE): $(DLLOBJS) $(DLLLIBS)

View File

@ -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

View File

@ -69,9 +69,9 @@ BUTCLIBS=$(DESTDIR)\lib\afs\afsbudb.lib \
$(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

View File

@ -191,7 +191,7 @@ EXELIBS = \
$(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)

View File

@ -63,7 +63,7 @@ EXEC_LIBS = \
$(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