From: James Peterson Date: Sat, 10 Nov 2001 22:31:04 +0000 (+0000) Subject: windows-updates-including-dont-lose-tokens-20011110 X-Git-Tag: openafs-devel-1_3_0~138 X-Git-Url: http://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=de99fc23d41b57902b36b10179a8129da9b8b0ff windows-updates-including-dont-lose-tokens-20011110 Win2k tokens association problems are fixed. details are in doc/txt/winnotes in the 1.2.2a updates file --- diff --git a/src/NTMake9x b/src/NTMake9x index 8fb9842..141bf70 100644 --- a/src/NTMake9x +++ b/src/NTMake9x @@ -22,6 +22,7 @@ NTMAKE = nmake /nologo /f ntmakefile install9x 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 @@ -306,7 +307,7 @@ Win9x:: $(CD) $(OBJ)\WINNT\install\Win9x nmake /nologo /f NTMakefile isinstall $(CD) ..\..\..\.. - eho **** End of Install Scripts + echo **** End of Install Scripts media: Win9x diff --git a/src/NTMakefile b/src/NTMakefile index 07cc29a..9252dbe 100644 --- a/src/NTMakefile +++ b/src/NTMakefile @@ -476,7 +476,7 @@ install: start finale # InstallShield dependencies -InstallShield5: install +InstallShield5: echo ***** afs_setup_utils $(CD) $(OBJ)\WINNT\afs_setup_utils $(NTMAKE) diff --git a/src/WINNT/afs_setup_utils/NTMakefile b/src/WINNT/afs_setup_utils/NTMakefile index 0115b0b..07e09e9 100644 --- a/src/WINNT/afs_setup_utils/NTMakefile +++ b/src/WINNT/afs_setup_utils/NTMakefile @@ -90,8 +90,6 @@ DIRLANG= ZH_TW ZH_CN PT_BR KO_KR JA_JP ES_ES EN_US DE_DE 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 diff --git a/src/WINNT/afs_setup_utils/afs_setup_utils.cpp b/src/WINNT/afs_setup_utils/afs_setup_utils.cpp index 7a0aa8e..3de3b27 100644 --- a/src/WINNT/afs_setup_utils/afs_setup_utils.cpp +++ b/src/WINNT/afs_setup_utils/afs_setup_utils.cpp @@ -908,6 +908,10 @@ static int InstallService(char *pszName, char *pszDependOn, char *pszDisplayName 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()); @@ -976,6 +980,10 @@ static int UninstallService(struct APPINFO *pAppInfo) 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()); diff --git a/src/WINNT/afsd/afsd_service.c b/src/WINNT/afsd/afsd_service.c index 3df9c7f..0ad3327 100644 --- a/src/WINNT/afsd/afsd_service.c +++ b/src/WINNT/afsd/afsd_service.c @@ -185,6 +185,7 @@ void afsd_Main() int jmpret; osi_InitPanic(afsd_notifier); + osi_InitTraceOption(); GlobalStatus = 0; @@ -250,7 +251,7 @@ void afsd_Main() CheckMountDrive(); WaitForSingleObject(WaitToTerminate, INFINITE); - + { HANDLE h; char *ptbuf[1]; h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME); diff --git a/src/WINNT/afsd/afslogon.c b/src/WINNT/afsd/afslogon.c index 9d98816..dbf166c 100644 --- a/src/WINNT/afsd/afslogon.c +++ b/src/WINNT/afsd/afslogon.c @@ -19,20 +19,30 @@ #include "cm_config.h" #include "krb.h" +#include +#include +#include +#include + +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 { @@ -57,24 +67,65 @@ typedef struct _MSV1_0_INTERACTIVE_LOGON { * * 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;iUserName.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); @@ -331,17 +482,19 @@ checkauth: 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; } @@ -354,6 +507,7 @@ DWORD APIENTRY NPPasswordChangeNotify( LPVOID StationHandle, DWORD dwChangeInfo) { + DebugEvent0("AFS AfsLogon - NPPasswordChangeNotify"); return 0; } diff --git a/src/WINNT/afsd/cm_config.c b/src/WINNT/afsd/cm_config.c index 10a0d44..f09e9fc 100644 --- a/src/WINNT/afsd/cm_config.c +++ b/src/WINNT/afsd/cm_config.c @@ -438,7 +438,7 @@ long cm_WriteConfigInt(char *labelp, long value) return -1; code = RegSetValueEx(parmKey, labelp, 0, REG_DWORD, - &value, sizeof(value)); + (LPBYTE)&value, sizeof(value)); RegCloseKey (parmKey); if (code != ERROR_SUCCESS) return -1; @@ -535,7 +535,7 @@ long cm_AppendNewCellLine(cm_configFile_t *filep, char *linep) return 0; } -extern long cm_CloseCellFile(cm_configFile_t *filep) +long cm_CloseCellFile(cm_configFile_t *filep) { char wdir[256]; char sdir[256]; diff --git a/src/WINNT/afsd/fs.c b/src/WINNT/afsd/fs.c index 1ad8aaf..a981f23 100644 --- a/src/WINNT/afsd/fs.c +++ b/src/WINNT/afsd/fs.c @@ -1754,7 +1754,7 @@ register struct cmd_syndesc *as; { 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; diff --git a/src/WINNT/afsd/smb.c b/src/WINNT/afsd/smb.c index 5a03d90..e1c8c85 100644 --- a/src/WINNT/afsd/smb.c +++ b/src/WINNT/afsd/smb.c @@ -778,16 +778,7 @@ smb_user_t *smb_FindUID(smb_vc_t *vcp, unsigned short uid, int flags) 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; } } @@ -800,16 +791,7 @@ smb_user_t *smb_FindUID(smb_vc_t *vcp, unsigned short uid, int flags) 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; @@ -850,16 +832,7 @@ smb_user_t *smb_FindUserByNameThisSession(smb_vc_t *vcp, char *usern) 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; @@ -5391,27 +5364,11 @@ void smb_DispatchPacket(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp, 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) { @@ -5465,7 +5422,7 @@ void smb_DispatchPacket(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp, 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 */ diff --git a/src/WINNT/afsd/smb3.c b/src/WINNT/afsd/smb3.c index 207f9f8..fad864d 100644 --- a/src/WINNT/afsd/smb3.c +++ b/src/WINNT/afsd/smb3.c @@ -139,24 +139,6 @@ long smb_ReceiveV3SessionSetupX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t * 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 @@ -171,16 +153,8 @@ long smb_ReceiveV3SessionSetupX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t * 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 { @@ -192,7 +166,7 @@ long smb_ReceiveV3SessionSetupX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t * 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 */ @@ -203,21 +177,12 @@ long smb_ReceiveV3SessionSetupX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t * 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 */ @@ -619,6 +584,8 @@ long smb_ReceiveV3Tran2A(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp) 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, @@ -4137,7 +4104,6 @@ cm_user_t *smb_FindCMUserByName(/*smb_vc_t *vcp,*/ char *usern, char *machine) { cm_user_t *userp; /*int newUid;*/ - smb_user_t *uidp; smb_username_t *unp; unp = smb_FindUserByName(usern, machine, SMB_FLAG_CREATE); @@ -4145,27 +4111,10 @@ cm_user_t *smb_FindCMUserByName(/*smb_vc_t *vcp,*/ char *usern, char *machine) 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; } diff --git a/src/WINNT/afsd/smb_ioctl.c b/src/WINNT/afsd/smb_ioctl.c index 3b1722d..a5d36df 100644 --- a/src/WINNT/afsd/smb_ioctl.c +++ b/src/WINNT/afsd/smb_ioctl.c @@ -283,9 +283,14 @@ long smb_IoctlV3Read(smb_fid_t *fidp, smb_vc_t *vcp, smb_packet_t *inp, smb_pack 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); } diff --git a/src/WINNT/client_config/config.cpp b/src/WINNT/client_config/config.cpp index 7a0435a..69b40c3 100644 --- a/src/WINNT/client_config/config.cpp +++ b/src/WINNT/client_config/config.cpp @@ -217,7 +217,15 @@ BOOL Config_SetCellName (LPCTSTR pszName, ULONG *pStatus) 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; @@ -335,7 +343,7 @@ BOOL Config_SetAuthentFlag (BOOL fFlag, ULONG *pStatus) Message (MB_ICONHAND, GetErrorTitle(), IDS_FAILCONFIG_AUTHENT, TEXT("%ld"), status); return rc; } - +#endif void Config_GetTrayIconFlag (BOOL *pfFlag) { @@ -811,7 +819,7 @@ BOOL Config_SetCachePath(LPCTSTR pszPath, ULONG *pStatus) void Config_GetLanAdapter (ULONG *pnLanAdapter) { if (!Config_ReadNum (TEXT("LANadapter"), (DWORD*)pnLanAdapter)) - *pnLanAdapter = 0; + *pnLanAdapter = -1; } BOOL Config_SetLanAdapter (ULONG nLanAdapter, ULONG *pStatus) diff --git a/src/WINNT/client_config/config.h b/src/WINNT/client_config/config.h index 44ca219..712ff74 100644 --- a/src/WINNT/client_config/config.h +++ b/src/WINNT/client_config/config.h @@ -57,9 +57,6 @@ BOOL Config_SetGatewayName (LPCTSTR pszName, ULONG *pStatus = NULL); 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); diff --git a/src/WINNT/client_config/dlg_misc.cpp b/src/WINNT/client_config/dlg_misc.cpp index c16df9c..a1d8759 100644 --- a/src/WINNT/client_config/dlg_misc.cpp +++ b/src/WINNT/client_config/dlg_misc.cpp @@ -95,6 +95,13 @@ BOOL CALLBACK Misc_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp) 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; @@ -129,7 +136,7 @@ void Misc_OnInitDialog (HWND hDlg) 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); @@ -137,11 +144,14 @@ void Misc_OnInitDialog (HWND hDlg) 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)); @@ -161,7 +171,7 @@ BOOL Misc_OnApply() { if (fFirstTime) return TRUE; - + if (nLanAdapter != g.Configuration.nLanAdapter) { if (!Config_SetLanAdapter (nLanAdapter)) return FALSE; diff --git a/src/WINNT/client_config/drivemap.cpp b/src/WINNT/client_config/drivemap.cpp index 0acaed0..19531d3 100644 --- a/src/WINNT/client_config/drivemap.cpp +++ b/src/WINNT/client_config/drivemap.cpp @@ -10,21 +10,24 @@ extern "C" { #include #include +#include } - #include #include #include #include #include "drivemap.h" - +#include +#include +#include /* * REGISTRY ___________________________________________________________________ * */ -static const TCHAR AFSConfigKeyName[] = TEXT("SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\Parameters"); +#undef AFSConfigKeyName +const TCHAR sAFSConfigKeyName[] = TEXT("SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\Parameters"); /* @@ -452,7 +455,7 @@ BOOL DriveIsGlobalAfsDrive(TCHAR chDrive) 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; @@ -745,8 +748,11 @@ BOOL GetDriveSubmount (TCHAR chDrive, LPTSTR pszSubmountNow) pszSubmount = &szMapping[ lstrlen(cszLANMANDEVICE) ]; if (IsWindows2000()) + { if (*(pszSubmount) != TEXT(';')) return FALSE; + } else + --pszSubmount; if (toupper(*(++pszSubmount)) != chDrive) return FALSE; @@ -791,3 +797,300 @@ BOOL GetDriveSubmount (TCHAR chDrive, LPTSTR pszSubmountNow) 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;i0)) + 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 #include +#include } #include "afs_config.h" @@ -17,6 +18,8 @@ extern "C" { #include "tab_hosts.h" #include "tab_advanced.h" +#include "drivemap.h" +#include /* * VARIABLES __________________________________________________________________ @@ -70,7 +73,6 @@ BOOL fIsCellInCellServDB (LPCTSTR pszCell); BOOL CALLBACK Status_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp); void Status_OnRefresh (HWND hDlg); - /* * ROUTINES ___________________________________________________________________ * @@ -220,7 +222,6 @@ BOOL GeneralTab_VerifyOK (HWND hDlg, BOOL fComplainIfInvalid) return TRUE; } - BOOL GeneralTab_OnApply (HWND hDlg, BOOL fForce, BOOL fComplainIfInvalid) { if (!fForce) @@ -260,8 +261,7 @@ BOOL GeneralTab_OnApply (HWND hDlg, BOOL fForce, BOOL fComplainIfInvalid) 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; } @@ -325,7 +325,7 @@ void GeneralTab_OnRefresh (HWND hDlg, BOOL fRequery) 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) @@ -406,6 +406,7 @@ void GeneralTab_OnTimer (HWND hDlg) { 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) @@ -684,6 +685,7 @@ void GeneralTab_DoStartStop (HWND hDlg, BOOL fStart, BOOL fRestart) { g.fNeedRestart = FALSE; if (StartService (hService, 0, 0)) + TestAndDoMapShare(SERVICE_START_PENDING); fSuccess = TRUE; } else // (!fStart) @@ -691,6 +693,8 @@ void GeneralTab_DoStartStop (HWND hDlg, BOOL fStart, BOOL fRestart) SERVICE_STATUS Status; if (ControlService (hService, SERVICE_CONTROL_STOP, &Status)) fSuccess = TRUE; + if (g.Configuration.fLogonAuthent) + DoUnMapShare(FALSE); } CloseServiceHandle (hService); diff --git a/src/WINNT/client_creds/advtab.cpp b/src/WINNT/client_creds/advtab.cpp index a5aff1e..0dcf7f5 100644 --- a/src/WINNT/client_creds/advtab.cpp +++ b/src/WINNT/client_creds/advtab.cpp @@ -122,6 +122,7 @@ void Advanced_OnServiceTimer (HWND hDlg) DWORD dwSize = sizeof(Config); QueryServiceConfig (hService, (QUERY_SERVICE_CONFIG*)&Config, sizeof(Config), &dwSize); QueryServiceStatus (hService, &Status); + TestAndDoMapShare(Status.dwCurrentState); CloseServiceHandle (hService); } @@ -156,6 +157,7 @@ void Advanced_OnServiceTimer (HWND hDlg) 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)) @@ -194,12 +196,16 @@ void Advanced_OnChangeService (HWND hDlg, WORD wCmd) 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; } diff --git a/src/WINNT/client_creds/afswiz.cpp b/src/WINNT/client_creds/afswiz.cpp index c538479..b3d7fce 100644 --- a/src/WINNT/client_creds/afswiz.cpp +++ b/src/WINNT/client_creds/afswiz.cpp @@ -225,7 +225,8 @@ void WizStarting_OnInitDialog (HWND hDlg) 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); } @@ -253,6 +254,7 @@ void WizStarting_OnTimer (HWND hDlg) { QueryServiceStatus (hService, &Status); CloseServiceHandle (hService); + TestAndDoMapShare(Status.dwCurrentState); } CloseServiceHandle (hManager); diff --git a/src/WINNT/client_creds/main.cpp b/src/WINNT/client_creds/main.cpp index e43b910..51de6b7 100644 --- a/src/WINNT/client_creds/main.cpp +++ b/src/WINNT/client_creds/main.cpp @@ -14,6 +14,7 @@ extern "C" { #include "afscreds.h" #include "..\afsreg\afsreg.h" // So we can see if the server's installed +#include "drivemap.h" /* @@ -111,10 +112,18 @@ BOOL InitApp (LPSTR pszCmdLineA) 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) diff --git a/src/WINNT/client_osi/libosi.def b/src/WINNT/client_osi/libosi.def index 2efa1b3..b60c39c 100644 --- a/src/WINNT/client_osi/libosi.def +++ b/src/WINNT/client_osi/libosi.def @@ -65,3 +65,6 @@ EXPORTS osi_LogPrint @58 osi_LogSaveString @59 osi_InitPanic @60 + osi_InitTraceOption @61 + osi_LogEvent0 @62 + osi_LogEvent @63 diff --git a/src/WINNT/client_osi/osilog.c b/src/WINNT/client_osi/osilog.c index 5f44377..890745e 100644 --- a/src/WINNT/client_osi/osilog.c +++ b/src/WINNT/client_osi/osilog.c @@ -330,3 +330,55 @@ void osi_LogDisable(osi_log_t *logp) 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); +} + + +#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); +} diff --git a/src/WINNT/client_osi/osilog.h b/src/WINNT/client_osi/osilog.h index 569f429..9eb11ab 100644 --- a/src/WINNT/client_osi/osilog.h +++ b/src/WINNT/client_osi/osilog.h @@ -6,8 +6,6 @@ * */ -/* Copyright (C) 1994 Cazamar Systems, Inc. */ - #ifndef _OSI_LOG_H__ #define _OSI_LOG_H__ 1 @@ -82,6 +80,9 @@ extern void osi_LogPanic(char *filep, long line); 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) @@ -90,4 +91,56 @@ extern char *osi_LogSaveString(osi_log_t *logp, char *s); #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__ */ diff --git a/src/WINNT/install/InstallShield5/Default.txt b/src/WINNT/install/InstallShield5/Default.txt index f0f68c9..306a433 100644 --- a/src/WINNT/install/InstallShield5/Default.txt +++ b/src/WINNT/install/InstallShield5/Default.txt @@ -195,7 +195,9 @@ AFS Client FME=S,\Client\Program\afs_fme.dll ---Comment---= (Default)=S, Class=N,2 +LogonOptions=N,2 Name=S,TransarcAFSDaemon +LogonScript=S,\Client\Program\afscreds.exe -:%s -x ProviderPath=S, AuthentProviderPath=S, diff --git a/src/WINNT/install/InstallShield5/NTMakefile b/src/WINNT/install/InstallShield5/NTMakefile index 96d30aa..5577a96 100644 --- a/src/WINNT/install/InstallShield5/NTMakefile +++ b/src/WINNT/install/InstallShield5/NTMakefile @@ -35,7 +35,7 @@ prep: AFS_component_version_number.txt $(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 @@ -62,8 +62,8 @@ build: $(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 diff --git a/src/WINNT/install/InstallShield5/PackageWeb.pfw b/src/WINNT/install/InstallShield5/PackageWeb.pfw index 8db507b..ca9a7a5 100644 --- a/src/WINNT/install/InstallShield5/PackageWeb.pfw +++ b/src/WINNT/install/InstallShield5/PackageWeb.pfw @@ -2,20 +2,20 @@ 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 @@ -70,198 +70,198 @@ Folder10=Disk1\License [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 diff --git a/src/WINNT/install/Win9x/NTMakeFile b/src/WINNT/install/Win9x/NTMakeFile index fe95e91..af118e6 100644 --- a/src/WINNT/install/Win9x/NTMakeFile +++ b/src/WINNT/install/Win9x/NTMakeFile @@ -12,24 +12,22 @@ OUTDIR = $(DESTDIR)\WinInstall ############################################################################ 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 @@ -38,14 +36,17 @@ $(COMPONENTS):: $(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 @@ -54,6 +55,9 @@ clean :: $(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" diff --git a/src/WINNT/win9xpanel/WinAfsLoad.cpp b/src/WINNT/win9xpanel/WinAfsLoad.cpp index 44d4181..1011135 100644 --- a/src/WINNT/win9xpanel/WinAfsLoad.cpp +++ b/src/WINNT/win9xpanel/WinAfsLoad.cpp @@ -408,7 +408,7 @@ void CWinAfsLoadApp::WSANotifyFromUI(WPARAM wp,const char *msg) m_wParam=wp; m_sMsg=msg; SetEvent(CMyUIThread::m_hEventThreadKilled); - m_uNntifyMessage=0; + m_uNotifyMessage=0; break; default: break; diff --git a/src/config/NTMakefile b/src/config/NTMakefile index 311f97a..4307f5d 100644 --- a/src/config/NTMakefile +++ b/src/config/NTMakefile @@ -72,6 +72,9 @@ idirs: doclink ! 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 @@ -114,7 +117,7 @@ $(DESTDIR)\bin\NTBUILD.bat:..\NTBUILD.bat $(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 @@ -131,7 +134,7 @@ doclink: - 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 @@ -163,7 +166,7 @@ $(DESTDIR)\bin\touch.exe:touch.exe 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 diff --git a/src/config/NTMakefile.i386_nt40 b/src/config/NTMakefile.i386_nt40 index 2d48de1..f6dd3c2 100644 --- a/src/config/NTMakefile.i386_nt40 +++ b/src/config/NTMakefile.i386_nt40 @@ -37,10 +37,11 @@ APPVER = 4.0 !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 @@ -156,7 +157,7 @@ afscdefs =\ -DAFS_AFSDB_ENV \ -DAFS_FREELANCE_CLIENT -afscdefs = $(afscdefs) $(AFSDEV_AUXCDEFINES) +afscdefs = $(afscdefs) $(AFSDEV_AUXCDEFINES) $(NMAKE_DEFINES) # Compiler switches (except include paths and preprocessor defines) @@ -308,7 +309,7 @@ C2OBJ = $(cc) $(cflags) $(cdebug) $(cvarsdll) $(afscflags) $(afscdefs) /c 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 diff --git a/src/config/NTMakefile.i386_win95 b/src/config/NTMakefile.i386_win95 index 176015c..a28eeb8 100644 --- a/src/config/NTMakefile.i386_win95 +++ b/src/config/NTMakefile.i386_win95 @@ -327,7 +327,7 @@ C2OBJ = $(cc) $(cflags) $(cdebug) $(cvarsdll) $(afscflags) $(afscdefs) /c 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 diff --git a/src/rxkad/rxkad.p.h b/src/rxkad/rxkad.p.h index 8e4914b..8c876db 100644 --- a/src/rxkad/rxkad.p.h +++ b/src/rxkad/rxkad.p.h @@ -21,6 +21,12 @@ #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 @@ -46,6 +52,9 @@ struct ktc_principal { char name[MAXKTCNAMELEN]; char instance[MAXKTCNAMELEN]; char cell[MAXKTCREALMLEN]; +#ifdef AFS_NT40_ENV + char smbname[MAXRANDOMNAMELEN]; +#endif }; #ifndef NEVERDATE