Index: openafs/src/WINNT/afsd/NTMakefile diff -c openafs/src/WINNT/afsd/NTMakefile:1.46.2.3 openafs/src/WINNT/afsd/NTMakefile:1.46.2.4 *** openafs/src/WINNT/afsd/NTMakefile:1.46.2.3 Mon Jul 24 10:13:16 2006 --- openafs/src/WINNT/afsd/NTMakefile Thu Aug 31 06:29:48 2006 *************** *** 330,335 **** --- 330,336 ---- $(DESTDIR)\lib\afs\afscom_err.lib \ $(DESTDIR)\lib\afs\afsreg.lib \ $(DESTDIR)\lib\afs\afscmd.lib \ + $(DESTDIR)\lib\afs\afsvldb.lib \ $(DESTDIR)\lib\afsubik.lib \ $(DESTDIR)\lib\afsrxkad.lib \ $(DESTDIR)\lib\afsdes.lib \ Index: openafs/src/WINNT/afsd/afsd_init.c diff -c openafs/src/WINNT/afsd/afsd_init.c:1.79.2.4 openafs/src/WINNT/afsd/afsd_init.c:1.79.2.5 *** openafs/src/WINNT/afsd/afsd_init.c:1.79.2.4 Thu Aug 17 08:41:45 2006 --- openafs/src/WINNT/afsd/afsd_init.c Wed Aug 30 16:12:03 2006 *************** *** 116,122 **** if ( afsi_log_useTimestamp ) { GetTimeFormat(LOCALE_SYSTEM_DEFAULT, 0, NULL, NULL, t, sizeof(t)); GetDateFormat(LOCALE_SYSTEM_DEFAULT, 0, NULL, NULL, d, sizeof(d)); ! StringCbPrintfA(u, sizeof(u), "%s %s: %s\n", d, t, s); if (afsi_file != INVALID_HANDLE_VALUE) WriteFile(afsi_file, u, (DWORD)strlen(u), &zilch, NULL); #ifdef NOTSERVICE --- 116,122 ---- if ( afsi_log_useTimestamp ) { GetTimeFormat(LOCALE_SYSTEM_DEFAULT, 0, NULL, NULL, t, sizeof(t)); GetDateFormat(LOCALE_SYSTEM_DEFAULT, 0, NULL, NULL, d, sizeof(d)); ! StringCbPrintfA(u, sizeof(u), "%s %s: %s\r\n", d, t, s); if (afsi_file != INVALID_HANDLE_VALUE) WriteFile(afsi_file, u, (DWORD)strlen(u), &zilch, NULL); #ifdef NOTSERVICE Index: openafs/src/WINNT/afsd/cm_callback.c diff -c openafs/src/WINNT/afsd/cm_callback.c:1.41.4.5 openafs/src/WINNT/afsd/cm_callback.c:1.41.4.6 *** openafs/src/WINNT/afsd/cm_callback.c:1.41.4.5 Tue Jun 27 23:24:05 2006 --- openafs/src/WINNT/afsd/cm_callback.c Fri Aug 25 13:08:23 2006 *************** *** 125,131 **** Sleep(dwDelay); /* for directories, this sends a change notification on the dir itself */ ! if (scp->fileType == CM_SCACHETYPE_DIRECTORY) { #ifndef AFSIFS if (scp->flags & CM_SCACHEFLAG_ANYWATCH) smb_NotifyChange(0, --- 125,131 ---- Sleep(dwDelay); /* for directories, this sends a change notification on the dir itself */ ! if (scp->fileType == CM_SCACHETYPE_DIRECTORY) { #ifndef AFSIFS if (scp->flags & CM_SCACHEFLAG_ANYWATCH) smb_NotifyChange(0, Index: openafs/src/WINNT/afsd/cm_daemon.c diff -c openafs/src/WINNT/afsd/cm_daemon.c:1.16.4.3 openafs/src/WINNT/afsd/cm_daemon.c:1.16.4.4 *** openafs/src/WINNT/afsd/cm_daemon.c:1.16.4.3 Wed Jul 26 09:04:08 2006 --- openafs/src/WINNT/afsd/cm_daemon.c Wed Aug 30 16:16:15 2006 *************** *** 144,150 **** if (!scm) return FALSE; /* Open Windows Firewall service */ ! svc = OpenService(scm, "SharedAccess", SERVICE_QUERY_CONFIG); if (!svc) goto close_scm; --- 144,156 ---- if (!scm) return FALSE; /* Open Windows Firewall service */ ! svc = OpenService(scm, "MpsSvc", SERVICE_QUERY_CONFIG); ! if (!svc) { ! afsi_log("MpsSvc Service could not be opened for query: 0x%x", GetLastError()); ! svc = OpenService(scm, "SharedAccess", SERVICE_QUERY_CONFIG); ! if (!svc) ! afsi_log("SharedAccess Service could not be opened for query: 0x%x", GetLastError()); ! } if (!svc) goto close_scm; *************** *** 162,171 **** /* Query Windows Firewall service config, this time for real */ flag = QueryServiceConfig(svc, pConfig, BufSize, &BufSize); ! if (!flag) goto free_pConfig; /* Is it autostart? */ if (pConfig->dwStartType < SERVICE_DEMAND_START) result = TRUE; --- 168,180 ---- /* Query Windows Firewall service config, this time for real */ flag = QueryServiceConfig(svc, pConfig, BufSize, &BufSize); ! if (!flag) { ! afsi_log("QueryServiceConfig failed: 0x%x", GetLastError()); goto free_pConfig; + } /* Is it autostart? */ + afsi_log("AutoStart 0x%x", pConfig->dwStartType); if (pConfig->dwStartType < SERVICE_DEMAND_START) result = TRUE; *************** *** 247,252 **** --- 256,265 ---- HMODULE hHookDll; int configureFirewall = IsWindowsFirewallPresent(); + if (!configureFirewall) { + afsi_log("No Windows Firewall detected"); + } + /* ping all file servers, up or down, with unauthenticated connection, * to find out whether we have all our callbacks from the server still. * Also, ping down VLDBs. *************** *** 297,303 **** default: afsi_log("Unknown Windows Firewall Configuration error"); } ! } /* find out what time it is */ now = osi_Time(); --- 310,316 ---- default: afsi_log("Unknown Windows Firewall Configuration error"); } ! } /* find out what time it is */ now = osi_Time(); Index: openafs/src/WINNT/afsd/cm_dnlc.c diff -c openafs/src/WINNT/afsd/cm_dnlc.c:1.10 openafs/src/WINNT/afsd/cm_dnlc.c:1.10.4.1 *** openafs/src/WINNT/afsd/cm_dnlc.c:1.10 Mon Dec 19 07:42:23 2005 --- openafs/src/WINNT/afsd/cm_dnlc.c Wed Sep 6 13:21:19 2006 *************** *** 116,122 **** if (!cm_useDnlc) return ; ! if ( cm_debugDnlc ) osi_Log3(afsd_logp,"cm_dnlcEnter dir %x name %s scache %x", adp, osi_LogSaveString(afsd_logp,aname), avc); --- 116,125 ---- if (!cm_useDnlc) return ; ! ! if (!strcmp(aname,".") || !strcmp(aname,"..")) ! return ; ! if ( cm_debugDnlc ) osi_Log3(afsd_logp,"cm_dnlcEnter dir %x name %s scache %x", adp, osi_LogSaveString(afsd_logp,aname), avc); Index: openafs/src/WINNT/afsd/cm_vnodeops.c diff -c openafs/src/WINNT/afsd/cm_vnodeops.c:1.69.2.9 openafs/src/WINNT/afsd/cm_vnodeops.c:1.69.2.11 *** openafs/src/WINNT/afsd/cm_vnodeops.c:1.69.2.9 Thu Jul 20 17:46:19 2006 --- openafs/src/WINNT/afsd/cm_vnodeops.c Wed Sep 6 13:21:19 2006 *************** *** 1094,1099 **** --- 1094,1102 ---- return CM_ERROR_NOSUCHVOLUME; rock.fid = dscp->dotdotFid; goto haveFid; + } else if (strcmp(namep, ".") == 0) { + rock.fid = dscp->fid; + goto haveFid; } memset(&rock, 0, sizeof(rock)); *************** *** 1256,1262 **** long code; char tname[256]; int sysNameIndex = 0; ! cm_scache_t *scp = 0; if ( stricmp(namep,SMB_IOCTL_FILENAME_NOSLASH) == 0 ) { if (flags & CM_FLAG_CHECKPATH) --- 1259,1265 ---- long code; char tname[256]; int sysNameIndex = 0; ! cm_scache_t *scp = NULL; if ( stricmp(namep,SMB_IOCTL_FILENAME_NOSLASH) == 0 ) { if (flags & CM_FLAG_CHECKPATH) *************** *** 1275,1281 **** } if (scp) { cm_ReleaseSCache(scp); ! scp = 0; } } else { return cm_LookupInternal(dscp, namep, flags, userp, reqp, outpScpp); --- 1278,1284 ---- } if (scp) { cm_ReleaseSCache(scp); ! scp = NULL; } } else { return cm_LookupInternal(dscp, namep, flags, userp, reqp, outpScpp); *************** *** 1543,1549 **** tscp = rootSCachep; cm_HoldSCache(tscp); symlinkCount = 0; ! dirScp = 0; while (1) { tc = *tp++; --- 1546,1552 ---- tscp = rootSCachep; cm_HoldSCache(tscp); symlinkCount = 0; ! dirScp = NULL; while (1) { tc = *tp++; *************** *** 1578,1611 **** * is a symlink, we have more to do. */ *cp++ = 0; /* add null termination */ ! extraFlag = 0; ! if ((flags & CM_FLAG_DIRSEARCH) && tc == 0) ! extraFlag = CM_FLAG_NOMOUNTCHASE; ! code = cm_Lookup(tscp, component, ! flags | extraFlag, ! userp, reqp, &nscp); ! if (code) { ! cm_ReleaseSCache(tscp); ! if (dirScp) cm_ReleaseSCache(dirScp); ! if (psp) ! cm_FreeSpace(psp); ! if (code == CM_ERROR_NOSUCHFILE && tscp->fileType == CM_SCACHETYPE_SYMLINK) ! return CM_ERROR_NOSUCHPATH; ! else ! return code; ! } ! haveComponent = 0; /* component done */ ! if (dirScp) ! cm_ReleaseSCache(dirScp); ! dirScp = tscp; /* for some symlinks */ ! tscp = nscp; /* already held */ ! nscp = 0; ! if (tc == 0 && !(flags & CM_FLAG_FOLLOW) && phase == 2) { code = 0; if (dirScp) { cm_ReleaseSCache(dirScp); ! dirScp = 0; } break; } --- 1581,1622 ---- * is a symlink, we have more to do. */ *cp++ = 0; /* add null termination */ ! if (!strcmp(".",component)) { ! code = 0; ! if (dirScp) { cm_ReleaseSCache(dirScp); ! dirScp = NULL; ! } ! break; ! } ! extraFlag = 0; ! if ((flags & CM_FLAG_DIRSEARCH) && tc == 0) ! extraFlag = CM_FLAG_NOMOUNTCHASE; ! code = cm_Lookup(tscp, component, ! flags | extraFlag, ! userp, reqp, &nscp); ! if (code) { ! cm_ReleaseSCache(tscp); ! if (dirScp) ! cm_ReleaseSCache(dirScp); ! if (psp) ! cm_FreeSpace(psp); ! if (code == CM_ERROR_NOSUCHFILE && tscp->fileType == CM_SCACHETYPE_SYMLINK) ! return CM_ERROR_NOSUCHPATH; ! else ! return code; ! } ! haveComponent = 0; /* component done */ ! if (dirScp) ! cm_ReleaseSCache(dirScp); ! dirScp = tscp; /* for some symlinks */ ! tscp = nscp; /* already held */ ! nscp = NULL; ! if (tc == 0 && !(flags & CM_FLAG_FOLLOW) && phase == 2) { code = 0; if (dirScp) { cm_ReleaseSCache(dirScp); ! dirScp = NULL; } break; } *************** *** 1620,1629 **** if (code) { lock_ReleaseMutex(&tscp->mx); cm_ReleaseSCache(tscp); ! tscp = 0; if (dirScp) { cm_ReleaseSCache(dirScp); ! dirScp = 0; } break; } --- 1631,1640 ---- if (code) { lock_ReleaseMutex(&tscp->mx); cm_ReleaseSCache(tscp); ! tscp = NULL; if (dirScp) { cm_ReleaseSCache(dirScp); ! dirScp = NULL; } break; } *************** *** 1632,1641 **** lock_ReleaseMutex(&tscp->mx); if (symlinkCount++ >= MAX_SYMLINK_COUNT) { cm_ReleaseSCache(tscp); ! tscp = 0; if (dirScp) { cm_ReleaseSCache(dirScp); ! dirScp = 0; } if (psp) cm_FreeSpace(psp); --- 1643,1652 ---- lock_ReleaseMutex(&tscp->mx); if (symlinkCount++ >= MAX_SYMLINK_COUNT) { cm_ReleaseSCache(tscp); ! tscp = NULL; if (dirScp) { cm_ReleaseSCache(dirScp); ! dirScp = NULL; } if (psp) cm_FreeSpace(psp); *************** *** 1649,1658 **** if (code) { /* something went wrong */ cm_ReleaseSCache(tscp); ! tscp = 0; if (dirScp) { cm_ReleaseSCache(dirScp); ! dirScp = 0; } break; } --- 1660,1669 ---- if (code) { /* something went wrong */ cm_ReleaseSCache(tscp); ! tscp = NULL; if (dirScp) { cm_ReleaseSCache(dirScp); ! dirScp = NULL; } break; } *************** *** 1671,1677 **** tp = psp->data; cm_ReleaseSCache(tscp); tscp = linkScp; ! linkScp = 0; /* already held * by AssembleLink * now, if linkScp is null, that's --- 1682,1688 ---- tp = psp->data; cm_ReleaseSCache(tscp); tscp = linkScp; ! linkScp = NULL; /* already held * by AssembleLink * now, if linkScp is null, that's *************** *** 1684,1690 **** */ if (tscp == NULL) { tscp = dirScp; ! dirScp = 0; } } else { /* not a symlink, we may be done */ --- 1695,1701 ---- */ if (tscp == NULL) { tscp = dirScp; ! dirScp = NULL; } } else { /* not a symlink, we may be done */ *************** *** 1697,1703 **** } if (dirScp) { cm_ReleaseSCache(dirScp); ! dirScp = 0; } code = 0; break; --- 1708,1714 ---- } if (dirScp) { cm_ReleaseSCache(dirScp); ! dirScp = NULL; } code = 0; break; *************** *** 1705,1711 **** } if (dirScp) { cm_ReleaseSCache(dirScp); ! dirScp = 0; } } /* end of a component */ else --- 1716,1722 ---- } if (dirScp) { cm_ReleaseSCache(dirScp); ! dirScp = NULL; } } /* end of a component */ else Index: openafs/src/WINNT/afsd/cm_volume.c diff -c openafs/src/WINNT/afsd/cm_volume.c:1.14.4.1 openafs/src/WINNT/afsd/cm_volume.c:1.14.4.2 *** openafs/src/WINNT/afsd/cm_volume.c:1.14.4.1 Sat Jun 24 16:41:55 2006 --- openafs/src/WINNT/afsd/cm_volume.c Fri Aug 25 11:27:39 2006 *************** *** 435,441 **** break; } } ! osi_panic("Exceeded Max Volumes", __FILE__, __LINE__); } if (volp) { --- 435,442 ---- break; } } ! if (!volp) ! osi_panic("Exceeded Max Volumes", __FILE__, __LINE__); } if (volp) { Index: openafs/src/WINNT/afsd/fs.c diff -c openafs/src/WINNT/afsd/fs.c:1.32.4.2 openafs/src/WINNT/afsd/fs.c:1.32.4.4 *** openafs/src/WINNT/afsd/fs.c:1.32.4.2 Fri Jul 28 09:38:13 2006 --- openafs/src/WINNT/afsd/fs.c Tue Sep 5 19:54:48 2006 *************** *** 23,30 **** --- 23,32 ---- #include #include + #include #include #include + #include #include #include "fs.h" *************** *** 46,54 **** static char space[MAXSIZE]; static char tspace[1024]; - #ifndef WIN32 static struct ubik_client *uclient; - #endif /* not WIN32 */ static int GetClientAddrsCmd(struct cmd_syndesc *asp, char *arock); static int SetClientAddrsCmd(struct cmd_syndesc *asp, char *arock); --- 48,54 ---- *************** *** 62,82 **** static int CSCPolicyCmd(struct cmd_syndesc *asp, char *arock); static int MiniDumpCmd(struct cmd_syndesc *asp, char *arock); - extern afs_int32 VL_GetEntryByNameO(); - static char pn[] = "fs"; static int rxInitDone = 0; - struct afsconf_cell { - char name[MAXCELLCHARS]; - short numServers; - short flags; - struct sockaddr_in hostAddr[MAXCELLHOSTS]; - char hostName[MAXCELLHOSTS][MAXHOSTCHARS]; - char *linkedCell; - }; - - /* * Character to use between name and rights in printed representation for * DFS ACL's. --- 62,70 ---- *************** *** 1475,1480 **** --- 1463,1469 ---- *(input++) = '\0'; code = pioctl(ti->data,VIOCSETVOLSTAT, &blob, 1); if (code) { + Die(errno, ti->data); error = 1; } } *************** *** 1851,1859 **** #endif char path[1024] = ""; struct afsconf_cell info; - #ifndef WIN32 struct vldbentry vldbEntry; - #endif struct ViceIoctl blob; char * parent; --- 1840,1846 ---- *************** *** 1933,1939 **** if (code) { return 1; } - #ifndef WIN32 if (!(as->parms[4].items)) { /* not fast, check which cell the mountpoint is being created in */ code = 0; --- 1920,1925 ---- *************** *** 1942,1955 **** code = VLDBInit(1, &info); if (code == 0) { /* make the check. Don't complain if there are problems with init */ ! code = ubik_Call(VL_GetEntryByNameO, uclient, 0, volName, &vldbEntry); if (code == VL_NOENT) { fprintf(stderr,"%s: warning, volume %s does not exist in cell %s.\n", pn, volName, cellName ? cellName : space); } } } - #endif /* not WIN32 */ if (as->parms[3].items) /* if -rw specified */ strcpy(space, "%"); --- 1928,1940 ---- code = VLDBInit(1, &info); if (code == 0) { /* make the check. Don't complain if there are problems with init */ ! code = ubik_VL_GetEntryByNameO(uclient, 0, volName, &vldbEntry); if (code == VL_NOENT) { fprintf(stderr,"%s: warning, volume %s does not exist in cell %s.\n", pn, volName, cellName ? cellName : space); } } } if (as->parms[3].items) /* if -rw specified */ strcpy(space, "%"); *************** *** 2968,2980 **** strcpy(infop->name, cellNamep); return 0; } ! ! static int ! VLDBInit(int noAuthFlag, struct afsconf_cell *infop) ! { ! return 0; ! } ! #else /* not WIN32 */ static int GetCellName(char *cellName, struct afsconf_cell *info) { --- 2953,2959 ---- strcpy(infop->name, cellNamep); return 0; } ! #else static int GetCellName(char *cellName, struct afsconf_cell *info) { *************** *** 2998,3004 **** return 0; } ! static int VLDBInit(int noAuthFlag, struct afsconf_cell *info) --- 2977,2983 ---- return 0; } ! #endif /* not WIN32 */ static int VLDBInit(int noAuthFlag, struct afsconf_cell *info) *************** *** 3013,3019 **** rxInitDone = 1; return code; } - #endif /* not WIN32 */ static struct ViceIoctl gblob; static int debug = 0; --- 2992,2997 ---- *************** *** 4611,4620 **** code = cmd_Dispatch(argc, argv); - #ifndef WIN32 if (rxInitDone) rx_Finalize(); - #endif /* not WIN32 */ return code; } --- 4589,4596 ---- Index: openafs/src/WINNT/afsd/smb.h diff -c openafs/src/WINNT/afsd/smb.h:1.41.2.7 openafs/src/WINNT/afsd/smb.h:1.41.2.8 *** openafs/src/WINNT/afsd/smb.h:1.41.2.7 Fri Jul 28 09:38:13 2006 --- openafs/src/WINNT/afsd/smb.h Fri Aug 25 13:08:23 2006 *************** *** 20,25 **** --- 20,26 ---- #define AFS_LARGEFILES /* basic core protocol SMB structure */ + #pragma pack(push, 1) typedef struct smb { unsigned char id[4]; unsigned char com; *************** *** 37,43 **** unsigned char wct; unsigned char vdata[1]; } smb_t; ! /* reb values */ #define SMB_FLAGS_SUPPORT_LOCKREAD 0x01 --- 38,44 ---- unsigned char wct; unsigned char vdata[1]; } smb_t; ! #pragma pack(pop) /* reb values */ #define SMB_FLAGS_SUPPORT_LOCKREAD 0x01 Index: openafs/src/WINNT/afsd/smb3.c diff -c openafs/src/WINNT/afsd/smb3.c:1.95.2.14 openafs/src/WINNT/afsd/smb3.c:1.95.2.16 *** openafs/src/WINNT/afsd/smb3.c:1.95.2.14 Fri Jul 28 09:38:13 2006 --- openafs/src/WINNT/afsd/smb3.c Wed Aug 30 02:33:01 2006 *************** *** 3419,3425 **** lock_ReleaseMutex(&fidp->mx); } } ! else if (infoLevel == SMB_SET_FILE_ALLOCATION_INFO) { LARGE_INTEGER size = *((LARGE_INTEGER *)(p->datap)); cm_attr_t attr; --- 3419,3426 ---- lock_ReleaseMutex(&fidp->mx); } } ! else if (infoLevel == SMB_SET_FILE_ALLOCATION_INFO || ! infoLevel == SMB_SET_FILE_END_OF_FILE_INFO) { LARGE_INTEGER size = *((LARGE_INTEGER *)(p->datap)); cm_attr_t attr; *************** *** 3428,3442 **** attr.length.HighPart = size.HighPart; code = cm_SetAttr(scp, &attr, userp, &req); } - else if (infoLevel == SMB_SET_FILE_END_OF_FILE_INFO) { - unsigned short size = *((unsigned short *)(p->datap)); - cm_attr_t attr; - - attr.mask = CM_ATTRMASK_LENGTH; - attr.length.HighPart = 0; - attr.length.LowPart = size; - code = cm_SetAttr(scp, &attr, userp, &req); - } done: cm_ReleaseSCache(scp); --- 3429,3434 ---- *************** *** 4254,4259 **** --- 4246,4257 ---- osi_Log3(smb_logp, "...T2 search op %d, id %d, nextCookie 0x%x", p->opcode, dsp->cookie, nextCookie); + if (infoLevel > SMB_FIND_FILE_BOTH_DIRECTORY_INFO) { + osi_Log1(smb_logp, "Unsupported InfoLevel 0x%x", infoLevel); + smb_ReleaseDirSearch(dsp); + return CM_ERROR_INVAL; + } + if (infoLevel >= SMB_FIND_FILE_DIRECTORY_INFO) searchFlags &= ~4; /* no resume keys */ Index: openafs/src/WINNT/afsd/smb3.h diff -c openafs/src/WINNT/afsd/smb3.h:1.12.2.3 openafs/src/WINNT/afsd/smb3.h:1.12.2.4 *** openafs/src/WINNT/afsd/smb3.h:1.12.2.3 Fri Jul 28 09:38:14 2006 --- openafs/src/WINNT/afsd/smb3.h Fri Aug 25 13:08:23 2006 *************** *** 40,48 **** long flags; } smb_tran2Dispatch_t; typedef struct smb_tran2QFSInfo { union { - #pragma pack(push, 2) struct { unsigned long FSID; /* file system ID */ unsigned long sectorsPerAllocUnit; --- 40,51 ---- long flags; } smb_tran2Dispatch_t; + /* Data Structures that are written to or read from the wire directly + * must be byte aligned (no padding). + */ + #pragma pack(push, 1) typedef struct smb_tran2QFSInfo { union { struct { unsigned long FSID; /* file system ID */ unsigned long sectorsPerAllocUnit; *************** *** 50,56 **** unsigned long availAllocUnits; /* free blocks */ unsigned short bytesPerSector; /* bytes per sector */ } allocInfo; - #pragma pack(pop) struct { unsigned long vsn; /* volume serial number */ char vnCount; /* count of chars in label, incl null */ --- 53,58 ---- *************** *** 205,210 **** --- 207,213 ---- } QFfileNameInfo; } u; } smb_tran2QFileInfo_t; + #pragma pack(pop) /* more than enough opcodes for today, anyway */ #define SMB_TRAN2_NOPCODES 20 Index: openafs/src/WINNT/client_cpa/lang/NTMakefile diff -c openafs/src/WINNT/client_cpa/lang/NTMakefile:1.5 openafs/src/WINNT/client_cpa/lang/NTMakefile:1.5.14.1 *** openafs/src/WINNT/client_cpa/lang/NTMakefile:1.5 Fri Nov 21 02:59:57 2003 --- openafs/src/WINNT/client_cpa/lang/NTMakefile Mon Aug 28 00:28:08 2006 *************** *** 48,54 **** install : $(DLLFILE) clean :: ! $(DEL) *.res RC* RD* $(DLLFILE) ############################################################################ # --- 48,58 ---- install : $(DLLFILE) clean :: ! $(DEL) $(RESFILE) ! $(DEL) RC* ! $(DEL) RD* ! $(DEL) $(DLLFILE) ! $(DEL) AFS_component_version_number.h ############################################################################ # Index: openafs/src/WINNT/client_exp/afs_shl_ext.cpp diff -c openafs/src/WINNT/client_exp/afs_shl_ext.cpp:1.6 openafs/src/WINNT/client_exp/afs_shl_ext.cpp:1.6.4.2 *** openafs/src/WINNT/client_exp/afs_shl_ext.cpp:1.6 Sun Oct 2 10:46:13 2005 --- openafs/src/WINNT/client_exp/afs_shl_ext.cpp Wed Sep 6 19:14:00 2006 *************** *** 25,32 **** static char THIS_FILE[] = __FILE__; #endif static const IID IID_IShellExt = ! { 0xdc515c27, 0x6cac, 0x11d1, { 0xba, 0xe7, 0x0, 0xc0, 0x4f, 0xd1, 0x40, 0xd2 } }; ///////////////////////////////////////////////////////////////////////////// // CAfsShlExt --- 25,43 ---- static char THIS_FILE[] = __FILE__; #endif + #ifndef _WIN64 + + // 32-bit + static const IID IID_IShellExt = + { 0xdc515c27, 0x6cac, 0x11d1, { 0xba, 0xe7, 0x0, 0xc0, 0x4f, 0xd1, 0x40, 0xd2 } }; + + #else + + // 64-bit static const IID IID_IShellExt = ! { 0x5f820ca1, 0x3dde, 0x11db, {0xb2, 0xce, 0x00, 0x15, 0x58, 0x09, 0x2d, 0xb5} }; ! ! #endif ///////////////////////////////////////////////////////////////////////////// // CAfsShlExt *************** *** 60,66 **** BOOL CAfsShlExt::InitInstance() { // Load our translated resources ! TaLocale_LoadCorrespondingModule (m_hInstance); // Register all OLE server (factories) as running. This enables the // OLE libraries to create objects from other applications. --- 71,77 ---- BOOL CAfsShlExt::InitInstance() { // Load our translated resources ! TaLocale_LoadCorrespondingModuleByName (m_hInstance, TEXT("afs_shl_ext.dll")); // Register all OLE server (factories) as running. This enables the // OLE libraries to create objects from other applications. *************** *** 152,158 **** } /* ! [HKEY_CLASSES_ROOT\CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}\InprocServer32] @="Y:\\DEST\\root.client\\usr\\vice\\etc\\afs_shl_ext.dll" "ThreadingModel"="Apartment" */ --- 163,169 ---- } /* ! [HKEY_CLASSES_ROOT\CLSID\{$CLSID}\InprocServer32] @="Y:\\DEST\\root.client\\usr\\vice\\etc\\afs_shl_ext.dll" "ThreadingModel"="Apartment" */ *************** *** 178,187 **** //If running on NT, register the extension as approved. /* [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved] ! "{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"="AFS Client Shell Extension" [HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers\AFS Client Shell Extension] ! @="{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}" */ OSVERSIONINFO osvi; --- 189,198 ---- //If running on NT, register the extension as approved. /* [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved] ! "{$(CLSID)}"="AFS Client Shell Extension" [HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers\AFS Client Shell Extension] ! @="{$(CLSID)}" */ OSVERSIONINFO osvi; *************** *** 204,210 **** Register InfoTip [HKEY_CLASSES_ROOT\Folder\shellex\{00021500-0000-0000-C000-000000000046}] ! @="{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}" */ wsprintf(szSubKey, TEXT("Folder\\shellex\\{00021500-0000-0000-C000-000000000046}")); --- 215,221 ---- Register InfoTip [HKEY_CLASSES_ROOT\Folder\shellex\{00021500-0000-0000-C000-000000000046}] ! @="{$(CLSID)}" */ wsprintf(szSubKey, TEXT("Folder\\shellex\\{00021500-0000-0000-C000-000000000046}")); Index: openafs/src/WINNT/client_exp/afs_shl_ext.odl diff -c openafs/src/WINNT/client_exp/afs_shl_ext.odl:1.2 openafs/src/WINNT/client_exp/afs_shl_ext.odl:1.2.32.1 *** openafs/src/WINNT/client_exp/afs_shl_ext.odl:1.2 Sat Nov 4 05:02:51 2000 --- openafs/src/WINNT/client_exp/afs_shl_ext.odl Wed Sep 6 19:14:00 2006 *************** *** 7,20 **** * directory or online at http://www.openafs.org/dl/license10.html */ ! [ uuid(DC515C1A-6CAC-11D1-BAE7-00C04FD140D2), version(1.0) ] library afs_shl_ext { importlib("stdole32.tlb"); // Primary dispatch interface for CShellExt ! [ uuid(DC515C27-6CAC-11D1-BAE7-00C04FD140D2) ] dispinterface IShellExt { properties: --- 7,36 ---- * directory or online at http://www.openafs.org/dl/license10.html */ ! #ifndef _WIN64 ! ! /* 32-bit UUIDs */ ! #define lib_uuid DC515C1A-6CAC-11D1-BAE7-00C04FD140D2 ! #define int_uuid DC515C27-6CAC-11D1-BAE7-00C04FD140D2 ! #define class_uuid DC515C29-6CAC-11D1-BAE7-00C04FD140D2 ! ! #else ! ! /* 64-bit UUIDs */ ! #define lib_uuid 5F820CA0-3DDE-11DB-B2CE-001558092DB5 ! #define int_uuid 5F820CA1-3DDE-11DB-B2CE-001558092DB5 ! #define class_uuid 5F820CA2-3DDE-11DB-B2CE-001558092DB5 ! ! #endif ! ! [ uuid(lib_uuid), version(1.0) ] library afs_shl_ext { importlib("stdole32.tlb"); // Primary dispatch interface for CShellExt ! [ uuid(int_uuid) ] dispinterface IShellExt { properties: *************** *** 33,39 **** // Class information for CShellExt ! [ uuid(DC515C29-6CAC-11D1-BAE7-00C04FD140D2) ] coclass ShellExt { [default] dispinterface IShellExt; --- 49,55 ---- // Class information for CShellExt ! [ uuid(class_uuid) ] coclass ShellExt { [default] dispinterface IShellExt; Index: openafs/src/WINNT/client_exp/gui2fs.cpp diff -c openafs/src/WINNT/client_exp/gui2fs.cpp:1.19 openafs/src/WINNT/client_exp/gui2fs.cpp:1.19.4.1 *** openafs/src/WINNT/client_exp/gui2fs.cpp:1.19 Sat Oct 15 17:45:48 2005 --- openafs/src/WINNT/client_exp/gui2fs.cpp Thu Aug 31 07:35:12 2006 *************** *** 25,43 **** #include "down_servers_dlg.h" extern "C" { ! #include ! #include #include "fs.h" #include "fs_utils.h" #include #include #include #include } - #define PCCHAR(str) ((char *)(const char *)(str)) ! #define MAXHOSTS 13 #define OMAXHOSTS 8 --- 25,44 ---- #include "down_servers_dlg.h" extern "C" { ! #include #include "fs.h" #include "fs_utils.h" #include + #include + #include + #include #include #include #include } #define PCCHAR(str) ((char *)(const char *)(str)) ! #define VL_NOENT (363524L) #define MAXHOSTS 13 #define OMAXHOSTS 8 *************** *** 50,73 **** #define MAXHOSTCHARS 64 #define MAXHOSTSPERCELL 8 - struct afsconf_cell { - char name[MAXCELLCHARS]; - short numServers; - short flags; - struct sockaddr_in hostAddr[MAXHOSTSPERCELL]; - char hostName[MAXHOSTSPERCELL][MAXHOSTCHARS]; - char *linkedCell; - }; - static char space[MAXSIZE]; static char tspace[1024]; // #define LOGGING_ON // Enable this to log certain pioctl calls #ifdef LOGGING_ON static char *szLogFileName = "afsguilog.txt"; #endif FILE *OpenFile(char *file, char *rwp) { char wdir[256]; --- 51,83 ---- #define MAXHOSTCHARS 64 #define MAXHOSTSPERCELL 8 static char space[MAXSIZE]; static char tspace[1024]; + static struct ubik_client *uclient; + static int rxInitDone = 0; + static char pn[] = "fs"; + // #define LOGGING_ON // Enable this to log certain pioctl calls #ifdef LOGGING_ON static char *szLogFileName = "afsguilog.txt"; #endif + static int + VLDBInit(int noAuthFlag, struct afsconf_cell *info) + { + afs_int32 code; + + code = ugen_ClientInit(noAuthFlag, (char *)AFSDIR_CLIENT_ETC_DIRPATH, + info->name, 0, &uclient, + NULL, pn, rxkad_clear, + VLDB_MAXSERVERS, AFSCONF_VLDBSERVICE, 50, + 0, 0, USER_SERVICE_ID); + rxInitDone = 1; + return code; + } + FILE *OpenFile(char *file, char *rwp) { char wdir[256]; *************** *** 125,138 **** if (code) { error = 1; if (errno == EMFILE) ! ShowMessageBox(IDS_FLUSH_FAILED, MB_ICONEXCLAMATION, IDS_FLUSH_FAILED, files[i]); else ! ShowMessageBox(IDS_FLUSH_ERROR, MB_ICONEXCLAMATION, IDS_FLUSH_ERROR, files[i], strerror(errno)); } } if (!error) ! ShowMessageBox(IDS_FLUSH_OK, MB_ICONEXCLAMATION, IDS_FLUSH_OK); } void FlushVolume(const CStringArray& files) --- 135,148 ---- if (code) { error = 1; if (errno == EMFILE) ! ShowMessageBox(IDS_FLUSH_FAILED, MB_ICONERROR, IDS_FLUSH_FAILED, files[i]); else ! ShowMessageBox(IDS_FLUSH_ERROR, MB_ICONERROR, IDS_FLUSH_ERROR, files[i], strerror(errno)); } } if (!error) ! ShowMessageBox(IDS_FLUSH_OK, MB_ICONINFORMATION, IDS_FLUSH_OK); } void FlushVolume(const CStringArray& files) *************** *** 149,160 **** code = pioctl(PCCHAR(files[i]), VIOC_FLUSHVOLUME, &blob, 0); if (code) { error = 1; ! ShowMessageBox(IDS_FLUSH_VOLUME_ERROR, MB_ICONEXCLAMATION, IDS_FLUSH_VOLUME_ERROR, files[i], strerror(errno)); } } if (!code) ! ShowMessageBox(IDS_FLUSH_VOLUME_OK, MB_ICONEXCLAMATION, IDS_FLUSH_VOLUME_OK); } void WhichCell(CStringArray& files) --- 159,170 ---- code = pioctl(PCCHAR(files[i]), VIOC_FLUSHVOLUME, &blob, 0); if (code) { error = 1; ! ShowMessageBox(IDS_FLUSH_VOLUME_ERROR, MB_ICONERROR, IDS_FLUSH_VOLUME_ERROR, files[i], strerror(errno)); } } if (!code) ! ShowMessageBox(IDS_FLUSH_VOLUME_OK, MB_ICONINFORMATION, IDS_FLUSH_VOLUME_OK); } void WhichCell(CStringArray& files) *************** *** 224,234 **** blob.out_size = 0; code = pioctl(0, VIOCCKBACK, &blob, 1); if (code) { ! ShowMessageBox(IDS_CHECK_VOLUMES_ERROR, MB_ICONEXCLAMATION, IDS_CHECK_VOLUMES_ERROR, GetAfsError(errno, CString())); return FALSE; } ! ShowMessageBox(IDS_CHECK_VOLUMES_OK, MB_OK, IDS_CHECK_VOLUMES_OK); return TRUE; } --- 234,244 ---- blob.out_size = 0; code = pioctl(0, VIOCCKBACK, &blob, 1); if (code) { ! ShowMessageBox(IDS_CHECK_VOLUMES_ERROR, MB_ICONERROR, IDS_CHECK_VOLUMES_ERROR, GetAfsError(errno, CString())); return FALSE; } ! ShowMessageBox(IDS_CHECK_VOLUMES_OK, MB_OK|MB_ICONINFORMATION, IDS_CHECK_VOLUMES_OK); return TRUE; } *************** *** 651,657 **** struct ViceIoctl blob; int changes; ! ShowMessageBox(IDS_CLEANACL_MSG, MB_OK, IDS_CLEANACL_MSG); HOURGLASS hourglass; --- 661,667 ---- struct ViceIoctl blob; int changes; ! ShowMessageBox(IDS_CLEANACL_MSG, MB_OK|MB_ICONINFORMATION, IDS_CLEANACL_MSG); HOURGLASS hourglass; *************** *** 662,674 **** code = pioctl(PCCHAR(names[i]), VIOCGETAL, &blob, 1); if (code) { ! ShowMessageBox(IDS_CLEANACL_ERROR, MB_ICONEXCLAMATION, 0, names[i], GetAfsError(errno)); continue; } ta = ParseAcl(space); if (ta->dfs) { ! ShowMessageBox(IDS_CLEANACL_NOT_SUPPORTED, MB_ICONEXCLAMATION, IDS_CLEANACL_NOT_SUPPORTED, names[i]); continue; } --- 672,684 ---- code = pioctl(PCCHAR(names[i]), VIOCGETAL, &blob, 1); if (code) { ! ShowMessageBox(IDS_CLEANACL_ERROR, MB_ICONERROR, 0, names[i], GetAfsError(errno)); continue; } ta = ParseAcl(space); if (ta->dfs) { ! ShowMessageBox(IDS_CLEANACL_NOT_SUPPORTED, MB_ICONERROR, IDS_CLEANACL_NOT_SUPPORTED, names[i]); continue; } *************** *** 684,694 **** code = pioctl(PCCHAR(names[i]), VIOCSETAL, &blob, 1); if (code) { if (errno == EINVAL) { ! ShowMessageBox(IDS_CLEANACL_INVALID_ARG, MB_ICONEXCLAMATION, IDS_CLEANACL_INVALID_ARG, names[i]); continue; } else { ! ShowMessageBox(IDS_CLEANACL_ERROR, MB_ICONEXCLAMATION, 0, names[i], GetAfsError(errno)); continue; } } --- 694,704 ---- code = pioctl(PCCHAR(names[i]), VIOCSETAL, &blob, 1); if (code) { if (errno == EINVAL) { ! ShowMessageBox(IDS_CLEANACL_INVALID_ARG, MB_ICONERROR, IDS_CLEANACL_INVALID_ARG, names[i]); continue; } else { ! ShowMessageBox(IDS_CLEANACL_ERROR, MB_ICONERROR, 0, names[i], GetAfsError(errno)); continue; } } *************** *** 712,724 **** code = pioctl(PCCHAR(strDir), VIOCGETAL, &blob, 1); if (code) { ! ShowMessageBox(IDS_GETRIGHTS_ERROR, MB_ICONEXCLAMATION, IDS_GETRIGHTS_ERROR, strDir, GetAfsError(errno)); return FALSE; } ta = ParseAcl(space); if (ta->dfs) { ! ShowMessageBox(IDS_DFSACL_ERROR, MB_ICONEXCLAMATION, IDS_DFSACL_ERROR); return FALSE; } --- 722,734 ---- code = pioctl(PCCHAR(strDir), VIOCGETAL, &blob, 1); if (code) { ! ShowMessageBox(IDS_GETRIGHTS_ERROR, MB_ICONERROR, IDS_GETRIGHTS_ERROR, strDir, GetAfsError(errno)); return FALSE; } ta = ParseAcl(space); if (ta->dfs) { ! ShowMessageBox(IDS_DFSACL_ERROR, MB_ICONERROR, IDS_DFSACL_ERROR); return FALSE; } *************** *** 878,886 **** code = pioctl(PCCHAR(strDir), VIOCSETAL, &blob, 1); if (code) { if (errno == EINVAL) ! ShowMessageBox(IDS_SAVE_ACL_EINVAL_ERROR, MB_ICONEXCLAMATION, IDS_SAVE_ACL_EINVAL_ERROR, strDir); else ! ShowMessageBox(IDS_SAVE_ACL_ERROR, MB_ICONEXCLAMATION, IDS_SAVE_ACL_ERROR, strDir, GetAfsError(errno, strDir)); } ZapAcl(pAcl); --- 888,896 ---- code = pioctl(PCCHAR(strDir), VIOCSETAL, &blob, 1); if (code) { if (errno == EINVAL) ! ShowMessageBox(IDS_SAVE_ACL_EINVAL_ERROR, MB_ICONERROR, IDS_SAVE_ACL_EINVAL_ERROR, strDir); else ! ShowMessageBox(IDS_SAVE_ACL_ERROR, MB_ICONERROR, IDS_SAVE_ACL_ERROR, strDir, GetAfsError(errno, strDir)); } ZapAcl(pAcl); *************** *** 904,910 **** code = pioctl(PCCHAR(strToDir), VIOCGETAL, &blob, 1); if (code) { ! ShowMessageBox(IDS_ACL_READ_ERROR, MB_ICONEXCLAMATION, IDS_ACL_READ_ERROR, strToDir, GetAfsError(errno, strToDir)); return FALSE; } --- 914,920 ---- code = pioctl(PCCHAR(strToDir), VIOCGETAL, &blob, 1); if (code) { ! ShowMessageBox(IDS_ACL_READ_ERROR, MB_ICONERROR, IDS_ACL_READ_ERROR, strToDir, GetAfsError(errno, strToDir)); return FALSE; } *************** *** 916,922 **** CleanAcl(pToAcl); if (pToAcl->dfs) { ! ShowMessageBox(IDS_NO_DFS_COPY_ACL, MB_ICONEXCLAMATION, IDS_NO_DFS_COPY_ACL, strToDir); ZapAcl(pToAcl); return FALSE; } --- 926,932 ---- CleanAcl(pToAcl); if (pToAcl->dfs) { ! ShowMessageBox(IDS_NO_DFS_COPY_ACL, MB_ICONERROR, IDS_NO_DFS_COPY_ACL, strToDir); ZapAcl(pToAcl); return FALSE; } *************** *** 945,959 **** if (code) { ZapAcl(pToAcl); if (errno == EINVAL) ! ShowMessageBox(IDS_COPY_ACL_EINVAL_ERROR, MB_ICONEXCLAMATION, IDS_COPY_ACL_EINVAL_ERROR, strToDir); else ! ShowMessageBox(IDS_COPY_ACL_ERROR, MB_ICONEXCLAMATION, IDS_COPY_ACL_ERROR, strToDir, GetAfsError(errno, strToDir)); return FALSE; } ZapAcl(pToAcl); ! ShowMessageBox(IDS_COPY_ACL_OK, MB_OK, IDS_COPY_ACL_OK); return TRUE; } --- 955,969 ---- if (code) { ZapAcl(pToAcl); if (errno == EINVAL) ! ShowMessageBox(IDS_COPY_ACL_EINVAL_ERROR, MB_ICONERROR, IDS_COPY_ACL_EINVAL_ERROR, strToDir); else ! ShowMessageBox(IDS_COPY_ACL_ERROR, MB_ICONERROR, IDS_COPY_ACL_ERROR, strToDir, GetAfsError(errno, strToDir)); return FALSE; } ZapAcl(pToAcl); ! ShowMessageBox(IDS_COPY_ACL_OK, MB_OK|MB_ICONINFORMATION, IDS_COPY_ACL_OK); return TRUE; } *************** *** 1294,1299 **** --- 1304,1310 ---- register char *cellName; char localCellName[128]; struct afsconf_cell info; + struct vldbentry vldbEntry; struct ViceIoctl blob; char * parent; char path[1024] = ""; *************** *** 1320,1330 **** sprintf(path,"%sall\\%s", parent, &(PCCHAR(strDir)[strlen(parent)])); parent = Parent(path); if (!IsPathInAfs(parent)) { ! ShowMessageBox(IDS_MAKE_MP_NOT_AFS_ERROR, MB_ICONEXCLAMATION, IDS_MAKE_MP_NOT_AFS_ERROR); return FALSE; } } else { ! ShowMessageBox(IDS_MAKE_MP_NOT_AFS_ERROR, MB_ICONEXCLAMATION, IDS_MAKE_MP_NOT_AFS_ERROR); return FALSE; } } --- 1331,1341 ---- sprintf(path,"%sall\\%s", parent, &(PCCHAR(strDir)[strlen(parent)])); parent = Parent(path); if (!IsPathInAfs(parent)) { ! ShowMessageBox(IDS_MAKE_MP_NOT_AFS_ERROR, MB_ICONERROR, IDS_MAKE_MP_NOT_AFS_ERROR); return FALSE; } } else { ! ShowMessageBox(IDS_MAKE_MP_NOT_AFS_ERROR, MB_ICONERROR, IDS_MAKE_MP_NOT_AFS_ERROR); return FALSE; } } *************** *** 1334,1340 **** if ( IsFreelanceRoot(parent) ) { if ( !IsAdmin() ) { ! ShowMessageBox(IDS_NOT_AFS_CLIENT_ADMIN_ERROR, MB_ICONEXCLAMATION, IDS_NOT_AFS_CLIENT_ADMIN_ERROR); return FALSE; } --- 1345,1351 ---- if ( IsFreelanceRoot(parent) ) { if ( !IsAdmin() ) { ! ShowMessageBox(IDS_NOT_AFS_CLIENT_ADMIN_ERROR, MB_ICONERROR, IDS_NOT_AFS_CLIENT_ADMIN_ERROR); return FALSE; } *************** *** 1356,1361 **** --- 1367,1386 ---- return FALSE; } + #if 0 + code = VLDBInit(1, &info); + if (code == 0) { + /* make the check. Don't complain if there are problems with init */ + code = ubik_VL_GetEntryByNameO(uclient, 0, PCCHAR(strVolName), &vldbEntry); + if (code == VL_NOENT) { + ShowMessageBox(IDS_WARNING, MB_ICONWARNING, IDS_VOLUME_NOT_IN_CELL_WARNING, + PCCHAR(strVolName), cellName ? cellName : space); + } + } + if (rxInitDone) + rx_Finalize(); + #endif + if (bRW) /* if -rw specified */ strcpy(space, "%"); else *************** *** 1380,1386 **** code = pioctl(path, VIOC_AFS_CREATE_MT_PT, &blob, 0); if (code) { ! ShowMessageBox(IDS_MOUNT_POINT_ERROR, MB_ICONEXCLAMATION, IDS_MOUNT_POINT_ERROR, GetAfsError(errno, strDir)); return FALSE; } --- 1405,1411 ---- code = pioctl(path, VIOC_AFS_CREATE_MT_PT, &blob, 0); if (code) { ! ShowMessageBox(IDS_MOUNT_POINT_ERROR, MB_ICONERROR, IDS_MOUNT_POINT_ERROR, GetAfsError(errno, strDir)); return FALSE; } *************** *** 1460,1466 **** } if ( IsFreelanceRoot(tbuffer) && !IsAdmin() ) { ! ShowMessageBox(IDS_NOT_AFS_CLIENT_ADMIN_ERROR, MB_ICONEXCLAMATION, IDS_NOT_AFS_CLIENT_ADMIN_ERROR); return FALSE; } --- 1485,1491 ---- } if ( IsFreelanceRoot(tbuffer) && !IsAdmin() ) { ! ShowMessageBox(IDS_NOT_AFS_CLIENT_ADMIN_ERROR, MB_ICONERROR, IDS_NOT_AFS_CLIENT_ADMIN_ERROR); return FALSE; } *************** *** 1753,1759 **** code = pioctl(PCCHAR(volInfo.m_strFilePath), VIOCSETVOLSTAT, &blob, 1); if (code) { ! ShowMessageBox(IDS_SET_QUOTA_ERROR, MB_ICONEXCLAMATION, IDS_SET_QUOTA_ERROR, GetAfsError(errno, volInfo.m_strName)); return FALSE; } --- 1778,1784 ---- code = pioctl(PCCHAR(volInfo.m_strFilePath), VIOCSETVOLSTAT, &blob, 1); if (code) { ! ShowMessageBox(IDS_SET_QUOTA_ERROR, MB_ICONERROR, IDS_SET_QUOTA_ERROR, GetAfsError(errno, volInfo.m_strName)); return FALSE; } *************** *** 1805,1818 **** code = pioctl(0, VIOCCKSERV, &blob, 1); if (code) { ! ShowMessageBox(IDS_CHECK_SERVERS_ERROR, MB_ICONEXCLAMATION, IDS_CHECK_SERVERS_ERROR, GetAfsError(errno, CString())); return FALSE; } memcpy(&temp, space, sizeof(LONG)); if (temp == 0) { ! ShowMessageBox(IDS_ALL_SERVERS_RUNNING, MB_OK, IDS_ALL_SERVERS_RUNNING); return TRUE; } --- 1830,1843 ---- code = pioctl(0, VIOCCKSERV, &blob, 1); if (code) { ! ShowMessageBox(IDS_CHECK_SERVERS_ERROR, MB_ICONERROR, IDS_CHECK_SERVERS_ERROR, GetAfsError(errno, CString())); return FALSE; } memcpy(&temp, space, sizeof(LONG)); if (temp == 0) { ! ShowMessageBox(IDS_ALL_SERVERS_RUNNING, MB_OK|MB_ICONINFORMATION, IDS_ALL_SERVERS_RUNNING); return TRUE; } *************** *** 1873,1879 **** break; } else if (rc) { ! ShowMessageBox(IDS_GET_TOKENS_UNEXPECTED_ERROR, MB_ICONEXCLAMATION, IDS_GET_TOKENS_UNEXPECTED_ERROR, rc); return FALSE; // printf("Unexpected error, code %d\n", rc); // exit(1); --- 1898,1904 ---- break; } else if (rc) { ! ShowMessageBox(IDS_GET_TOKENS_UNEXPECTED_ERROR, MB_ICONERROR, IDS_GET_TOKENS_UNEXPECTED_ERROR, rc); return FALSE; // printf("Unexpected error, code %d\n", rc); // exit(1); *************** *** 1881,1887 **** else { rc = ktc_GetToken(&serviceName, &token, sizeof(token), &clientName); if (rc) { ! ShowMessageBox(IDS_GET_TOKENS_UNEXPECTED_ERROR2, MB_ICONEXCLAMATION, IDS_GET_TOKENS_UNEXPECTED_ERROR2, serviceName.name, serviceName.instance, serviceName.cell, rc); continue; } --- 1906,1912 ---- else { rc = ktc_GetToken(&serviceName, &token, sizeof(token), &clientName); if (rc) { ! ShowMessageBox(IDS_GET_TOKENS_UNEXPECTED_ERROR2, MB_ICONERROR, IDS_GET_TOKENS_UNEXPECTED_ERROR2, serviceName.name, serviceName.instance, serviceName.cell, rc); continue; } *************** *** 1965,1981 **** OutputDebugString(message); if (!IsPathInAfs(parent)) { ! ShowMessageBox(IDS_MAKE_LNK_NOT_AFS_ERROR, MB_ICONEXCLAMATION, IDS_MAKE_LNK_NOT_AFS_ERROR); return TRUE; } } else { ! ShowMessageBox(IDS_MAKE_LNK_NOT_AFS_ERROR, MB_ICONEXCLAMATION, IDS_MAKE_LNK_NOT_AFS_ERROR); return TRUE; } } if ( IsFreelanceRoot(parent) && !IsAdmin() ) { ! ShowMessageBox(IDS_NOT_AFS_CLIENT_ADMIN_ERROR, MB_ICONEXCLAMATION, IDS_NOT_AFS_CLIENT_ADMIN_ERROR); return FALSE; } --- 1990,2006 ---- OutputDebugString(message); if (!IsPathInAfs(parent)) { ! ShowMessageBox(IDS_MAKE_LNK_NOT_AFS_ERROR, MB_ICONERROR, IDS_MAKE_LNK_NOT_AFS_ERROR); return TRUE; } } else { ! ShowMessageBox(IDS_MAKE_LNK_NOT_AFS_ERROR, MB_ICONERROR, IDS_MAKE_LNK_NOT_AFS_ERROR); return TRUE; } } if ( IsFreelanceRoot(parent) && !IsAdmin() ) { ! ShowMessageBox(IDS_NOT_AFS_CLIENT_ADMIN_ERROR, MB_ICONERROR, IDS_NOT_AFS_CLIENT_ADMIN_ERROR); return FALSE; } Index: openafs/src/WINNT/client_exp/resource.h diff -c openafs/src/WINNT/client_exp/resource.h:1.8 openafs/src/WINNT/client_exp/resource.h:1.8.4.1 *** openafs/src/WINNT/client_exp/resource.h:1.8 Wed Aug 31 20:00:41 2005 --- openafs/src/WINNT/client_exp/resource.h Thu Aug 31 07:35:12 2006 *************** *** 127,133 **** #define IDS_CLEANACL_ERROR 135 #define IDS_MAKE_LNK_NOT_AFS_ERROR 136 #define IDS_NOT_AFS_CLIENT_ADMIN_ERROR 137 ! #define IDM_AUTHENTICATION 0 #define IDM_ACL_SET 1 #define IDM_VOLUME_PROPERTIES 2 --- 127,135 ---- #define IDS_CLEANACL_ERROR 135 #define IDS_MAKE_LNK_NOT_AFS_ERROR 136 #define IDS_NOT_AFS_CLIENT_ADMIN_ERROR 137 ! #define IDS_WARNING 138 ! #define IDS_VOLUME_NOT_IN_CELL_WARNING 139 ! #define IDM_AUTHENTICATION 0 #define IDM_ACL_SET 1 #define IDM_VOLUME_PROPERTIES 2 Index: openafs/src/WINNT/client_exp/shell_ext.cpp diff -c openafs/src/WINNT/client_exp/shell_ext.cpp:1.12 openafs/src/WINNT/client_exp/shell_ext.cpp:1.12.4.1 *** openafs/src/WINNT/client_exp/shell_ext.cpp:1.12 Sat Nov 19 09:30:34 2005 --- openafs/src/WINNT/client_exp/shell_ext.cpp Wed Sep 6 19:14:00 2006 *************** *** 120,128 **** --- 120,136 ---- // from VBA. This IID must match the GUID that is attached to the // dispinterface in the .ODL file. + #ifndef _WIN64 + // 32-bit // {DC515C27-6CAC-11D1-BAE7-00C04FD140D2} static const IID IID_IShellExt = { 0xdc515c27, 0x6cac, 0x11d1, { 0xba, 0xe7, 0x0, 0xc0, 0x4f, 0xd1, 0x40, 0xd2 } }; + #else + // 64-bit + // {5f820ca1-3dde-11db-b2ce-001558092db5} + static const IID IID_IShellExt = + { 0x5f820ca1, 0x3dde, 0x11db, {0xb2, 0xce, 0x00, 0x15, 0x58, 0x09, 0x2d, 0xb5 } }; + #endif BEGIN_INTERFACE_MAP(CShellExt, CCmdTarget) INTERFACE_PART(CShellExt, IID_IShellExt, Dispatch) *************** *** 133,139 **** --- 141,153 ---- INTERFACE_PART(CShellExt, IID_IPersistFile , PersistFileExt) END_INTERFACE_MAP() + #ifndef _WIN64 + // 32-bit IMPLEMENT_OLECREATE(CShellExt, STR_EXT_TITLE, 0xdc515c27, 0x6cac, 0x11d1, 0xba, 0xe7, 0x0, 0xc0, 0x4f, 0xd1, 0x40, 0xd2) + #else + // 64-bit + IMPLEMENT_OLECREATE(CShellExt, STR_EXT_TITLE, 0x5f820ca1, 0x3dde, 0x11db, 0xb2, 0xce, 0x0, 0x15, 0x58, 0x09, 0x2d, 0xb5) + #endif ///////////////////////////////////////////////////////////////////////////// Index: openafs/src/WINNT/client_exp/lang/NTMakefile diff -c openafs/src/WINNT/client_exp/lang/NTMakefile:1.5.14.1 openafs/src/WINNT/client_exp/lang/NTMakefile:1.5.14.2 *** openafs/src/WINNT/client_exp/lang/NTMakefile:1.5.14.1 Sun Jun 25 12:58:00 2006 --- openafs/src/WINNT/client_exp/lang/NTMakefile Mon Aug 28 00:28:09 2006 *************** *** 48,54 **** install : $(DLLFILE) clean :: ! $(DEL) $(OUT)\*.res RC* RD* $(DLLFILE) AFS_component_version_number.h ############################################################################ # --- 48,58 ---- install : $(DLLFILE) clean :: ! $(DEL) $(RESFILE) ! $(DEL) RC* ! $(DEL) RD* ! $(DEL) $(DLLFILE) ! $(DEL) AFS_component_version_number.h ############################################################################ # Index: openafs/src/WINNT/client_exp/lang/en_US/afs_shl_ext.rc diff -c openafs/src/WINNT/client_exp/lang/en_US/afs_shl_ext.rc:1.10 openafs/src/WINNT/client_exp/lang/en_US/afs_shl_ext.rc:1.10.4.1 *** openafs/src/WINNT/client_exp/lang/en_US/afs_shl_ext.rc:1.10 Sun Oct 2 10:48:29 2005 --- openafs/src/WINNT/client_exp/lang/en_US/afs_shl_ext.rc Thu Aug 31 07:35:12 2006 *************** *** 659,664 **** --- 659,666 ---- IDS_CLEANACL_ERROR "Error Cleaning ACL(s)." IDS_MAKE_LNK_NOT_AFS_ERROR "Symlinks must be created within the AFS file system." IDS_NOT_AFS_CLIENT_ADMIN_ERROR "Must be AFS Client Administrators to modify the root.afs volume." + IDS_WARNING "Warning" + IDS_VOLUME_NOT_IN_CELL_WARNING "Volume %s does not exist in cell %s.\n" END STRINGTABLE DISCARDABLE Index: openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm diff -c openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm:1.5 openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm:1.5.4.2 *** openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm:1.5 Sun Sep 25 22:51:41 2005 --- openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm Sun Sep 3 12:55:28 2006 *************** *** 198,204 ****

OpenAFS for Windows

!

Version 1.4.0

 

--- 198,204 ----

OpenAFS for Windows

!

Version 1.5.8

 

Index: openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/logo.htm diff -c openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/logo.htm:1.1.6.2 openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/logo.htm:1.1.6.3 *** openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/logo.htm:1.1.6.2 Thu Aug 17 09:16:05 2006 --- openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/logo.htm Sun Sep 3 12:55:33 2006 *************** *** 3,9 **** ! OpenAFS for Windows 1.5.7 Release Notes