NTMAKELANG = nmake /nologo /f ntmakefile en_install
NTMAKE_HEADERS = nmake /nologo /f ntmakefile install_headers
NTMAKE_LIBUTILS = nmake /nologo /f ntmakefile install_libutils
+NTMAKE_OBJS = nmake /nologo /f ntmakefile install_objs
MKDIR = mkdir
OBJ = src
$(CD) $(OBJ)\WINNT\install\Win9x
nmake /nologo /f NTMakefile isinstall
$(CD) ..\..\..\..
- eho **** End of Install Scripts
+ echo **** End of Install Scripts
media: Win9x
# InstallShield dependencies
-InstallShield5: install
+InstallShield5:
echo ***** afs_setup_utils
$(CD) $(OBJ)\WINNT\afs_setup_utils
$(NTMAKE)
install : $(INSTALL_UTILS_DLLFILE) $(SERVER_UNINST_DLLFILE) $(CLIENT_UNINST_DLLFILE) \
$(CC_UNINST_DLLFILE) $(LIGHT_CLIENT_UNINST_DLLFILE) $(DOCS_UNINST_DLLFILE) \
-
-media : install
$(AFSRM_EXEFILE) $(DIRLANG)
cd _isuser
nmake -fntmakefile install
SC_HANDLE hServer = 0, hSCM;
BOOL bRestoreOldConfig = FALSE;
+ if (!AddToProviderOrder(AFSREG_CLT_SVC_NAME)) {
+ ShowError(ERROR_FILE_NOT_FOUND, GetLastError());
+ return -1;
+ }
hSCM = OpenSCManager(0, 0, SC_MANAGER_CREATE_SERVICE);
if (!hSCM) {
ShowError(IDS_SCM_OPEN_FAILED, GetLastError());
BOOL bServer = FALSE;
BOOL bShowingProgressDlg = FALSE;
+ if (!RemoveFromProviderOrder(AFSREG_CLT_SVC_NAME)) {
+ ShowError(ERROR_FILE_NOT_FOUND, GetLastError());
+ return -1;
+ }
hSCM = OpenSCManager(0, 0, SC_MANAGER_CREATE_SERVICE);
if (!hSCM) {
ShowError(IDS_SCM_OPEN_FAILED, GetLastError());
int jmpret;
osi_InitPanic(afsd_notifier);
+ osi_InitTraceOption();
GlobalStatus = 0;
CheckMountDrive();
WaitForSingleObject(WaitToTerminate, INFINITE);
-
+
{
HANDLE h; char *ptbuf[1];
h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
#include "cm_config.h"
#include "krb.h"
+#include <io.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
+
+DWORD LogonOption,TraceOption;
HANDLE hDLL;
WSADATA WSAjunk;
-char NPName[] = "System\\CurrentControlSet\\Services\\TransarcAFSDaemon\\NetworkProvider";
-
#define REG_CLIENT_PARMS_KEY "SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\Parameters"
+#define REG_CLIENT_PROVIDER_KEY "SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\NetworkProvider"
#define REG_CLIENT_RETRY_INTERVAL_PARM "LoginRetryInterval"
#define REG_CLIENT_FAIL_SILENTLY_PARM "FailLoginsSilently"
-#define DEFAULT_RETRY_INTERVAL 30 // seconds
+#define DEFAULT_RETRY_INTERVAL 30 /* seconds*/
#define DEFAULT_FAIL_SILENTLY FALSE
-#define DEFAULT_SLEEP_INTERVAL 5 // seconds
+#define DEFAULT_SLEEP_INTERVAL 5 /* seconds*/
+
+#define ISLOGONINTEGRATED(v) ( ((v) & LOGON_OPTION_INTEGRATED)==LOGON_OPTION_INTEGRATED)
+#define ISHIGHSECURITY(v) ( ((v) & LOGON_OPTION_HIGHSECURITY)==LOGON_OPTION_HIGHSECURITY)
+#define TRACE_OPTION_EVENT 1
+#define ISLOGONTRACE(v) ( ((v) & TRACE_OPTION_EVENT)==TRACE_OPTION_EVENT)
/* Structure def copied from DDK (NTDEF.H) */
typedef struct UNICODE_STRING {
*
* Returns NULL on failure.
*/
-WCHAR *GetLogonScript(void)
+
+
+void DebugEvent0(char *a)
+{
+ HANDLE h; char *ptbuf[1];
+ if (!ISLOGONTRACE(TraceOption))
+ return;
+ h = RegisterEventSource(NULL, a);
+ ptbuf[0] = a;
+ ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, (const char **)ptbuf, NULL);
+ DeregisterEventSource(h);
+}
+
+#define MAXBUF_ 131
+void DebugEvent(char *a,char *b,...)
+{
+ HANDLE h; char *ptbuf[1],buf[MAXBUF_+1];
+ va_list marker;
+ if (!ISLOGONTRACE(TraceOption))
+ return;
+ h = RegisterEventSource(NULL, a);
+ va_start(marker,b);
+ _vsnprintf(buf,MAXBUF_,b,marker);
+ ptbuf[0] = buf;
+ ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, (const char **)ptbuf, NULL);\
+ DeregisterEventSource(h);
+ va_end(marker);
+}
+
+CHAR *GenRandomName(CHAR *pbuf)
{
- WCHAR *script;
+ int i;
+ srand( (unsigned)time( NULL ) );
+ for (i=0;i<MAXRANDOMNAMELEN-1;i++)
+ pbuf[i]='a'+(rand() % 26);
+ pbuf[MAXRANDOMNAMELEN-1]=0;
+ return pbuf;
+}
+
+WCHAR *GetLogonScript(CHAR *pname)
+{
+ WCHAR *script,*buf;
DWORD code;
DWORD LSPtype, LSPsize;
HKEY NPKey;
+ WCHAR randomName[MAXRANDOMNAMELEN];
/*
* Get Network Provider key.
* Assume this works or we wouldn't be here.
*/
- (void) RegOpenKeyEx(HKEY_LOCAL_MACHINE, NPName,
+ (void) RegOpenKeyEx(HKEY_LOCAL_MACHINE, REG_CLIENT_PROVIDER_KEY,
0, KEY_QUERY_VALUE, &NPKey);
/*
* Get Logon Script pathname length
*/
- code = RegQueryValueEx(NPKey, "LogonScript", NULL,
+
+ code = RegQueryValueExW(NPKey, L"LogonScript", NULL,
&LSPtype, NULL, &LSPsize);
if (code) {
return NULL;
}
- script = (WCHAR *)LocalAlloc(LMEM_FIXED, LSPsize);
-
+ buf=(WCHAR *)LocalAlloc(LMEM_FIXED, LSPsize);
+ script=(WCHAR *)LocalAlloc(LMEM_FIXED,LSPsize+(MAXRANDOMNAMELEN)*sizeof(WCHAR));
/*
* Explicitly call UNICODE version
* Assume it will succeed since it did before
*/
(void) RegQueryValueExW(NPKey, L"LogonScript", NULL,
- &LSPtype, (LPBYTE)script, &LSPsize);
+ &LSPtype, (LPBYTE)buf, &LSPsize);
+ MultiByteToWideChar(CP_ACP,0,pname,strlen(pname)+1,randomName,(strlen(pname)+1)*sizeof(WCHAR));
+ swprintf(script,buf,randomName);
+ free(buf);
+
+#ifdef DEBUG_VERBOSE
+ {
+ HANDLE h; char *ptbuf[1],buf[132],tbuf[255];
+ WideCharToMultiByte(CP_ACP,0,script,LSPsize,tbuf,255,NULL,NULL);
+ h = RegisterEventSource(NULL, "AFS AfsLogon - GetLogonScript");
+ sprintf(buf, "Script[%s,%d] Return Code[%x]",tbuf,LSPsize,code);
+ ptbuf[0] = buf;
+ ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, ptbuf, NULL);
+ DeregisterEventSource(h);
+ }
+#endif
RegCloseKey (NPKey);
return script;
DWORD MapAuthError(DWORD code)
{
switch (code) {
- case INTK_BADPW: return WN_BAD_PASSWORD;
- case KERB_ERR_PRINCIPAL_UNKNOWN: return WN_BAD_USER;
- default: return WN_NO_NETWORK;
+ case KTC_NOCM:
+ case KTC_NOCMRPC:
+ return WN_NO_NETWORK;
+/* case INTK_BADPW: return WN_BAD_PASSWORD;*/
+/* case KERB_ERR_PRINCIPAL_UNKNOWN: return WN_BAD_USER;*/
+ default: return WN_SUCCESS;
}
}
if (result != ERROR_SUCCESS)
*pFailSilently = DEFAULT_FAIL_SILENTLY;
- // Make sure this is really a bool value in the strict sense
+ /* Make sure this is really a bool value in the strict sense*/
*pFailSilently = !!*pFailSilently;
RegCloseKey(hKey);
}
+BOOL IsServiceRunning (void)
+{
+ SERVICE_STATUS Status;
+ SC_HANDLE hManager;
+ memset (&Status, 0x00, sizeof(Status));
+ Status.dwCurrentState = SERVICE_STOPPED;
+
+ if ((hManager = OpenSCManager (NULL, NULL, GENERIC_READ)) != NULL)
+ {
+ SC_HANDLE hService;
+ if ((hService = OpenService (hManager, TEXT("TransarcAFSDaemon"), GENERIC_READ)) != NULL)
+ {
+ QueryServiceStatus (hService, &Status);
+ CloseServiceHandle (hService);
+ }
+
+ CloseServiceHandle (hManager);
+ }
+ DebugEvent("AFS AfsLogon - Test Service Running","Return Code[%x] ?Running[%d]",Status.dwCurrentState,(Status.dwCurrentState == SERVICE_RUNNING));
+ return (Status.dwCurrentState == SERVICE_RUNNING);
+}
+
DWORD APIENTRY NPLogonNotify(
PLUID lpLogonId,
LPCWSTR lpAuthentInfoType,
char *reason;
BOOLEAN interactive;
BOOLEAN flag;
+ DWORD LSPtype, LSPsize;
+ HKEY NPKey;
HWND hwndOwner = (HWND)StationHandle;
- BOOLEAN failSilently;
- int retryInterval;
- int sleepInterval = DEFAULT_SLEEP_INTERVAL; // seconds
- BOOLEAN afsWillAutoStart;
+ BOOLEAN failSilently;
+ int retryInterval;
+ int sleepInterval = DEFAULT_SLEEP_INTERVAL; /* seconds */
+ BOOLEAN afsWillAutoStart;
+ CHAR RandomName[MAXRANDOMNAMELEN];
+ *lpLogonScript=NULL;
IL = (MSV1_0_INTERACTIVE_LOGON *) lpAuthentInfo;
wcstombs(uname, IL->UserName.Buffer, 256);
wcstombs(password, IL->Password.Buffer, 256);
- /* Check for zero length password */
- if (password[0] == 0) {
+ (void) RegOpenKeyEx(HKEY_LOCAL_MACHINE, REG_CLIENT_PARMS_KEY,
+ 0, KEY_QUERY_VALUE, &NPKey);
+ LSPsize=sizeof(TraceOption);
+ RegQueryValueEx(NPKey, "TraceOption", NULL,
+ &LSPtype, (LPBYTE)&TraceOption, &LSPsize);
+ RegCloseKey (NPKey);
+
+ /*
+ * Get Logon OPTIONS
+ */
+
+ (void) RegOpenKeyEx(HKEY_LOCAL_MACHINE, REG_CLIENT_PROVIDER_KEY,
+ 0, KEY_QUERY_VALUE, &NPKey);
+
+ LSPsize=sizeof(LogonOption);
+ code = RegQueryValueEx(NPKey, "LogonOptions", NULL,
+ &LSPtype, (LPBYTE)&LogonOption, &LSPsize);
+
+ RegCloseKey (NPKey);
+ if ((code!=0) || (LSPtype!=REG_DWORD))
+ LogonOption=LOGON_OPTION_INTEGRATED; /*default to integrated logon only*/
+ DebugEvent("AFS AfsLogon - NPLogonNotify","LogonOption[%x], Service AutoStart[%d]",LogonOption,AFSWillAutoStart());
+ /* Check for zero length password if integrated logon*/
+ if ( ISLOGONINTEGRATED(LogonOption) && (password[0] == 0) ) {
code = GT_PW_NULL;
reason = "zero length password is illegal";
- goto checkauth;
+ if (!ISHIGHSECURITY(LogonOption))
+ goto checkauth; /*skip the rest if integrated logon and not high security*/
+ code=0;
}
- /* Get cell name */
- code = cm_GetRootCellName(cell);
- if (code < 0) {
- code = KTC_NOCELL;
- reason = "unknown cell";
- goto checkauth;
+ /* Get cell name if doing integrated logon */
+ if (ISLOGONINTEGRATED(LogonOption))
+ {
+ code = cm_GetRootCellName(cell);
+ 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;
+ }
}
- /* Get user specified login behavior (or defaults) */
- GetLoginBehavior(&retryInterval, &failSilently);
+ /* Get user specified login behavior (or defaults) */
+ GetLoginBehavior(&retryInterval, &failSilently);
- afsWillAutoStart = AFSWillAutoStart();
+ afsWillAutoStart = AFSWillAutoStart();
- /* Possibly loop until AFS is started. */
- while (1) {
- code = ka_UserAuthenticateGeneral(
- KA_USERAUTH_VERSION+KA_USERAUTH_AUTHENT_LOGON,
- uname, "", cell, password, 0, &pw_exp, 0,
- &reason);
+ if ( ISHIGHSECURITY(LogonOption))
+ *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;
+
+ /* 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 */
+ {
+ DebugEvent("AFS AfsLogon - ka_UserAuthenticateGeneral2","Code[%x],uame[%s] Cell[%s]",code,uname,cell);
+ code = ka_UserAuthenticateGeneral2(
+ KA_USERAUTH_VERSION+KA_USERAUTH_AUTHENT_LOGON,
+ uname, "", cell, password,uname, 0, &pw_exp, 0,
+ &reason);
+ DebugEvent("AFS AfsLogon - (INTEGERTED only)ka_UserAuthenticateGeneral2","Code[%x]",code);
+ } else if (ISLOGONINTEGRATED(LogonOption) && ISHIGHSECURITY(LogonOption)) /* if Integrated Logon and High Security pass random generated name*/
+ {
+ code = ka_UserAuthenticateGeneral2(
+ KA_USERAUTH_VERSION+KA_USERAUTH_AUTHENT_LOGON,
+ 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*/
+ }
/* If we've failed because the client isn't running yet and the
* client is set to autostart (and therefore it makes sense for
* us to wait for it to start) then sleep a while and try again.
* If the error was something else, then give up. */
if (code != KTC_NOCM && code != KTC_NOCMRPC || !afsWillAutoStart)
- break;
+ break;
/* If the retry interval has expired and we still aren't
* logged in, then just give up if we are not in interactive
* mode or the failSilently flag is set, otherwise let the
* user know we failed and give them a chance to try again. */
- if (retryInterval <= 0) {
- if (!interactive || failSilently)
- break;
-
+ if (retryInterval <= 0) {
+ if (!interactive || failSilently)
+ break;
flag = MessageBox(hwndOwner,
"AFS is still starting. Retry?",
"AFS Logon",
MB_ICONQUESTION | MB_RETRYCANCEL);
if (flag == IDCANCEL)
- break;
+ break;
/* Wait just a little while and try again */
- retryInterval = sleepInterval = DEFAULT_SLEEP_INTERVAL;
- }
+ retryInterval = sleepInterval = DEFAULT_SLEEP_INTERVAL;
+ }
- if (retryInterval < sleepInterval)
- sleepInterval = retryInterval;
+ if (retryInterval < sleepInterval)
+ sleepInterval = retryInterval;
- Sleep(sleepInterval * 1000);
+ Sleep(sleepInterval * 1000);
- retryInterval -= sleepInterval;
- }
+ retryInterval -= sleepInterval;
+ }
checkauth:
if (code) {
char msg[128];
-
- sprintf(msg, "Integrated login failed: %s", reason);
+ sprintf(msg, "Integrated login failed: %s", reason);
if (interactive && !failSilently)
MessageBox(hwndOwner, msg, "AFS Logon", MB_OK);
1, 0, ptbuf, NULL);
DeregisterEventSource(h);
}
- }
-
- /* Get logon script */
- if (interactive)
- *lpLogonScript = GetLogonScript();
-
- if (code) {
- code = MapAuthError(code);
+ code = MapAuthError(code);
SetLastError(code);
+ if (ISHIGHSECURITY(LogonOption) && (code!=0))
+ {
+ if (*lpLogonScript)
+ LocalFree(*lpLogonScript);
+ *lpLogonScript = NULL;
+ if (!(afsWillAutoStart || ISLOGONINTEGRATED(LogonOption))) // its not running, so if not autostart or integrated logon then just skip
+ return 0;
+
+ }
}
-
+ DebugEvent("AFS AfsLogon - Exit","Return Code[%x]",code);
return code;
}
LPVOID StationHandle,
DWORD dwChangeInfo)
{
+ DebugEvent0("AFS AfsLogon - NPPasswordChangeNotify");
return 0;
}
return -1;
code = RegSetValueEx(parmKey, labelp, 0, REG_DWORD,
- &value, sizeof(value));
+ (LPBYTE)&value, sizeof(value));
RegCloseKey (parmKey);
if (code != ERROR_SUCCESS)
return -1;
return 0;
}
-extern long cm_CloseCellFile(cm_configFile_t *filep)
+long cm_CloseCellFile(cm_configFile_t *filep)
{
char wdir[256];
char sdir[256];
tp = (char *)(space + sizeof(afs_int32));
lp = (afs_int32 *)tp;
*lp++ = 0x12345678;
- size == sizeof(afs_int32) + sizeof(afs_int32);
+ size = sizeof(afs_int32) + sizeof(afs_int32);
blob.out_size = MAXSIZE;
blob.in_size = sizeof(afs_int32);
blob.in = space;
for(uidp = vcp->usersp; uidp; uidp = uidp->nextp) {
if (uid == uidp->userID) {
uidp->refCount++;
-#ifdef DEBUG_VERBOSE
- {
- HANDLE h; char *ptbuf[1],buf[132];
- h = RegisterEventSource(NULL, "AFS Service - smb_FindUID (Find by UID)");
- sprintf(buf, "VCP[%x] found-uid[%d] name[%s]",vcp,uidp->userID,(uidp->unp ? uidp->unp->name : ""));
- ptbuf[0] = buf;
- ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, ptbuf, NULL);
- DeregisterEventSource(h);
- }
-#endif
+ osi_LogEvent("AFS smb_FindUID (Find by UID)",NULL," VCP[%x] found-uid[%d] name[%s]",vcp,uidp->userID,(uidp->unp) ? uidp->unp->name : "");
break;
}
}
vcp->usersp = uidp;
lock_InitializeMutex(&uidp->mx, "uid_t mutex");
uidp->userID = uid;
-#ifdef DEBUG_VERBOSE
- {
- HANDLE h; char *ptbuf[1],buf[132];
- h = RegisterEventSource(NULL, "AFS Service - smb_FindUID (Find by UID)");
- sprintf(buf, "VCP[%x] new-uid[%d] name[%s]",vcp,uidp->userID,(uidp->unp ? uidp->unp->name : ""));
- ptbuf[0] = buf;
- ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, ptbuf, NULL);
- DeregisterEventSource(h);
- }
-#endif
+ osi_LogEvent("AFS smb_FindUID (Find by UID)",NULL,"VCP[%x] new-uid[%d] name[%s]",vcp,uidp->userID,(uidp->unp ? uidp->unp->name : ""));
}
lock_ReleaseWrite(&smb_rctLock);
return uidp;
continue;
if (stricmp(uidp->unp->name, usern) == 0) {
uidp->refCount++;
-#ifdef DEBUG_VERBOSE
- {
- HANDLE h; char *ptbuf[1],buf[132];
- h = RegisterEventSource(NULL, "AFS Service - smb_FindUserByNameThisSession");
- sprintf(buf, "VCP[%x] uid[%d] match-name[%s]",vcp,uidp->userID,usern);
- ptbuf[0] = buf;
- ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, ptbuf, NULL);
- DeregisterEventSource(h);
- }
-#endif
+ osi_LogEvent("AFS smb_FindUserByNameThisSession",NULL,"VCP[%x] uid[%d] match-name[%s]",vcp,uidp->userID,usern);
break;
} else
continue;
code = smb_ReceiveCoreWriteRaw (vcp, inp, outp,
rwcp);
else {
-
-#ifdef DEBUG_VERBOSE
- HANDLE h; char *ptbuf[1],buf[132];DWORD err;
- h = RegisterEventSource(NULL, "AFS Server - Dispatch");
- sprintf(buf,"%s vcp[%x] lana[%d] lsn[%d]",myCrt_Dispatch(inp->inCom),vcp,vcp->lana,vcp->lsn);
- ptbuf[0] = buf;
- ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, ptbuf, NULL);
- DeregisterEventSource(h);
-#endif
+ osi_LogEvent("AFS Dispatch %s",(myCrt_Dispatch(inp->inCom)),"vcp[%x] lana[%d] lsn[%d]",vcp,vcp->lana,vcp->lsn);
+ osi_Log4(afsd_logp,"Dispatch %s vcp[%x] lana[%d] lsn[%d]",(myCrt_Dispatch(inp->inCom)),vcp,vcp->lana,vcp->lsn);
code = (*(dp->procp)) (vcp, inp, outp);
-
-#ifdef DEBUG_VERBOSE
- h = RegisterEventSource(NULL, "AFS Server - Dispatch return ");
- sprintf(buf,"code[%d]",code-CM_ERROR_BASE);
- if (code)
- ptbuf[0] = buf;
- else
- ptbuf[0] = "code[0]";
- ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, ptbuf, NULL);
- DeregisterEventSource(h);
-#endif
+ osi_LogEvent("AFS Dispatch return",NULL,"Code[%d]",(code==0)?0:code-CM_ERROR_BASE,"");
+ osi_Log1(afsd_logp,"Dispatch return code[%d]",(code==0)?0:code-CM_ERROR_BASE);
}
if (oldGen != sessionGen) {
1, ncbp->ncb_length, ptbuf, smbp);
DeregisterEventSource(h);
#else /* DJGPP */
- osi_Log1(afsd_logp, "Invalid SMB message, length %d",
+ osi_Log1(afsd_logp, "Invalid SMB message, length %d",
ncbp->ncb_length);
#endif /* !DJGPP */
pwd = smb_ParseString(tp, &tp);
usern = smb_ParseString(tp, &tp);
- if (strlen(usern)==0) {
- /*return CM_ERROR_NOACCESS;*/
- newUid = 0; /* always assign uid 0 for blank username */
- uidp = smb_FindUID(vcp, newUid, SMB_FLAG_CREATE);
-#ifdef DEBUG_VERBOSE
- {
- HANDLE h; char *ptbuf[1],buf[132];
- h = RegisterEventSource(NULL, "AFS Service - smb_ReceiveV3SessionSetupX");
- sprintf(buf, "VCP[%x] lsn[%d] anonymous, uid[%d]",vcp,vcp->lsn,uidp->userID);
- ptbuf[0] = buf;
- ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, ptbuf, NULL);
- DeregisterEventSource(h);
- }
-#endif
- smb_ReleaseUID(uidp);
- goto done;
- }
-
/* On Windows 2000, this function appears to be called more often than
it is expected to be called. This resulted in multiple smb_user_t
records existing all for the same user session which results in all
unp = uidp->unp;
userp = unp->userp;
newUid = (unsigned short)uidp->userID; /* For some reason these are different types!*/
-#ifdef DEBUG_VERBOSE
- {
- HANDLE h; char *ptbuf[1],buf[132];
- h = RegisterEventSource(NULL, "AFS Service - smb_ReceiveV3SessionSetupX");
- sprintf(buf,"FindUserByName:VCP[%x],Lana[%d],lsn[%d],userid[%d],name[%s]",vcp,vcp->lana,vcp->lsn,newUid,usern);
- ptbuf[0] = buf;
- ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, ptbuf, NULL);
- DeregisterEventSource(h);
- }
-#endif
+ osi_LogEvent("AFS smb_ReceiveV3SessionSetupX",NULL,"FindUserByName:Lana[%d],lsn[%d],userid[%d],name[%s]",vcp->lana,vcp->lsn,newUid,usern);
+ osi_Log3(afsd_logp,"smb_ReceiveV3SessionSetupX FindUserByName:Lana[%d],lsn[%d],userid[%d]",vcp->lana,vcp->lsn,newUid);
smb_ReleaseUID(uidp);
}
else {
if (!userp)
userp = cm_NewUser();
lock_ObtainMutex(&vcp->mx);
- newUid = vcp->uidCounter++;
+ newUid = (strlen(usern)==0)?0:vcp->uidCounter++;
lock_ReleaseMutex(&vcp->mx);
/* Create a new smb_user_t structure and connect them up */
uidp = smb_FindUID(vcp, newUid, SMB_FLAG_CREATE);
lock_ObtainMutex(&uidp->mx);
uidp->unp = unp;
-#ifdef DEBUG_VERBOSE
- {
- HANDLE h; char *ptbuf[1],buf[132];
- h = RegisterEventSource(NULL, "AFS Service - smb_ReceiveV3SessionSetupX");
- sprintf(buf,"NewUser:VCP[%x],Lana[%d],lsn[%d],userid[%d],name[%s]",vcp,vcp->lana,vcp->lsn,newUid,usern);
- ptbuf[0] = buf;
- ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, ptbuf, NULL);
- DeregisterEventSource(h);
- }
-#endif
+ osi_LogEvent("AFS smb_ReceiveV3SessionSetupX",NULL,"MakeNewUser:VCP[%x],Lana[%d],lsn[%d],userid[%d],TicketKTCName[%s]",vcp,vcp->lana,vcp->lsn,newUid,usern);
+ osi_Log4(afsd_logp,"smb_ReceiveV3SessionSetupX MakeNewUser:VCP[%x],Lana[%d],lsn[%d],userid[%d]",vcp,vcp->lana,vcp->lsn,newUid);
lock_ReleaseMutex(&uidp->mx);
smb_ReleaseUID(uidp);
}
- done:
/* Return UID to the client */
((smb_t *)outp)->uid = newUid;
/* Also to the next chained message */
lock_ReleaseWrite(&smb_globalLock);
/* now dispatch it */
+ osi_LogEvent("AFS-Dispatch-2[%s]",myCrt_2Dispatch(asp->opcode),"vcp[%x] lana[%d] lsn[%d]",vcp,vcp->lana,vcp->lsn);
+ osi_Log4(afsd_logp,"AFS Server - Dispatch-2 %s vcp[%x] lana[%d] lsn[%d]",myCrt_2Dispatch(asp->opcode),vcp,vcp->lana,vcp->lsn);
code = (*smb_tran2DispatchTable[asp->opcode].procp)(vcp, asp, outp);
/* if an error is returned, we're supposed to send an error packet,
{
cm_user_t *userp;
/*int newUid;*/
- smb_user_t *uidp;
smb_username_t *unp;
unp = smb_FindUserByName(usern, machine, SMB_FLAG_CREATE);
lock_ObtainMutex(&unp->mx);
unp->userp = cm_NewUser();
lock_ReleaseMutex(&unp->mx);
-#ifdef DEBUG_VERBOSE
- { //jimpeter
- HANDLE h; char *ptbuf[1],buf[132];
- h = RegisterEventSource(NULL, "AFS Service - smb_FindCMUserByName");
- sprintf(buf,"New User name[%s] machine[%s]",usern,machine);
- ptbuf[0] = buf;
- ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, ptbuf, NULL);
- DeregisterEventSource(h);
- }
-#endif
- }
-#ifdef DEBUG_VERBOSE
- else { //jimpeter
- HANDLE h; char *ptbuf[1],buf[132];
- h = RegisterEventSource(NULL, "AFS Service - smb_FindCMUserByName");
- sprintf(buf,"Found-name[%s] machine[%s]",usern,machine);
- ptbuf[0] = buf;
- ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, ptbuf, NULL);
- DeregisterEventSource(h);
- }
-#endif
+ osi_LogEvent("AFS smb_FindCMUserByName New User",NULL,"name[%s] machine[%s]",usern,machine);
+ } else {
+ osi_LogEvent("AFS smb_FindCMUserByName Found",NULL,"name[%s] machine[%s]",usern,machine);
+ }
return unp->userp;
}
osi_Log3(afsd_logp, "Ioctl uid %d user %x name %s",
uidp->userID, userp,
osi_LogSaveString(afsd_logp, uidp->unp->name));
- else
+ else {
+ if (uidp)
osi_Log2(afsd_logp, "Ioctl uid %d user %x no name",
uidp->userID, userp);
+ else
+ osi_Log1(afsd_logp, "Ioctl no uid user %x no name",
+ userp);
+ }
smb_ReleaseUID(uidp);
}
return TRUE;
}
-
+#if 0
+/* These two functions are not needed as of the 1.2.2a updates.
+ The old implementation used to 'bind' afslogon.dll to the credentials manager
+ when the Integrated Logon was selected.
+
+ With version 1.2.2a afslogon.dll is always 'bound' to the credentials manager; therefore,
+ the binding operation is done during installation. Note: the Integrated Logon is
+ selected by an entry in the registry (LogonOptions).
+*/
void Config_GetAuthentFlag (BOOL *pfFlag)
{
*pfFlag = FALSE;
Message (MB_ICONHAND, GetErrorTitle(), IDS_FAILCONFIG_AUTHENT, TEXT("%ld"), status);
return rc;
}
-
+#endif
void Config_GetTrayIconFlag (BOOL *pfFlag)
{
void Config_GetLanAdapter (ULONG *pnLanAdapter)
{
if (!Config_ReadNum (TEXT("LANadapter"), (DWORD*)pnLanAdapter))
- *pnLanAdapter = 0;
+ *pnLanAdapter = -1;
}
BOOL Config_SetLanAdapter (ULONG nLanAdapter, ULONG *pStatus)
BOOL Config_ContactGateway (LPTSTR pszGateway, LPTSTR pszCell);
void Config_FixGatewayDrives (void);
-void Config_GetAuthentFlag (BOOL *pfFlag);
-BOOL Config_SetAuthentFlag (BOOL fFlag, ULONG *pStatus = NULL);
-
void Config_GetTrayIconFlag (BOOL *pfFlag);
BOOL Config_SetTrayIconFlag (BOOL fFlag, ULONG *pStatus = NULL);
case IDCANCEL:
Misc_OnCancel(hDlg);
break;
+ case IDC_AUTOLANA:
+ if (IsDlgButtonChecked(hDlg,IDC_AUTOLANA))
+ nLanAdapter=-1;
+ else
+ nLanAdapter=0;
+ SP_SetPos (GetDlgItem (hDlg, IDC_LAN_ADAPTER),nLanAdapter);
+ EnableWindow(GetDlgItem(hDlg,IDC_LAN_ADAPTER),(nLanAdapter!=-1));
}
break;
fFirstTime = FALSE;
}
- CreateSpinner (GetDlgItem (hDlg, IDC_LAN_ADAPTER), 10, FALSE, nLANA_MIN, nLanAdapter, nLANA_MAX);
+ CreateSpinner (GetDlgItem (hDlg, IDC_LAN_ADAPTER), 99, FALSE, nLANA_MIN, nLanAdapter, nLANA_MAX);
CreateSpinner (GetDlgItem (hDlg, IDC_PROBE), 10, FALSE, csecPROBE_MIN, csecProbe, csecPROBE_MAX);
CreateSpinner (GetDlgItem (hDlg, IDC_THREADS), 10, FALSE, cTHREADS_MIN, nThreads, cTHREADS_MAX);
CreateSpinner (GetDlgItem (hDlg, IDC_DAEMONS), 10, FALSE, cDAEMONS_MIN, nDaemons, cDAEMONS_MAX);
SetDlgItemText (hDlg, IDC_SYSNAME, szSysName);
SetDlgItemText (hDlg, IDC_ROOTVOLUME, szRootVolume);
SetDlgItemText (hDlg, IDC_MOUNTDIR, szMountDir);
+ CheckDlgButton (hDlg, IDC_AUTOLANA, (nLanAdapter==-1));
+ EnableWindow(GetDlgItem(hDlg,IDC_LAN_ADAPTER),(nLanAdapter!=-1));
}
void Misc_OnOK (HWND hDlg)
{
- nLanAdapter = SP_GetPos (GetDlgItem (hDlg, IDC_LAN_ADAPTER));
+ nLanAdapter = (IsDlgButtonChecked(hDlg,IDC_AUTOLANA))?-1
+ :SP_GetPos (GetDlgItem (hDlg, IDC_LAN_ADAPTER));
csecProbe = SP_GetPos (GetDlgItem (hDlg, IDC_PROBE));
{
if (fFirstTime)
return TRUE;
-
+
if (nLanAdapter != g.Configuration.nLanAdapter) {
if (!Config_SetLanAdapter (nLanAdapter))
return FALSE;
extern "C" {
#include <afs/param.h>
#include <afs/stds.h>
+#include <rx/rxkad.h>
}
-
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <WINNT/TaLocale.h>
#include "drivemap.h"
-
+#include <time.h>
+#include <adssts.h>
+#include <osilog.h>
/*
* REGISTRY ___________________________________________________________________
*
*/
-static const TCHAR AFSConfigKeyName[] = TEXT("SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\Parameters");
+#undef AFSConfigKeyName
+const TCHAR sAFSConfigKeyName[] = TEXT("SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\Parameters");
/*
TCHAR szValue[128];
HKEY hKey;
- _stprintf(szKeyName, TEXT("%s\\GlobalAutoMapper"), AFSConfigKeyName);
+ _stprintf(szKeyName, TEXT("%s\\GlobalAutoMapper"), sAFSConfigKeyName);
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, szKeyName, 0, KEY_QUERY_VALUE, &hKey) != ERROR_SUCCESS)
return FALSE;
pszSubmount = &szMapping[ lstrlen(cszLANMANDEVICE) ];
if (IsWindows2000())
+ {
if (*(pszSubmount) != TEXT(';'))
return FALSE;
+ } else
+ --pszSubmount;
if (toupper(*(++pszSubmount)) != chDrive)
return FALSE;
return TRUE;
}
+/* Generate Random User name random acording to time*/
+DWORD dwOldState=0;
+TCHAR pUserName[MAXRANDOMNAMELEN];
+BOOL fUserName=FALSE;
+#define AFSLogonOptionName TEXT("System\\CurrentControlSet\\Services\\TransarcAFSDaemon\\NetworkProvider")
+
+void SetBitLogonOption(BOOL set,DWORD value)
+{
+
+ RWLogonOption(FALSE,((set)?value | RWLogonOption(TRUE,0):RWLogonOption(TRUE,0) & ~value) );
+}
+
+DWORD RWLogonOption(BOOL read,DWORD value)
+{
+ // if read is true then if value==0 return registry value
+ // if read and value!=0 then use value to test registry, return TRUE if value bits match value read
+ HKEY hk;
+ DWORD dwDisp;
+ DWORD LSPtype, LSPsize;
+ DWORD rval;
+ if (read)
+ {
+ rval=0;
+ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSLogonOptionName,0, KEY_QUERY_VALUE, &hk)==ERROR_SUCCESS)
+ {
+ LSPsize=sizeof(rval);
+ RegQueryValueEx(hk, "LogonOptions", NULL,
+ &LSPtype, (LPBYTE)&rval, &LSPsize);
+ RegCloseKey (hk);
+ }
+ return (value==0)?rval:((rval & value)==value);
+
+ } else { //write
+ if (RegCreateKeyEx (HKEY_LOCAL_MACHINE, AFSLogonOptionName, 0, NULL, 0, KEY_SET_VALUE, NULL, &hk, &dwDisp) == ERROR_SUCCESS)
+ {
+ RegSetValueEx(hk,TEXT("LogonOptions"),NULL,REG_DWORD,(LPBYTE)&value,sizeof(value));
+ RegCloseKey (hk);
+ }
+ return TRUE;
+ }
+}
+
+void MapShareName(char *pszCmdLineA)
+{
+ fUserName = TRUE;
+ TCHAR *p=pUserName;
+ pszCmdLineA++;
+ while (*pszCmdLineA && (*pszCmdLineA != ' '))
+ {
+ *p++=*pszCmdLineA++;
+ }
+}
+
+void GenRandomName(TCHAR *pname,int len)
+{
+ if (fUserName)
+ { //user name was passed through command line, use once
+ fUserName=FALSE;
+ return;
+ }
+ srand( (unsigned)time( NULL ) );
+ for (int i=0;i<len;i++)
+ pname[i]='a'+(rand() % 26);
+ pname[len]=0;
+ return;
+}
+
+/*
+ Make a connection using users name
+ if fUserName then force a connection
+*/
+
+BOOL TestAndDoMapShare(DWORD dwState)
+{
+ if ((dwState!=SERVICE_RUNNING) || (dwOldState!=SERVICE_START_PENDING)
+ || (!RWLogonOption(TRUE,LOGON_OPTION_HIGHSECURITY)))
+ {
+ dwOldState=dwState;
+ return TRUE;
+ }
+ dwOldState=SERVICE_RUNNING;
+ return DoMapShare();
+}
+
+BOOL IsServiceActive()
+{
+ SC_HANDLE hManager;
+ SERVICE_STATUS Status;
+ if ((hManager = OpenSCManager (NULL, NULL, GENERIC_READ)) != NULL)
+ {
+ SC_HANDLE hService;
+ if ((hService = OpenService (hManager, TEXT("TransarcAFSDaemon"), GENERIC_READ)) != NULL)
+ {
+ QueryServiceStatus (hService, &Status);
+ CloseServiceHandle (hService);
+ }
+
+ CloseServiceHandle (hManager);
+ }
+
+ return (Status.dwCurrentState == SERVICE_RUNNING) ? TRUE : FALSE;
+}
+
+void TestAndDoUnMapShare()
+{
+ if (!RWLogonOption(TRUE,LOGON_OPTION_HIGHSECURITY))
+ return;
+ DoUnMapShare(FALSE);
+}
+
+void DoUnMapShare(BOOL force)
+{
+ TCHAR szMachine[ MAX_PATH],szPath[MAX_PATH];
+ DWORD rc=28;
+ HANDLE hEnum;
+ LPNETRESOURCE lpnrLocal,lpnr=NULL;
+ DWORD res;
+ DWORD cbBuffer=16384;
+ DWORD cEntries=-1;
+ GetComputerName(szMachine,&rc);
+ CHAR *pSubmount="";
+ // Initialize the data structure
+ if ((res=WNetOpenEnum(RESOURCE_CONNECTED,RESOURCETYPE_DISK,RESOURCEUSAGE_CONNECTABLE,lpnr,&hEnum))!=NO_ERROR)
+ return;
+ sprintf(szPath,"\\\\%s-afs\\",szMachine);
+ _strlwr(szPath);
+ lpnrLocal=(LPNETRESOURCE) GlobalAlloc(GPTR,cbBuffer);
+ do {
+ memset(lpnrLocal,0,cbBuffer);
+ if ((res = WNetEnumResource(hEnum,&cEntries,lpnrLocal,&cbBuffer))==NO_ERROR)
+ {
+ for (DWORD i=0;i<cEntries;i++)
+ {
+ if (strstr(_strlwr(lpnrLocal[i].lpRemoteName),szPath))
+ {
+ if ((lpnrLocal[i].lpLocalName) && (strlen(lpnrLocal[i].lpLocalName)>0))
+ if (force)
+ WNetCancelConnection(lpnrLocal[i].lpLocalName,TRUE);
+ else
+ WNetCancelConnection(lpnrLocal[i].lpRemoteName,TRUE);
+ DEBUG_EVENT1("AFS DriveUnMap","UnMap-Remote=%x",res);
+ }
+ }
+ }
+ } while (res!=ERROR_NO_MORE_ITEMS);
+ GlobalFree((HGLOBAL)lpnrLocal);
+ WNetCloseEnum(hEnum);
+}
+
+BOOL DoMapShareChange()
+{
+ DRIVEMAPLIST List;
+ TCHAR szMachine[ MAX_PATH],szPath[MAX_PATH];
+ DWORD rc=28;
+ HANDLE hEnum;
+ LPNETRESOURCE lpnrLocal,lpnr=NULL;
+ DWORD res;
+ DWORD cbBuffer=16384;
+ DWORD cEntries=-1;
+ GetComputerName(szMachine,&rc);
+ CHAR szUser[MAXRANDOMNAMELEN];
+ // Initialize the data structure
+ if (!IsServiceActive())
+ return TRUE;
+ memset (&List, 0x00, sizeof(DRIVEMAPLIST));
+ for (size_t ii = 0; ii < 26; ++ii)
+ List.aDriveMap[ii].chDrive = chDRIVE_A + ii;
+ QueryDriveMapList_ReadSubmounts (&List);
+ if ((res=WNetOpenEnum(RESOURCE_CONNECTED,RESOURCETYPE_DISK,RESOURCEUSAGE_CONNECTABLE,lpnr,&hEnum))!=NO_ERROR)
+ return FALSE;
+ lpnrLocal=(LPNETRESOURCE) GlobalAlloc(GPTR,cbBuffer);
+ sprintf(szPath,"\\\\%s-afs\\",szMachine);
+ _strlwr(szPath);
+ do {
+ memset(lpnrLocal,0,cbBuffer);
+ if ((res = WNetEnumResource(hEnum,&cEntries,lpnrLocal,&cbBuffer))==NO_ERROR)
+ {
+ for (DWORD i=0;i<cEntries;i++)
+ {
+ if (strstr(_strlwr(lpnrLocal[i].lpRemoteName),szPath)==NULL)
+ continue; //only look at real afs mappings
+ CHAR * pSubmount=strrchr(lpnrLocal[i].lpRemoteName,'\\')+1;
+ if (strcmpi(pSubmount,"all")==0)
+ continue; // do not remove 'all'
+ for (DWORD j=0;j<List.cSubmounts;j++)
+ {
+ if (
+ (List.aSubmounts[j].szSubmount[0]) &&
+ (strcmpi(List.aSubmounts[j].szSubmount,pSubmount)==0)
+ )
+ {
+ List.aSubmounts[j].fInUse=TRUE;
+ goto nextname;
+ }
+ }
+ // wasn't on list so lets remove
+ sprintf(szPath,"\\\\%s-afs\\%s",szMachine,pSubmount);
+ WNetCancelConnection(szPath,TRUE);
+ nextname:;
+ }
+ }
+ } while (res!=ERROR_NO_MORE_ITEMS);
+ GlobalFree((HGLOBAL)lpnrLocal);
+ WNetCloseEnum(hEnum);
+ sprintf(szPath,"\\\\%s-afs\\all",szMachine);
+ cbBuffer=MAXRANDOMNAMELEN-1;
+ // Lets connect all submounts that weren't connectd
+ CHAR * pUser=szUser;
+ if (WNetGetUser(szPath,(LPSTR)szUser,&cbBuffer)!=NO_ERROR)
+ GenRandomName(szUser,MAXRANDOMNAMELEN-1);
+ else {
+ if ((pUser=strchr(szUser,'\\'))==NULL)
+ return FALSE;
+ pUser++;
+ }
+ for (DWORD j=0;j<List.cSubmounts;j++)
+ {
+ if (List.aSubmounts[j].fInUse)
+ continue;
+ sprintf(szPath,"\\\\%s-afs\\%s",szMachine,List.aSubmounts[j].szSubmount);
+ NETRESOURCE nr;
+ memset (&nr, 0x00, sizeof(NETRESOURCE));
+ nr.dwType=RESOURCETYPE_DISK;
+ nr.lpLocalName="";
+ nr.lpRemoteName=szPath;
+ DWORD res=WNetAddConnection2(&nr,NULL,pUser,0);
+
+ }
+ return TRUE;
+}
+
+BOOL DoMapShare()
+{
+ DRIVEMAPLIST List;
+ TCHAR szMachine[ MAX_PATH ];
+ TCHAR szPath[ MAX_PATH ];
+ DWORD rc=28;
+ BOOL bMappedAll=FALSE;
+ GetComputerName(szMachine,&rc);
+ // Initialize the data structure
+ DEBUG_EVENT0("AFS DoMapShare");
+ QueryDriveMapList (&List);
+ DoUnMapShare(TRUE);
+ // All connections have been removed
+ // Lets restore them after making the connection from the random name
+
+ GenRandomName(pUserName,MAXRANDOMNAMELEN-1);
+ for (DWORD i=0;i<List.cSubmounts;i++)
+ {
+ if (List.aSubmounts[i].szSubmount[0])
+ {
+ sprintf(szPath,"\\\\%s-afs\\%s",szMachine,List.aSubmounts[i].szSubmount);
+ NETRESOURCE nr;
+ memset (&nr, 0x00, sizeof(NETRESOURCE));
+ 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);
+ if (strcmpi("all",List.aSubmounts[i].szSubmount)==0)
+ bMappedAll=TRUE;
+ }
+ }
+ if (!bMappedAll) //make sure all is mapped also
+ {
+ sprintf(szPath,"\\\\%s-afs\\all",szMachine);
+ NETRESOURCE nr;
+ memset (&nr, 0x00, sizeof(NETRESOURCE));
+ 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);
+ if (res==ERROR_SESSION_CREDENTIAL_CONFLICT)
+ {
+ WNetCancelConnection(szPath,TRUE);
+ WNetAddConnection2(&nr,NULL,pUserName,0);
+ }
+ }
+ 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);
+ }
+ }
+ return TRUE;
+}
BOOL SubmountToPath (PDRIVEMAPLIST pList, LPTSTR pszPath, LPTSTR pszSubmount, BOOL fMarkInUse);
BOOL PathToSubmount (LPTSTR pszSubmount, LPTSTR pszMapping, LPTSTR pszSubmountReq, ULONG *pStatus);
+BOOL TestAndDoMapShare(DWORD);
+BOOL DoMapShare();
+void MapShareName(char *);
+void DoUnMapShare(BOOL);
+BOOL DoMapShareChange();
+DWORD RWLogonOption(BOOL read,DWORD value);
+#ifndef DRIVEMAP_DEF_H
+extern void TestAndDoUnMapShare();
+extern TCHAR pUserName[];
+extern BOOL fUserName;
+extern DWORD RWLogonOption(BOOL read,DWORD value);
+extern void SetBitLogonOption(BOOL set,DWORD value);
+extern BOOL TestAndDoMapShare(DWORD);
+#endif
#endif
CAPTION "Miscellaneous Configuration"
FONT 8, "MS Sans Serif"
BEGIN
- EDITTEXT IDC_LAN_ADAPTER,90,20,32,13,ES_AUTOHSCROLL
+ EDITTEXT IDC_LAN_ADAPTER,162,22,32,13,ES_AUTOHSCROLL
EDITTEXT IDC_PROBE,90,40,32,13,ES_AUTOHSCROLL
EDITTEXT IDC_THREADS,90,60,32,13,ES_AUTOHSCROLL
EDITTEXT IDC_DAEMONS,90,80,32,13,ES_AUTOHSCROLL
LTEXT "threads",IDC_STATIC,138,82,68,8
LTEXT "S&ystem Name:",IDC_STATIC,15,102,71,8
LTEXT "&Mount Directory:",IDC_STATIC,15,122,71,8
- LTEXT "&Lan Adapter Number:",IDC_STATIC,15,22,71,8
LTEXT "&Root Volume:",IDC_STATIC,15,141,71,8
+ CONTROL "Automatic Lana scan",IDC_AUTOLANA,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,19,22,82,10
+ RTEXT "Lana Number:",IDC_STATICLANA,106,24,53,8
END
IDD_DIAG_PARMS DIALOG DISCARDABLE 0, 0, 217, 135
#define IDC_CHANGE 1059
#define IDC_DIAG_PARMS 1060
#define IDC_ROOTVOLUME 1061
+#define IDC_AUTOLANA 1062
+#define IDC_STATICLANA 1063
#define IDC_STATIC -1
// Next default values for new objects
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 122
#define _APS_NEXT_COMMAND_VALUE 40001
-#define _APS_NEXT_CONTROL_VALUE 1062
+#define _APS_NEXT_CONTROL_VALUE 1064
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
FreeDriveMapList (&g.Configuration.NetDrives);
QueryDriveMapList (&g.Configuration.NetDrives);
+ if (g.Configuration.fLogonAuthent)
+ DoMapShareChange();
}
}
}
+// Action - On Remove submount item
void Submounts_OnRemove (HWND hDlg)
{
}
+// Action - On Add or On Edit a submount item
void Submounts_EditSubmount (HWND hDlg, PSUBMOUNT pSubmount)
{
HWND hList = GetDlgItem (hDlg, IDC_LIST);
extern "C" {
#include <afs/param.h>
#include <afs/stds.h>
+#include <rx/rxkad.h>
}
#include "afs_config.h"
#include "tab_hosts.h"
#include "tab_advanced.h"
+#include "drivemap.h"
+#include <adssts.h>
/*
* VARIABLES __________________________________________________________________
BOOL CALLBACK Status_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp);
void Status_OnRefresh (HWND hDlg);
-
/*
* ROUTINES ___________________________________________________________________
*
return TRUE;
}
-
BOOL GeneralTab_OnApply (HWND hDlg, BOOL fForce, BOOL fComplainIfInvalid)
{
if (!fForce)
BOOL fLogonAuthent = IsDlgButtonChecked (hDlg, IDC_LOGON);
if (fLogonAuthent != g.Configuration.fLogonAuthent)
{
- if (!Config_SetAuthentFlag (fLogonAuthent))
- return FALSE;
+ SetBitLogonOption(fLogonAuthent,LOGON_OPTION_INTEGRATED);
g.Configuration.fLogonAuthent = fLogonAuthent;
}
Config_GetGatewayName (g.Configuration.szGateway);
Config_GetCellName (g.Configuration.szCell);
- Config_GetAuthentFlag (&g.Configuration.fLogonAuthent);
+ g.Configuration.fLogonAuthent=RWLogonOption(TRUE,LOGON_OPTION_INTEGRATED);
Config_GetTrayIconFlag (&g.Configuration.fShowTrayIcon);
if (!g.fIsWinNT)
{
DWORD CurrentState = Config_GetServiceState();
DWORD DisplayState = GeneralTab_GetDisplayState(hDlg);
+ TestAndDoMapShare(CurrentState); //Re map mounted drives if necessary
BOOL fInEndState = ((CurrentState == SERVICE_RUNNING) || (CurrentState == SERVICE_STOPPED));
if (fInEndState && l.hStatus)
{
g.fNeedRestart = FALSE;
if (StartService (hService, 0, 0))
+ TestAndDoMapShare(SERVICE_START_PENDING);
fSuccess = TRUE;
}
else // (!fStart)
SERVICE_STATUS Status;
if (ControlService (hService, SERVICE_CONTROL_STOP, &Status))
fSuccess = TRUE;
+ if (g.Configuration.fLogonAuthent)
+ DoUnMapShare(FALSE);
}
CloseServiceHandle (hService);
DWORD dwSize = sizeof(Config);
QueryServiceConfig (hService, (QUERY_SERVICE_CONFIG*)&Config, sizeof(Config), &dwSize);
QueryServiceStatus (hService, &Status);
+ TestAndDoMapShare(Status.dwCurrentState);
CloseServiceHandle (hService);
}
GetString (szStatus, IDS_SERVICE_STARTING);
else
GetString (szStatus, IDS_SERVICE_UNKNOWN);
+ TestAndDoMapShare(Status.dwCurrentState);
SetDlgItemText (hDlg, IDC_SERVICE_STATUS, szStatus);
if (fFinal && GetWindowLong (hDlg, DWL_USER))
case IDC_SERVICE_START:
if (StartService (hService, 0, 0))
+ {
+ TestAndDoMapShare(SERVICE_START_PENDING);
fSuccess = TRUE;
+ }
break;
case IDC_SERVICE_STOP:
SERVICE_STATUS Status;
if (ControlService (hService, SERVICE_CONTROL_STOP, &Status))
+ TestAndDoUnMapShare();
fSuccess = TRUE;
break;
}
SC_HANDLE hService;
if ((hService = OpenService (hManager, TEXT("TransarcAFSDaemon"), SERVICE_ALL_ACCESS)) != NULL)
{
- StartService (hService, 0, 0);
+ if (StartService (hService, 0, 0))
+ TestAndDoMapShare(SERVICE_START_PENDING);
CloseServiceHandle (hService);
}
{
QueryServiceStatus (hService, &Status);
CloseServiceHandle (hService);
+ TestAndDoMapShare(Status.dwCurrentState);
}
CloseServiceHandle (hManager);
#include "afscreds.h"
#include "..\afsreg\afsreg.h" // So we can see if the server's installed
+#include "drivemap.h"
/*
case 'U':
fUninstall = TRUE;
break;
+ case ':':
+ MapShareName(pszCmdLineA);
+ break;
+ case 'x':
+ case 'X':
+ DoMapShare();
+ return 0;
}
while (*pszCmdLineA && (*pszCmdLineA != ' '))
++pszCmdLineA;
+ if (*pszCmdLineA==' ') ++pszCmdLineA;
}
if (fInstall)
osi_LogPrint @58
osi_LogSaveString @59
osi_InitPanic @60
+ osi_InitTraceOption @61
+ osi_LogEvent0 @62
+ osi_LogEvent @63
if (logp)
logp->enabled = 0;
}
+
+#define REG_CLIENT_PARMS_KEY "SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\Parameters"
+#define TRACE_OPTION_EVENT 1
+#define ISLOGONTRACE(v) ( ((v) & TRACE_OPTION_EVENT)==TRACE_OPTION_EVENT)
+
+DWORD osi_TraceOption=0;
+
+void osi_InitTraceOption()
+{
+ DWORD LSPtype, LSPsize;
+ HKEY NPKey;
+ (void) RegOpenKeyEx(HKEY_LOCAL_MACHINE, REG_CLIENT_PARMS_KEY,
+ 0, KEY_QUERY_VALUE, &NPKey);
+ LSPsize=sizeof(osi_TraceOption);
+ RegQueryValueEx(NPKey, "TraceOption", NULL,
+ &LSPtype, (LPBYTE)&osi_TraceOption, &LSPsize);\r
+}
+
+
+#define MAXBUF_ 131
+void osi_LogEvent0(char *a,char *b)
+{
+ HANDLE h; char *ptbuf[1],buf[MAXBUF_+1];
+ if (!ISLOGONTRACE(osi_TraceOption))
+ return;
+ h = RegisterEventSource(NULL, a);
+ ptbuf[0] = b;
+ ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, (const char **)ptbuf, NULL);
+ DeregisterEventSource(h);
+}
+
+
+void osi_LogEvent(char *a,char *b,char *c,...)
+{
+ HANDLE h; char *ptbuf[1],buf[MAXBUF_+1];
+ va_list marker;
+ if (!ISLOGONTRACE(osi_TraceOption))
+ return;
+ if (b)
+ {
+ wsprintf(buf,a,b);
+ h = RegisterEventSource(NULL, buf);
+ }
+ else
+ h = RegisterEventSource(NULL, a);
+ va_start(marker,c);
+ _vsnprintf(buf,MAXBUF_,c,marker);
+ ptbuf[0] = buf;
+ ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, (const char **)ptbuf, NULL);\
+ DeregisterEventSource(h);
+ va_end(marker);
+}
*
*/
-/* Copyright (C) 1994 Cazamar Systems, Inc. */
-
#ifndef _OSI_LOG_H__
#define _OSI_LOG_H__ 1
extern void osi_LogPrint(osi_log_t *logp, FILE_HANDLE handle);
extern char *osi_LogSaveString(osi_log_t *logp, char *s);
+extern void osi_InitTraceOption();
+extern void osi_LogEvent0(char *a,char *b);
+extern void osi_LogEvent(char *a,char *b,char *c,...);
/* define macros */
#define osi_Log0(l,f) osi_LogAdd((l), (f), 0, 0, 0, 0)
#define osi_Log3(l,f,a,b,c) osi_LogAdd((l), (f), (long) (a), (long) (b), (long) (c), 0)
#define osi_Log4(l,f,a,b,c,d) osi_LogAdd((l), (f), (long) (a), (long) (b), (long) (c), (long) (d))
+#ifdef DEBUG_VERBOSE
+#define DEBUG_EVENT1(a,b,c) {HANDLE h; char *ptbuf[1],buf[132];\
+ h = RegisterEventSource(NULL, a);\
+ sprintf(buf, b,c);\
+ ptbuf[0] = buf;\
+ ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, (const char **)ptbuf, NULL);\
+ DeregisterEventSource(h);}
+#define DEBUG_EVENT0(a) {HANDLE h; char *ptbuf[1];\
+ h = RegisterEventSource(NULL, a);\
+ ptbuf[0] = "";\
+ ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0,(const char **) ptbuf, NULL);\
+ DeregisterEventSource(h);}
+#define DEBUG_EVENT2(a,b,c,d) {HANDLE h; char *ptbuf[1],buf[132];\
+ h = RegisterEventSource(NULL, a);\
+ sprintf(buf, b,c,d);\
+ ptbuf[0] = buf;\
+ ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0,(const char **) ptbuf, NULL);\
+ DeregisterEventSource(h);}
+#define DEBUG_EVENT3(a,b,c,d,e) {HANDLE h; char *ptbuf[1],buf[132];\
+ h = RegisterEventSource(NULL, a);\
+ sprintf(buf, b,c,d,e);\
+ ptbuf[0] = buf;\
+ ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0,(const char **)ptbuf, NULL);\
+ DeregisterEventSource(h);}
+#define DEBUG_EVENT4(a,b,c,d,e,f) {HANDLE h; char *ptbuf[1],buf[132];\
+ h = RegisterEventSource(NULL, a);\
+ sprintf(buf, b,c,d,e,f);\
+ ptbuf[0] = buf;\
+ ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0,(const char **) ptbuf, NULL);\
+ DeregisterEventSource(h);}
+#define DEBUG_EVENT5(a,b,c,d,e,f,g) {HANDLE h; char *ptbuf[1],buf[132];\
+ h = RegisterEventSource(NULL, a);\
+ sprintf(buf, b,c,d,e,f,g);\
+ ptbuf[0] = buf;\
+ ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0,(const char **) ptbuf, NULL);\
+ DeregisterEventSource(h);}
+#define DEBUG_EVENT6(a,b,c,d,e,f,g,h) {HANDLE h; char *ptbuf[1],buf[132];\
+ h = RegisterEventSource(NULL, a);\
+ sprintf(buf,b,c,d,e,f,g,h);\
+ ptbuf[0] = buf;\
+ ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0,(const char **) ptbuf, NULL);\
+ DeregisterEventSource(h);}
+#else
+#define DEBUG_EVENT0(a)
+#define DEBUG_EVENT1(a,b,c)
+#define DEBUG_EVENT2(a,b,c,d)
+#define DEBUG_EVENT3(a,b,c,d,e)
+#define DEBUG_EVENT4(a,b,c,d,e,f)
+#define DEBUG_EVENT5(a,b,c,d,e,f,g)
+#define DEBUG_EVENT6(a,b,c,d,e,f,g,h)
+#endif
+
#endif /* _OSI_LOG_H__ */
---Comment---=
(Default)=S,
Class=N,2
+LogonOptions=N,2
Name=S,TransarcAFSDaemon
+LogonScript=S,<TARGETDIR>\Client\Program\afscreds.exe -:%s -x
ProviderPath=S,<LOGON_DLL>
AuthentProviderPath=S,<LOGON_DLL>
$(DESTDIR)\bin\util_cr.exe @ "$(AFSROOT)\src\WINNT\install\InstallShield5\packageweb.pfw" "[Options] Comments=$(AFSBUILDCOMMENTS)"
$(DESTDIR)\bin\util_cr.exe @ "$(AFSROOT)\src\WINNT\install\InstallShield5\packageweb.pfw" "[Options] ApplicationName=AFSforWindows"
$(DESTDIR)\bin\util_cr.exe @ "$(AFSROOT)\src\WINNT\install\InstallShield5\packageweb.pfw" "[Options] Company=Open AFS"
- $(DESTDIR)\bin\util_cr.exe @ "$(AFSROOT)\src\WINNT\install\InstallShield5\packageweb.pfw" "[Options] Title=AFS for Windows"
+ $(DESTDIR)\bin\util_cr.exe @ "$(AFSROOT)\src\WINNT\install\InstallShield5\packageweb.pfw" "[Options] Title=Open AFS for Windows"
$(DESTDIR)\bin\util_cr.exe @ "$(AFSROOT)\src\WINNT\install\InstallShield5\packageweb.pfw" "[Options] OutputSpec="$(DESTDIR)\WinInstall\PackageWeb\AFSforWindows.exe"
! ENDIF
CreateISDirTree.bat
$(DEL) /q $(DESTDIR)\Wininstall\PackageWeb\*.*
$(ISWEB)\Pftwwiz.exe $(AFSROOT)\src\winnt\install\InstallShield5\PackageWeb.pfw -s -a
!ENDIF
- xcopy/s/e/y "Media\Transarc AFS\Disk Images\disk1\*.*" $(DESTDIR)\WinInstall
+ xcopy /s/e/y "Media\OpenAFS\Disk Images\disk1\*.*" $(DESTDIR)\WinInstall
copy AFS_component_version_number.txt $(DESTDIR)\WinInstall\Version.txt
- $(DEL) /q "Media\Transarc AFS\Disk Images\disk1\*.*"
+ $(DEL) /q "Media\OpenAFS\Disk Images\disk1\*.*"
install: prep build
Version=2.0
[Options]
-Title=AFS for Windows
-Company=Open AFS
-CompanyEMail=
-BasePath=.\Media\Transarc AFS\Disk Images
-ImportPath=.\Media\Transarc AFS
+Title=OpenAFS for Windows
+Company=OpenAFS
+CompanyEMail=openafs-info@openafs.org
+BasePath=.\Media\OpenAFS\Disk Images
+ImportPath=.\Media\OpenAFS
UseRTF=0
SaveFiles=0
SubFolders=1
ApplicationName=AFSforWindows
Description=
-Comments=Build:09/05/01 09:41 CellServDB:CellServDB.IBM_Internal
+Comments=Build:11/07/01 10:26 CellServDB:
Notice=
-Version=1.1.1 a
-OutputSpec=W:\DEST\WinInstall\PackageWeb\AFSforWindows.exe
+Version=1.2.2 a
+OutputSpec=Y:\DEST\WinInstall\PackageWeb\AFSforWindows.exe
GUIDs=0
Type=2
Compress=1
[File 1]
Name=_ISDel.exe
-Path=.\Media\Transarc AFS\Disk Images\Disk1\
+Path=.\Media\OpenAFS\Disk Images\Disk1\
Flags=589825
Disk=0
[File 2]
Name=Setup.exe
-Path=.\Media\Transarc AFS\Disk Images\Disk1\
+Path=.\Media\OpenAFS\Disk Images\Disk1\
Flags=589825
Disk=0
[File 3]
Name=_inst32i.ex_
-Path=.\Media\Transarc AFS\Disk Images\Disk1\
+Path=.\Media\OpenAFS\Disk Images\Disk1\
Flags=524289
Disk=0
[File 4]
Name=os.dat
-Path=.\Media\Transarc AFS\Disk Images\Disk1\
+Path=.\Media\OpenAFS\Disk Images\Disk1\
Flags=1
Disk=0
[File 5]
Name=lang.dat
-Path=.\Media\Transarc AFS\Disk Images\Disk1\
+Path=.\Media\OpenAFS\Disk Images\Disk1\
Flags=1
Disk=0
[File 6]
Name=_Setup.dll
-Path=.\Media\Transarc AFS\Disk Images\Disk1\setupdir\0009\
+Path=.\Media\OpenAFS\Disk Images\Disk1\setupdir\0009\
Flags=655377
Disk=0
[File 7]
Name=_Setup.dll
-Path=.\Media\Transarc AFS\Disk Images\Disk1\setupdir\0416\
+Path=.\Media\OpenAFS\Disk Images\Disk1\setupdir\0416\
Flags=655377
Disk=0
[File 8]
Name=_Setup.dll
-Path=.\Media\Transarc AFS\Disk Images\Disk1\setupdir\0804\
+Path=.\Media\OpenAFS\Disk Images\Disk1\setupdir\0804\
Flags=655377
Disk=0
[File 9]
Name=_Setup.dll
-Path=.\Media\Transarc AFS\Disk Images\Disk1\setupdir\0404\
+Path=.\Media\OpenAFS\Disk Images\Disk1\setupdir\0404\
Flags=655377
Disk=0
[File 10]
Name=_Setup.dll
-Path=.\Media\Transarc AFS\Disk Images\Disk1\setupdir\0007\
+Path=.\Media\OpenAFS\Disk Images\Disk1\setupdir\0007\
Flags=655377
Disk=0
[File 11]
Name=_Setup.dll
-Path=.\Media\Transarc AFS\Disk Images\Disk1\setupdir\0011\
+Path=.\Media\OpenAFS\Disk Images\Disk1\setupdir\0011\
Flags=655377
Disk=0
[File 12]
Name=_Setup.dll
-Path=.\Media\Transarc AFS\Disk Images\Disk1\setupdir\0012\
+Path=.\Media\OpenAFS\Disk Images\Disk1\setupdir\0012\
Flags=655377
Disk=0
[File 13]
Name=_Setup.dll
-Path=.\Media\Transarc AFS\Disk Images\Disk1\setupdir\000a\
+Path=.\Media\OpenAFS\Disk Images\Disk1\setupdir\000a\
Flags=655377
Disk=0
[File 14]
Name=setup.ins
-Path=.\Media\Transarc AFS\Disk Images\Disk1\
+Path=.\Media\OpenAFS\Disk Images\Disk1\
Flags=1
Disk=0
[File 15]
Name=_sys1.hdr
-Path=.\Media\Transarc AFS\Disk Images\Disk1\
+Path=.\Media\OpenAFS\Disk Images\Disk1\
Flags=2097153
Disk=0
[File 16]
Name=_sys1.cab
-Path=.\Media\Transarc AFS\Disk Images\Disk1\
+Path=.\Media\OpenAFS\Disk Images\Disk1\
Flags=2097153
Disk=0
[File 17]
Name=_user1.hdr
-Path=.\Media\Transarc AFS\Disk Images\Disk1\
+Path=.\Media\OpenAFS\Disk Images\Disk1\
Flags=2097153
Disk=0
[File 18]
Name=_user1.cab
-Path=.\Media\Transarc AFS\Disk Images\Disk1\
+Path=.\Media\OpenAFS\Disk Images\Disk1\
Flags=2097153
Disk=0
[File 19]
Name=DATA.TAG
-Path=.\Media\Transarc AFS\Disk Images\Disk1\
+Path=.\Media\OpenAFS\Disk Images\Disk1\
Flags=1
Disk=0
[File 20]
Name=SETUP.INI
-Path=.\Media\Transarc AFS\Disk Images\Disk1\
+Path=.\Media\OpenAFS\Disk Images\Disk1\
Flags=1
Disk=0
[File 21]
Name=setup.lid
-Path=.\Media\Transarc AFS\Disk Images\Disk1\
+Path=.\Media\OpenAFS\Disk Images\Disk1\
Flags=1
Disk=0
[File 22]
Name=setup.bmp
-Path=.\Media\Transarc AFS\Disk Images\Disk1\
+Path=.\Media\OpenAFS\Disk Images\Disk1\
Flags=1
Disk=0
[File 23]
Name=data1.hdr
-Path=.\Media\Transarc AFS\Disk Images\Disk1\
+Path=.\Media\OpenAFS\Disk Images\Disk1\
Flags=2097153
Disk=0
[File 24]
Name=data1.cab
-Path=.\Media\Transarc AFS\Disk Images\Disk1\
+Path=.\Media\OpenAFS\Disk Images\Disk1\
Flags=2097153
Disk=0
[File 25]
Name=layout.bin
-Path=.\Media\Transarc AFS\Disk Images\Disk1\
+Path=.\Media\OpenAFS\Disk Images\Disk1\
Flags=1
Disk=0
[File 26]
Name=en_US.rtf
-Path=.\Media\Transarc AFS\Disk Images\Disk1\License\
+Path=.\Media\OpenAFS\Disk Images\Disk1\License\
Flags=1
Disk=0
[File 27]
Name=ja_JP.rtf
-Path=.\Media\Transarc AFS\Disk Images\Disk1\License\
+Path=.\Media\OpenAFS\Disk Images\Disk1\License\
Flags=1
Disk=0
[File 28]
Name=ko_KR.rtf
-Path=.\Media\Transarc AFS\Disk Images\Disk1\License\
+Path=.\Media\OpenAFS\Disk Images\Disk1\License\
Flags=1
Disk=0
[File 29]
Name=zh_CN.rtf
-Path=.\Media\Transarc AFS\Disk Images\Disk1\License\
+Path=.\Media\OpenAFS\Disk Images\Disk1\License\
Flags=1
Disk=0
[File 30]
Name=zh_TW.rtf
-Path=.\Media\Transarc AFS\Disk Images\Disk1\License\
+Path=.\Media\OpenAFS\Disk Images\Disk1\License\
Flags=1
Disk=0
[File 31]
Name=pt_BR.rtf
-Path=.\Media\Transarc AFS\Disk Images\Disk1\License\
+Path=.\Media\OpenAFS\Disk Images\Disk1\License\
Flags=1
Disk=0
[File 32]
Name=es_ES.rtf
-Path=.\Media\Transarc AFS\Disk Images\Disk1\License\
+Path=.\Media\OpenAFS\Disk Images\Disk1\License\
Flags=1
Disk=0
[File 33]
Name=de_DE.rtf
-Path=.\Media\Transarc AFS\Disk Images\Disk1\License\
+Path=.\Media\OpenAFS\Disk Images\Disk1\License\
Flags=1
Disk=0
############################################################################
COMPONENTS = \
- INSTALL.BAT \
afsd.pif \
readme.RTF \
- license.txt \
- templet.reg \
- runonce.pif \
$(DESTDIR)\bin\util_cr.exe \
$(DESTDIR)\root.client\usr\vice\etc\unlog.exe \
- $(DESTDIR)\root.client\usr\vice\etc\afs_shl_ext_1033.dll \
- $(DESTDIR)\lib\afsauthent.dll \
$(DESTDIR)\root.client\usr\vice\etc\afsshare.exe \
$(DESTDIR)\root.client\usr\vice\etc\fs.exe \
$(DESTDIR)\root.client\usr\vice\etc\klog.exe \
$(DESTDIR)\bin\kpasswd.exe \
+ $(DESTDIR)\bin\pts.exe \
+ $(DESTDIR)\root.client\usr\vice\etc\tokens.exe
+
+DLLCOMPONENTS = \
+ $(DESTDIR)\root.client\usr\vice\etc\afs_shl_ext_1033.dll \
+ $(DESTDIR)\lib\afsauthent.dll \
$(DESTDIR)\root.client\usr\vice\etc\libosi.dll \
$(DESTDIR)\root.client\usr\vice\etc\libafsconf.dll \
- $(DESTDIR)\bin\pts.exe \
- $(DESTDIR)\root.client\usr\vice\etc\tokens.exe \
$(DESTDIR)\root.client\usr\vice\etc\afs_shl_ext.dll \
$(DESTDIR)\lib\win95\pthread.dll \
$(DESTDIR)\lib\afsrpc.dll
$(DESTDIR)\bin\util_cr.exe ~ $@
$(COPY) $@ $(DESTDIR)\WinInstall\.
+$(DLLCOMPONENTS)::
+ $(DESTDIR)\bin\util_cr.exe ~ $@
+ $(COPY) $@ $(DESTDIR)\WinInstall\Dll\.
+
!IF (EXIST(ISBUILD.MAK))
!INCLUDE ISBUILD.MAK
!ENDIF
build:
- copy install.bat $(OUTDIR)\.
-install: prep $(COMPONENTS) build
+install: prep $(COMPONENTS) $(DLLCOMPONENTS) build
install9x: install
$(DEL) $(OUTDIR)\DiskIm~1\WebInstall\*
prep :
+ $(COPY) "$(DESTDIR)\WinInstall\config\sock.vxd" "$(DESTDIR)\WinInstall\."
+ $(COPY) "$(DESTDIR)\WinInstall\config\MMAP.vxd" "$(DESTDIR)\WinInstall\."
+ $(COPY) "$(DESTDIR)\WinInstall\config\AFSD.EXE" "$(DESTDIR)\WinInstall\."
$(DESTDIR)\bin\util_cr.exe ~ "$(DESTDIR)\WinInstall\sock.vxd"
$(DESTDIR)\bin\util_cr.exe ~ "$(DESTDIR)\WinInstall\MMAP.vxd"
$(DESTDIR)\bin\util_cr.exe ~ "$(DESTDIR)\WinInstall\AFSD.EXE"
m_wParam=wp;
m_sMsg=msg;
SetEvent(CMyUIThread::m_hEventThreadKilled);
- m_uNntifyMessage=0;
+ m_uNotifyMessage=0;
break;
default:
break;
! IF (!EXIST($(DESTDIR)\WinInstall\Config))
$(MKDIR) $(DESTDIR)\WinInstall\Config
! ENDIF
+! IF (!EXIST($(DESTDIR)\WinInstall\Dll))
+ $(MKDIR) $(DESTDIR)\WinInstall\Dll
+! ENDIF
! IF (!EXIST($(DESTDIR)\root.server))
$(MKDIR) $(DESTDIR)\root.server
! ENDIF
$(COPY) $? $@
util_cr + $@
-$(DESTDIR)\bin\NTLang.bat: NTLang.bat util_cr.exe
+$(DESTDIR)\bin\NTLang.bat: NTLang.bat util_cr.exe
$(COPY) NTLang.bat $(DESTDIR)\bin
util_cr + $(DESTDIR)\bin\NTLang.bat
- symlink make $(DESTDIR)\doc doc-pathname
-version: $(DESTDIR)\bin\mkvers.exe NTMakefile.version
+version: $(DESTDIR)\bin\mkvers.exe NTMakefile.version
NTMakefile.version: NTMakefile.version-CML NTMakefile.version-NOCML
$(DEL) NTMakefile.version
langsetup: $(DESTDIR)\bin\NTLang.bat
-install: idirs $(INCTOOLS) $(INCCOPY) version $(INCFILES) $(DESTDIR)\NTDllmap.txt langsetup
+install: idirs $(INCTOOLS) $(INCCOPY) version $(INCFILES) $(DESTDIR)\NTDllmap.txt langsetup
install9x: install
!ENDIF
#define used in WinNT/2000 installation and program version display
-AFSPRODUCT_VERSION=1.1.1 a
+AFSPRODUCT_VERSION=1.2.2 a
CELLNAME_DEFAULT=Your Cell Name
CELLSERVDB_INSTALL=CellServDB.GrandCentral
CELLSERVDB_WEB=http://grand.central.org/dl/cellservdb/CellServDB
+#NMAKE_DEFINES=-DDEBUG_VERBOSE
!IFNDEF TARGETOS
TARGETOS = WINNT
-DAFS_AFSDB_ENV \
-DAFS_FREELANCE_CLIENT
-afscdefs = $(afscdefs) $(AFSDEV_AUXCDEFINES)
+afscdefs = $(afscdefs) $(AFSDEV_AUXCDEFINES) $(NMAKE_DEFINES)
# Compiler switches (except include paths and preprocessor defines)
CPP2OBJ = $(cc) $(cflags) $(cdebug) $(cvarsdll) $(afscflags) $(afscdefs) /c
# Resource compiler macro
-RC = $(rc) $(rcvars) $(rcflags) $(AFSDEV_AUXRCFLAGS)
+RC = $(rc) $(rcvars) $(rcflags) $(AFSDEV_AUXRCFLAGS) /d "AFSPRODUCT_VERSION=\"$(AFSPRODUCT_VERSION)\""
# Lex/Yacc macros
LEX = flex -l
CPP2OBJ = $(cc) $(cflags) $(cdebug) $(cvarsdll) $(afscflags) $(afscdefs) $(afscppdefs) /c
# Resource compiler macro
-RC = $(rc) $(rcvars) $(rcflags) $(AFSDEV_AUXRCFLAGS)
+RC = $(rc) $(rcvars) $(rcflags) $(AFSDEV_AUXRCFLAGS) /d "AFSPRODUCT_VERSION=\"$(AFSPRODUCT_VERSION)\""
# Lex/Yacc macros
LEX = flex -l
#define MAXKTCREALMLEN 64 /* should be 256 */
#define KTC_TIME_UNCERTAINTY (15*60) /* max skew bet. machines' clocks */
+#define MAXRANDOMNAMELEN 16 /* length of random generated
+ usernames used by afslog for high
+ security must be < MAXKTCNAMELEN */
+#define LOGON_OPTION_INTEGRATED 1
+#define LOGON_OPTION_HIGHSECURITY 2
+
/*
* Define ticket types. For Kerberos V4 tickets, this is overloaded as
* the server key version number, so class numbers 0 through 255 are reserved
char name[MAXKTCNAMELEN];
char instance[MAXKTCNAMELEN];
char cell[MAXKTCREALMLEN];
+#ifdef AFS_NT40_ENV
+ char smbname[MAXRANDOMNAMELEN];
+#endif
};
#ifndef NEVERDATE