Windows: ShellExt display error if symlink not AFS If the path in which a Symlink is to be created is not located within AFS, display an error dialog. Change-Id: I8e4cc6840d56184da7d842cc552d11624cdef89d Reviewed-on: http://gerrit.openafs.org/7643 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com> Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
Windows: Explorer Shell Set Unix Mode bits The Unix Mode bits were not being saved. This patch permits them to be saved. FIXES 130572 Change-Id: I6bf96c04115ee0f01e84b44b9efaacb578d95cbc (cherry picked from commit 534d95ef90ac5e5ebf5deb227008e0b023e7ef8b) Reviewed-on: http://gerrit.openafs.org/6734 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com> Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Windows: Explorer shell GetUnixModeBits() actually append the unix mode string elements to the respective strings. Change-Id: I32d69f824f01e8cfacbf811a4bb14e01e3b6b9a3 Reviewed-on: http://gerrit.openafs.org/5552 Reviewed-by: Jeffrey Altman <jaltman@openafs.org> Tested-by: Jeffrey Altman <jaltman@openafs.org>
Windows: char* is not a Unicode string Do not treat the output of NetbiosName() as a wide_t when it is a char*. Change-Id: Iba4f1f30f1de4a9c3ded2f1e440ca9e4bc014379 Reviewed-on: http://gerrit.openafs.org/5549 Reviewed-by: Jeffrey Altman <jaltman@openafs.org> Tested-by: Jeffrey Altman <jaltman@openafs.org>
Windows: Explorer Shell Extension enhancements Redesign the AFS Volume Tab to report: . Volume name . Volume ID . Cell . Server . Availability . Quota . Partition Info . Replica Server List Properly handle multiple selections to report the volume info of the parent object and not the actively selected object. When a mount point is selected, display the volume information for the target volume. Remove file server from AFS tab. Modify the AFS tab to better handle multiple selections including mount points. Extend many gui2fs functions to implement a poor man's "follow" option. This really should be done with the pioctl 'literal' capability but this is an improvement. The pioctl modifications will require a major redesign of gui2fs.c and all of the dialogs. Change-Id: Ib009beb81d841fb3bbbd35b1eb0faec2c40eaf4e Reviewed-on: http://gerrit.openafs.org/5531 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Jeffrey Altman <jaltman@openafs.org> Tested-by: Jeffrey Altman <jaltman@openafs.org>
Windows: Explorer Shell extensions This patchset implements a broad range of improvements to the explorer shell. There is still a significant amount of work to be done. * Remove the 'cut' and 'delete' options from the context menu if the selected object is a symlink or mount point. This is performed in a language neutral manner. * Add AFS Property page to the property sheet * Add AFS Volume Property page * Add AFS ACL Property page * force the linker to add the common-controls V6 manifest and define ISOLATION_AWARE_ENABLED to make property sheets work for the shell extension dll * Fix the InfoTip handler. Display symlink and mount point target strings Stefan Kueng was assisted by Jeffrey Altman. Change-Id: I6b7c4506026270a5408d90cdc5358864e3fb44c3 Reviewed-on: http://gerrit.openafs.org/5430 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Jeffrey Altman <jaltman@openafs.org> Tested-by: Jeffrey Altman <jaltman@openafs.org>
Windows: shell extension is multithreaded Since the shell extension is multithreaded and it is possible for more than one thread to be executing in the gui2fs.cpp module at a time, it is not safe to use a single static 'space' buffer by more than one thread at a time. Move the buffer into the stack of each function that uses it so that we have thread safety. Change-Id: Idbec3e0027fc7e3c43b503c55c1b479bcb5984bc Reviewed-on: http://gerrit.openafs.org/4819 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Jeffrey Altman <jaltman@openafs.org> Tested-by: Jeffrey Altman <jaltman@openafs.org>
Windows: refactor fs acl funcs into fs_acl.c The ACL structure definitions and manipulation functions were defined both in WINNT/afsd/fs.c and WINNT/client_exp/gui2fs.cpp. Extract them to WINNT/afsd/fs_acl.c and refactor them so that a single copy can be maintained for both modules. The most significant change is to CleanAcl() which now accepts a cellname instead of a file path. By accepting a cellname the ACL functionality is completely isolated from the path processing and pioctl operations. At the present time, fs.exe calls CleanAcl() with a cell name and afs_shl_ext.dll does not. All callers in fs.c have been updated to use the new behavior. gui2fs.cpp also comments functions that exist in the file but have no caller. These can be removed at a later date if they are not required. Change-Id: Ibc5f411c6410769bdfeaf9e37b6d39a64958baff Reviewed-on: http://gerrit.openafs.org/4783 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Jeffrey Altman <jaltman@openafs.org> Tested-by: Jeffrey Altman <jaltman@openafs.org>
Windows: remove trailing whitespace remove trailing whitespace from NTMakefile *.h *.c *.cpp *.idl *.def *.txt *.htm Change-Id: I948a7511a20d0ad522b647b788536f9b6f5dda16 Reviewed-on: http://gerrit.openafs.org/4548 Reviewed-by: Derrick Brashear <shadow@dementia.org> Tested-by: Derrick Brashear <shadow@dementia.org>
libroken: Build on windows A minimal change set to get libroken to build on Windows. Sadly, libroken contains definitions for a number of platform compatibility macros which were previously scattered throughout the windows code. These scattered macros have to be removed in order to build libroken. The impact of this removal is that a very large number of files throughout the tree require the addition of "roken.h" to pick up the new compatibility code. The bulk of this change is adding these includes. In addition, some of the added includes add roken dependencies to the Unix build. So, also add libroken to the build rules in affected Unix Makefiles. Change-Id: Ifba431bd37e67b1e273fbc6f69b805a232193456 Reviewed-on: http://gerrit.openafs.org/3205 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Derrick Brashear <shadow@dementia.org>
Windows: Cleanup build scripts; no include\afs or include\rx As part of the build system cleanup, minimize the number of directories in which include\afs and include\rx paths are included by default. To acheive this goal the windows openafs dirent.h is moved from include\afs to include, references whenever possible to openafs headers included in include\afs or include\rx are prefixed with afs\ or rx\ as appropriate. Some source files or directories have a broad range of interdependencies that make separation quite challenging. For those directories or files the inclusion of the path is added at the smallest possible level. At some point in the future the WINNT\afsd\ headers should be moved from include\afs to include\WINNT and should be installed there first and then referenced internally from that location instead of from the WINNT\afsd directory. That will permit further cleanup to be performed. Change-Id: I5e3a9623071c71db2f4445dc43266fdb3dad2c91 Reviewed-on: http://gerrit.openafs.org/2961 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Derrick Brashear <shadow@dementia.org> Reviewed-by: Jeffrey Altman <jaltman@openafs.org> Tested-by: Jeffrey Altman <jaltman@openafs.org>
Prefix global defines Prefix constants relocated to the common afs_consts.h header to void naming collisions. Change-Id: Ib657e00385002c957b40b36058f260c6cabd108c Reviewed-on: http://gerrit.openafs.org/905 Reviewed-by: Mickey Lane <mlane@sinenomine.net> Tested-by: Mickey Lane <mlane@sinenomine.net> Reviewed-by: Derrick Brashear <shadow@dementia.org> Tested-by: Derrick Brashear <shadow@dementia.org>
Consolidate duplicate definitions Housekeeping change to consolidate some common definitions. Create a new common header called afs_consts.h. This allows us to remove the afscp.c dependency on afs.h (so src/tests will build again.) Rename the max filename definition in the update server package to MAXFNSIZE to avoid a name conflict with MAXSIZE. The global defines will be prefixed with AFS_ in a second patch. Change-Id: I2b8d555a244cc92d889618de4eec4a99550d7c7f Reviewed-on: http://gerrit.openafs.org/855 Reviewed-by: Mickey Lane <mlane@sinenomine.net> Tested-by: Mickey Lane <mlane@sinenomine.net> Reviewed-by: Derrick Brashear <shadow@dementia.org> Tested-by: Derrick Brashear <shadow@dementia.org>
Windows Explorer Shell Extension: Remove OutputDebugString calls Remove all OutputDebugString calls from the explorer shell extension. OutputDebugString() requires acquiring system global locks. LICENSE MIT Reviewed-on: http://gerrit.openafs.org/643 Tested-by: Jeffrey Altman <jaltman@openafs.org> Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Windows: more pioctl output validation Add output validation checks to the Explorer Shell and the Client configuration control panel. LICENSE MIT Reviewed-on: http://gerrit.openafs.org/458 Reviewed-by: Jeffrey Altman <jaltman@openafs.org> Tested-by: Jeffrey Altman <jaltman@openafs.org>
de-"register" src/WINNT Remove all uses of "register" from the src/WINNT source tree. LICENSE MIT Reviewed-on: http://gerrit.openafs.org/104 Verified-by: Jeffrey Altman <jaltman@openafs.org> Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
windows-shellext-path-in-afs-20090507 LICENSE MIT FIXES 124742 Change the PathInAfs test to use VIOCGETFID instead of VIOC_GET_CELL_NAME. VIOCGETFID permits a literal test of the specified object. This is needed for testing the validity of a symlink to a msdfs: or non-existent path. Otherwise, the AFS Shell Extension context menu will not be displayed.
windows-shell-extension-20081017 LICENSE MIT windows-afsreg-20081017 wraps strings for wide char usage. use the wide char versions of win32 apis to match.
windows-unicode-support-20080509 LICENSE MIT This delta provides a fairly complete implementation of Unicode character set support for the Windows Cache Manager and supporting tools including fs.exe, symlink.exe, the pioctl library, and the explorer shell extension. New Build requirements: In order to build the Microsoft IDN Mitigation APIs SDK 1.1 is now required. This SDK provides the normalization.h header and the redistribution install packages required to install normaliz.dll. The AFSDEV_INCLUDE path must be modified to point to the directory containing normalization.h. There are no lib files for this package. Cache Manager: The CM SMB server has been modified to negotiate the use of UNICODE. By default it is on. The "fs smbunicode" command can be used to disable UNICODE at runtime. cm_utils now contains UNICODE normalization and conversion routines built on top of the IDN Mitigation APIs. All input strings are normalized with UNICODE Normalization Form C. The pioctl interface now supports UTF8 strings in addition to ANSI. UTF8 strings are prefixed with <ESC> % 8 as per the ISO 2022 extension. Pioctl Library: New apps should use the pioctl_utf8() function instead of pioctl(). pioctl() is for ANSI strings and provides backward compatibility with third party apps. fs.exe and symlink.exe: Converted to Unicode applications. All strings are now communicated using UTF-8. Explorer Shell Extension: Converted to a Unicode DLL. All strings are now communicated using UTF-8. Fonts on U.S. Windows distributions are not fully populated. As a result not all of the characters can be displayed in all of the dialog boxes. Still to do: 1. Add Unicode normalization to AFS directory entries and mountpoint and symlink target strings. 2. Use the Unicode version of GetCurrentDirectory in fs_utils.c 3. Update the installers to install the IDN Mitigation APIs on XP and 2003. Vista already has them and they are not supported on pre XP SP2 releases.
windows-parseacl-20080319 LICENSE MIT Protect against invalid data being passed into ParseAcl and corrupting the stack. This affects both fs.exe and the explorer shell extension. Windows Error Reporting in recent weeks has begun to report several instances of stack corruption in the explorer shell extension from Denmark and Germany.