+++ /dev/null
-Copyright 2000, International Business Machines Corporation and others.
-All Rights Reserved.
-
-This software has been released under the terms of the IBM Public
-License. For details, see the LICENSE file in the top-level source
-directory or online at http://www.openafs.org/dl/license10.html
-
-NOTE: As of the OpenAFS 1.3 release series, Windows 9x platforms are no
-longer officially supported. It is not clear whether or not the source
-tree will build successfully or not. As far as we know, no one has tried
-in a very long time.
-
-Building Open AFS on Win 95
----------------------------
-
-The Windows 95 Open AFS client consists of two main components: the client
-program afsd.exe, which is compiled with the DJGPP compiler and runs in a
-DOS virtual machine; and the utility programs, which are built on Windows
-NT or 9x using the Microsoft Visual C++ compiler V6.0.
-
-afsd.exe
---------
-
-afsd.exe is built using the DJGPP cross-compiler, executed from Linux.
-It should also be possible to build it using the native DOS DJGPP compiler,
-but we did not try this. You will need to install the following packages
-from DJGPP and the Coda project.
-
-ftp://ftp.coda.cs.cmu.edu/pub/tools/djgpp-2.01_0.93_glibc-1.i386.rpm
-ftp://ftp.coda.cs.cmu.edu/pub/tools/djgpp-win95ext-2.01_0.93_glibc-1.i386.rpm
-ftp://ftp.coda.cs.cmu.edu/pub/tools/gdb-djgpp-4.16-2.i386.rpm
-
-You will also need the MMAP.VXD and SOCK.VXD from the Coda project. Source
-is available here:
-ftp://ftp.coda.cs.cmu.edu/pub/coda/src/win95-coda-5.2.0.zip
-
-Follow the Coda instructions to build these VXD's, which you can read here:
-http://www.coda.cs.cmu.edu/doc/html/coda-howto-6.html#ss6.4
-
-Once you have the necessary tools installed, set the following environment
-variables:
-SYS_NAME: set to i386_djgpp
-LINUX_SYS: set to the sysname of the Linux version you are using, e.g.,
- i386_linux22
-
-The makefile expects to build into a platform directory with symlinks
-into the source directory. The Perl script "mkdest.pl" in this dir. will
-set this up for you. To use it, create a directory under the top-level
-dir. (the directory above src) called "i386_djgpp". Then cd to that
-directory and type "../src/mkdest.pl <absolute path of your src dir.>"
-
-Then execute "make -f Makefile.djgpp" from the top-level directory.
-(You can create a symlink to src/Makefile.djgpp from this dir.)
-The afsd.exe will be built into i386_djgpp/dest/bin.
-
-Build notes:
-
- The Makefile.djgpp actually builds Linux versions of the utilities
- rxgen, install, compile_et, and util.a. It uses the Linux version
- of param.h which it copies to the afs subdirectory of the above
- components. You will need to set SYS_NAME to your Linux system name
- manually if you want to build these utilities separately.
-
-Utilities and GUI programs
---------------------------
-
-The rest of the support programs are built as Win32 executables from a
-Windows 9x or NT system. You will need to set the following environment
-variables:
-
-set SYS_NAME=i386_win95
-set AFSDEV_BUILDTYPE=CHECKED (or FREE if you want to skip debugging info.)
-set AFSDEV_INCLUDE=<path of your Visual C include files>
-set AFSDEV_LIB=<path of your Visual C libs>
-set AFSDEV_BIN=.
-set AFSROOT=<PATH to base of development directory>
- e.g. AFSROOT\SRC is source directory of the build tree
-SET _WIN32_IE=0x400
-set OBJ=src or obj, see below
-set MSSDK=<path to sdk header files>, see below
-
-If you are building on a Unix directory exported to Windows through Samba
-or AFS, you can create a platform directory named "i386_win95" using the
-"mkdest.pl" script as described above (run from a Unix system). This will
-only work on a file system that supports symbolic links. If you are using
-a platform directory, set the OBJ environment var. to "obj" and create
-a symlink "obj" in the top-level dir. that points to "i386_win95/obj".
-Otherwise, set OBJ to "src" to build the objects with the sources.
-
-The environment variable AFSROOT points to the parent of the AFS src
-directory. Executables will be built by default in AFSROOT\dest.
-
-Copy the file src\NTMake9x to the parent of the src directory. You only
-need to do this once. If you are building on a local drive, copy
-AFSROOT\src\symlink.bat to AFSROOT\.
-
-Follow the NT build instructions in file "README-NT" to perform the build.
-You will be using "NTMake9x" as the top-level makefile, instead of
-"NTMakefile". Most of the instructions in "README-NT" apply to the Win9x
-build as well.
-
-Build Notes:
-
-1) If you are building the Windows 9x AFS Client Control Panel
- (win9xpanel), it requires shlwapi.h. This file can be found in the
- header files associated with the Windows SDK (95/98 NT or W2000).
-
-2) You can build the Windows 9x client from a Windows NT or W2000 system.
- This requires you to edit AFSROOT\config\NTMakefile.i386_win95.
- Change line: DEL = $(AFSROOT)\src\rmbat
- to: DEL = -del /q /f
-
-3) If you build the W2000 client, then switch to building the Windows 95
- client (or vice versa), you should clean the previous build by either:
- nmake -f ntmakefile clean
-or nmake -f ntmake9x clean
-
-4) When building the "comerr" component, the makefile now uses the
- existing error_table_nt.c file (and touches it so it will be up to date
- by default.) If you make changes to the lex or yacc source files and want
- to rebuild error_table_nt.c, you can simply delete it and rerun make,
- which will cause the file to be built using lex and yacc. Make sure
- you have these utilities on your system.
-
-5) Required DLL's for redistribution
-
- The AFS Control Panel for Win95/98 requires Microsoft DLL's that can
- be installed using:
- VC6RedistSetup_enu.exe
- This is located at:
- http://support.microsoft.com/support/kb/articles/Q259/4/03.ASP
- Two Microsoft DLL's must be included at DEST\WinInstall\Config\.
- SHLWAPI.DLL
- WININET.DLL
- These DLL's will not be left on the target machine, there are only
- used for installation and removed after installation is complete.
-
-6) Required changes to configuration file .\src\config\NTMakefile.i386_win95
-
-AFSPRODUCT_VERSION - Product version
-CELLNAME_DEFAULT - The default AFS cell name
-CELLSERVDB_INSTALL - The default name for the CellServDB included in the install script
-CELLSERVDB_WEB - The default web address to obtain CellServDB
-
-For Example:
-
- .\src\config\NTMakefile.i386_win95
- AFSPRODUCT_VERSION=1.1.1a
- CELLNAME_DEFAULT=openafs.org
- CELLSERVDB_INSTALL=CellServDB.GrandCentral
- CELLSERVDB_WEB=http://grand.central.org/dl/cellservdb/CellServDB
-
-Version level may be specified in different formats, for example the following
-forms all have the same version level; however will be displayed differently:
-
-AFSPRODUCT_VERSION=1.1.1a
-AFSPRODUCT_VERSION=1.1.1 a
-AFSPRODUCT_VERSION=1.1.1.1
-AFSPRODUCT_VERSION=1.1.101
-
-6) Installation
-
- First, execute "nmake /f ntmake9x media" to copy all the client
- executables and other files to DEST\WinInstall.
-
- You can then install the client onto a target Windows 9x machine by
- executing:
- install.bat <source> <drive> <install dir.> <home cell> <cache size in 1K blocks>
- For example,
- install.bat DEST\WinInstall\ c: \afscli almaden.ibm.com 40000
-
- If you do not wish to use the batch file, you can install the client
- manually by performing the following steps.
-
- 1. On the target machine, copy all the files from DEST\WinInstall to the
- install location (usually c:\afscli).
- 2. Add entries to the target's AUTOEXEC.BAT file as follows:
- set AFSCONF=c:\afscli (replace with your install dir.)
- path %path%;c:\afscli
- 3. Copy the template.reg file to afscli.reg. Replace any references
- to c: and afscli with your install location. Double click on the
- afscli.reg file to add the registry entries to the target system.
- 4. Create the following AFS configuration files in the install dir.:
- - ThisCell:
- containing the name of your home cell
- - cache.info:
- containing your cache configuration. For example,
- to configure a cache of 40,000 1KB blocks with a disk cache
- location of c:\afscache, you would enter in this file:
- /afs:c:\afscache;40000
- (The cache location has no effect unless you have enabled
- the experimental disk cache support.)
- - CellServDB:
- the cell server database. You can get the latest version from AFS:
- /afs/transarc.com/service/etc/CellServDB.export
- 5. Reboot the target machine.
- 6. You can now start the client by executing the program WinAfsLoad.exe
- from the install directory.
-
-
+++ /dev/null
-# Top-level Makefile for Win95/DJGPP AFS client
-# Assumes you are doing cross-compiling from Linux
-# Set LINUX_SYS to the proper sysname for your Linux system
-
-OBJ = $(SYS_NAME)/obj
-DEST = $(SYS_NAME)/dest
-DESTDIR = DEST/
-SRCDIR = ${DESTDIR}
-#LINUX_SYS = i386_linux22
-TOP_SRCDIR = `pwd`/src
-
-all: afsd
-
-afsd: config pinstall libs
- make -C $(OBJ)/WINNT/afsd -f Makefile.djgpp depends
- make -C $(OBJ)/WINNT/afsd -f Makefile.djgpp install
-
-utils: pinstall rxgen comerr
-includes: afsdinc osiinc authinc
-libs: fsint cmd lwp osi rx rxkad vldb rxstat acl
-
-clean:
- -$(RM) -f $(SYS_NAME)/dest/include/*
- -$(RM) -f $(SYS_NAME)/dest/include/afs/*
- -$(RM) -f $(SYS_NAME)/dest/lib/*
- -$(RM) -f $(SYS_NAME)/dest/lib/afs/*
- -$(RM) -f $(SYS_NAME)/dest/bin/*
-
-config:
- -make -C $(OBJ)/config install
-
-# pinstall, rxgen, comerr, and util are built to run on Linux
-pinstall: config
- -mkdir $(OBJ)/pinstall/afs
- -cp $(OBJ)/config/param.$(LINUX_SYS).h $(OBJ)/pinstall/afs/param.h
- make -C $(OBJ)/pinstall SYS_NAME=$(LINUX_SYS) install
-rxgen: config
- -mkdir $(OBJ)/rxgen/afs
- -cp $(OBJ)/config/param.$(LINUX_SYS).h $(OBJ)/rxgen/afs/param.h
- make -C $(OBJ)/rxgen SYS_NAME=$(LINUX_SYS) install
-comerr: config util
- -mkdir $(OBJ)/comerr/afs
- -cp $(OBJ)/config/param.$(LINUX_SYS).h $(OBJ)/comerr/afs/param.h
- make -C $(OBJ)/comerr SYS_NAME=$(LINUX_SYS) install
-util: config procmgmt
- -mkdir $(OBJ)/util/afs
- -cp $(OBJ)/util/param.$(LINUX_SYS).h $(OBJ)/util/afs/param.h
- make -C $(OBJ)/util SYS_NAME=$(LINUX_SYS) install
-
-procmgmt:
- make -C $(OBJ)/procmgmt includes
-lwp: util afsdinc osiinc lwpinc
- make -C $(OBJ)/lwp install
-lwpinc:
- make -C $(OBJ)/lwp includes
-rx: rxgen lwp
- make -C $(OBJ)/rx install-djgpp
-des: desprogs
- make -C $(OBJ)/des install
-desprogs:
- make -C $(OBJ)/des SYS_NAME=$(LINUX_SYS) gprogs
-ubik: rx lwp
- make -C $(OBJ)/ubik install
-fsint: rx rxgen
- make -C $(OBJ)/fsint install
-rxkad: rx des
- make -C $(OBJ)/rxkad install
-audit: fsint
- make -C $(OBJ)/audit install
-authinc: comerr
- make -C $(OBJ)/auth includes
-vldb: rxgen rx authinc audit ubik rxkad
- make -C $(OBJ)/vlserver libinstall
-rxstat: rxgen rx
- make -C $(OBJ)/rxstat install
-cmd: comerr
- make -C $(OBJ)/cmd install
-afsdinc:
- make -C $(OBJ)/WINNT/afsd -f Makefile.djgpp includes
-osiinc:
- make -C $(OBJ)/WINNT/client_osi -f Makefile.djgpp includes
-osi: config
- make -C $(OBJ)/WINNT/client_osi -f Makefile.djgpp depends
- make -C $(OBJ)/WINNT/client_osi -f Makefile.djgpp install
-acl: config ptlib
- make -C $(OBJ)/libacl install
-ptlib: config rxgen comerr
- make -C $(OBJ)/ptserver libinstall
+++ /dev/null
-# Copyright 2000, International Business Machines Corporation and others.
-# All Rights Reserved.
-#
-# This software has been released under the terms of the IBM Public
-# License. For details, see the LICENSE file in the top-level source
-# directory or online at http://www.openafs.org/dl/license10.html
-
-# Top level nmake NTMakefile driver for building AFS.
-#
-# This file simply imposes a reasonable total ordering on the set of
-# directories to build; this ordering is of course more strict than the
-# partial ordering established by the actual directory dependencies.
-#
-# When porting a new directory, simply add the directory into the
-# dependence chain at the earliest point possible, updating its successor
-# appropriately; if the new directory is the last in the chain, then
-# update the 'finale' dependency to be the new directory.
-
-
-CD = cd
-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
-
-# Standard install directory.
-!IFDEF AFSDEV_DESTDIR
-DESTDIR = $(AFSDEV_DESTDIR)
-!ELSE
-DESTDIR = $(AFSROOT)\DEST
-!ENDIF
-
-
-start:
-! IF (!EXIST(src))
-! ERROR Execute nmake from directory above src, e.g., afs\3.5.
-! ENDIF
-! IF (!EXIST($(DESTDIR)))
- $(MKDIR) $(DESTDIR)
-! ENDIF
-
-config: start
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-procmgmt_headers: config
- echo ***** $@
- $(CD) $(OBJ)\procmgmt
- $(NTMAKE_HEADERS)
- $(CD) ..\..
-
-afsreg_headers: config
- echo ***** $@
- $(CD) $(OBJ)\WINNT\afsreg
- $(NTMAKE_HEADERS)
- $(CD) ..\..\..
-
-util: procmgmt_headers afsreg_headers
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-comerr: util
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-cmd: comerr
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-afsreg: cmd
- echo ***** $@
- $(CD) $(OBJ)\WINNT\$@
- $(NTMAKE)
- $(CD) ..\..\..
-
-eventlog: afsreg
- echo ***** $@
- $(CD) $(OBJ)\WINNT\$@
- $(NTMAKE)
- $(CD) ..\..\..
-
-lwp: eventlog
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-rxgen: lwp
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-des: rxgen
- echo ***** $@
-! IF (EXIST($(OBJ)\des\NTMakefile))
- $(CD) $(OBJ)\des
- $(NTMAKE)
- $(CD) ..\..
-! ELSE
- $(CD) $(OBJ)\des_stub
- $(NTMAKE)
- $(CD) ..\..
-! ENDIF
-
-rx: des
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-rxstat: rx
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-rxkad: rxstat
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-pthread: rxkad
- echo ***** $@
- $(CD) $(OBJ)\WINNT\$@
- $(NTMAKE)
- $(CD) ..\..\..
-
-procmgmt: pthread
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-fsint: procmgmt
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-audit: fsint
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-osi_headers: audit
- echo ***** $@
- $(CD) $(OBJ)\WINNT\client_osi
- $(NTMAKE_HEADERS)
- $(CD) ..\..\..
-
-libacl_headers: osi_headers
- echo ***** $@
- $(CD) $(OBJ)\libacl
- $(NTMAKE_HEADERS)
- $(CD) ..\..
-
-cm_headers: libacl_headers
- echo ***** $@
- $(CD) $(OBJ)\WINNT\afsd
- $(NTMAKE_HEADERS)
- $(CD) ..\..\..
-
-sys: cm_headers
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-afsdobjs: sys
- echo ***** $@
- $(CD) $(OBJ)\WINNT\afsd
- $(NTMAKE_OBJS)
- $(CD) ..\..\..
-
-auth: afsdobjs
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-ubik: auth
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-ptserver: ubik
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE_LIBUTILS)
- $(CD) ..\..
-
-libacl: ptserver
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-kauth: libacl
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-vlserver: kauth
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE_LIBUTILS)
- $(CD) ..\..
-
-usd: vlserver
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-libafsrpc: usd
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-libafsauthent: libafsrpc
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-libadmin: libafsauthent
- echo ***** $@
- $(CD) $(OBJ)\$@
- $(NTMAKE)
- $(CD) ..\..
-
-client_talocale: libadmin
- echo ***** $@
- $(CD) $(OBJ)\WINNT\talocale
- $(NTMAKE)
- $(CD) ..\..\..
-
-client_osi: client_talocale
- echo ***** $@
- $(CD) $(OBJ)\WINNT\$@
- $(NTMAKE)
- $(CD) ..\..\..
-
-afsd: client_osi
- echo ***** $@
- $(CD) $(OBJ)\WINNT\$@
- $(NTMAKE_LIBUTILS)
- $(CD) ..\..\..
-
-client_cpa: afsd
- echo ***** $@
- $(CD) $(OBJ)\WINNT\$@
- $(NTMAKE)
- $(CD) ..\..\..
-
-client_config: client_cpa
- echo ***** $@
- $(CD) $(OBJ)\WINNT\$@
- $(NTMAKE)
- $(CD) ..\..\..
-
-client_exp: client_config
- echo ***** $@
- $(CD) $(OBJ)\WINNT\$@
- $(NTMAKE)
- $(CD) ..\..\..
-
-
-#Leave last echo in - it helps the build reconize the last $(CD)
-win9xpanel :
- echo ***** $@
- $(CD) $(OBJ)\WINNT\$@
- $(NTMAKE)
- $(CD) ..\..\..
- echo ***** End of Build
-
-install: start client_exp win9xpanel
-
-install9x: install
-
-# InstallShield dependencies
-
-#Leave last echo in - it helps the build reconize the last $(CD)
-Win9x::
- echo ***** afs_setup_utils
- $(CD) $(OBJ)\WINNT\afs_setup_utils
- nmake -f ntmakefile install
- $(CD) ..\..\..
- echo ***** Win9x
- $(CD) $(OBJ)\WINNT\install\Win9x
- nmake /nologo /f NTMakefile isinstall
- $(CD) ..\..\..\..
- echo **** End of Install Scripts
-
-media: Win9x
-
-# Clean target for obj tree
-# Fake the version copy so clean will go through the complete cycle with undefines
-clean: start
- if not exist .\src\config\NTMakefile.version copy .\src\config\NTMakefile.version-NOCML .\src\config\NTMakefile.version
- nmake /nologo /f ntmake9x "NTMAKE = nmake /nologo /f ntmakefile clean" "NTMAKE_HEADERS = nmake /nologo /f ntmakefile clean" "NTMAKE_LIBUTILS = nmake /nologo /f ntmakefile clean" "NTMAKE_OBJS = nmake /nologo /f ntmakefile clean" install
- $(CD) $(OBJ)\WINNT\install\Win9x
- nmake /nologo /f NTMakefile clean
- $(CD) ..\..\..\..
- $(DESTDIR)\BIN\rmbat $(DESTDIR)\include\*.* $(DESTDIR)\include\afs\*.* $(DESTDIR)\include\WINNT\*.* $(DESTDIR)\include\rx\*.*
- $(DESTDIR)\BIN\rmbat $(DESTDIR)\LIB\*.LIB $(DESTDIR)\LIB\*.DLL $(DESTDIR)\LIB\AFS\*.LIB
- $(DESTDIR)\BIN\rmbat $(DESTDIR)\root.client\usr\vice\etc\*.*
- $(CD) $(OBJ)\config
- nmake /nologo /f ntmakefile clean_version
- $(CD) ..\..
- echo **** End of Clean
-
-# Language-only build target
-lang:
- nmake /nologo /f ntmakefile "NTMAKE = nmake /nologo /f ntmakefile lang" "NTMAKE_HEADERS = nmake /nologo /f ntmakefile lang" install
+++ /dev/null
-Win9x AFS Client: Technical Notes
----------------------------------
-
-This file gives a technical overview of the Win9x AFS client and describes
-the main differences from the NT client.
-
-
-Overview
---------
-
-The Windows 9x client is based on the Windows NT/2000 client. Like the
-NT client, it exports AFS through an SMB interface. Programs access AFS
-files by mounting AFS submounts as SMB shares and using the built-in
-Windows SMB client to communicate with the AFS client. The AFS client
-acts as an SMB server. It runs entirely at user level.
-
-DOS box implementation and VXD's
---------------------------------
-
-The main program of the Win9x client, afsd.exe, is implemented as a
-32-bit DOS program. It is compiled using the DJGPP compiler and runs in
-a Windows 9x DOS virtual machine. This approach was necessary to avoid
-a well-known deadlock problem in Windows 9x when the kernel calls up
-to a user-level Win32 daemon: the original requesting program grabs the
-Win16Mutex before entering the kernel. The request is then passed up to
-the daemon, who attempts to service it using network or file I/O calls.
-These calls also attempt to obtain the Win16Mutex, which is still being
-held by the original requester, so there is a deadlock.
-
-To avoid this problem, the daemon runs in a DOS box. I/O calls from
-a DOS program do not attempt to obtain the Win16Mutex, so the deadlock
-is avoided. This approach was discovered by the Coda team at Carnegie
-Mellon University and used to implement a Win9x version of their client.
-The Win9x AFS client uses the same approach. It also uses the Coda team's
-SOCK.VXD which was written to provide network functions to a DOS program.
-Sockets functions which call SOCK.VXD were added to the DJGPP library.
-
-For more information about the Coda team's approach to this problem, see
-their paper from Usenix 1999:
-http://www.cs.cmu.edu/afs/cs/project/coda/Web/docdir/freenix99.pdf
-
-Note that the AFS client also requires the Coda team's MMAP.VXD. We are
-not actually calling this VXD, but afsd crashes if it is built without
-it (i.e., by building with dos-gcc -bw95 instead of -bmmap). Solutions to
-this problem welcomed..
-
-Netbios functions
------------------
-
-The Windows AFS clients communicate with user applications using the
-SMB protocol, as described above. SMB communication is done using the
-Netbios interface. In Win32, there is a built-in function Netbios()
-which accomplishes this. In a DOS program, however, this function is
-unavailable. However, Netbios functionality is available in the BIOS
-by calling interrupt 0x5c. The NCB (Netbios Control Block) and data
-buffer must be in conventional DOS memory, i.e., below 1 MB. This memory
-can only be accessed in DJGPP by using the DOS memory access functions:
-dosmemget(), dosmemput(), _farpeekX() and _farpokeX(). The Win9x client
-uses a separately-allocated DOS memory buffer and copies data to and from
-DOS memory for network communication.
-
-Functions were also added to LWP's iomgr.c to check for the completion
-of Netbios requests. The IOMGR now checks for NCB completion in addition
-to checking for timer expiration, signal delivery, and performing select()
-on file descriptors.
-
-See the new files: netbios95.c, dosutils95.c, and the various changes
-(marked by "#ifdef DJGPP") to smb.c in WINNT/afsd. Also see lwp/iomgr.c.
-
-Thread functions
-----------------
-
-Unlike the NT client which uses Win32 thread and locking functions,
-the Win9x client uses the LWP package from the AFS source distribution.
-An interface layer was added to allow NT and Win9x to make the same calls.
-For example, thrd_Create() is now used to create a thread. In NT, this
-is just a macro to the Win32 function CreateThread(). In Win9x, it is a
-function which calls the LWP function LWP_CreateProcess(). See the new
-files osithrd95.c, osithrd95.h, and osithrdnt.h in WINNT/client_osi.
-
-Configuration parameters
-------------------------
-
-In DJGPP, it is not feasible to access the system registry, which is
-where the NT client stores its configuration info. For the Win9x client,
-the Unix approach is followed instead: the local cell is in a file called
-"ThisCell", cache configuration is in a file called "cache.info", and
-the cell database is stored in "CellServDB" instead of "afsdcell.ini".
-Many parameters are passed via the command line to afsd.exe and are
-processed just like the Unix clients.
-
-See the new files afsd_init95.c and afsd95.c in WINNT/afsd.
-
-Authentication
---------------
-
-In the functions SetToken() and GetToken(), the NT client sends and
-receives the session key using a separate RPC which should use encryption,
-rather than including the session key in the pioctl packet. The Win9x
-version avoids this RPC and puts the session key back into the pioctl.
-This should not be a security issue on Win9x since it is a single-user
-machine. (The pioctl packet will not be visible externally.) See files
-WINNT/afsd/cm_ioctl.c and auth/ktc_nt.c.
-
-Persistent (disk) caching
--------------------------
-
-Disk caching support was added for the 9x client. This has barely been
-tested and is still very experimental! In addition, there are numerous
-performance issues. It relies on the fact that LWP is a non-preemptive
-threads package, so no locking is done to protect shared data structures.
-In addition, it uses synchronous I/O to read and write disk files. Since
-LWP is a user-level threads package, any calls to normal I/O system calls
-like read() or write() will block the entire process. One better approach
-would be to add support for local disk file descriptors to the select()
-call used by IOMGR, and then to use IOMGR_Select to enqueue I/O requests
-to the disk. Currently, the select() function supports only sockets.
-
-It should be fairly easy to adapt this code for the NT client. See the
-implementation in WINNT/afsd/cm_diskcache95.c. To enable this code,
-define DISKCACHE95 in WINNT/afsd/Makefile.djgpp.
-
-Utility programs
-----------------
-
-The utility programs, such as klog.exe and fs.exe, are Win32 programs and
-are built using the Microsoft compiler. Changes to the code for these
-files are marked by "#ifdef AFS_WIN95_ENV".
-
-GUI interface
--------------
-
-The Win9x client does not use the NT configuration GUI programs in
-client_creds and client_cpa (Control Panel Applet.) It uses a separate
-GUI program called WinAfsLoad.exe in WINNT/win9xpanel. This program can
-start afsd.exe and keep track of submounts and token expiration.
-
-The Explorer shell extension, which allows right clicking on a file
-in Windows Explorer to get an AFS submenu, is supported in Win9x.
-See WINNT/client_exp.
-
-Integrated logon
-----------------
-
-Integrated logon is not supported in the 9x client.
-
-Known issues
-------------
-
-1) The Microsoft linker LINK386.exe causes a deadlock when attempting to
-create an executable on an AFS filesystem. Somehow, the linker appears
-to be preempting the entire machine so afsd.exe cannot run to service
-requests. Solutions to this problem eagerly sought! (This problem does
-not seem to occur with the Win9x Coda client.)
+++ /dev/null
-#
-# Makefile.djgpp
-# make information for this directory
-# requires gmake
-#
-
-SOURCES = afsd95.c afsd_init95.c cm_access.c cm_aclent.c cm_buf.c \
- cm_callback.c cm_cell.c cm_config.c cm_conn.c cm_daemon.c \
- cm_dcache.c cm_dir.c cm_dnlc.c cm_ioctl.c cm_scache.c \
- cm_server.c cm_user.c cm_utils.c cm_vnodeops.c cm_volume.c \
- dosutils95.c largeint95.c netbios95.c smb.c smb_ioctl.c \
- cm_diskcache95.c queue95.c afsmsg95.c smb3.c cm_dns.c \
- cm_freelance.c
-
-include ../../config/Makefile.djgpp.common
-
-# apply changes from common for this directory
-#
-# no changes for this directory
-
-# what this directory builds
-#
-TARGETS = afsd.exe
-all : $(TARGETS)
-install : $(DESTBIN)/afsd.exe #$(DESTBIN)/klog.exe
-#CFLAGS += -I../vxd_lib
-#CFLAGS += -DAFS_VXD
-CFLAGS += -DDOS_PKT_WHOLE -DAFS_AFSDB_ENV -DAFS_FREELANCE_CLIENT
-
-INCFILES = \
- $(DESTINC)/netbios95.h \
- $(DESTINC)/largeint95.h \
- $(DESTINC)/dosdefs95.h \
- $(DESTINC)/afs/afsmsg95.h
-
-# hard-wired dependency information
-#
-REQUIRED_LIBS = $(DESTLIB)/liblwp.a $(DESTLIB)/libosi.a \
- $(DESTLIB)/afs/libcmd.a $(DESTLIB)/afs/libafsint.a \
- $(DESTLIB)/afs/libvldb.a $(DESTLIB)/librxkad.a \
- $(DESTLIB)/librx.a $(DESTLIB)/librxstat.a
-
-
-afsd.exe : $(ALL_OBJS) $(REQUIRED_LIBS)
-
-includes: $(INCFILES)
-
-EXECUTABLES = afsd afsd.exe
-
-$(DESTLIB)/liblwp.a :
- $(MAKE) -C ../lwp install
-
-$(DESTLIB)/librx.a :
- $(MAKE) -C ../rx install
-
-$(DESTLIB)/libosi.a :
- $(MAKE) -C ../client_osi install
-
-$(DESTLIB)/libcmd.a :
- $(MAKE) -C ../../cmd install
-
-$(DESTLIB)/libafsint.a :
- $(MAKE) -C ../../fsint install
-
-$(DESTLIB)/librxkad.a :
- $(MAKE) -C ../../rxkad install
-
-$(DESTLIB)/libvldb.a :
- $(MAKE) -C ../../vlserver install
+++ /dev/null
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-#include <afs/param.h>
-#include <afs/stds.h>
-
-/*#include <windows.h>*/
-#include <string.h>
-/*#include <nb30.h>*/
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <osi.h>
-#include <signal.h>
-#include <afs/cmd.h>
-/*#include <winsock2.h>*/
-#include "afsd.h"
-#include "afsd_init.h"
-
-
-char main_statusText[100];
-osi_log_t *afsd_logp;
-
-extern int traceOnPanic;
-BOOL InitInstance(struct cmd_syndesc *as, char *arock);
-extern int afs_shutdown;
-int tried_shutdown=0;
-
-int afs_current_status = AFS_STATUS_INIT;
-
-/*
- * Notifier function for use by osi_panic
- */
-void afsd_notifier(char *msgp, char *filep, long line)
-{
- char tbuffer[100];
- if (filep)
- sprintf(tbuffer, "Error at file %s, line %d", filep, line);
- else
- strcpy(tbuffer, "Error at unknown location");
-
- if (!msgp)
- msgp = "Assertion failure";
-
- /*MessageBox(NULL, tbuffer, msgp, MB_OK|MB_ICONSTOP|MB_SETFOREGROUND);*/
-
- afsd_ForceTrace(TRUE);
- buf_ForceTrace(TRUE);
-
- if (traceOnPanic) {
- /*asm("int 3");*/
- }
-
- afs_exit(AFS_EXITCODE_PANIC);
-}
-
-/* Init function called when window application starts. Inits instance and
- * application together, since in Win32 they're essentially the same.
- *
- * Function then goes into a loop handling user interface messages. Most are
- * used to handle redrawing the icon.
- */
-int main(int argc, char *argv[])
-{
- struct cmd_syndesc *ts;
-
- fprintf(stderr, "AFS Client for Windows 95.\n");
- /*fprintf(stderr, "Use Ctrl-C to shut down client.\n\n\n");*/
- ts = cmd_CreateSyntax((char *) 0, (int (*)()) InitInstance, (char *) 0, "start AFS");
- cmd_AddParm(ts, "-lanadapt", CMD_SINGLE, CMD_OPTIONAL, "LAN adapter number");
- cmd_AddParm(ts, "-threads", CMD_SINGLE, CMD_OPTIONAL, "Number of server threads");
- cmd_AddParm(ts, "-rootvol", CMD_SINGLE, CMD_OPTIONAL, "name of AFS root volume");
- cmd_AddParm(ts, "-stat", CMD_SINGLE, CMD_OPTIONAL, "number of stat entries");
- cmd_AddParm(ts, "-memcache", CMD_FLAG, CMD_OPTIONAL, "use memory cache");
- cmd_AddParm(ts, "-cachedir", CMD_SINGLE, CMD_OPTIONAL, "cache directory");
- cmd_AddParm(ts, "-mountdir", CMD_SINGLE, CMD_OPTIONAL, "mount location");
- cmd_AddParm(ts, "-daemons", CMD_SINGLE, CMD_OPTIONAL, "number of daemons to use");
- cmd_AddParm(ts, "-nosettime", CMD_FLAG, CMD_OPTIONAL, "don't set the time");
- cmd_AddParm(ts, "-verbose", CMD_FLAG, CMD_OPTIONAL, "display lots of information");
- cmd_AddParm(ts, "-debug", CMD_FLAG, CMD_OPTIONAL, "display debug info");
- cmd_AddParm(ts, "-chunksize", CMD_SINGLE, CMD_OPTIONAL, "log(2) of chunk size");
- cmd_AddParm(ts, "-dcache", CMD_SINGLE, CMD_OPTIONAL, "number of dcache entries");
- cmd_AddParm(ts, "-confdir", CMD_SINGLE, CMD_OPTIONAL, "configuration directory");
- cmd_AddParm(ts, "-logfile", CMD_SINGLE, CMD_OPTIONAL, "Place to keep the CM log");
- cmd_AddParm(ts, "-waitclose", CMD_FLAG, CMD_OPTIONAL, "make close calls synchronous");
- cmd_AddParm(ts, "-shutdown", CMD_FLAG, CMD_OPTIONAL, "Shutdown all afs state");
- cmd_AddParm(ts, "-sysname", CMD_SINGLE, CMD_OPTIONAL, "System name (@sys value)");
- cmd_AddParm(ts, "-gateway", CMD_FLAG, CMD_OPTIONAL, "machine is a gateway");
- cmd_AddParm(ts, "-tracebuf", CMD_SINGLE, CMD_OPTIONAL, "trace buffer size");
- cmd_AddParm(ts, "-startup", CMD_FLAG, CMD_OPTIONAL, "start AFS client");
- cmd_AddParm(ts, "-diskcache", CMD_SINGLE, CMD_OPTIONAL, "diskcache size");
- cmd_AddParm(ts, "-afsdb", CMD_FLAG, CMD_OPTIONAL, "use DNS for cell server resolution");
- cmd_AddParm(ts, "-freelance", CMD_FLAG, CMD_OPTIONAL, "virtual AFS root");
-
- return (cmd_Dispatch(argc, argv));
-}
-
-/* initialize the process. Reads the init files to get the appropriate
- * information. */
-void vxd_Shutdown(void);
-int afsd_shutdown(int);
-int shutdown_handler(int);
-
-BOOL InitInstance(struct cmd_syndesc *as, char *arock)
-{
- long code;
- char *reason;
-
-#ifdef DJGPP
- osi_Init();
-#endif
-
-#ifndef DJGPP
- osi_InitPanic(afsd_notifier);
-#endif
-
- /*sleep(10);*/
-
- afsi_start();
-
- code = afsMsg_Init();
- if (code != 0)
- osi_panic("socket failure", __FILE__, __LINE__);
-
- code = afsd_InitCM(&reason, as, arock);
- if (code != 0)
- osi_panic(reason, __FILE__, __LINE__);
-
- code = afsd_InitDaemons(&reason);
- if (code != 0)
- osi_panic(reason, __FILE__, __LINE__);
-
- code = afsd_InitSMB(&reason);
- if (code != 0)
- osi_panic(reason, __FILE__, __LINE__);
-
- signal(SIGINT, shutdown_handler);
-
- thrd_Yield(); /* give new threads a chance to run */
-
- /* send message to GUI caller indicating successful init */
- afs_current_status = AFS_STATUS_RUNNING;
- afsMsg_StatusChange(afs_current_status, 0, NULL);
-
-#ifdef DJGPP
- /* Keep the process from just terminating */
- while(afs_shutdown == 0)
- {
- /*IOMGR_Sleep(180);*/
- IOMGR_Sleep(8);
- /* workaround: WaitForKeystroke(nonzero num) calls
- IOMGR_Select, though Win95 select works only on sockets */
- /* so, we poll instead */
- /*if (LWP_WaitForKeystroke(0))
- break;*/
- }
- afsd_shutdown(0);
-#endif
- afs_exit(0);
-
- return (TRUE);
-}
-
-int shutdown_handler(int x)
-{
- if (!tried_shutdown)
- {
- fprintf(stderr, "This program should not be shut down manually. It should "
- "be shut down by the\nWindows AFS Client Control Center. Press Ctrl-C "
- "again if you really want to do this.\n");
- fflush(stderr);
- tried_shutdown = 1;
- }
- else
- {
- fprintf(stderr, "Shutting down AFSD...\n");
- fflush(stderr);
- afs_shutdown = 1;
- }
-}
-
-int afsd_shutdown(int x)
-{
-#ifdef AFS_VXD
- vxd_Shutdown();
-#else
- smb_Shutdown();
-#endif
-
- fprintf(stderr, "AFSD shutdown complete.\n");
- /*exit(0);*/
-}
-
-void afs_exit(int exitCode)
-{
- afs_current_status = AFS_STATUS_EXITING;
- afsMsg_StatusChange(afs_current_status,
- exitCode, NULL);
- afsMsg_Shutdown();
- exit(exitCode);
-}
+++ /dev/null
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-#include <afs/param.h>
-#include <afs/stds.h>
-#include <afs/afs_args.h>
-
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <stdarg.h>
-
-#include <osi.h>
-#include "afsd.h"
-#include <rx/rx.h>
-#include <rx/rx_null.h>
-#include <afs/cmd.h>
-#include <netdb.h>
-#include "cm_rpc.h"
-
-#define AFSDIR_CLIENT_ETC_DIRPATH "c:/"
-#define AFSLOGFILE "afs.log"
-#define CACHEINFOFILE "cache.info"
-
-extern int RXAFSCB_ExecuteRequest();
-extern int RXSTATS_ExecuteRequest();
-
-osi_log_t *afsd_logp;
-
-char cm_rootVolumeName[64];
-DWORD cm_rootVolumeNameLen;
-cm_volume_t *cm_rootVolumep = NULL;
-cm_cell_t *cm_rootCellp = NULL;
-cm_fid_t cm_rootFid;
-cm_scache_t *cm_rootSCachep;
-char cm_mountRoot[1024];
-DWORD cm_mountRootLen;
-int cm_logChunkSize;
-int cm_chunkSize;
-int afs_diskCacheChunks;
-char cm_cachePath[128];
-int cm_diskCacheEnabled = 0;
-#ifdef AFS_AFSDB_ENV
-extern int cm_dnsEnabled;
-#endif
-
-#ifdef AFS_FREELANCE_CLIENT
-extern int cm_freelanceEnabled;
-char *cm_FakeRootDir;
-#endif /* freelance */
-
-int smb_UseV3;
-
-int LANadapter;
-int lanAdaptSet = 0;
-int rootVolSet = 0;
-int cacheSetTime = TRUE;
-int afsd_verbose = 0;
-int chunkSize;
-
-int numBkgD;
-int numSvThreads;
-
-int traceOnPanic = 0;
-
-int logReady = 0;
-
-char cm_HostName[200];
-long cm_HostAddr;
-
-/*char cm_CachePath[200];*/
-/*DWORD cm_CachePathLen;*/
-char cm_CacheInfoPath[1024];
-int cacheBlocks;
-int sawCacheSize=0, sawDiskCacheSize=0, sawMountRoot=0;
-int sawCacheBaseDir=0;
-char cm_AFSLogFile[200];
-int afsd_CloseSynch = 0;
-int afs_shutdown = 0;
-char cm_confDir[200];
-
-BOOL isGateway = FALSE;
-BOOL reportSessionStartups = FALSE;
-
-int afsd_debug;
-cm_initparams_v1 cm_initParams;
-
-
-/*
- * AFSD Initialization Log
- *
- * This is distinct from the regular debug logging facility.
- * Log items go directly to a file, not to an array in memory, so that even
- * if AFSD crashes, the log can be inspected.
- */
-
-FILE *afsi_file;
-
-void
-afsi_start()
-{
- char wd[100];
- char t[100], u[100];
- int zilch;
- int code;
- time_t now;
- char *p;
-
- afsi_file = NULL;
- /*code = GetWindowsDirectory(wd, sizeof(wd));
- if (code == 0) return;*/
- strcpy (wd, "C:");
- strcat(wd, "\\afsd_init.log");
- /*GetTimeFormat(LOCALE_SYSTEM_DEFAULT, 0, NULL, NULL, t, sizeof(t));*/
- time (&now);
- strcpy(t, asctime(localtime(&now)));
- /*afsi_file = CreateFile(wd, GENERIC_WRITE, FILE_SHARE_READ, NULL,
- CREATE_ALWAYS, FILE_FLAG_WRITE_THROUGH, NULL);*/
- /*afsi_file = open(wd, O_RDWR | O_CREAT | O_RSHARE);*/
- afsi_file = fopen(wd, "wt");
- setbuf(afsi_file, NULL);
-
- /*GetTimeFormat(LOCALE_SYSTEM_DEFAULT, 0, NULL, NULL, u, sizeof(u));*/
- time (&now);
- strcpy(u, asctime(localtime(&now)));
- p = strchr(u, '\n'); if (p) *p = 0;
- p = strchr(u, '\r'); if (p) *p = 0;
- strcat(t, ": Create log file\n");
- strcat(u, ": Created log file\n");
- /*WriteFile(afsi_file, t, strlen(t), &zilch, NULL);
- WriteFile(afsi_file, u, strlen(u), &zilch, NULL);*/
- /*write(afsi_file, t, strlen(t));
- write(afsi_file, u, strlen(u));*/
- fputs(t, afsi_file);
- fputs(u, afsi_file);
-}
-
-void
-afsi_log(char *pattern, ...)
-{
- char s[100], t[100], u[100];
- int zilch;
- time_t now;
- va_list ap;
-#ifndef DEBUG
- return;
-#endif
- va_start(ap, pattern);
-
- vsprintf(s, pattern, ap);
- /*GetTimeFormat(LOCALE_SYSTEM_DEFAULT, 0, NULL, NULL, t, sizeof(t));*/
- time(&now);
- strcpy(t, asctime(localtime(&now)));
- sprintf(u, "%s: %s\n", t, s);
- if (afsi_file != NULL)
- /* fputs(u, stderr); */
- fputs(u, afsi_file);
- /*write(afsi_file, u, strlen(u));*/
- /*WriteFile(afsi_file, u, strlen(u), &zilch, NULL);*/
-}
-
-/*
- * Standard AFSD trace
- */
-
-void afsd_ForceTrace(BOOL flush)
-{
- FILE *handle;
- int len;
- char buf[100];
-
- if (!logReady) return;
-
- /*len = GetTempPath(99, buf);*/
- /*strcpy(&buf[len], "/afsd.log");*/
- strcpy(buf, "c:/afsd.log");
- /*handle = CreateFile(buf, GENERIC_WRITE, FILE_SHARE_READ,
- NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);*/
- /*handle = open(buf, O_RDWR | O_CREAT | O_RSHARE);*/
- handle = fopen(buf, "wt");
- if (handle == NULL) {
- logReady = 0;
- osi_panic("Cannot create log file", __FILE__, __LINE__);
- }
- osi_LogPrint(afsd_logp, handle);
- if (flush)
- fflush(handle);
- /*FlushFileBuffers(handle);*/
- /*CloseHandle(handle);*/
- fclose(handle);
-}
-
-/*------------------------------------------------------------------------------
- * ParseCacheInfoFile
- *
- * Description:
- * Open the file containing the description of the workstation's AFS cache
- * and pull out its contents. The format of this file is as follows:
- *
- * cm_mountRoot:cacheBaseDir:cacheBlocks
- *
- * Arguments:
- * None.
- *
- * Returns:
- * 0 if everything went well,
- * 1 otherwise.
- *
- * Environment:
- * Nothing interesting.
- *
- * Side Effects:
- * Sets globals.
- *---------------------------------------------------------------------------*/
-
-int ParseCacheInfoFile()
-{
- static char rn[]="ParseCacheInfoFile"; /*This routine's name*/
- FILE *cachefd; /*Descriptor for cache info file*/
- int parseResult; /*Result of our fscanf()*/
- int32 tCacheBlocks;
- char tCacheBaseDir[1024], *tbd, tCacheMountDir[1024], *tmd;
- /*char cacheBaseDir[1024]; /* cache in mem, this is ignored */
-
- if (afsd_debug)
- printf("%s: Opening cache info file '%s'...\n",
- rn, cm_CacheInfoPath);
-
- cachefd = fopen(cm_CacheInfoPath, "r");
- if (!cachefd) {
- printf("%s: Can't read cache info file '%s'\n",
- rn, cm_CacheInfoPath);
- return(1);
- }
-
- /*
- * Parse the contents of the cache info file. All chars up to the first
- * colon are the AFS mount directory, all chars to the next colon are the
- * full path name of the workstation cache directory and all remaining chars
- * represent the number of blocks in the cache.
- */
- tCacheMountDir[0] = tCacheBaseDir[0] = '\0';
- parseResult = fscanf(cachefd,
- "%1024[^;];%1024[^;];%d",
- tCacheMountDir, tCacheBaseDir, &tCacheBlocks);
-
- /*
- * Regardless of how the parse went, we close the cache info file.
- */
- fclose(cachefd);
-
- if (parseResult == EOF || parseResult < 3) {
- printf("%s: Format error in cache info file!\n",
- rn);
- if (parseResult == EOF)
- printf("\tEOF encountered before any field parsed.\n");
- else
- printf("\t%d out of 3 fields successfully parsed.\n",
- parseResult);
-
- printf("\tcm_mountRoot: '%s'\n\tcm_cachePath: '%s'\n\tcacheBlocks: %d\n",
- cm_mountRoot, cm_cachePath, cacheBlocks);
- return(1);
- }
-
- for (tmd = tCacheMountDir; *tmd == '\n' || *tmd == ' ' || *tmd == '\t'; tmd++) ;
- for (tbd = tCacheBaseDir; *tbd == '\n' || *tbd == ' ' || *tbd == '\t'; tbd++) ;
- /* now copy in the fields not explicitly overridden by cmd args */
- if (!sawMountRoot)
- {
- strcpy(cm_mountRoot, tmd);
- cm_mountRootLen = strlen(tmd);
- }
- if (!sawCacheBaseDir)
- strcpy(cm_cachePath, tbd);
- if (!sawCacheSize)
- cacheBlocks = tCacheBlocks;
-
- if (afsd_debug) {
- printf("%s: Cache info file successfully parsed:\n",
- rn);
- printf("\tcm_mountRoot: '%s'\n\tcm_cachePath: '%s'\n\tcacheBlocks: %d\n",
- tmd, tbd, tCacheBlocks);
- }
- /*printf("cm_cachePath: %s\n", cm_cachePath);*/
-
- /*PartSizeOverflow(tbd, cacheBlocks);*/
-
- return(0);
-}
-
-/*
- * AFSD Initialization
- */
-
-int afsd_InitCM(char **reasonP, struct cmd_syndesc *as, char *arock)
-{
- osi_uid_t debugID;
- long cacheBlocks;
- long cacheSize;
- long logChunkSize;
- long stats;
- long traceBufSize;
- long ltt, ltto;
- char rootCellName[256];
- struct rx_service *serverp;
- static struct rx_securityClass *nullServerSecurityClassp;
- struct hostent *thp;
- char *msgBuf;
- char buf[200];
- DWORD dummyLen;
- long code;
- struct cmd_syndesc *ts;
- char *afsconf_path;
- long diskCacheSize;
- /*WSADATA WSAjunk;
-
- WSAStartup(0x0101, &WSAjunk);*/
-
-#ifndef DJGPP
- /* setup osidebug server at RPC slot 1000 */
- osi_LongToUID(1000, &debugID);
- code = osi_InitDebug(&debugID);
- afsi_log("osi_InitDebug code %d", code);
-// osi_LockTypeSetDefault("stat"); /* comment this out for speed *
- if (code != 0) {
- *reasonP = "unknown error";
- return -1;
- }
-#endif
-
- /* who are we ? */
- gethostname(cm_HostName, sizeof(cm_HostName));
-#ifdef DJGPP
- /* For some reason, we may be getting space-padded hostnames.
- If so, we take out the padding so that we can append -AFS later. */
- {
- char *space = strchr(cm_HostName,' ');
- if (space) *space = '\0';
- }
-#endif
- afsi_log("gethostname %s", cm_HostName);
- thp = gethostbyname(cm_HostName);
- memcpy(&cm_HostAddr, thp->h_addr_list[0], 4);
-
- /* seed random number generator */
- srand(ntohl(cm_HostAddr));
-
- /* Get configuration parameters from command line */
-
- /* call atoi on the appropriate parsed results */
-
- if (!as->parms[20].items) {
- /* -startup */
- fprintf(stderr, "Please do not run this program directly. Use the AFS Client Windows loader\nto start AFS.\n");
- exit(1);
- }
-
- if (as->parms[0].items) {
- /* -lanadapt */
- LANadapter = atoi(as->parms[0].items->data);
- lanAdaptSet = 1;
- afsi_log("LAN adapter number %d", LANadapter);
- }
- else
- {
- LANadapter = -1;
- afsi_log("Default LAN adapter number");
- }
-
- if (as->parms[1].items) {
- /* -threads */
- numSvThreads = atoi(as->parms[1].items->data);
- afsi_log("%d server threads", numSvThreads);
- }
- else
- {
- numSvThreads = CM_CONFIGDEFAULT_SVTHREADS;
- afsi_log("Defaulting to %d server threads", numSvThreads);
- }
-
- if (as->parms[2].items) {
- /* -rootvol */
- strcpy(cm_rootVolumeName, as->parms[2].items->data);
- rootVolSet = 1;
- afsi_log("Root volume %s", cm_rootVolumeName);
- }
- else
- {
- strcpy(cm_rootVolumeName, "root.afs");
- afsi_log("Default root volume name root.afs");
- }
-
- if (as->parms[3].items) {
- /* -stat */
- stats = atoi(as->parms[3].items->data);
- afsi_log("Status cache size %d", stats);
- }
- else
- {
- stats = CM_CONFIGDEFAULT_STATS;
- afsi_log("Default status cache size %d", stats);
- }
-
- if (as->parms[4].items) {
- /* -memcache */
- /* no-op */
- }
-
- if (as->parms[5].items) {
- /* -cachedir */
- /* no-op; cache is in memory, not mapped file */
- strcpy(cm_cachePath, as->parms[5].items->data);
- sawCacheBaseDir = 1;
- }
-
- if (as->parms[6].items) {
- /* -mountdir */
- strcpy(cm_mountRoot, as->parms[6].items->data);
- cm_mountRootLen = strlen(cm_mountRoot);
- sawMountRoot = 1;
- afsi_log("Mount root %s", cm_mountRoot);
- }
- else
- {
- strcpy(cm_mountRoot, "/afs");
- cm_mountRootLen = 4;
- /* Don't log */
- }
-
- if (as->parms[7].items) {
- /* -daemons */
- numBkgD = atoi(as->parms[7].items->data);
- afsi_log("%d background daemons", numBkgD);
- }
- else
- {
- numBkgD = CM_CONFIGDEFAULT_DAEMONS;
- afsi_log("Defaulting to %d background daemons", numBkgD);
- }
-
- if (as->parms[8].items) {
- /* -nosettime */
- cacheSetTime = FALSE;
- }
-
- if (as->parms[9].items) {
- /* -verbose */
- afsd_verbose = 1;
- }
-
- if (as->parms[10].items) {
- /* -debug */
- afsd_debug = 1;
- afsd_verbose = 1;
- }
-
- if (as->parms[11].items) {
- /* -chunksize */
- chunkSize = atoi(as->parms[11].items->data);
- if (chunkSize < 12 || chunkSize > 30) {
- afsi_log("Invalid chunk size %d, using default",
- logChunkSize);
- logChunkSize = CM_CONFIGDEFAULT_CHUNKSIZE;
- }
- } else {
- logChunkSize = CM_CONFIGDEFAULT_CHUNKSIZE;
- afsi_log("Default chunk size %d", logChunkSize);
- }
- cm_logChunkSize = logChunkSize;
- cm_chunkSize = 1 << logChunkSize;
-
- if (as->parms[12].items) {
- /* -dcache */
- cacheSize = atoi(as->parms[12].items->data);
- afsi_log("Cache size %d", cacheSize);
- sawCacheSize = 1;
- }
- else
- {
- cacheSize = CM_CONFIGDEFAULT_CACHESIZE;
- afsi_log("Default cache size %d", cacheSize);
- }
-
- afsconf_path = getenv("AFSCONF");
- if (!afsconf_path)
- strcpy(cm_confDir, AFSDIR_CLIENT_ETC_DIRPATH);
- else
- strcpy(cm_confDir, afsconf_path);
- if (as->parms[13].items) {
- /* -confdir */
- strcpy(cm_confDir, as->parms[13].items->data);
- }
-
- sprintf(cm_CacheInfoPath, "%s/%s", cm_confDir, CACHEINFOFILE);
-
- sprintf(cm_AFSLogFile, "%s/%s", cm_confDir, AFSLOGFILE);
- if (as->parms[14].items) {
- /* -logfile */
- strcpy(cm_AFSLogFile, as->parms[14].items->data);
- }
-
- if (as->parms[15].items) {
- /* -waitclose */
- afsd_CloseSynch = 1;
- }
-
- if (as->parms[16].items) {
- /* -shutdown */
- afs_shutdown = 1;
- /*
- * Cold shutdown is the default
- */
- printf("afsd: Shutting down all afs processes and afs state\n");
- /*call_syscall(AFSOP_SHUTDOWN, 1);*/
- exit(0);
- }
-
- if (as->parms[17].items) {
- /* -sysname */
- strcpy(cm_sysName, as->parms[17].items->data);
- }
- else
- strcpy(cm_sysName, "i386_win95");
-
- if (as->parms[18].items) {
- /* -gateway */
- isGateway = 1;
- afsi_log("Set for %s service",
- isGateway ? "gateway" : "stand-alone");
- }
- else
- isGateway = 0;
-
- if (as->parms[19].items) {
- /* -tracebuf */
- traceBufSize = atoi(as->parms[19].items->data);
- afsi_log("Trace Buffer size %d", traceBufSize);
- }
- else
- {
- traceBufSize = CM_CONFIGDEFAULT_TRACEBUFSIZE;
- afsi_log("Default trace buffer size %d", traceBufSize);
- }
-
- if (as->parms[21].items) {
- /* -diskcache */
- diskCacheSize = atoi(as->parms[21].items->data);
- cm_diskCacheEnabled = 1;
- afsi_log("Disk cache size %d K", diskCacheSize);
- /*printf("Disk cache size %d K", diskCacheSize);*/
- sawDiskCacheSize = 1;
- }
- else
- {
- diskCacheSize = 50000; /*CM_CONFIGDEFAULT_DISKCACHESIZE;*/
- afsi_log("Default disk cache size %d", diskCacheSize);
- }
-
- if (as->parms[22].items) {
- /* -noafsdb */
- cm_dnsEnabled = 0;
- }
-
- if (as->parms[23].items) {
- /* -freelance */
- cm_freelanceEnabled = 1;
- }
-
- if (ParseCacheInfoFile()) {
- exit(1);
- }
-
- /* setup early variables */
- /* These both used to be configurable. */
- smb_UseV3 = 1;
- buf_blockSize = CM_CONFIGDEFAULT_BLOCKSIZE;
-
- /* turn from 1024 byte units into memory blocks */
- cacheBlocks = (cacheSize * 1024) / buf_blockSize;
- afs_diskCacheChunks = (diskCacheSize * 1024) / buf_blockSize;
- /*printf("afs_diskCacheChunks=%d\n", afs_diskCacheChunks);*/
-
- /*
- * Save client configuration for GetCacheConfig requests
- */
- cm_initParams.nChunkFiles = 0;
- cm_initParams.nStatCaches = stats;
- cm_initParams.nDataCaches = 0;
- cm_initParams.nVolumeCaches = 0;
- cm_initParams.firstChunkSize = cm_chunkSize;
- cm_initParams.otherChunkSize = cm_chunkSize;
- cm_initParams.cacheSize = cacheSize;
- cm_initParams.setTime = 0;
- cm_initParams.memCache = 0;
-
- /* setup and enable debug log */
- afsd_logp = osi_LogCreate("afsd", traceBufSize);
- afsi_log("osi_LogCreate log addr %x", afsd_logp);
- osi_LogEnable(afsd_logp);
- logReady = 1;
-
-#if 0
- /* get network related info */
- cm_noIPAddr = CM_MAXINTERFACE_ADDR;
- code = syscfg_GetIFInfo(&cm_noIPAddr,
- cm_IPAddr, cm_SubnetMask,
- cm_NetMtu, cm_NetFlags);
-
- if ( (cm_noIPAddr <= 0) || (code <= 0 ) )
- afsi_log("syscfg_GetIFInfo error code %d", code);
- else
- afsi_log("First Network address %x SubnetMask %x",
- cm_IPAddr[0], cm_SubnetMask[0]);
-#endif
-
- /* initialize RX, and tell it to listen to port 7001, which is used for
- * callback RPC messages.
- */
- code = rx_Init(htons(7001));
- afsi_log("rx_Init code %x", code);
- if (code != 0) {
- *reasonP = "afsd: failed to init rx client on port 7001";
- return -1;
- }
-
- /* Initialize the RPC server for session keys */
- /*RpcInit();*/
-
- /* create an unauthenticated service #1 for callbacks */
- nullServerSecurityClassp = rxnull_NewServerSecurityObject();
- serverp = rx_NewService(0, 1, "AFS", &nullServerSecurityClassp, 1,
- RXAFSCB_ExecuteRequest);
- afsi_log("rx_NewService addr %x", serverp);
- if (serverp == NULL) {
- *reasonP = "unknown error";
- return -1;
- }
-
- nullServerSecurityClassp = rxnull_NewServerSecurityObject();
- serverp = rx_NewService(0, RX_STATS_SERVICE_ID, "rpcstats",
- &nullServerSecurityClassp, 1, RXSTATS_ExecuteRequest);
- afsi_log("rx_NewService addr %x", serverp);
- if (serverp == NULL) {
- *reasonP = "unknown error";
- return -1;
- }
-
- /* start server threads, *not* donating this one to the pool */
- rx_StartServer(0);
- afsi_log("rx_StartServer");
-
-#ifdef AFS_AFSDB_ENV
- /* initialize dns lookup */
- if (cm_InitDNS(cm_dnsEnabled) == -1)
- cm_dnsEnabled = 0; /* init failed, so deactivate */
- afsi_log("cm_InitDNS %d", cm_dnsEnabled);
-#endif
-
- /* init user daemon, and other packages */
- cm_InitUser();
-
- cm_InitACLCache(2*stats);
-
- cm_InitConn();
-
- cm_InitCell();
-
- cm_InitServer();
-
- cm_InitVolume();
-
- cm_InitIoctl();
-
- smb_InitIoctl();
-
- cm_InitCallback();
-
- cm_InitSCache(stats);
-
- code = cm_InitDCache(0, cacheBlocks);
-
- afsi_log("cm_InitDCache code %x", code);
- if (code != 0) {
- *reasonP = "error initializing cache";
- return -1;
- }
-
- code = cm_GetRootCellName(rootCellName);
- afsi_log("cm_GetRootCellName code %d rcn %s", code,
- (code ? "<none>" : rootCellName));
- if (code != 0 && !cm_freelanceEnabled) {
- *reasonP = "can't find root cell name in ThisCell";
- return -1;
- }
- else if (cm_freelanceEnabled)
- cm_rootCellp = NULL;
-
- if (code == 0 && !cm_freelanceEnabled) {
- cm_rootCellp = cm_GetCell(rootCellName, CM_FLAG_CREATE);
- afsi_log("cm_GetCell addr %x", cm_rootCellp);
- if (cm_rootCellp == NULL) {
- *reasonP = "can't find root cell in CellServDB";
- return -1;
- }
- }
-
-#ifdef AFS_FREELANCE_CLIENT
- if (cm_freelanceEnabled)
- cm_InitFreelance();
-#endif
-
- return 0;
-}
-
-int afsd_InitDaemons(char **reasonP)
-{
- long code;
- cm_req_t req;
-
- cm_InitReq(&req);
-
- /* this should really be in an init daemon from here on down */
-
- if (!cm_freelanceEnabled) {
- code = cm_GetVolumeByName(cm_rootCellp, cm_rootVolumeName, cm_rootUserp, &req, CM_FLAG_CREATE, &cm_rootVolumep);
- afsi_log("cm_GetVolumeByName code %x root vol %x", code,
- (code ? 0xffffffff : cm_rootVolumep));
- if (code != 0) {
- *reasonP = "can't find root volume in root cell";
- return -1;
- }
- }
-
- /* compute the root fid */
- if (!cm_freelanceEnabled) {
- cm_rootFid.cell = cm_rootCellp->cellID;
- cm_rootFid.volume = cm_GetROVolumeID(cm_rootVolumep);
- cm_rootFid.vnode = 1;
- cm_rootFid.unique = 1;
- }
- else
- cm_FakeRootFid(&cm_rootFid);
-
- code = cm_GetSCache(&cm_rootFid, &cm_rootSCachep, cm_rootUserp, &req);
- afsi_log("cm_GetSCache code %x scache %x", code,
- (code ? 0xffffffff : cm_rootSCachep));
- if (code != 0) {
- *reasonP = "unknown error";
- return -1;
- }
-
- cm_InitDaemon(numBkgD);
- afsi_log("cm_InitDaemon");
-
- return 0;
-}
-
-int afsd_InitSMB(char **reasonP)
-{
- char hostName[200];
- char *ctemp;
-
- /* Do this last so that we don't handle requests before init is done.
- * Here we initialize the SMB listener.
- */
- strcpy(hostName, cm_HostName);
- ctemp = strchr(hostName, '.'); /* turn ntdfs.* into ntdfs */
- if (ctemp) *ctemp = 0;
- hostName[11] = 0; /* ensure that even after adding the -A, we
- * leave one byte free for the netbios server
- * type.
- */
- strcat(hostName, "-AFS");
- strupr(hostName);
- smb_Init(afsd_logp, hostName, smb_UseV3, LANadapter, numSvThreads);
- afsi_log("smb_Init");
-
- return 0;
-}
-
+++ /dev/null
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-#include <afs/param.h>
-#include <afs/stds.h>
-
-#include <windows.h>
-#include <NETSPI.h>
-#include <winsock2.h>
-#include <afs/pioctl_nt.h>
-#include <afs/kautils.h>
-#include "cm_config.h"
-#include "krb.h"
-
-HANDLE hDLL;
-
-WSADATA WSAjunk;
-
-char NPName95[] = "System\\CurrentControlSet\\Services\\TransarcAFSDaemon\\NetworkProvider";
-
-/*
- * GetLogonScript
- *
- * We get a logon script pathname from the HKEY_LOCAL_MACHINE registry.
- * I don't know what good this does; I just copied it from DFS.
- *
- * Returns NULL on failure.
- */
-WCHAR *GetLogonScript(void)
-{
- WCHAR *script;
- DWORD code;
- DWORD LSPtype, LSPsize;
- HKEY NPKey;
-
- /*
- * Get Network Provider key.
- * Assume this works or we wouldn't be here.
- */
- (void) RegOpenKeyEx(HKEY_LOCAL_MACHINE, NPName95,
- 0, KEY_QUERY_VALUE, &NPKey);
-
- /*
- * Get Logon Script pathname length
- */
- code = RegQueryValueEx(NPKey, "LogonScript", NULL,
- &LSPtype, NULL, &LSPsize);
-
- if (code) {
- RegCloseKey (NPKey);
- return NULL;
- }
-
- if (LSPtype != REG_SZ) { /* Maybe handle REG_EXPAND_SZ? */
- RegCloseKey (NPKey);
- return NULL;
- }
-
- script = (WCHAR *)LocalAlloc(LMEM_FIXED, LSPsize);
-
- /*
- * Explicitly call UNICODE version
- * Assume it will succeed since it did before
- */
- (void) RegQueryValueExW(NPKey, L"LogonScript", NULL,
- &LSPtype, (LPBYTE)script, &LSPsize);
-
- RegCloseKey (NPKey);
- return script;
-}
-
-DWORD MapAuthError(DWORD code)
-{
- switch (code) {
- case INTK_BADPW: return WN_BAD_PASSWORD;
- case KERB_ERR_PRINCIPAL_UNKNOWN: return WN_BAD_USER;
- default: return WN_NO_NETWORK;
- }
-}
-
-BOOLEAN APIENTRY DllEntryPoint(HANDLE dll, DWORD reason, PVOID reserved)
-{
- hDLL = dll;
- switch (reason) {
- case DLL_PROCESS_ATTACH:
- /* Initialize AFS libraries */
- rx_Init(0);
- ka_Init(0);
- break;
-
- /* Everything else succeeds but does nothing. */
- case DLL_PROCESS_DETACH:
- case DLL_THREAD_ATTACH:
- case DLL_THREAD_DETACH:
- default:
- break;
- }
-
- return TRUE;
-}
-
-DWORD APIENTRY NPGetCaps(DWORD index)
-{
- switch (index) {
- case WNNC_SPEC_VERSION:
- return WNNC_SPEC_VERSION51;
- case WNNC_NET_TYPE:
- /* Don't have our own type; use somebody else's. */
- return WNNC_NET_LANMAN;
- case WNNC_DRIVER_VERSION:
- return WNNC_DRIVER(1,1);
- case WNNC_START:
- return WNNC_START_DONE;
- case WNNC_AUTHENTICATION:
- return WNNC_AUTH_LOGON | WNNC_AUTH_LOGOFF;
- default:
- return 0;
- }
-}
-
-DWORD APIENTRY NPLogon(
- HWND hwndOwner,
- LPLOGONINFO lpAuthentInfo,
- LPLOGONINFO lpPreviousAuthentInfo,
- LPTSTR lpLogonScript,
- DWORD dwBufferSize,
- DWORD dwFlags)
-{
- DWORD code;
- int pw_exp;
- char *reason;
- char cell[256];
-
- if (dwFlags & LOGON_DONE)
- return 0;
-
- /* Check for zero length password */
- if (lpAuthentInfo->lpUsername[0] == 0) {
- code = GT_PW_NULL;
- reason = "zero length password is illegal";
- goto checkauth;
- }
-
- /* Get cell name */
- code = cm_GetRootCellName(cell);
- if (code < 0) {
- code = KTC_NOCELL;
- reason = "unknown cell";
- goto checkauth;
- }
-
- code = ka_UserAuthenticateGeneral(
- KA_USERAUTH_VERSION + KA_USERAUTH_AUTHENT_LOGON,
- lpAuthentInfo->lpUsername,
- "", cell,
- lpAuthentInfo->lpPassword,
- 0, &pw_exp, 0, &reason);
-
-checkauth:
- if (code) {
- MessageBox(hwndOwner, reason, "AFS logon", MB_OK);
- code = MapAuthError(code);
- }
-
- return code;
-}
-
-DWORD APIENTRY NPLogoff(
- HWND hwndOwner,
- LPLOGONINFO lpAuthentInfo,
- DWORD dwReason)
-{
- return 0;
-}
+++ /dev/null
-LIBRARY AFSLOG95
-
-DESCRIPTION 'AFS Client Credential Provider DLL'
-
-EXPORTS
-
- DllEntryPoint
- NPGetCaps @13
- NPLogon @43
- NPLogoff @44
-
+++ /dev/null
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/* Define VERSIONINFO resource */
-
-#define AFS_VERINFO_FILE_DESCRIPTION "AFS Integrated Logon 95 DLL"
-#define AFS_VERINFO_DLL
-#define AFS_VERINFO_NAME "afslog95"
-#define AFS_VERINFO_FILENAME "afslog95.dll"
-
-#include "AFS_component_version_number.h"
-#include "..\..\config\NTVersioninfo.rc"
+++ /dev/null
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/* This file contains functions used by the Windows 95 (DJGPP) AFS client
- to communicate with the startup executable. */
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-
-#include "afs/afsmsg95.h"
-
-int sock;
-struct sockaddr_in addr;
-extern int errno;
-
-int afsMsg_Init()
-{
- int rc;
- struct sockaddr_in myaddr;
-
- sock = socket(AF_INET, SOCK_DGRAM, 0);
- if (sock < 0)
- return -1;
-
- addr.sin_addr.s_addr = htonl(0x7f000001); /* 127.0.0.1 */
- addr.sin_family = AF_INET;
- addr.sin_port = htons(AFS_MSG_PORT);
-
- myaddr.sin_addr.s_addr = INADDR_ANY;
- myaddr.sin_family = AF_INET;
- myaddr.sin_port = 0;
-
- rc = bind(sock, (struct sockaddr *) &myaddr, sizeof(myaddr));
-#ifdef DEBUG
- fprintf(stderr, "afsMsg_Init: bind sock %d rc=%d\n", sock, rc);
-#endif
-
- return 0;
-}
-
-int afsMsg_StatusChange(int status, int exitCode, char *string)
-{
- afsMsg_statChange_t *msgP;
- int rc;
- int slen = 0;
- char msgBuf[AFS_MAX_MSG_LEN];
- int now;
-
- msgP = (afsMsg_statChange_t *) msgBuf;
-
- msgP->hdr.msgtype = AFS_MSG_STATUS_CHANGE;
-
- msgP->newStatus = status;
- msgP->exitCode = exitCode;
-
- if (string)
- {
- slen = strlen(string); /* one extra for NULL */
- if (slen > AFS_MAX_MSG_LEN - sizeof(afsMsg_statChange_t))
- slen = AFS_MAX_MSG_LEN - sizeof(afsMsg_statChange_t);
- strncpy(&msgP->message, string, slen);
- }
-
- msgP->hdr.length = sizeof(afsMsg_statChange_t) + slen;
-
- rc = sendto(sock, msgP, msgP->hdr.length, 0, (struct sockaddr *) &addr,
- sizeof(addr));
- /*rc = send(sock, &msg, msg.hdr.length, 0);*/
- time(&now);
-#ifdef DEBUG
- fprintf(stderr, "%s: sent status change %d to sock %d length %d size=%d errno=%d\n",
- asctime(localtime(&now)), status,
- sock, msgP->hdr.length, rc, (rc < 0 ? errno:0));
-#endif
- fflush(stdout);
-
- return rc;
-}
-
-int afsMsg_Print(char *str, int level)
-{
- afsMsg_print_t *msgP;
- int rc;
- char msgBuf[AFS_MAX_MSG_LEN];
- int slen;
-
- slen = strlen(str); /* one extra for NULL */
- if (slen > AFS_MAX_MSG_LEN - sizeof(afsMsg_statChange_t))
- slen = AFS_MAX_MSG_LEN - sizeof(afsMsg_statChange_t);
- strncpy(&msgP->message, str, slen);
-
- msgP->hdr.msgtype = AFS_MSG_PRINT;
- msgP->hdr.length = sizeof(afsMsg_hdr_t) + slen;
- msgP->debugLevel = level;
- strcpy(&msgP->message, str);
-
- rc = sendto(sock, msgP, msgP->hdr.length, 0, (struct sockaddr *) &addr,
- sizeof(addr));
- return rc;
-}
-
-int afsMsg_Shutdown()
-{
- int rc;
- rc = close(sock);
- if (rc < 0) fprintf(stderr, "error closing socket, rc=%d\n", rc);
-#ifdef DEBUG
- else fprintf(stderr, "socket closed\n");
-#endif
- fflush(stderr);
-}
+++ /dev/null
-#ifndef _AFSMSG_H
-#define _AFSMSG_H
-
-#define AFS_MSG_PORT 2020
-
-#define AFS_MAX_MSG_LEN 512
-
-typedef struct _afsMsg_hdr {
- int msgtype;
- int length;
-} afsMsg_hdr_t;
-
-#define AFS_MSG_STATUS_CHANGE 1
-#define AFS_MSG_PRINT 2
-
-typedef struct _afsMsg_statChange {
- afsMsg_hdr_t hdr;
- int oldStatus;
- int newStatus;
- int exitCode;
- char message;
-} afsMsg_statChange_t;
-
-#define AFS_STATUS_NOSTATUS -1
-#define AFS_STATUS_INIT 1
-#define AFS_STATUS_RUNNING 2
-#define AFS_STATUS_EXITING 3
-
-#define AFS_EXITCODE_NORMAL 0
-#define AFS_EXITCODE_PANIC 2
-#define AFS_EXITCODE_NETWORK_FAILURE 3
-#define AFS_EXITCODE_GENERAL_FAILURE 100
-
-typedef struct _afsMsg_print {
- afsMsg_hdr_t hdr;
- int debugLevel;
- char message;
-} afsMsg_print_t;
-
-#endif
+++ /dev/null
-#ifndef AFSRPC_H
-#define AFSRPC_H
-
-/* Copied from declaration of GUID in RPCDCE.H */
-typedef struct afs_uuid {
- unsigned long Data1;
- unsigned short Data2;
- unsigned short Data3;
- unsigned char Data4[8];
-} afs_uuid_t;
-
-long AFSRPC_SetToken(
- afs_uuid_t uuid,
- unsigned char sessionKey[8]
-);
-
-long AFSRPC_GetToken(
- afs_uuid_t uuid,
- unsigned char sessionKey[8]
-);
-
-#endif
+++ /dev/null
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/* This code is experimental persistent disk cache support for the
- Windows 95/DJGPP AFS client. It uses synchronous I/O and assumes
- non-preemptible threads (which is the case in DJGPP), so it has
- no locking. */
-
-
-#ifdef DISKCACHE95
-
-#include <afs/param.h>
-#include <afs/stds.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <sys/errno.h>
-#include <sys/stat.h>
-
-#include "afsd.h"
-
-cm_diskcache_t **diskHashTable; /* pointers to hash chains */
-Queue diskLRUList;
-Queue openFileList;
-cm_diskcache_t *diskCBBuf;
-
-extern int afs_diskCacheChunks;
-/*extern int cm_diskCacheChunkSize;*/
-extern long buf_blockSize;
-long cm_diskCacheChunkSize;
-extern char cm_cachePath[];
-extern int cm_cachePathLen;
-extern int cm_diskCacheEnabled;
-
-int cacheInfo_fd;
-int accessOrd = 0; /* monotonically increasing access ordinal */
-int updates = 0;
-int afs_dhashsize = 2048;
-int openCacheFiles = 0;
-
-char cacheInfoPath[128];
-char cacheFileName[128];
-
-extern int errno;
-
-#define MAX_OPEN_FILES 22
-
-/* internal functions */
-void diskcache_WriteCacheInfo(cm_diskcache_t *dcp);
-int diskcache_New();
-cm_diskcache_t *diskcache_Find(cm_fid_t *fid, int chunk);
-cm_diskcache_t *diskcache_Alloc(cm_fid_t *fid, int chunk, int dataVersion);
-int diskcache_Read(cm_diskcache_t *dcp, char *buf, int size);
-int diskcache_Write(cm_diskcache_t *dcp, char *buf, int size);
-
-#define complain printf
-
-#define OFFSET_TO_CHUNK(a) (LargeIntegerDivideByLong((a), cm_diskCacheChunkSize))
-#define GEN_CACHE_DIR_NAME(name, path, i) \
- sprintf(name, "%s\\D%07d", cm_cachePath, (i) / CACHE_FILES_PER_DIR)
-#define GEN_CACHE_FILE_NAME(name, path, i) \
- sprintf(name, "%s\\D%07d\\C%07d", path, (i) / CACHE_FILES_PER_DIR, \
- (i) % CACHE_FILES_PER_DIR)
-
-/* Initialize the disk cache */
-int diskcache_Init()
-{
- int i;
- int rc;
- int fd;
- int invalid;
- int index;
- char *chunkBuf;
- char tmpBuf[512];
- struct stat cacheInfoStat, chunkStat;
- cm_cacheInfoHdr_t hdr;
- cm_diskcache_t *dcp;
- int validCount = 0;
-
- if (!cm_diskCacheEnabled)
- return 0;
-
- cm_diskCacheChunkSize = buf_blockSize;
- if (cm_diskCacheChunkSize % buf_blockSize != 0)
- {
- complain("Error: disk cache chunk size %d not a multiple of buffer size %d\n",
- cm_diskCacheChunkSize, buf_blockSize);
- return CM_ERROR_INVAL;
- }
-
- /* alloc mem for chunk file control blocks */
- diskCBBuf = (cm_diskcache_t *) malloc(afs_diskCacheChunks * sizeof(cm_diskcache_t));
- if (diskCBBuf == NULL)
- return CM_ERROR_SPACE;
- memset(diskCBBuf, 0, afs_diskCacheChunks * sizeof(cm_diskcache_t));
-
- /* alloc mem for hash table pointers */
- diskHashTable = (cm_diskcache_t **) malloc(afs_dhashsize * sizeof(cm_diskcache_t *));
- if (diskHashTable == NULL)
- return CM_ERROR_SPACE;
- memset(diskHashTable, 0, afs_dhashsize*sizeof(cm_diskcache_t *));
-
- QInit(&diskLRUList);
- QInit(&openFileList);
-
- /*sprintf(cacheInfoPath, "%s\\%s", cm_cachePath, CACHE_INFO_FILE);*/
- memset(cacheInfoPath, 0, 128);
- DPRINTF("cm_cachePath=%s\n", cm_cachePath);
- strncpy(cacheInfoPath, cm_cachePath, 50);
- strcat(cacheInfoPath, "\\");
- strcat(cacheInfoPath, CACHE_INFO_FILE);
- DPRINTF("cacheInfoPath=%s\n", cacheInfoPath);
-
- cacheInfo_fd = open(cacheInfoPath, O_RDWR | O_BINARY);
-
- if (cacheInfo_fd < 0)
- {
- /* file not present */
- return diskcache_New(); /* initialize new empty disk cache */
- }
-
- /* get stat of cache info file */
- rc = fstat(cacheInfo_fd, &cacheInfoStat);
-
- /* Check for valid header in cache info file */
- rc = read(cacheInfo_fd, &hdr, sizeof(cm_cacheInfoHdr_t));
- if (rc < sizeof(cm_cacheInfoHdr_t) ||
- hdr.magic != CACHE_INFO_MAGIC)
- /*hdrp = (cm_cacheInfoHdr_t *) tmpBuf;*/
- {
- close(cacheInfo_fd);
- return diskcache_New();
- }
-
- if (hdr.chunks != afs_diskCacheChunks ||
- hdr.chunkSize != cm_diskCacheChunkSize)
- {
- /* print error message saying params don't match */
- return CM_ERROR_INVAL;
- }
-
- chunkBuf = (char *) malloc(cm_diskCacheChunkSize);
- if (chunkBuf == NULL)
- return CM_ERROR_SPACE;
-
- /* read metadata from cache info file into control blocks */
- /* reconstruct hash chains based on fid, chunk */
- for (i = 0; i < afs_diskCacheChunks; i++)
- { /* for all cache chunks */
- if (i % 500 == 0)
- {
- printf("%d...", i);
- fflush(stdout);
- }
- dcp = &diskCBBuf[i];
- dcp->refCount = 0;
- rc = read(cacheInfo_fd, &dcp->f, sizeof(struct fcache));
- if (rc < sizeof(struct fcache))
- {
- /* print error message about reading cache info file */
- /* this isn't the right error code for a read error */
- return CM_ERROR_INVAL;
- }
-
- if (dcp->f.index != i)
- return CM_ERROR_INVAL; /* index should match position in cache info file */
-
- /* Try to open cache file. This chunk will be invalidated if we can't
- find the file, the file is newer than the cache info file, the file
- size doesn't match the cache info file, or the file's header is
- invalid. */
- GEN_CACHE_FILE_NAME(cacheFileName, cm_cachePath, i);
-#if 1
- /*fd = open(cacheFileName, O_RDWR | O_BINARY);
- if (fd < 0) invalid = 1;
- else
- {
- rc = fstat(fd, &chunkStat);*/
- rc = stat(cacheFileName, &chunkStat);
-
- if (rc < 0) invalid = 1;
- /*else if (cacheInfoStat.st_mtime < chunkStat.st_mtime + 120) invalid = 1;*/
- else if (cacheInfoStat.st_mtime < chunkStat.st_mtime) invalid = 1;
- /*else if (cacheInfoStat.st_mtime < dcp->f.modTime + 120) invalid = 1;*/
- else if (cacheInfoStat.st_mtime < dcp->f.modTime) invalid = 1;
- else if (cm_diskCacheChunkSize != chunkStat.st_size ||
- dcp->f.chunkBytes != chunkStat.st_size) invalid = 1;
- /*else
- {*/
- /*rc = read(fd, chunkBuf, cm_diskCacheChunkSize);
- if (rc < 0) invalid = 1;*/
-
- /*else
- {
- cacheFileHdrP = (cm_cacheFileHdr_t *) chunkBuf;
- if (cacheFileHdrP->magic != CACHE_FILE_MAGIC ||
- cacheFileHdrP->index != i)
- {
- invalid = 1;
- }
- }*/
- /*}*/
- /*}*/
-#else
- invalid = 0;
-#endif
-
- if (invalid == 0)
- {
- /* Cache file seems to be valid */
-
- validCount++;
- DPRINTF("Found fid/chunk=%08x-%08x-%08x-%08x/%04d in slot=%d dcp=%x\n",
- dcp->f.fid.cell, dcp->f.fid.volume, dcp->f.fid.vnode,
- dcp->f.fid.unique, dcp->f.chunk, i, dcp);
- /* Put control block in hash table */
- index = DCHash(&dcp->f.fid, dcp->f.chunk);
- /*osi_QAdd(&diskHashTable[index], &dcp->f.hashq);*/
-
- /* add to head of hash list. (we should probably look at
- ord here instead. use queues?) */
- dcp->hash_next = diskHashTable[index];
- dcp->hash_prev = NULL;
- if (diskHashTable[index]) diskHashTable[index]->hash_prev = dcp;
- diskHashTable[index] = dcp;
-
- /* Add to LRU queue in access time order (lowest at tail) */
- QAddOrd(&diskLRUList, &dcp->lruq, dcp->f.accessOrd);
-
- close(fd);
- }
- else
- {
- /* Cache file is invalid */
-
- /* Create the cache file with correct size */
- memset(chunkBuf, 0, cm_diskCacheChunkSize);
- /*cacheFileHdrP->magic = CACHE_FILE_MAGIC;
- cacheFileHdrP->index = i;*/
-
- if (fd != 0) close(fd);
- /* Note that if the directory this file is supposed to be in doesn't
- exist, the creat call will fail and we will return an error. */
- /*fd = creat(cacheFileName, S_IRUSR|S_IWUSR);*/
- fd = open(cacheFileName, O_RDWR | O_BINARY | O_CREAT | O_TRUNC,
- S_IRUSR | S_IWUSR);
- if (fd < 0) return CM_ERROR_INVAL; /* couldn't create file */
- rc = write(fd, chunkBuf, cm_diskCacheChunkSize);
- if (rc < 0) /* ran out of space? */
- return CM_ERROR_INVAL;
- close(fd);
-
- /* We consider an invalid chunk as empty, so we put it at tail of LRU */
- memset(dcp, 0, sizeof(cm_diskcache_t));
- dcp->f.accessOrd = 0;
- dcp->f.states = DISK_CACHE_EMPTY;
- dcp->f.index = i;
- dcp->f.chunkBytes = cm_diskCacheChunkSize;
- /*osi_QAdd(diskLRUList, &dcp->lruq);*/
- QAddOrd(&diskLRUList, &dcp->lruq, dcp->f.accessOrd); /* head is LRU */
-
- /* write out cache info modifications */
- lseek(cacheInfo_fd, -sizeof(struct fcache), SEEK_CUR);
- write(cacheInfo_fd, &dcp->f, sizeof(struct fcache));
- }
- } /* for all cache chunks */
-
- free(chunkBuf);
- /*close(cacheInfo_fd);*/
- fprintf(stderr, "\nFound %d of %d valid %d-byte blocks\n", validCount,
- afs_diskCacheChunks, cm_diskCacheChunkSize);
-
- return 0;
-}
-
-/* create empty disk cache files */
-/* assumes tables have already been malloc'd by diskcache_Init */
-int diskcache_New()
-{
- int i;
- int rc;
- int fd;
- int invalid;
- int index;
- /*char cacheInfoPath[256];
- char cacheFileName[256];*/
- char dirName[256];
- char *chunkBuf;
- struct stat cacheInfoStat, chunkStat;
- cm_cacheInfoHdr_t hdr;
- cm_diskcache_t *dcp;
-
- sprintf(cacheInfoPath, "%s\\%s", cm_cachePath, CACHE_INFO_FILE);
- /*cacheInfo_fd = creat(cacheInfoPath, S_IRUSR | S_IWUSR);*/
- cacheInfo_fd = open(cacheInfoPath, O_RDWR | O_BINARY | O_CREAT | O_TRUNC,
- S_IRUSR | S_IWUSR);
- if (cacheInfo_fd < 0)
- {
- complain("diskcache_New: Error creating cache info file in cache directory %s\n",
- cm_cachePath);
- return CM_ERROR_INVAL;
- }
-
- /* write valid header */
- hdr.magic = CACHE_INFO_MAGIC;
- hdr.chunks = afs_diskCacheChunks;
- hdr.chunkSize = cm_diskCacheChunkSize;
- rc = write(cacheInfo_fd, (char *) &hdr, sizeof(cm_cacheInfoHdr_t));
- if (rc < 0)
- return CM_ERROR_INVAL;
-
- chunkBuf = (char *) malloc(cm_diskCacheChunkSize);
- if (chunkBuf == NULL)
- return CM_ERROR_SPACE;
- memset(chunkBuf, 0, cm_diskCacheChunkSize);
-
- for (i = 0; i < afs_diskCacheChunks; i++)
- { /* for all cache chunks */
- if (i % 500 == 0)
- {
- printf("%d...", i);
- fflush(stdout);
- }
-
- dcp = &diskCBBuf[i];
-
- dcp->refCount = 0;
- /* $$$: init mutex mx */
- memset(dcp, 0, sizeof(cm_diskcache_t));
- dcp->f.accessOrd = 0;
- dcp->f.index = i;
- dcp->f.states = DISK_CACHE_EMPTY;
- dcp->f.chunkBytes = cm_diskCacheChunkSize;
- QAddT(&diskLRUList, &dcp->lruq, dcp->f.accessOrd); /* head is LRU */
- rc = write(cacheInfo_fd, &dcp->f, sizeof(struct fcache));
-
- if (i % CACHE_FILES_PER_DIR == 0)
- {
- GEN_CACHE_DIR_NAME(dirName, cm_cachePath, i);
- rc = mkdir(dirName, S_IRUSR | S_IWUSR);
- if (rc < 0 && errno != EEXIST)
- {
- complain("diskcache_New: Couldn't create cache directory %s\n", dirName);
- return CM_ERROR_INVAL;
- }
- }
-
- GEN_CACHE_FILE_NAME(cacheFileName, cm_cachePath, i);
- /*fd = creat(cacheFileName, S_IRUSR | S_IWUSR);*/
- fd = open(cacheFileName, O_RDWR | O_BINARY | O_CREAT | O_TRUNC,
- S_IRUSR | S_IWUSR);
- if (fd < 0)
- {
- if (errno == ENOSPC)
- complain("diskcache_New: Not enough space in cache path to create file %s\n",
- cacheFileName);
- else
- complain("diskcache_New: Couldn't create cache file %s\n", cacheFileName);
- return CM_ERROR_INVAL;
- }
-
- /*fileHdr.magic = CACHE_FILE_MAGIC;
- fileHdr.index = i;
- rc = write(fd, &fileHdr, sizeof(cm_cacheFileHdr_t)); /* maybe we should write
- a full block? */
- /*if (rc == 0)
- {*/
- rc = write(fd, chunkBuf, cm_diskCacheChunkSize);
- /*}*/
-
- if (rc < 0)
- {
- if (errno == ENOSPC)
- complain("diskcache_New: Not enough space in cache path to write to file %s\n",
- cacheFileName);
- else
- complain("diskcache_New: Couldn't write to cache file %s\n",
- cacheFileName);
- return CM_ERROR_INVAL;
- }
-
- close(fd);
- } /* for all cache chunks */
-
- free(chunkBuf);
-
- /*close(cacheInfo_fd);*/
-
- return 0;
-}
-
-/* Get chunk from the cache or allocate a new chunk */
-int diskcache_Get(cm_fid_t *fid, osi_hyper_t *offset, char *buf, int size, int *dataVersion, int *dataCount, cm_diskcache_t **dcpRet)
-{
- cm_diskcache_t *dcp;
- int rc;
- int chunk;
-
-
- if (!cm_diskCacheEnabled)
- {
- *dcpRet = NULL;
- return 0;
- }
-
- chunk = OFFSET_TO_CHUNK(*offset); /* chunk number */
-
- DPRINTF("diskcache_Get: fid/chunk=%08x-%08x-%08x-%08x/%04d\n",
- fid->cell, fid->volume, fid->vnode, fid->unique, chunk);
-
- dcp = diskcache_Find(fid, chunk);
- if (dcp != NULL)
- {
- rc = diskcache_Read(dcp, buf, size);
- *dataVersion = dcp->f.dataVersion; /* update caller's data version */
- if (rc < 0)
- return -1;
- else
- *dataCount = rc;
- }
- else
- {
- dcp = diskcache_Alloc(fid, chunk, *dataVersion);
- if (dcp == NULL)
- return -1;
- }
-
- if (++updates >= CACHE_INFO_UPDATES_PER_WRITE)
- {
- updates = 0;
- diskcache_WriteCacheInfo(dcp); /* update cache info for this slot */
- }
-
- *dcpRet = dcp;
- /*printf("diskcache_Get: returning dcp=%x\n", dcp);*/
- return 0;
-}
-
-
-/* Look for a file chunk in the cache */
-cm_diskcache_t *diskcache_Find(cm_fid_t *fid, int chunk)
-{
- int index;
- cm_diskcache_t *dcp;
- cm_diskcache_t *prev;
-
- index = DCHash(fid, chunk);
- dcp = diskHashTable[index];
- prev = NULL;
-
- while (dcp != NULL)
- {
- if (cm_FidCmp(&dcp->f.fid, fid) == 0 && chunk == dcp->f.chunk)
- {
- dcp->f.accessOrd = accessOrd++;
- /* Move it to the beginning of the list */
- if (diskHashTable[index] != dcp)
- {
- assert(dcp->hash_prev->hash_next == dcp);
- dcp->hash_prev->hash_next = dcp->hash_next;
- if (dcp->hash_next)
- {
- assert(dcp->hash_next->hash_prev == dcp);
- dcp->hash_next->hash_prev = dcp->hash_prev;
- }
- dcp->hash_next = diskHashTable[index];
- dcp->hash_prev = NULL;
- if (diskHashTable[index]) diskHashTable[index]->hash_prev = dcp;
- diskHashTable[index] = dcp;
- }
- break;
- }
- prev = dcp;
- dcp = dcp->hash_next;
- }
-
- if (dcp)
- DPRINTF("diskcache_Find: fid/chunk=%08x-%08x-%08x-%08x/%04d slot=%d hash=%d dcp=%x\n",
- fid->cell, fid->volume, fid->vnode, fid->unique, chunk, dcp->f.index, index, dcp);
- else
- DPRINTF("diskcache_Find: fid/chunk=%08x/%04d not found\n",
- fid->unique, chunk);
-
- return dcp;
-}
-
-int diskcache_Read(cm_diskcache_t *dcp, char *buf, int size)
-{
- char cacheFileName[256];
- int fd;
- int rc;
- int opened = 0;
-
- GEN_CACHE_FILE_NAME(cacheFileName, cm_cachePath, dcp->f.index);
-
- DPRINTF("diskcache_Read: filename=%s dcp=%x\n", cacheFileName,
- dcp);
-
- /* For reads, we will use the fd if already open, but we won't leave
- the file open. Note that if we use async I/O, we will need to
- do locking to prevent someone from closing the file while I/O
- is going on. But for now, all I/O is synchronous, and threads
- are non-preemptible. */
-
- if (dcp->openfd == 0)
- {
- fd = open(cacheFileName, O_RDWR | O_BINARY);
- if (fd < 0)
- {
- complain("diskcache_Read: Couldn't open cache file %s\n", cacheFileName);
- return -1;
- }
- opened = 1;
- }
- else
- fd = dcp->openfd;
-
- if (fd < 0)
- {
- complain("diskcache_Read: Couldn't open cache file %s\n", cacheFileName);
- return -1;
- }
-
- rc = read(fd, buf, size);
- if (rc < 0)
- {
- complain("diskcache_Read: Couldn't read cache file %s\n", cacheFileName);
- close(fd); return -1;
- }
-
- if (opened)
- close(fd); /* close it if we opened it */
- return rc; /* bytes read */
-}
-
-/* Write out buffer to disk */
-int diskcache_Update(cm_diskcache_t *dcp, char *buf, int size, int dataVersion)
-{
- if (!cm_diskCacheEnabled)
- return 0;
-
- DPRINTF("diskcache_Update dcp=%x, dataVersion=%d\n", dcp, dataVersion);
- diskcache_Write(dcp, buf, size);
- /*diskcache_SetMRU(dcp);*/
- dcp->f.dataVersion = dataVersion;
- /*dcp->f.accessOrd = accessOrd++;*/
- /*QMoveToTail(&diskLRUList, &dcp->lruq, dcp->f.accessOrd);*/
-
- if (++updates >= CACHE_INFO_UPDATES_PER_WRITE)
- {
- updates = 0;
- diskcache_WriteCacheInfo(dcp); /* update cache info */
- }
- return 0;
-}
-
-/* Allocate a new chunk file control block for this fid/chunk */
-cm_diskcache_t *diskcache_Alloc(cm_fid_t *fid, int chunk, int dataVersion)
-{
- cm_diskcache_t *dcp;
- QLink* q;
- int index;
- int stole=0, stolen_chunk, stolen_fid_unique;
-
- /* Remove LRU elt. (head) from free list */
- q = QServe(&diskLRUList);
- if (q == NULL)
- dcp = NULL;
- else
- dcp = (cm_diskcache_t *) MEM_TO_OBJ(cm_diskcache_t, lruq, q);
- if (dcp == NULL)
- {
- DPRINTF("diskcache_Alloc: fid/chunk=%08x/%04d allocation failed\n",
- fid->unique, chunk);
- return NULL;
- }
-
- /* Use this element for this fid/chunk */
- if (dcp->f.states == DISK_CACHE_USED)
- {
- /* Remove from old hash chain */
- if (dcp->hash_prev)
- {
- assert(dcp->hash_prev->hash_next == dcp);
- dcp->hash_prev->hash_next = dcp->hash_next;
- }
- else
- {
- index = DCHash(&dcp->f.fid, dcp->f.chunk);
- diskHashTable[index] = dcp->hash_next;
- }
- if (dcp->hash_next)
- {
- assert(dcp->hash_next->hash_prev == dcp);
- dcp->hash_next->hash_prev = dcp->hash_prev;
- }
-
- stole = 1;
- stolen_chunk = dcp->f.chunk;
- stolen_fid_unique = dcp->f.fid.unique;
- }
-
- memcpy(&dcp->f.fid, fid, sizeof(cm_fid_t));
- dcp->f.chunk = chunk;
- dcp->f.dataVersion = dataVersion;
- dcp->f.accessOrd = accessOrd++;
- dcp->f.states = DISK_CACHE_USED;
-
- /* allocate at head of new hash chain */
- index = DCHash(fid, chunk);
- /*osi_QAddH(&diskHashTable[index], &dcp->hashq);*/
- dcp->hash_next = diskHashTable[index];
- dcp->hash_prev = NULL;
- if (diskHashTable[index]) diskHashTable[index]->hash_prev = dcp;
- diskHashTable[index] = dcp;
-
- /* put at tail of queue */
- QAddT(&diskLRUList, &dcp->lruq, dcp->f.accessOrd);
-
- if (stole)
- DPRINTF("diskcache_Alloc: fid/chunk=%08x/%04d (recyc fid/chunk=%08x/%04d) "
- "slot=%d hash=%d dcp=%x\n",
- fid->unique, chunk, stolen_fid_unique, stolen_chunk,
- dcp->f.index, index, dcp);
- else
- DPRINTF("diskcache_Alloc: fid/chunk=%08x/%04d slot=%d hash=%d dcp=%x\n",
- fid->unique, chunk, dcp->f.index, index, dcp);
- return dcp;
-}
-
-/* Write this chunk to its disk file */
-int diskcache_Write(cm_diskcache_t *dcp, /*int bufferNum,*/ char *buf, int size)
-{
- char cacheFileName[256];
- int fd;
- int rc;
- int opened = 0;
- QLink *q;
-
- /*return 0;*/
-
- DPRINTF("diskcache_Write\n");
-
- /* write bytes of buf into chunk file */
- GEN_CACHE_FILE_NAME(cacheFileName, cm_cachePath, dcp->f.index);
- if (dcp->openfd == 0)
- {
- dcp->openfd = open(cacheFileName, O_RDWR | O_BINARY);
- if (dcp->openfd < 0)
- {
- dcp->openfd = 0;
- complain("diskcache_Write: Couldn't open cache file %s\n", cacheFileName);
- return -1;
- }
- opened = 1;
- }
-
- /*lseek(dcp->openfd, bufferNum * buf_blockSize, SEEK_SET);*/
- /* only write size bytes */
- rc = write(dcp->openfd, buf, size);
- if (rc < 0)
- {
- complain("diskcache_Write: Couldn't write cache file %s\n", cacheFileName);
- close(dcp->openfd); dcp->openfd = 0; return rc;
- }
-
- if (opened)
- {
- /* add to open file list */
- QAddT(&openFileList, &dcp->openq, 0);
- openCacheFiles++;
- }
- else
- QMoveToTail(&openFileList, &dcp->openq, 0);
-
- if (openCacheFiles >= MAX_OPEN_FILES)
- {
- /* close longest-open file */
- q = QServe(&openFileList);
- dcp = (cm_diskcache_t *) MEM_TO_OBJ(cm_diskcache_t, openq, q);
- assert(dcp != NULL);
- if (dcp->openfd > 0)
- close(dcp->openfd);
- dcp->openfd = 0;
- openCacheFiles--;
- }
-
- return 0;
-}
-
-/* we accessed this chunk (hit on buffer read), so move to MRU */
-void diskcache_Touch(cm_diskcache_t *dcp)
-{
- if (!cm_diskCacheEnabled || !dcp) return;
- dcp->f.accessOrd = accessOrd++;
- QMoveToTail(&diskLRUList, &dcp->lruq, dcp->f.accessOrd); /* tail is MRU */
-}
-
-/* invalidate this disk cache entry */
-int diskcache_Invalidate(cm_diskcache_t *dcp)
-{
- /* We consider an invalid chunk as empty, so we put it at tail of LRU */
- QRemove(&diskLRUList, &dcp->lruq);
-
- dcp->f.accessOrd = 0;
- dcp->f.states = DISK_CACHE_EMPTY;
- dcp->f.chunk = 0;
- memset(&dcp->f.fid, sizeof(cm_fid_t));
- /*osi_QAdd(diskLRUList, &dcp->lruq);*/
- QAddH(&diskLRUList, &dcp->lruq, dcp->f.accessOrd); /* head is LRU */
-}
-
-void diskcache_WriteCacheInfo(cm_diskcache_t *dcp)
-{
- /*char cacheInfoPath[256];
- int cacheInfo_fd;*/
- int rc;
-
- /*return; /* skip this for perf. testing */
- /*sprintf(cacheInfoPath, "%s\\%s", cm_cachePath, CACHE_INFO_FILE);
- cacheInfo_fd = open(cacheInfoPath, O_RDWR);*/
-
- DPRINTF("diskcache_WriteCacheInfo\n");
-
- lseek(cacheInfo_fd, dcp->f.index * sizeof(struct fcache) +
- sizeof(cm_cacheInfoHdr_t), SEEK_SET);
-
- rc = write(cacheInfo_fd, &dcp->f, sizeof(struct fcache));
- if (rc < 0)
- complain("diskcache_WriteCacheInfo: Couldn't write cache info file, error=%d\n", errno);
- /*fsync(cacheInfo_fd);*/
-
- /*close(cacheInfo_fd);*/
-}
-
-void diskcache_Shutdown()
-{
- cm_diskcache_t *dcp;
- QLink *q;
-
- /* close cache info file */
- close (cacheInfo_fd);
-
- /* close all open cache files */
- q = QServe(&openFileList);
- while (q)
- {
- dcp = (cm_diskcache_t *) MEM_TO_OBJ(cm_diskcache_t, openq, q);
- if (dcp->openfd)
- close(dcp->openfd);
- q = QServe(&openFileList);
- }
-}
-
-#endif /* DISKCACHE95 */
+++ /dev/null
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-#ifndef CM_DISKCACHE_H
-#define CM_DISKCACHE_H
-
-#include "queue95.h"
-
-#define DCHash(v, c) ((((v)->vnode + (v)->volume + (c))) & (afs_dhashsize-1))
-
-#define CACHE_INFO_FILE "cacheInfo"
-
-#define CACHE_INFO_MAGIC 0x34564321
-#define CACHE_FILE_MAGIC 0x78931230
-#define CACHE_FILES_PER_DIR 1000
-#define CACHE_INFO_UPDATES_PER_WRITE 1
-
-#define DPRINTF if (0) printf
-
-/* kept on disk and in dcache entries */
-struct fcache {
- cm_fid_t fid; /* Fid for this file */
- int32 modTime; /* last time this entry was modified */
- /*afs_hyper_t versionNo; /* Associated data version number */
- int dataVersion;
- int chunk; /* Relative chunk number */
- int chunkBytes; /* Num bytes in this chunk */
- char states; /* Has this chunk been modified? */
- int accessOrd; /* change to 64 bit later */
-#define DISK_CACHE_EMPTY 0
-#define DISK_CACHE_USED 1
- int index; /* absolute chunk number */
- int checksum;
- /*char pad[464]; /* pad up to 512 bytes */
-};
-
-/* in-memory chunk file control block */
-typedef struct cm_diskcache {
- struct fcache f;
-
- /*osi_queue_t lruq;
- osi_queue_t hashq;*/
- QLink lruq;
- QLink openq;
- int openfd; /* open file descriptor */
- struct cm_diskcache *hash_next;
- struct cm_diskcache *hash_prev;
- unsigned long refCount;
- osi_mutex_t mx;
-} cm_diskcache_t;
-
-typedef struct cm_cacheInfoHdr {
- int magic;
- int chunks; /* total chunks in cache */
- int chunkSize;
- char pad[500]; /* pad up to 512 bytes */
-} cm_cacheInfoHdr_t;
-
-typedef struct cm_cacheFileHdr {
- int magic;
- int index;
-} cm_cacheFileHdr_t;
-
-/* external functions */
-
-/* Initialize the disk cache */
-int diskcache_Init();
-/* Get chunk from the cache or allocate a new chunk */
-int diskcache_Get(cm_fid_t *fid, osi_hyper_t *offset, char *buf, int size, int *dataVersion, int *dataCount, cm_diskcache_t **dcpRet);
-/* Write out buffer to disk */
-int diskcache_Update(cm_diskcache_t *dcp, char *buf, int size, int dataVersion);
-/* we accessed this chunk, so move to MRU */
-void diskcache_Touch(cm_diskcache_t *dcp);
-
-#endif /* CM_DISKCACHE_H */
+++ /dev/null
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-#ifndef __CM_RPC_H__
-#define __CM_RPC_H__
-
-/* Copied from declaration of GUID in RPCDCE.H */
-typedef struct afs_uuid {
- unsigned long Data1;
- unsigned short Data2;
- unsigned short Data3;
- unsigned char Data4[8];
-} afs_uuid_t;
-
-long AFSRPC_SetToken(
- afs_uuid_t uuid,
- unsigned char sessionKey[8]
-);
-
-long AFSRPC_GetToken(
- afs_uuid_t uuid,
- unsigned char sessionKey[8]
-);
-
-#endif /* __CM_RPC_H__ */
+++ /dev/null
-#ifndef DOSDEFS_H
-#define DOSDEFS_H
-
-/* dos_ptr is the phys. addr. accepted by farpeek/farpoke functions, i.e.,
- dos_ptr = segment * 16 + offset */
-#define dos_ptr unsigned long
-
-/* get/set structure member of a struct in DOS memory */
-#define get_dos_member_b(T, ptr, memb) _farpeekb(_dos_ds, (ptr) + (dos_ptr)&(((T*)0)->memb))
-#define get_dos_member_w(T, ptr, memb) _farpeekw(_dos_ds, (ptr) + (dos_ptr)&(((T*)0)->memb))
-#define get_dos_member_l(T, ptr, memb) _farpeekl(_dos_ds, (ptr) + (dos_ptr)&(((T*)0)->memb))
-
-#define set_dos_member_b(T, ptr, memb, val) \
- _farpokeb(_dos_ds, (ptr) + (dos_ptr)&(((T*)0)->memb), val)
-#define set_dos_member_w(T, ptr, memb, val) \
- _farpokew(_dos_ds, (ptr) + (dos_ptr)&(((T*)0)->memb), val)
-#define set_dos_member_l(T, ptr, memb, val) \
- _farpokel(_dos_ds, (ptr) + (dos_ptr)&(((T*)0)->memb), val)
-
-typedef struct _filetime
-{
- unsigned int dwLowDateTime;
- unsigned int dwHighDateTime;
-} FILETIME;
-
-#define FILE_ACTION_ADDED 0x00000001
-#define FILE_ACTION_REMOVED 0x00000002
-#define FILE_ACTION_MODIFIED 0x00000003
-#define FILE_ACTION_RENAMED_OLD_NAME 0x00000004
-#define FILE_ACTION_RENAMED_NEW_NAME 0x00000005
-
-#define FILE_NOTIFY_CHANGE_FILE_NAME 0x00000001
-#define FILE_NOTIFY_CHANGE_DIR_NAME 0x00000002
-#define FILE_NOTIFY_CHANGE_ATTRIBUTES 0x00000004
-#define FILE_NOTIFY_CHANGE_SIZE 0x00000008
-#define FILE_NOTIFY_CHANGE_LAST_WRITE 0x00000010
-#define FILE_NOTIFY_CHANGE_LAST_ACCESS 0x00000020
-#define FILE_NOTIFY_CHANGE_CREATION 0x00000040
-#define FILE_NOTIFY_CHANGE_SECURITY 0x00000100
-
-#define ULONG unsigned long
-#define USHORT unsigned short
-#define WCHAR wchar_t
-
-#define GetTickCount gettime_ms
-#define GetCurrentTime gettime_ms
-
-#define lstrcpy strcpy
-#define strcmpi stricmp
-#define lstrlen strlen
-#define _stricmp stricmp
-#define _strlwr strlwr
-#define _strupr strupr
-
-#endif
+++ /dev/null
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/* functions for DJGPP to write to DOS memory or duplicate Win32 functions. */
-
-#include <stdio.h>
-#include <sys/farptr.h>
-#include <go32.h>
-#include <sys/time.h>
-#include "dosdefs95.h"
-
-#define MIN(a, b) ((a) < (b) ? (a) : (b))
-
-dos_memset(dos_ptr offset, int val, int size)
-{
- int i;
-
- for (i = 0; i < size; i++)
- {
- _farpokeb(_dos_ds, offset++, val);
- }
-}
-
-char *dos_strcpy_get(char *str, unsigned int offset)
-{
- register char a;
-
- while ((a = _farpeekb(_dos_ds, offset++)) != 0)
- *str++ = a;
- *str = 0;
-
- return str;
-}
-
-char *dos_strncpy_get(char *str, unsigned int offset, int len)
-{
- register char a;
- register int n=0;
-
- while ((a = _farpeekb(_dos_ds, offset++)) != 0 && n++ < len)
- *str++ = a;
- *str = 0;
-
- return str;
-}
-
-dos_ptr dos_strcpy_put(dos_ptr offset, char *str)
-{
- char a;
-
- while ((a = *str++) != 0)
- _farpokeb(_dos_ds, offset++, a);
- _farpokeb(_dos_ds, offset, 0);
-
- return offset;
-}
-
-dos_ptr dos_strncpy_put(dos_ptr offset, char *str, int len)
-{
- register char a;
- register int n=0;
-
- while ((a = *str++) != 0 && n++ < len)
- _farpokeb(_dos_ds, offset++, a);
- _farpokeb(_dos_ds, offset, 0);
-
- return offset;
-}
-
-dos_ptr dos_strrchr(dos_ptr offset, char c)
-{
- dos_ptr temp = 0;
- char a;
-
- while ((a = _farpeekb(_dos_ds, offset++)) != 0)
- {
- if (a == c) temp = offset-1;
- }
-
- return temp;
-}
-
-int dos_strcmp(unsigned char *str, dos_ptr offset)
-{
- register unsigned char a, b;
-
- while (((a = *str++) == (b = _farpeekb(_dos_ds, offset++))) && a && b);
- return a-b;
-}
-
-int dos_strncmp(unsigned char *str, dos_ptr offset, int len)
-{
- register unsigned char a, b;
- register int i=0;
-
- while (i++ < len && ((a = *str++) == (b = _farpeekb(_dos_ds, offset++))) && a && b);
- return a-b;
-}
-
-int dos_strlen(dos_ptr offset)
-{
- int len=0;
-
- while (_farpeekb(_dos_ds, offset++))
- len++;
-
- return len;
-}
-
-
-int sub_time(struct timeval a, struct timeval b)
-{
- int n = a.tv_sec - b.tv_sec;
- n *= 1000000;
- n += a.tv_usec - b.tv_usec;
- return n / 1000;
-}
-
-int tm_to_ms(struct timeval t)
-{
- int n = t.tv_sec * 1000;
- n += t.tv_usec / 1000;
- return n;
-}
-
-int gettime_ms()
-{
- struct timeval t;
- int n = t.tv_sec * 1000;
-
- gettimeofday(&t, NULL);
- n += t.tv_usec / 1000;
- return n;
-}
-
-int gettime_us()
-{
- struct timeval t;
- int n;
-
- gettimeofday(&t, NULL);
- n = t.tv_sec * 1000000;
- n += t.tv_usec;
- return n;
-}
-
-int GetPrivateProfileString(char *sect, char *key, char *def,
- char *buf, int len, char *file)
-{
- char s[256];
- char skey[128];
- int nchars=0;
- int amt;
- int offset;
- char sectstr[256];
- char *p;
- FILE *f = fopen(file, "r");
- if (!f) return 0;
-
- sprintf(sectstr, "[%s]", sect);
- while (1)
- {
- fgets(s, 256, f);
- if (feof(f)) break;
-
- /* look for section names */
- if (s[0] != '[')
- continue;
-
- /* if sect is NULL, copy all section names */
- if (!sect)
- {
- amt = MIN(strlen(s)+1, len-1);
- strncpy(buf, s, amt-1);
- buf[amt] = 0;
- len -= amt;
- buf += amt;
- nchars += amt;
- continue;
- }
-
- /* continue if non-matching section name */
- if (sect && strnicmp(s+1, sect, strlen(sect)) != 0)
- continue;
-
- /* else we have the correct section */
-
- while (len > 0)
- {
- fgets(s, 256, f);
- if (feof(f)) break;
-
- /* get the key part */
- strcpy(skey, s);
- p = strrchr(skey, '=');
- if (!p) { fclose(f); return 0; }
- *p = 0;
-
- /* continue if key doesn't match */
- if (key && stricmp(skey, key) != 0)
- continue;
-
- /* if NULL key, copy key names */
- if (!key)
- {
- amt = MIN(strlen(skey)+1, len-2);
- strncpy(buf, skey, amt);
- buf[amt] = 0;
- buf[amt+1] = 0; /* final trailing NULL */
- len -= amt;
- buf += amt;
- nchars += amt;
- continue;
- }
-
- /* discard key= and newline */
- offset = strlen(key) + 1;
- amt = MIN(strlen(s+offset)-1, len-1);
- strncpy(buf, s+offset, amt);
- buf[amt] = 0;
- len -= amt;
- buf += amt;
- nchars += amt;
- }
- }
-
- if (nchars == 0)
- {
- if (def)
- {
- strcpy(buf, def);
- nchars = strlen(def);
- }
- }
-
- fclose(f);
- return nchars;
-}
-
-int WritePrivateProfileString(char *sect, char *key, char *str, char *file)
-{
- char tmpfile[256], s[256], sectstr[256];
- int found = 0;
- char *p;
- FILE *fr = fopen(file, "r");
- FILE *fw = fopen(tmpfile, "w");
-
- strcpy(tmpfile, file);
- p = strrchr(tmpfile, '.');
- *p = 0;
- strcat(tmpfile, ".tmp"); /* change extension to .tmp */
-
- sprintf(sectstr, "[%s]", sect);
- while (1)
- {
- fgets(s, 256, fr);
- if (feof(fr)) break;
-
- fputs(s, fw);
-
- /* look for section names */
- if (found || s[0] != '[')
- {
- continue;
- }
-
- if (stricmp(s, sectstr) == 0)
- {
- /* found section, print new item */
- found = 1;
- strcpy(s, key);
- strcat(s, "=");
- strcat(s, str);
- strcat(s, "\n");
- fputs(s, fw);
- }
- }
- fclose(fw);
- fclose(fr);
-
- /* delete old file */
- remove(file);
-
- /* rename .tmp */
- rename(tmpfile, file);
-
- return found;
-}
+++ /dev/null
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/* Large integer support for DJGPP */
-
-#include <stdlib.h>
-#include "largeint95.h"
-
-LARGE_INTEGER LargeIntegerAdd(LARGE_INTEGER a, LARGE_INTEGER b)
-{
- LARGE_INTEGER c;
- long long *c1 = (long long *) &c;
- long long *a1 = (long long *) &a;
- long long *b1 = (long long *) &b;
- *c1 = *a1 + *b1;
- return c;
-}
-
-LARGE_INTEGER LargeIntegerSubtract(LARGE_INTEGER a, LARGE_INTEGER b)
-{
- LARGE_INTEGER c;
- long long *c1 = (long long *) &c;
- long long *a1 = (long long *) &a;
- long long *b1 = (long long *) &b;
- *c1 = *a1 - *b1;
- return c;
-}
-
-LARGE_INTEGER ConvertLongToLargeInteger(unsigned long a)
-{
- LARGE_INTEGER n;
-
- n.LowPart = a;
- n.HighPart = 0;
- return n;
-}
-
-LARGE_INTEGER LargeIntegerMultiplyLongByLong(unsigned long a, unsigned long b)
-{
- LARGE_INTEGER c;
- long long *c1 = (long long *) &c;
-
- *c1 = (long long) a * (long long) b;
- return c;
-}
-
-LARGE_INTEGER LargeIntegerMultiplyByLong(LARGE_INTEGER a, unsigned long b)
-{
- LARGE_INTEGER c;
- long long *c1 = (long long *) &c;
- long long *a1 = (long long *) &a;
-
- *c1 = *a1 * (long long) b;
- return c;
-}
-
-unsigned long LargeIntegerDivideByLong(LARGE_INTEGER a, unsigned long b)
-{
- lldiv_t q;
- long long *a1 = (long long *) &a;
-
- q = lldiv(*a1, (long long) b);
- return (unsigned long) q.quot;
-}
-
-#if 0
-LARGE_INTEGER LargeIntegerAdd(LARGE_INTEGER a, LARGE_INTEGER b)
-{
- LARGE_INTEGER c;
-
- c.LowPart = a.LowPart + b.LowPart;
- c.HighPart = a.HighPart + b.HighPart;
-
- /* not sure how to do a real carry */
- if (c.LowPart < a.LowPart)
- c.HighPart++;
-
- return c;
-}
-
-LARGE_INTEGER LargeIntegerSubtract(LARGE_INTEGER a, LARGE_INTEGER b)
-{
- LARGE_INTEGER c;
-
- c.LowPart = a.LowPart - b.LowPart;
- c.HighPart = a.HighPart - b.HighPart;
-
- /* borrow */
- if (c.LowPart > a.LowPart)
- c.HighPart--;
-
- return c;
-}
-
-__inline__ unsigned long mult32(unsigned long a, unsigned long b,
- unsigned long *ov)
-{
- unsigned long p, o;
-
- /* multiply low part and save the overflow bits */
- __asm__ __volatile__ ("movl %2, %%eax\n
- mull %3, %%eax\n
- movl %%eax, %0\n
- movl %%edx, %1"
- : "=g" (p), "=g" (o)
- : "g" (a), "g" (b)
- : "ax", "dx", "memory"
- );
- *ov = o;
- return p;
-}
-
-__inline__ unsigned long div32(unsigned long a, unsigned long b,
- unsigned long *rem)
-{
- unsigned long q, r;
-
- /* multiply low part and save the overflow bits */
- __asm__ __volatile__ ("movl %2, %%eax\n
- divl %3, %%eax\n
- movl %%eax, %0\n
- movl %%edx, %1"
- : "=g" (q), "=g" (r)
- : "g" (a), "g" (b)
- : "ax", "dx", "memory"
- );
- *rem = r;
- return q;
-}
-
-LARGE_INTEGER LargeIntegerMultiplyLongByLong(unsigned long a, unsigned long b)
-{
- LARGE_INTEGER prod;
-
- prod.LowPart = mult32(a, b, &prod.HighPart);
- return prod;
-}
-
-LARGE_INTEGER LargeIntegerMultiplyByLong(LARGE_INTEGER a, unsigned long b)
-{
- LARGE_INTEGER prod;
- unsigned long x, prodl, prodh, ovl, ovh;
-
- /* multiply low part and save the overflow bits */
- prod.LowPart = mult32(a.LowPart, b, &ovl);
-
- /* multiply high part */
- prod.HighPart = mult32(a.HighPart, b, &ovh);
-
- /* add overflow from low part */
- prod.HighPart += ovl;
-
- return prod;
-}
-
-unsigned long LargeIntegerDivideByLong(LARGE_INTEGER a, unsigned long b, unsigned long *rem)
-{
- unsigned long n, r, q;
- LARGE_INTEGER t;
-
- if (b == 0) { return 0; }
- if (b == 1) { *rem = 0; return a.LowPart; }
-
- n = div32(a.LowPart, b, &r);
- if (a.HighPart == 0)
- {
- *rem = r;
- return n;
- }
- else
- {
- q = div32(0xffffffff-b+1, b, &r);
- q++;
- n += q * a.HighPart;
- n += LargeIntegerDivideByLong(LargeIntegerMultiplyLongByLong(r, a.HighPart), b, rem);
- return n;
- }
-}
-#endif
-
-#if 0
-int LargeIntegerGreaterThan(LARGE_INTEGER a, LARGE_INTEGER b)
-{
- if (a.HighPart > b.HighPart) return 1;
- else if (a.HighPart == b.HighPart && a.LowPart > b.LowPart) return 1;
- else return 0;
-}
-
-int LargeIntegerGreaterThanOrEqualTo(LARGE_INTEGER a, LARGE_INTEGER b)
-{
- if (a.HighPart > b.HighPart) return 1;
- else if (a.HighPart == b.HighPart && a.LowPart >= b.LowPart) return 1;
- else return 0;
-}
-
-int LargeIntegerEqualTo(LARGE_INTEGER a, LARGE_INTEGER b)
-{
- if (a.HighPart == b.HighPart && a.LowPart == b.LowPart) return 1;
- else return 0;
-}
-
-int LargeIntegerGreaterOrEqualToZero(LARGE_INTEGER a)
-{
- return ((a.HighPart & 0x8fffffff) ? 0 : 1);
-}
-
-int LargeIntegerLessThanZero(LARGE_INTEGER a)
-{
- return ((a.HighPart & 0x8fffffff) ? 1 : 0);
-}
-#endif
+++ /dev/null
-#ifndef LARGEINT_H
-#define LARGEINT_H
-
-typedef struct {
- unsigned long LowPart;
- unsigned long HighPart;
-} LARGE_INTEGER;
-
-LARGE_INTEGER LargeIntegerAdd(LARGE_INTEGER a, LARGE_INTEGER b);
-LARGE_INTEGER LargeIntegerSubtract(LARGE_INTEGER a, LARGE_INTEGER b);
-/*int LargeIntegerGreaterThan(LARGE_INTEGER a, LARGE_INTEGER b);
-int LargeIntegerGreaterThanOrEqualTo(LARGE_INTEGER a, LARGE_INTEGER b);
-int LargeIntegerEqualTo(LARGE_INTEGER a, LARGE_INTEGER b);
-int LargeIntegerGreaterOrEqualToZero(LARGE_INTEGER a);
-int LargeIntegerLessThanZero(LARGE_INTEGER a);*/
-LARGE_INTEGER ConvertLongToLargeInteger(unsigned long a);
-LARGE_INTEGER LargeIntegerMultiplyByLong(LARGE_INTEGER a, unsigned long b);
-unsigned long LargeIntegerDivideByLong(LARGE_INTEGER a, unsigned long b);
-
-#define LargeIntegerGreaterThan(a, b) \
- ((a).HighPart > (b).HighPart || \
- ((a).HighPart == (b).HighPart && (a).LowPart > (b).LowPart))
-
-#define LargeIntegerGreaterThanOrEqualTo(a, b) \
- ((a).HighPart > (b).HighPart || \
- ((a).HighPart == (b).HighPart && (a).LowPart >= (b).LowPart))
-
-#define LargeIntegerLessThan(a, b) \
- ((a).HighPart < (b).HighPart || \
- ((a).HighPart == (b).HighPart && (a).LowPart < (b).LowPart))
-
-#define LargeIntegerLessThanOrEqualTo(a, b) \
- ((a).HighPart < (b).HighPart || \
- ((a).HighPart == (b).HighPart && (a).LowPart <= (b).LowPart))
-
-#define LargeIntegerEqualTo(a, b) \
- ((a).HighPart == (b).HighPart && (a).LowPart == (b).LowPart)
-
-#define LargeIntegerGreaterOrEqualToZero(a) ((a).HighPart >= 0)
-
-#define LargeIntegerLessThanZero(a) ((a).HighPart < 0)
-
-#define LargeIntegerNotEqualToZero(a) ((a).HighPart || (a).LowPart)
-
-#endif
+++ /dev/null
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/* Netbios function for DJGPP: calls interrupt 5Ch for Netbios function.
- NCB and buffer space must be in DOS memory (below 1MB). */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <dpmi.h>
-#include <go32.h>
-#include "dosdefs95.h"
-#include "netbios95.h"
-
-extern int handler_seg, handler_off;
-
-int Netbios(NCB *Ncb, dos_ptr dos_ncb)
-{
- __dpmi_regs regs;
- int asynch = 1;
- dos_ptr oldncb_buffer;
-
-#if 1
- if (Ncb->ncb_command == NCBRESET ||
- Ncb->ncb_command == NCBCANCEL ||
- Ncb->ncb_command == NCBUNLINK ||
- Ncb->ncb_command == NCBADDNAME ||
- Ncb->ncb_command == NCBENUM ||
- Ncb->ncb_command == NCBDELNAME) /* temp */
- asynch = 0;
-#else
- if (1)
- asynch = 0;
-#endif
- else
- /* set to asynchronous */
- Ncb->ncb_command |= ASYNCH;
-
- /* adjust ncb_buffer pointer to be a segment:zero-offset pointer
- for __dpmi_int */
- oldncb_buffer = Ncb->ncb_buffer;
- Ncb->ncb_buffer = Ncb->ncb_buffer << 12;
-
- /*if (asynch)
- Ncb->ncb_post = (handler_seg << 16) | handler_off;*/
-
- /* copy to DOS space */
- dosmemput(Ncb, sizeof(NCB), dos_ncb);
-
- /* set address of NCB in registers */
- memset(®s, 0, sizeof(regs));
- regs.d.ebx = 0;
- regs.x.ds = regs.x.es = dos_ncb/16;
-
- __dpmi_int(0x5c,®s);
- /*dosmemget(__tb, sizeof(NCB), Ncb);*/
-
- if (asynch)
- IOMGR_NCBSelect(Ncb, dos_ncb, NULL);
-
- /* undo the change to ncb_buffer */
- Ncb->ncb_buffer = oldncb_buffer;
-
- return regs.x.ax;
-}
-
+++ /dev/null
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-#ifndef NETBIOS_H
-#define NETBIOS_H
-
-#define BYTE char
-#define WORD short
-
-#define NCBNAMSZ 16 /* absolute length of a net name */
-#define MAX_LANA 254 /* lana's in range 0 to MAX_LANA inclusive */
-
-#define MAX_COMPUTERNAME_LENGTH 15
-
-
-#define UCHAR unsigned char
-#define PUCHAR unsigned char *
-#define WORD short
-
-#include "osithrd95.h"
-
-typedef struct _NCB {
- UCHAR ncb_command;
- UCHAR ncb_retcode;
- UCHAR ncb_lsn;
- UCHAR ncb_num;
- unsigned int ncb_buffer;
- WORD ncb_length;
- UCHAR ncb_callname[NCBNAMSZ];
- UCHAR ncb_name[NCBNAMSZ];
- UCHAR ncb_rto;
- UCHAR ncb_sto;
- int (*ncb_post)();
- UCHAR ncb_lana_num;
- UCHAR ncb_cmd_cplt;
- UCHAR ncb_reserve[10];
- UCHAR ncb_reserve2[4];
- EVENT_HANDLE ncb_event;
-} NCB, *PNCB;
-
-/* this struct is returned by NCBENUM command in Win32 but is not available
- in DJGPP. */
-typedef struct {
- int length;
- int lana[8];
-} LANA_ENUM;
-
-
-#define NCBCALL 0x10
-#define NCBLISTEN 0x11
-#define NCBHANGUP 0x12
-#define NCBSEND 0x14
-#define NCBRECV 0x15
-#define NCBRECVANY 0x16
-#define NCBCHAINSEND 0x17
-#define NCBDGSEND 0x20
-#define NCBDGRECV 0x21
-#define NCBDGSENDBC 0x22
-#define NCBDGRECVBC 0x23
-#define NCBADDNAME 0x30
-#define NCBDELNAME 0x31
-#define NCBRESET 0x32
-#define NCBASTAT 0x33
-#define NCBSSTAT 0x34
-#define NCBCANCEL 0x35
-#define NCBADDGRNAME 0x36
-#define NCBENUM 0x37
-#define NCBUNLINK 0x70
-#define NCBSENDNA 0x71
-#define NCBCHAINSENDNA 0x72
-#define NCBLANSTALERT 0x73
-#define NCBACTION 0x77
-#define NCBFINDNAME 0x78
-#define NCBTRACE 0x79
-#define ASYNCH 0x80
-
-
-#define NRC_GOODRET 0x00
-#define NRC_BUFLEN 0x01
-#define NRC_ILLCMD 0x03
-#define NRC_CMDTMO 0x05
-#define NRC_INCOMP 0x06
-#define NRC_BADDR 0x07
-#define NRC_SNUMOUT 0x08
-#define NRC_NORES 0x09
-#define NRC_SCLOSED 0x0a
-#define NRC_CMDCAN 0x0b
-#define NRC_DUPNAME 0x0d
-#define NRC_NAMTFUL 0x0e
-#define NRC_ACTSES 0x0f
-#define NRC_LOCTFUL 0x11
-#define NRC_REMTFUL 0x12
-#define NRC_ILLNN 0x13
-#define NRC_NOCALL 0x14
-#define NRC_NOWILD 0x15
-#define NRC_INUSE 0x16
-#define NRC_NAMERR 0x17
-#define NRC_SABORT 0x18
-#define NRC_NAMCONF 0x19
-#define NRC_IFBUSY 0x21
-#define NRC_TOOMANY 0x22
-#define NRC_BRIDGE 0x23
-#define NRC_CANOCCR 0x24
-#define NRC_CANCEL 0x26
-#define NRC_DUPENV 0x30
-#define NRC_ENVNOTDEF 0x34
-#define NRC_OSRESNOTAV 0x35
-#define NRC_MAXAPPS 0x36
-#define NRC_NOSAPS 0x37
-#define NRC_NORESOURCES 0x38
-#define NRC_INVADDRESS 0x39
-#define NRC_INVDDID 0x3B
-#define NRC_LOCKFAIL 0x3C
-#define NRC_OPENERR 0x3f
-#define NRC_SYSTEM 0x40
-#define NRC_PENDING 0xff
-
-#endif /* NETBIOS_H */
+++ /dev/null
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/* queue.c
- *
- * Generic queue for use with Windows 95/DJGPP disk cache
- *
- ************************************************************************/
-
-#ifdef DISKCACHE95
-
-#define NULL 0
-#include "queue95.h"
-#include <stdio.h>
-
-void QInit(Queue *queue)
-{
- queue->head = NULL;
- queue->tail = NULL;
- queue->currpos = NULL;
-}
-
-void QAddT(Queue *queue, QLink* node, int ord)
-{
- /*QLink* node = new QLink;*/
-
- /*node->item = x;*/
- node->ord = ord;
- node->next = NULL;
- node->prev = NULL;
- if (!queue->tail)
- queue->head = queue->tail = node;
- else {
- queue->tail->next = node;
- queue->tail = node;
- node->prev = queue->tail;
- }
- queue->size++;
-}
-
-void QAddH(Queue *queue, QLink *node, int ord)
-{
- node->ord = ord;
- node->next = NULL;
- node->prev = NULL;
- if (!queue->head)
- queue->head = queue->tail = node;
- else {
- node->next = queue->head;
- queue->head->prev = node;
- queue->head = node;
- }
- queue->size++;
-}
-
-void QAddOrd(Queue *queue, QLink *node, int ord)
-{
- /*QLink<T>* node = new QLink<T>;*/
- QLink* p, *prev;
-
- node->ord = ord;
- node->next = NULL;
- node->prev = NULL;
- if (!queue->tail)
- queue->head = queue->tail = node;
- else {
- p = queue->head;
- while (p && ord >= p->ord) { /* add towards tail end if equals found */
- prev = p;
- p = p->next;
- }
- if (p == queue->head) {
- QAddH(queue, node, ord);
- }
- else if (p == NULL) {
- QAddT(queue, node, ord);
- }
- else {
- node->next = p;
- node->prev = prev;
- prev->next = node;
- }
- }
- queue->size++;
-}
-
-QLink* QServe(Queue *queue)
-{
- QLink *n = queue->head;
-
- if (!queue->head) return NULL;
- if (queue->head == queue->tail)
- queue->head = queue->tail = NULL;
- else
- queue->head = n->next;
- queue->size--;
- return n;
-}
-
-void QMoveToTail(Queue *queue, QLink *n, int ord)
-{
- QRemove(queue, n);
- QAddT(queue, n, ord);
-}
-
-void QRemove(Queue *queue, QLink *n)
-{
- /*QLink* n2 = NULL;*/
-
- if (!queue->head) return;
- /*while(n && n != x) {
- n2 = n;
- n = n->next;
- }*/
- if (n == queue->currpos) {
- if (n == queue->head) queue->currpos = n->next;
- if (n == queue->tail) queue->currpos = n->prev;
- if (n->prev) queue->currpos = n->prev;
- }
-
- if (n->prev)
- {
- /*assert(n->prev->next == n);*/
- n->prev->next = n->next;
- }
- else
- queue->head = n->next;
-
- if (n->next)
- {
- /*assert(n->next->prev == n);*/
- n->next->prev = n->prev;
- }
- else
- queue->tail = n->prev;
-
- queue->size--;
-}
-
-QLink *QCurrent(Queue *queue)
-{
- /*if (currpos) return currpos->item;
- else return NULL;*/
- return queue->currpos;
-}
-
-void QIterate(Queue *queue)
-{
- QLink* node;
-
- node = queue->head;
- while (node) {
- printf("node=%x, ord=%f\n", node, node->ord);
- node = node->next;
- }
- fflush(stdout);
-}
-
-#endif /* DISKCACHE95 */
+++ /dev/null
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/* queue.h
- *
- * Class declaration for generic queue for use with Windows 95/DJGPP client
- * disk cache
- *
- ***************************************************************************/
-
-#ifndef _QUEUE_H
-#define _QUEUE_H
-
-/* offset of member m in struct T */
-#define OFFSETOF(T, m) ((USHORT) &(((T *) NULL)->m))
-
-/* get pointer to parent struct T containing member m at address p */
-#define MEM_TO_OBJ(T, m, p) ((char *)(p) - OFFSETOF(T, m))
-
-typedef struct _QLink {
- struct _QLink *next;
- struct _QLink *prev;
- int ord;
-} QLink;
-
-typedef struct _Queue {
- QLink *head;
- QLink *tail;
- int size;
- QLink *currpos;
-} Queue;
-
-/* add item to tail of queue */
-void QAddT(Queue *queue, QLink* node, int ord);
-
-/* add item to head of queue */
-void QAddH(Queue *queue, QLink *node, int ord);
-
-/* add item based on order value */
-void QAddOrd(Queue *queue, QLink *node, int ord);
-
-/* remove and return head of queue */
-QLink* QServe(Queue *queue);
-
-/* move item to tail of queue */
-void QMoveToTail(Queue *queue, QLink *x, int ord);
-
-/* remove item from queue */
-void QRemove(Queue *queue, QLink* x);
-
-/* return current position */
-QLink *QCurrent(Queue *queue);
-
-/* print out list of queued items */
-void QIterate(Queue *queue);
-
-#endif
+++ /dev/null
-#
-# Makefile.djgpp
-# make information for this directory
-# requires gmake
-#
-
-SOURCES = osifd.c osilog.c osiqueue.c osithrd95.c
-include ../../config/Makefile.djgpp.common
-
-# apply changes from common for this directory
-#
-# no changes for this directory
-
-# what this directory builds
-#
-TARGETS = libosi.a
-all : $(TARGETS)
-install : $(DESTLIB)/libosi.a includes
-
-INCFILES = \
- $(DESTINC)/osi.h \
- $(DESTINC)/osifd.h \
- $(DESTINC)/osilog.h \
- $(DESTINC)/osiqueue.h \
- $(DESTINC)/osisleep.h \
- $(DESTINC)/osiutils.h \
- $(DESTINC)/osithrd95.h
-
-# hard-wired dependency information
-#
-libosi.a : $(ALL_OBJS)
-includes: $(INCFILES)
+++ /dev/null
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/* Copyright (C) 1994 Cazamar Systems, Inc. */
-
-#include "osi.h"
-#include "lwp.h"
-/*#include "lock95.h"*/
-#include <assert.h>
-
-#include <stdio.h>
-
-/*
-thread95.c
-
-This code implements a partial OSI-over-LWP(and IOMGR) layer for threading
-and synchronization, for the AFS NT code port to Windows 9x.
-*/
-
-// It so happens that all code seen so far throws away *thread_id;
-// unfortunately, callers do not send thread_id==NULL instead of getting
-// a value and tossing it. :(
-thread_t thrd_Create(int attributes, int stacksize, ThreadFunc func,
- void *parm, int flags, int *thread_id, char *name)
-{
- PROCESS lwp_pid;
-
- // Reserve priority 0 for IOMGR; we use pri 1 by default
- if (name)
- LWP_CreateProcess(func, stacksize, 1, parm, name, &lwp_pid);
- else
- LWP_CreateProcess(func, stacksize, 1, parm, "thread", &lwp_pid);
-
- // In principle, the "right" way to do thread_id is to create a mapping
- // between thread_id integers and LWP PROCESS names, but we're not using
- // the IDs for anything anyway, so...
- // actually, it turns out PROCESS is a pointer, so we fudge with that for now
- // just to return a nonzero value
- *thread_id = (int) lwp_pid;
-
- return lwp_pid;
-}
-
-thread_t thrd_Current()
-{
- PROCESS pid;
- LWP_CurrentProcess(&pid);
- return pid;
-}
-
-int thrd_Close(thread_t thrd)
-{
- int rc = LWP_DestroyProcess(thrd);
- if (rc == LWP_SUCCESS)
- return 0;
- else
- return -1;
-}
-
-/* The following thread-local-storage and critical-section functions are
- not used. */
-/*
-DWORD thrd_Alloc(void)
-{
- char **NewRock = NULL;
- static int NextTag = 0; // Because LWP is not preemptive, we need no mutex
-
- NewRock = (char **) malloc (sizeof(LPVOID *));
- if (NewRock == NULL)
- return 0xFFFFFFFF;
- *NewRock = (LPVOID *) malloc(sizeof(LPVOID));
- if (*NewRock == NULL) {
- free(NewRock);
- return 0xFFFFFFFF;
- }
-
- if (LWP_NewRock(++NextTag,NewRock))
- return 0xFFFFFFFF;
- else
- return NextTag;
-}
-
-LPVOID thrd_GetValue(DWORD Index)
-{
- char *ptr;
- if (LWP_GetRock((int) Index, &ptr)) {
- // SetLastError
- return 0;
- } else {
- return * ((LPVOID *) ptr);
- }
-}
-
-BOOL thrd_SetValue(DWORD Index, LPVOID Value) {
- char *ptr;
- if (LWP_GetRock((int) Index, &ptr)) {
- // SetLastError
- return 0;
- } else {
- * ((LPVOID *) ptr) = Value;
- return TRUE;
- }
-}
-
-#define LPCRITICAL_SECTION (struct Lock*)
-
-#define thrd_InitCrit (Lock_Init)
-#define thrd_EnterCrit (ObtainWriteLock)
-#define thrd_LeaveCrit (ReleaseWriteLock)
-
-// LWP has no formal destructor for locks.
-#define thrd_DeleteCrit(x) ;
-
-*/
-
-
-/* Since LWP is nonpreemptive, arithmetic needs no special handling. */
-
-LONG thrd_Increment(LPLONG number)
-{
- ++*number;
- return *number;
-}
-
-LONG thrd_Decrement(LPLONG number)
-{
- --*number;
- return *number;
-}
-
-LONG thrd_Exchange(LPLONG number, LONG value)
-{
- LONG oldval = *number;
- *number = value;
- return oldval;
-}
-
-// CreateEvent is always called with (NULL,(T/F),(T/F),NULL)
-// This code will assume it and fail otherwise.
-// SetLastError() is not implemented, i.e., if thrd_CreateEvent fails,
-// there is no corresponding GetLastError() to pull out error codes
-// at this time.
-EVENT *thrd_CreateEvent(void *f, BOOL manual, BOOL startsignaled, void *g)
-{
- // LWP code checks eventnames against NULL as an error condition,
- // so we start counting from 1 instead of zero.
- // It turns out that LWP uses event names as unique integer values,
- // even though these values are cast as char pointers. We will use
- // integers, since they are never dereferenced by LWP.
- static unsigned long NextEventName = 1L;
- EVENT *event;
-
- // Startup stuff
- if ((f != NULL) || (g != NULL)) {
- // Panic! This scenario is not implemented.
- assert(0);
- return NULL;
- }
-
- // Create an event
- if ((event=(EVENT*)malloc(sizeof(EVENT))) == NULL)
- {
- // SetLastError out of memory
- return NULL;
- }
- if (manual)
- event->state = startsignaled ? manualsignal : manualunsig;
- else
- event->state = startsignaled ? autosignal : autounsig;
- event->name = (char *) NextEventName;
-
- // Increment NextEventName
- ++NextEventName;
-
- return event;
-}
-
-BOOL thrd_SetEvent(EVENT *event)
-{
- if (event==NULL)
- return FALSE;
- if (AUTOMATIC(event))
- event->state = autosignal;
- else
- event->state = manualsignal;
- LWP_SignalProcess(event->name);
- return TRUE;
-}
-
-BOOL thrd_ResetEvent(EVENT *event)
-{
- if (event==NULL)
- return FALSE;
- if (AUTOMATIC(event))
- event->state = autounsig;
- else
- event->state = manualunsig;
- return TRUE;
-}
-
-// It appears there is a slight difference in the two wait schemes.
-// Win32's WaitForSingleObject returns only when the wait is finished;
-// LWP's WaitProcess may return randomly, and so requires while() wrapping
-// (a little busywaiting).
-DWORD thrd_WaitForSingleObject_Event(EVENT *event, DWORD timeoutms)
-{
- if (timeoutms != INFINITE) {
- // Panic!
- assert(0);
- return WAIT_FAILED;
- }
- if (event == NULL) {
- return WAIT_FAILED;
- }
- while (!SIGNALED(event))
- LWP_WaitProcess(event->name);
- if (AUTOMATIC(event))
- event->state = autounsig;
- return WAIT_OBJECT_0;
-}
-
-DWORD thrd_WaitForMultipleObjects_Event(DWORD count, EVENT* events[],
- BOOL waitforall, DWORD timeoutms)
-{
- if ((timeoutms != INFINITE) || waitforall) {
- // Panic! This functionality not implemented.
- assert(0);
- return WAIT_FAILED;
- }
- if (events == NULL) {
- return WAIT_FAILED;
- }
-
- // Do the actual wait
- {
- // Construct the list of LWP events to wait on
- char *names[count+1];
- int i;
- for (i=0;i<count;++i) {
- if (SIGNALED(events[i])) {
- // We're done; one of the events is signaled.
- if (AUTOMATIC(events[i]))
- events[i]->state = autounsig;
- return (WAIT_OBJECT_0 + i);
- }
- names[i] = events[i]->name;
- }
- names[count] = NULL;
-
- // Do the wait for something to signal
- while (1) {
- LWP_MwaitProcess(1,names);
- // Find who got signalled: MwaitProcess doesn't tell us.
- for (i=0; i<count; ++i) {
- if (SIGNALED(events[i])) {
- if (AUTOMATIC(events[i]))
- events[i]->state = autounsig;
- return WAIT_OBJECT_0 + i;
- }
- }
- }
- // not reached
- assert(0);
- }
- // not reached
- assert(0);
-}
-
-int osi_Once(osi_once_t *argp)
-{
- long i;
-
- lock_ObtainMutex(&argp->atomic);
-
- if (argp->done == 0) {
- argp->done = 1;
- return 1;
- }
-
- /* otherwise we've already been initialized, so clear lock and return */
- lock_ReleaseMutex(&argp->atomic);
- return 0;
-}
-
-void osi_EndOnce(osi_once_t *argp)
-{
- lock_ReleaseMutex(&argp->atomic);
-}
-
-int osi_TestOnce(osi_once_t *argp)
-{
- long localDone;
- long i;
-
- lock_ObtainMutex(&argp->atomic);
-
- localDone = argp->done;
-
- /* drop interlock */
- lock_ReleaseMutex(&argp->atomic);
-
- return (localDone? 0 : 1);
-}
-
-void osi_panic(char *s, char *f, long l)
-{
- fprintf(stderr, "Fatal error: %s at %s:%d\n", s, f, l);
- exit(1);
-}
-
-/* return true iff x is prime */
-int osi_IsPrime(unsigned long x)
-{
- unsigned long c;
-
- /* even numbers aren't prime */
- if ((x & 1) == 0 && x != 2) return 0;
-
- for(c = 3; c<x; c += 2) {
- /* see if x is divisible by c */
- if ((x % c) == 0) return 0; /* yup, it ain't prime */
-
- /* see if we've gone far enough; only have to compute until
- * square root of x.
- */
- if (c*c > x) return 1;
- }
-
- /* probably never get here */
- return 1;
-}
-
-/* return first prime number less than or equal to x */
-unsigned long osi_PrimeLessThan(unsigned long x) {
- unsigned long c;
-
- for(c = x; c > 1; c--) {
- if (osi_IsPrime(c)) return c;
- }
-
- /* ever reached? */
- return 1;
-}
+++ /dev/null
-#ifndef THRD95_H
-#define THRD95_H
-
-#include <lwp.h>
-#include <lock.h>
-#include <assert.h>
-#include <stdio.h>
-
-/* Since we don't have windows.h to define booleans, we do it ourselves */
-#ifndef TRUE
- #define TRUE (1)
-#endif
-#ifndef FALSE
- #define FALSE (0)
-#endif
-
-#define osi_rwlock_t struct Lock
-#define osi_mutex_t struct Lock
-
-#define osi_Init() { PROCESS pid; LWP_InitializeProcessSupport(1,&pid); IOMGR_Initialize(); }
-
-/*
-#define lock_InitializeMutex(a, b) Lock_Init(a)
-#define lock_InitializeRWLock(a, b) Lock_Init(a)
-*/
-
-#define lock_InitializeRWLock(a, b) Lock_Init(a)
-#define lock_InitializeMutex(a, b) lock_InitializeRWLock(a,b)
-
-#define lock_ObtainWrite(a) ObtainWriteLock(a)
-#define lock_ObtainRead(a) ObtainReadLock(a)
-#define lock_ObtainMutex(a) lock_ObtainWrite(a)
-#define lock_ReleaseRead(a) ReleaseReadLock(a)
-#define lock_ReleaseWrite(a) ReleaseWriteLock(a)
-#define lock_ReleaseMutex(a) lock_ReleaseWrite(a)
-
-#define lock_FinalizeRWLock(a) /* */
-#define lock_FinalizeMutex(a) lock_FinalizeRWLock(a)
-
-/*
-#define lock_TryWrite(a) if (!WriteLocked(a)) ObtainWriteLock(a)
-#define lock_TryRead(a) if (!WriteLocked(a)) ObtainReadLock(a)
-#define lock_TryMutex(a) if (!WriteLocked(a)) ObtainWriteLock(a)
-*/
-#define lock_TryWrite(a) ( ((CheckLock(a)) == 0) ? (({ObtainWriteLock(a);}), 1) : 0 )
-#define lock_TryRead(a) ( ((CheckLock(a)) > -1) ? (({ObtainReadLock(a);}), 1) : 0 )
-#define lock_TryMutex(a) lock_TryWrite(a)
-#define lock_GetMutexState(a) CheckLock(a)
-#define lock_AssertMutex(a) assert(lock_GetMutexState(a) == -1)
-#define lock_AssertWrite(a) assert(lock_GetMutexState(a) == -1)
-
-#define Crit_Sec osi_mutex_t
-#define thrd_InitCrit(a) lock_InitializeMutex(a, "cs")
-#define thrd_EnterCrit lock_ObtainMutex
-#define thrd_LeaveCrit lock_ReleaseMutex
-#define thrd_DeleteCrit(a)
-
-// Does LWP take a char* and read it as ASCIIZ, or as a pointer?
-// ASCIIZ, perhaps?
-/*
-#define osi_Sleep(a) { char buf[sizeof(long)+1]; memcpy(buf,&a,sizeof(long)); buf[sizeof(long)]='\0'; LWP_WaitProcess(buf); }
-*/
-// Actually, pointer (from reading LWP source)
-#define osi_Sleep(a) LWP_WaitProcess(a);
-
-#define __do_LWP_sleep(v,l,f) { f(l); osi_Sleep(v); }
-#define osi_SleepM(a,b) __do_LWP_sleep(a,b,lock_ReleaseMutex)
-#define osi_SleepR(a,b) __do_LWP_sleep(a,b,lock_ReleaseRead)
-#define osi_SleepW(a,b) __do_LWP_sleep(a,b,lock_ReleaseWrite)
-
-/*
-#define osi_Wakeup(a) { char buf[sizeof(long)+1]; memcpy(buf,&a,sizeof(long)); buf[sizeof(long)]='\0'; LWP_SignalProcess(buf); }
-*/
-#define osi_Wakeup(a) LWP_SignalProcess(a)
-
-/*
-#define thrd_Sleep(a) IOMGR_Select(0, 0, 0, 0, a)
-*/
-#define thrd_Sleep(a) IOMGR_Sleep((a)/1000)
-
-#define thrd_Yield LWP_DispatchProcess
-
-/* For thread95.c */
-#define __EVENT_NAME_LENGTH 10
-typedef struct __event {
- enum { manualunsig = 0, autounsig = 2,
- autosignal = 3, manualsignal = 1 } state;
- char *name; // "Name" of corresponding LWP events
- // char name[__EVENT_NAME_LENGTH+1]; // Name of corresponding LWP events
-} EVENT;
-#define SIGNALED(event) (event->state & 0x01)
-#define AUTOMATIC(event) (event->state & 0x02)
-
-typedef PROCESS thread_t;
-typedef int (*ThreadFunc)(void *);
-typedef int SecurityAttrib;
-
-thread_t thrd_Create(int attributes, int stacksize, ThreadFunc func,
- void *parm, int flags, int *thread_id, char *name);
-#define thrd_Exit(rc) return(rc)
-thread_t thrd_Current(void);
-int thrd_Close(thread_t thrd);
-#define thrd_CloseHandle(h)
-
-typedef long int LONG;
-typedef LONG *LPLONG;
-LONG thrd_Increment(LPLONG number);
-LONG thrd_Decrement(LPLONG number);
-LONG thrd_Exchange(LPLONG number, LONG value);
-
-typedef enum { False=0, True=1 } BOOL;
-typedef EVENT *EVENT_HANDLE; /* Absorbs Win32 type HANDLE when used for synch */
-EVENT *thrd_CreateEvent(void *f, BOOL manual, BOOL startsignaled, void *g);
-BOOL thrd_SetEvent(EVENT *event);
-BOOL thrd_ResetEvent(EVENT *event);
-
-typedef unsigned long DWORD;
-#define INFINITE (0xFFFFFFFF) // infinite timeout for waits
-#define WAIT_FAILED (0xFFFFFFFF)
-#define WAIT_OBJECT_0 (0L)
-#define CONST const
-DWORD thrd_WaitForSingleObject_Event(EVENT *event, DWORD timeoutms);
-DWORD thrd_WaitForMultipleObjects_Event(DWORD count, EVENT* events[],
- BOOL waitforall, DWORD timeoutms);
-
-#define osi_Time gettime_ms
-
-typedef FILE *FILE_HANDLE;
-
-#endif /* #ifndef THRD95_H */
+++ /dev/null
-[<HKUS>]
-Value=
-KeyType=4
-
-[<HKCR>]
-Value=
-KeyType=4
-
-[<PROGRAMFILES>]
-Value=
-KeyType=4
-
-[<WINSYSDIR>]
-Value=
-KeyType=4
-
-[<COMMONFILES>]
-Value=
-KeyType=4
-
-[<WINDIR>]
-Value=
-KeyType=4
-
-[Data]
-Key0=<PROGRAMFILES>
-Key1=<COMMONFILES>
-Key2=<WINDIR>
-Key3=<WINSYSDIR>
-Key4=<HKLM>
-Key5=<HKCU>
-Key10=<SHELL_OBJECT_FOLDER>
-Key6=<HKCC>
-Key11=<UNINST>
-Key7=<HKDD>
-Key8=<HKUS>
-Key9=<HKCR>
-
-[<UNINST>]
-Value=
-KeyType=4
-
-[<SHELL_OBJECT_FOLDER>]
-Value=
-KeyType=4
-
-[General]
-Type=TEXTSUB
-Version=1.10.000
-
-[<HKLM>]
-Value=
-KeyType=4
-
-[<HKCU>]
-Value=
-KeyType=4
-
-[<HKCC>]
-Value=
-KeyType=4
-
-[<HKDD>]
-Value=
-KeyType=4
-
+++ /dev/null
-@echo off
-rem Copyright 2000, International Business Machines Corporation and others.
-rem All Rights Reserved.
-rem
-rem This software has been released under the terms of the IBM Public
-rem License. For details, see the LICENSE file in the top-level source
-rem directory or online at http://www.openafs.org/dl/license10.html
-
-rem This file runs the IS5 command line tools to create the OpenAFS setup media.
-
-echo Building the setup media...
-
-Set SavePath=%Path%
-
-Path %IS5ROOT%\Program;%PATH%
-
-ISbuild -p"%AFSROOT%\src\WINNT\install\InstallShield5" -m"OpenAFS"
-
-if not exist "Media\OpenAFS\Disk Images\disk1" goto nocopylicense
-mkdir "Media\OpenAFS\Disk Images\disk1\License"
-copy ..\..\license\lang\*.rtf "Media\OpenAFS\Disk Images\disk1\License"
-:nocopylicense
-
-If errorlevel 1 goto BuildErrorOccurred
-
-rem Skip over the error handling and exit
- Goto Done
-
-rem Report the build error; then exit
-:BuildErrorOccurred
- Echo Error on build; media not built.
-
-:Done
-rem Restore the search path
- Path=%SavePath%
- Set SavePath=
-
+++ /dev/null
-@echo off
-rem Copyright 2000, International Business Machines Corporation and others.
-rem All Rights Reserved.
-rem
-rem This software has been released under the terms of the IBM Public
-rem License. For details, see the LICENSE file in the top-level source
-rem directory or online at http://www.openafs.org/dl/license10.html
-
-rem This file runs the IS5 command line compiler to compile the setup script.
-
-echo.
-echo Compiling the setup script...
-echo.
-echo NOTE: Ignore "Function defined but never called" warnings
-echo.
-
-Set SavePath=%Path%
-
-Path %IS5ROOT%\Program;%PATH%
-
-Compile -I%IS5ROOT%\Include "Script Files\setup.rul"
-
-If errorlevel 1 goto CompilerErrorOccurred
-
-rem Skip over the error handling and exit
- Goto Done
-
-rem Report the compiler error then exit
-:CompilerErrorOccurred
- Echo Error on compile; media not built.
- Goto Done
-
-:Done
-rem Restore the search path
- Path=%SavePath%
- Set SavePath=
-
+++ /dev/null
-@echo off
-rem Copyright 2000, International Business Machines Corporation and others.
-rem All Rights Reserved.
-rem
-rem This software has been released under the terms of the IBM Public
-rem License. For details, see the LICENSE file in the top-level source
-rem directory or online at http://www.openafs.org/dl/license10.html
-
-rem This file generates IS5 files that contain hard coded paths. We must
-rem generate these so the paths are correct for each person doing a build.
-
-echo Generating IS files that contain paths...
-
-call GenIS5.ipr.bat
-cd File Groups
-rem This next file must run using cmd.exe
-cmd /c GenFileGroups.bat
-cd ..\Media\OpenAFS
-call GenDefault.mda.bat
-cd ..\..
+++ /dev/null
-@echo off
-rem Copyright 2000, International Business Machines Corporation and others.
-rem All Rights Reserved.
-rem
-rem This software has been released under the terms of the IBM Public
-rem License. For details, see the LICENSE file in the top-level source
-rem directory or online at http://www.openafs.org/dl/license10.html
-
-rem This file creates the IS5 directory tree. We couldn't check it into cml
-rem because the directory names contain spaces.
-
-echo Creating the IS dir tree...
-
-if not exist "Component Definitions" mkdir "Component Definitions"
-if not exist "File Groups" mkdir "File Groups"
-if not exist Media mkdir Media
-if not exist "Media\OpenAFS" mkdir "Media\OpenAFS"
-if not exist "Registry Entries" mkdir "Registry Entries"
-if not exist "Script Files" mkdir "Script Files"
-if not exist "Setup Files" mkdir "Setup Files"
-
-if not exist "Registry Entries" mkdir "Registry Entries"
-if not exist "Script Files" mkdir "Script Files"
-if not exist "Setup Files" mkdir "Setup Files"
-
-set sub1=Uncompressed Files
-call :gencomp
-set sub1=Compressed Files
-call :gencomp
-goto shell
-
-:gencomp
-if not exist "Setup Files\%sub1%" mkdir "Setup Files\%sub1%"
-set sub2=Language Independent
-call :gencomp2
-set sub2=0009-English
-call :gencomp2
-set sub2=0007-German
-call :gencomp2
-set sub2=0011-Japanese
-call :gencomp2
-set sub2=0012-Korean
-call :gencomp2
-set sub2=0416-Portuguese (Brazilian)
-call :gencomp2
-set sub2=0404-Chinese (Taiwan)
-call :gencomp2
-set sub2=000a-Spanish
-call :gencomp2
-set sub2=0804-Chinese (PRC)
-call :gencomp2
-goto :eof
-
-:gencomp2
-rem echo ]%sub1%] ]%sub2%]
-if not exist "Setup Files\%sub1%\%sub2%" mkdir "Setup Files\%sub1%\%sub2%"
-if not exist "Setup Files\%sub1%\%sub2%\OS Independent" mkdir "Setup Files\%sub1%\%sub2%\OS Independent"
-if not exist "Setup Files\%sub1%\%sub2%\Intel 32" mkdir "Setup Files\%sub1%\%sub2%\Intel 32"
-goto :eof
-
-:shell
-if not exist "Shell Objects" mkdir "Shell Objects"
-if not exist "String Tables" mkdir "String Tables"
-if not exist "String Tables\0009-English" mkdir "String Tables\0009-English"
-if not exist "String Tables\0011-Japanese" mkdir "String Tables\0011-Japanese"
-if not exist "String Tables\0012-Korean" mkdir "String Tables\0012-Korean"
-if not exist "String Tables\0404-Chinese (Taiwan)" mkdir "String Tables\0404-Chinese (Taiwan)"
-if not exist "String Tables\0804-Chinese (PRC)" mkdir "String Tables\0804-Chinese (PRC)"
-if not exist "String Tables\0007-German" mkdir "String Tables\0007-German"
-if not exist "String Tables\0416-Portuguese (Brazilian)" mkdir "String Tables\0416-Portuguese (Brazilian)"
-if not exist "String Tables\000a-Spanish" mkdir "String Tables\000a-Spanish"
-if not exist "Text Substitutions" mkdir "Text Substitutions"
-
-:eof
\ No newline at end of file
+++ /dev/null
-[Documentation\Simp_Chinese]
-COMMENT=
-COMPRESSIFSEPARATE=No
-DEFSELECTION=Yes
-DESCRIPTION=
-DISK=ANYDISK
-DISPLAYTEXT=
-ENCRYPT=No
-FILENEED=STANDARD
-FTPLOCATION=
-HTTPLOCATION=
-IMAGE=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-member0=Documentation\Simp_Chinese\Cmd_Ref
-member1=Documentation\Simp_Chinese\Sys_Admin_Guide
-member2=Documentation\Simp_Chinese\Doc_Misc
-MISC=
-PASSWORD=
-required0=Readme\Simp_Chinese
-SELECTED=Yes
-STATUS=
-TARGET=<TARGETDIR>
-TARGETDIRCDROM=
-TARGETHIDDEN=General Application Destination
-UNINSTALLABLE=Yes
-VISIBLE=No
-
-[Documentation\Japanese\Cmd_Ref]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\CmdRef
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Cmd_Ref_Japanese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\CmdRef
-
-[Readme\Simp_Chinese\Install_Guide]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\InstallGd
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Install_Guide_Simp_Chinese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\InstallGd
-
-[Readme\Japanese\Release_Notes]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\ReleaseNotes
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Release_Notes_Japanese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation
-
-[Readme\English\Release_Notes]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\ReleaseNotes
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Release_Notes_English_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation
-
-[Client\Client_WinDir]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=CLIENT
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Common
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Client_WinDir_Files
-requiredby0=Client
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Common
-
-[Documentation\English\Sys_Admin_Guide]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\SysAdminGd
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Sys_Admin_Guide_English_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\SysAdminGd
-
-[Server]
-required0=Readme
-SELECTED=Yes
-FILENEED=STANDARD
-required1=Server\Server_Program
-HTTPLOCATION=
-STATUS=SERVER
-required2=Server\Server_Common
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>
-required3=Server\Server_WinDir
-required4=Server\Server_System32
-member0=Server\Server_Program
-FTPLOCATION=
-member1=Server\Server_Common
-VISIBLE=Yes
-DESCRIPTION=
-member2=Server\Server_WinDir
-member3=Server\Server_System32
-DISPLAYTEXT=AFS Server
-IMAGE=
-DEFSELECTION=Yes
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination
-
-[Control_Center\Control_Center_System32]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=CCENTER
-UNINSTALLABLE=Yes
-TARGET=<WINSYSDIR>
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Control_Center_System32_Files
-requiredby0=Control_Center
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=Windows Operating System\Windows System Folder
-
-[Readme\Korean\Doc_Misc]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Doc_Misc_Korean_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html
-
-[Components]
-component0=Client\Client_WinDir
-component1=Readme\English\Release_Notes
-component2=Readme\Japanese\Release_Notes
-component3=Readme\Simp_Chinese\Install_Guide
-component4=Documentation\Japanese\Cmd_Ref
-component5=Documentation\Simp_Chinese
-component6=Readme\Korean\Doc_Misc
-component7=Control_Center\Control_Center_System32
-component8=Server
-component9=Documentation\English\Sys_Admin_Guide
-component10=Documentation\English\Doc_Misc
-component11=Readme\Japanese\Doc_Misc
-component12=Control_Center
-component13=Client\Client_System32
-component14=Server\Server_Program
-component15=Light_Client\Win98\Light_Client_Common
-component16=Control_Center\Control_Center_Program
-component17=Documentation\English\Cmd_Ref
-component18=Documentation\Japanese\Sys_Admin_Guide
-component19=Documentation\Trad_Chinese
-component20=Light_Client\Win95\Light95_Client_Common
-component21=Client\Client_Program\Client_Headers
-component22=Languages\Lang_Japanese
-component23=Control_Center\Control_Center_Common
-component24=Readme\English\Install_Guide
-component25=Readme\Japanese\Install_Guide
-component26=Readme\Simp_Chinese
-component27=Documentation\Japanese
-component28=Documentation\Simp_Chinese\Doc_Misc
-component29=Documentation\Trad_Chinese\Doc_Misc
-component30=Light_Client
-component31=Server\Server_WinDir
-component32=Readme\English
-component33=Readme\Japanese
-component34=Documentation\Korean\Cmd_Ref
-component35=Light_Client\Win95
-component36=Client\Client_Program\Client_Sample
-component37=Documentation\Korean\Doc_Misc
-component38=Readme\Simp_Chinese\Doc_Misc
-component39=Readme\Trad_Chinese\Doc_Misc
-component40=Client\Client_Common
-component41=Client\Client_Program
-component42=Light_Client\Win95\Light95_Client_System32
-component43=Languages\Lang_Simp_Chinese
-component44=Client
-component45=Readme\Korean\Release_Notes
-component46=Documentation\Simp_Chinese\Cmd_Ref
-component47=Documentation\Simp_Chinese\Sys_Admin_Guide
-component48=Light_Client\Win98
-component49=Readme\Trad_Chinese
-component50=Readme\Trad_Chinese\Release_Notes
-component51=Documentation\Trad_Chinese\Cmd_Ref
-component52=Readme\English\Doc_Misc
-component53=Languages\Lang_English
-component54=Readme\Korean
-component55=Client\Client_Program\Client_Headers\Client_Main_Headers
-component56=Documentation\Japanese\Doc_Misc
-component57=Languages
-component58=Readme\Simp_Chinese\Release_Notes
-component59=Server\Server_System32
-component60=Server\Server_Common
-component61=Documentation\Trad_Chinese\Sys_Admin_Guide
-component62=Light_Client\Win98\Light_Client_System32
-component63=Light_Client\Win98\Light_Client_WinDir
-component64=Readme
-component65=Readme\Korean\Install_Guide
-component66=Documentation\Korean
-component67=Languages\Lang_Trad_Chinese
-component68=Light_Client\Win98\Light_Client_Program
-component69=Light_Client\Win95\Light95_Client_WinDir
-component70=Light_Client\Win95\Light95_Client_Program
-component71=Client\Client_Program\Client_Headers\Client_Rx_Headers
-component72=Control_Center\Control_Center_WinDir
-component73=Readme\Trad_Chinese\Install_Guide
-component74=Documentation\English
-component75=Documentation\Korean\Sys_Admin_Guide
-component76=Client\Client_Program\Client_Headers\Client_Afs_Headers
-component77=Documentation
-component78=Languages\Lang_Korean
-component79=Readme\German\Release_Notes
-component80=Documentation\German\Cmd_Ref
-component81=Readme\German\Doc_Misc
-component82=Documentation\German\Sys_Admin_Guide
-component83=Languages\Lang_German
-component84=Readme\German\Install_Guide
-component85=Documentation\German
-component86=Readme\German
-component87=Documentation\German\Doc_Misc
-component88=Readme\Spanish\Release_Notes
-component89=Documentation\Spanish\Cmd_Ref
-component90=Readme\Spanish\Doc_Misc
-component91=Documentation\Spanish\Sys_Admin_Guide
-component92=Languages\Lang_Spanish
-component93=Readme\Spanish\Install_Guide
-component94=Documentation\Spanish
-component95=Readme\Spanish
-component96=Documentation\Spanish\Doc_Misc
-component97=Readme\Portuguese\Release_Notes
-component98=Documentation\Portuguese\Cmd_Ref
-component99=Readme\Portuguese\Doc_Misc
-component100=Documentation\Portuguese\Sys_Admin_Guide
-component101=Languages\Lang_Portuguese
-component102=Readme\Portuguese\Install_Guide
-component103=Documentation\Portuguese
-component104=Readme\Portuguese
-component105=Documentation\Portuguese\Doc_Misc
-
-[SetupTypeItem-AFS Control Center]
-Comment=
-item0=Control_Center\Control_Center_System32
-item1=Control_Center\Control_Center_Common
-item2=Control_Center\Control_Center_WinDir
-Descrip=Allows easy administration of the AFS Distributed File System.
-DisplayText=AFS Control Center
-
-[Server\Server_Program]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=SERVER
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Server\usr\afs\bin
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Server_Program_Files
-requiredby0=Server
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Server\usr\afs\bin
-
-[Client\Client_System32]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=CLIENT
-UNINSTALLABLE=Yes
-TARGET=<WINSYSDIR>
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Client_System32_Files
-requiredby0=Client
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=Windows Operating System\Windows System Folder
-
-[Control_Center]
-required0=Readme
-SELECTED=Yes
-FILENEED=STANDARD
-required1=Control_Center\Control_Center_Program
-HTTPLOCATION=
-STATUS=CCENTER
-required2=Control_Center\Control_Center_Common
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>
-required3=Control_Center\Control_Center_WinDir
-required4=Control_Center\Control_Center_System32
-member0=Control_Center\Control_Center_Program
-FTPLOCATION=
-member1=Control_Center\Control_Center_Common
-VISIBLE=Yes
-DESCRIPTION=
-member2=Control_Center\Control_Center_WinDir
-member3=Control_Center\Control_Center_System32
-DISPLAYTEXT=AFS Control Center
-IMAGE=
-DEFSELECTION=Yes
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination
-
-[Readme\Japanese\Doc_Misc]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Doc_Misc_Japanese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html
-
-[Documentation\English\Doc_Misc]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Doc_Misc_English_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html
-
-[TopComponents]
-component0=Server
-component1=Client
-component2=Light_Client
-component3=Control_Center
-component4=Readme
-component5=Languages
-component6=Documentation
-
-[SetupTypeItem-AFS Server]
-Comment=
-item0=Server\Server_System32
-Descrip=Allows this computer to host files that will be shared via the AFS file space. This product automatically includes both the AFS Client and the AFS Server.
-DisplayText=AFS Server (includes Client and Control Center)
-
-[SetupType]
-setuptype0=AFS Control Center
-setuptype1=AFS Server
-setuptype2=AFS Client
-
-[Documentation\Trad_Chinese]
-COMMENT=
-COMPRESSIFSEPARATE=No
-DEFSELECTION=Yes
-DESCRIPTION=
-DISK=ANYDISK
-DISPLAYTEXT=
-ENCRYPT=No
-FILENEED=STANDARD
-FTPLOCATION=
-HTTPLOCATION=
-IMAGE=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-member0=Documentation\Trad_Chinese\Cmd_Ref
-member1=Documentation\Trad_Chinese\Sys_Admin_Guide
-member2=Documentation\Trad_Chinese\Doc_Misc
-MISC=
-PASSWORD=
-required0=Readme\Trad_Chinese
-SELECTED=Yes
-STATUS=
-TARGET=<TARGETDIR>
-TARGETDIRCDROM=
-TARGETHIDDEN=General Application Destination
-UNINSTALLABLE=Yes
-VISIBLE=No
-
-[Documentation\Japanese\Sys_Admin_Guide]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\SysAdminGd
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Sys_Admin_Guide_Japanese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\SysAdminGd
-
-[Documentation\English\Cmd_Ref]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\CmdRef
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Cmd_Ref_English_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\CmdRef
-
-[Control_Center\Control_Center_Program]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=CCENTER
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Control Center
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Control_Center_Program_Files
-requiredby0=Control_Center
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Control Center
-
-[Light_Client\Win98\Light_Client_Common]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=LIGHT
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Common
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Light_Client_Common_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Common
-
-[Documentation\Japanese]
-required0=Readme\Japanese
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>
-FTPLOCATION=
-member0=Documentation\Japanese\Cmd_Ref
-VISIBLE=No
-DESCRIPTION=
-member1=Documentation\Japanese\Sys_Admin_Guide
-member2=Documentation\Japanese\Doc_Misc
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination
-
-[Readme\Simp_Chinese]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>
-member0=Readme\Simp_Chinese\Release_Notes
-FTPLOCATION=
-member1=Readme\Simp_Chinese\Install_Guide
-VISIBLE=No
-DESCRIPTION=
-member2=Readme\Simp_Chinese\Doc_Misc
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-requiredby0=Documentation\Simp_Chinese
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination
-
-[Readme\Japanese\Install_Guide]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\InstallGd
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Install_Guide_Japanese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\InstallGd
-
-[Readme\English\Install_Guide]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\InstallGd
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Install_Guide_English_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\InstallGd
-
-[Control_Center\Control_Center_Common]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=CCENTER
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Common
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Control_Center_Common_Files
-requiredby0=Control_Center
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Common
-
-[Languages\Lang_Japanese]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=LANGUAGE
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Common
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Lang_Japanese_files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Common
-
-[Client\Client_Program\Client_Headers]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=HEADERS
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Client\Program\Include
-member0=Client\Client_Program\Client_Headers\Client_Afs_Headers
-FTPLOCATION=
-member1=Client\Client_Program\Client_Headers\Client_Rx_Headers
-VISIBLE=No
-DESCRIPTION=
-member2=Client\Client_Program\Client_Headers\Client_Main_Headers
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Client\Program\Include
-
-[Light_Client\Win95\Light95_Client_Common]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=LIGHT
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Common
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Light95_Client_Common_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Common
-
-[Documentation\Korean\Cmd_Ref]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\CmdRef
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Cmd_Ref_Korean_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\CmdRef
-
-[Readme\Japanese]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>
-member0=Readme\Japanese\Release_Notes
-FTPLOCATION=
-member1=Readme\Japanese\Install_Guide
-VISIBLE=No
-DESCRIPTION=
-member2=Readme\Japanese\Doc_Misc
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-requiredby0=Documentation\Japanese
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination
-
-[Readme\English]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>
-member0=Readme\English\Release_Notes
-FTPLOCATION=
-member1=Readme\English\Install_Guide
-VISIBLE=No
-DESCRIPTION=
-member2=Readme\English\Doc_Misc
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-requiredby0=Documentation\English
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination
-
-[Server\Server_WinDir]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=SERVER
-UNINSTALLABLE=Yes
-TARGET=<WINDIR>
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Server_WinDir_Files
-requiredby0=Server
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=Windows Operating System
-
-[Light_Client]
-required0=Readme
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=LIGHT
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>
-member0=Light_Client\Win95
-FTPLOCATION=
-member1=Light_Client\Win98
-VISIBLE=Yes
-DESCRIPTION=
-DISPLAYTEXT=AFS Light
-IMAGE=
-DEFSELECTION=Yes
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination
-
-[Documentation\Trad_Chinese\Doc_Misc]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Doc_Misc_Trad_Chinese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html
-
-[Documentation\Simp_Chinese\Doc_Misc]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Doc_Misc_Simp_Chinese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html
-
-[Client\Client_Program]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=CLIENT
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Client\Program
-member0=Client\Client_Program\Client_Headers
-FTPLOCATION=
-member1=Client\Client_Program\Client_Sample
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Client_Program_Files
-requiredby0=Client
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Client\Program
-
-[Client\Client_Common]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=CLIENT
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Common
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Client_Common_Files
-requiredby0=Client
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Common
-
-[Readme\Trad_Chinese\Doc_Misc]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Doc_Misc_Trad_Chinese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html
-
-[Readme\Simp_Chinese\Doc_Misc]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Doc_Misc_Simp_Chinese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html
-
-[Documentation\Korean\Doc_Misc]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Doc_Misc_Korean_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html
-
-[Client\Client_Program\Client_Sample]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Client\Program\Sample
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Client_Sample_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Client\Program\Sample
-
-[Light_Client\Win95]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>
-member0=Light_Client\Win95\Light95_Client_Program
-FTPLOCATION=
-member1=Light_Client\Win95\Light95_Client_Common
-VISIBLE=Yes
-DESCRIPTION=
-member2=Light_Client\Win95\Light95_Client_WinDir
-member3=Light_Client\Win95\Light95_Client_System32
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=ALWAYSOVERWRITE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination
-
-[Light_Client\Win95\Light95_Client_System32]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<WINSYSDIR>
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=Installing AFS Light...
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Light95_Client_System32_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=Windows Operating System\Windows System Folder
-
-[Documentation\Simp_Chinese\Sys_Admin_Guide]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\SysAdminGd
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Sys_Admin_Guide_Simp_Chinese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\SysAdminGd
-
-[Documentation\Simp_Chinese\Cmd_Ref]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\CmdRef
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Cmd_Ref_Simp_Chinese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\CmdRef
-
-[Readme\Korean\Release_Notes]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\ReleaseNotes
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Release_Notes_Korean_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation
-
-[Client]
-required0=Readme
-SELECTED=Yes
-FILENEED=STANDARD
-required1=Client\Client_Common
-HTTPLOCATION=
-STATUS=CLIENT
-required2=Client\Client_WinDir
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>
-required3=Client\Client_System32
-required4=Client\Client_Program
-member0=Client\Client_Program
-FTPLOCATION=
-member1=Client\Client_Common
-VISIBLE=Yes
-DESCRIPTION=
-member2=Client\Client_WinDir
-member3=Client\Client_System32
-DISPLAYTEXT=AFS Client
-IMAGE=
-DEFSELECTION=Yes
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination
-
-[Languages\Lang_Simp_Chinese]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=LANGUAGE
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Common
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Lang_Simp_Chinese_files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Common
-
-[Documentation\Trad_Chinese\Cmd_Ref]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\CmdRef
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Cmd_Ref_Trad_Chinese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\CmdRef
-
-[Readme\Trad_Chinese\Release_Notes]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\ReleaseNotes
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Release_Notes_Trad_Chinese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation
-
-[Readme\Trad_Chinese]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>
-member0=Readme\Trad_Chinese\Release_Notes
-FTPLOCATION=
-member1=Readme\Trad_Chinese\Install_Guide
-VISIBLE=No
-DESCRIPTION=
-member2=Readme\Trad_Chinese\Doc_Misc
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-requiredby0=Documentation\Trad_Chinese
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination
-
-[Light_Client\Win98]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>
-member0=Light_Client\Win98\Light_Client_Program
-FTPLOCATION=
-member1=Light_Client\Win98\Light_Client_Common
-VISIBLE=Yes
-DESCRIPTION=
-member2=Light_Client\Win98\Light_Client_WinDir
-member3=Light_Client\Win98\Light_Client_System32
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=ALWAYSOVERWRITE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination
-
-[Readme\Korean]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>
-member0=Readme\Korean\Release_Notes
-FTPLOCATION=
-member1=Readme\Korean\Install_Guide
-VISIBLE=No
-DESCRIPTION=
-member2=Readme\Korean\Doc_Misc
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-requiredby0=Documentation\Korean
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination
-
-[Languages\Lang_English]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=LANGUAGE
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Common
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Lang_English_files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Common
-
-[Readme\English\Doc_Misc]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Doc_Misc_English_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html
-
-[SetupTypeItem-AFS Client]
-Comment=
-Descrip=Allows access to the AFS file space.
-DisplayText=AFS Client
-
-[Readme\Simp_Chinese\Release_Notes]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\ReleaseNotes
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Release_Notes_Simp_Chinese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation
-
-[Languages]
-COMMENT=
-COMPRESSIFSEPARATE=No
-DEFSELECTION=Yes
-DESCRIPTION=
-DISK=ANYDISK
-DISPLAYTEXT=
-ENCRYPT=No
-FILENEED=STANDARD
-FTPLOCATION=
-HTTPLOCATION=
-IMAGE=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-member0=Languages\Lang_English
-member1=Languages\Lang_Simp_Chinese
-member2=Languages\Lang_Trad_Chinese
-member3=Languages\Lang_Korean
-member4=Languages\Lang_Japanese
-member5=Languages\Lang_German
-member6=Languages\Lang_Spanish
-member7=Languages\Lang_Portuguese
-MISC=
-PASSWORD=
-SELECTED=Yes
-STATUS=
-TARGET=<TARGETDIR>\Common
-TARGETDIRCDROM=
-TARGETHIDDEN=General Application Destination\Common
-UNINSTALLABLE=Yes
-VISIBLE=No
-
-[Documentation\Japanese\Doc_Misc]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Doc_Misc_Japanese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html
-
-[Client\Client_Program\Client_Headers\Client_Main_Headers]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Client\Program\Include
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Client_Main_Header_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Client\Program\Include
-
-[Info]
-Type=CompDef
-Version=1.00.000
-Name=
-
-[Documentation\Trad_Chinese\Sys_Admin_Guide]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\SysAdminGd
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Sys_Admin_Guide_Trad_Chinese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\SysAdminGd
-
-[Server\Server_Common]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=SERVER
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Common
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Server_Common_Files
-requiredby0=Server
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Common
-
-[Server\Server_System32]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=SERVER
-UNINSTALLABLE=Yes
-TARGET=<WINSYSDIR>
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Server_System32_Files
-requiredby0=Server
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=Windows Operating System\Windows System Folder
-
-[Languages\Lang_Trad_Chinese]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=LANGUAGE
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Common
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Lang_Trad_Chinese_files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Common
-
-[Documentation\Korean]
-required0=Readme\Korean
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>
-FTPLOCATION=
-member0=Documentation\Korean\Cmd_Ref
-VISIBLE=No
-DESCRIPTION=
-member1=Documentation\Korean\Sys_Admin_Guide
-member2=Documentation\Korean\Doc_Misc
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination
-
-[Readme\Korean\Install_Guide]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\InstallGd
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Install_Guide_Korean_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\InstallGd
-
-[Readme]
-COMMENT=
-COMPRESSIFSEPARATE=No
-DEFSELECTION=Yes
-DESCRIPTION=
-DISK=ANYDISK
-DISPLAYTEXT=
-ENCRYPT=No
-FILENEED=STANDARD
-FTPLOCATION=
-HTTPLOCATION=
-IMAGE=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-member0=Readme\English
-member1=Readme\Japanese
-member2=Readme\Korean
-member3=Readme\Trad_Chinese
-member4=Readme\Simp_Chinese
-member5=Readme\German
-member6=Readme\Spanish
-member7=Readme\Portuguese
-MISC=
-PASSWORD=
-requiredby0=Server
-requiredby1=Client
-requiredby2=Light_Client
-requiredby3=Control_Center
-requiredby4=Documentation
-SELECTED=Yes
-STATUS=
-TARGET=<TARGETDIR>\Documentation
-TARGETDIRCDROM=
-TARGETHIDDEN=General Application Destination\Documentation
-UNINSTALLABLE=Yes
-VISIBLE=No
-
-[Light_Client\Win98\Light_Client_WinDir]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=LIGHT
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Common
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Light_Client_WinDir_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Common
-
-[Light_Client\Win98\Light_Client_System32]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=LIGHT
-UNINSTALLABLE=Yes
-TARGET=<WINSYSDIR>
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Light_Client_System32_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=Windows Operating System\Windows System Folder
-
-[Documentation\Korean\Sys_Admin_Guide]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\SysAdminGd
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Sys_Admin_Guide_Korean_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\SysAdminGd
-
-[Documentation\English]
-required0=Readme\English
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>
-FTPLOCATION=
-member0=Documentation\English\Cmd_Ref
-VISIBLE=No
-DESCRIPTION=
-member1=Documentation\English\Sys_Admin_Guide
-member2=Documentation\English\Doc_Misc
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination
-
-[Readme\Trad_Chinese\Install_Guide]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\InstallGd
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Install_Guide_Trad_Chinese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\InstallGd
-
-[Control_Center\Control_Center_WinDir]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=CCENTER
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Common
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Control_Center_WinDir_Files
-requiredby0=Control_Center
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Common
-
-[Client\Client_Program\Client_Headers\Client_Rx_Headers]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Client\Program\Include\rx
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Client_Rx_Header_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Client\Program\Include\rx
-
-[Light_Client\Win95\Light95_Client_Program]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=LIGHT
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Client\Program
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Light95_Client_Program_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Client\Program
-
-[Light_Client\Win95\Light95_Client_WinDir]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=LIGHT
-UNINSTALLABLE=Yes
-TARGET=<WINDIR>
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Light95_Client_WinDir_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=Windows Operating System
-
-[Light_Client\Win98\Light_Client_Program]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=LIGHT
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Client\Program
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Light_Client_Program_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Client\Program
-
-[Languages\Lang_Korean]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=LANGUAGE
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Common
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Lang_Korean_files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Common
-
-[Documentation]
-COMMENT=
-COMPRESSIFSEPARATE=No
-DEFSELECTION=Yes
-DESCRIPTION=
-DISK=ANYDISK
-DISPLAYTEXT=AFS Supplemental Documentation
-ENCRYPT=No
-filegroup0=Doc_Files
-FILENEED=STANDARD
-FTPLOCATION=
-HTTPLOCATION=
-IMAGE=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-member0=Documentation\English
-member1=Documentation\Japanese
-member2=Documentation\Korean
-member3=Documentation\Trad_Chinese
-member4=Documentation\Simp_Chinese
-member5=Documentation\German
-member6=Documentation\Spanish
-member7=Documentation\Portuguese
-MISC=
-PASSWORD=
-required0=Readme
-SELECTED=Yes
-STATUS=DOCS
-TARGET=<TARGETDIR>\Documentation
-TARGETDIRCDROM=
-TARGETHIDDEN=General Application Destination\Documentation
-UNINSTALLABLE=Yes
-VISIBLE=Yes
-
-[Client\Client_Program\Client_Headers\Client_Afs_Headers]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Client\Program\Include\afs
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Client_Afs_Header_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Client\Program\Include\afs
-
-[Documentation\German\Cmd_Ref]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\CmdRef
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Cmd_Ref_German_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\CmdRef
-
-[Readme\German\Release_Notes]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\ReleaseNotes
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Release_Notes_German_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation
-
-[Readme\German\Doc_Misc]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Doc_Misc_German_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html
-
-[Documentation\German\Sys_Admin_Guide]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\SysAdminGd
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Sys_Admin_Guide_German_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\SysAdminGd
-
-[Documentation\German]
-required0=Readme\German
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>
-FTPLOCATION=
-member0=Documentation\German\Cmd_Ref
-VISIBLE=No
-DESCRIPTION=
-member1=Documentation\German\Sys_Admin_Guide
-member2=Documentation\German\Doc_Misc
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination
-
-[Readme\German\Install_Guide]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\InstallGd
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Install_Guide_German_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\InstallGd
-
-[Languages\Lang_German]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=LANGUAGE
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Common
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Lang_German_files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Common
-
-[Readme\German]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>
-member0=Readme\German\Release_Notes
-FTPLOCATION=
-member1=Readme\German\Install_Guide
-VISIBLE=No
-DESCRIPTION=
-member2=Readme\German\Doc_Misc
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-requiredby0=Documentation\German
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination
-
-[Documentation\German\Doc_Misc]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Doc_Misc_German_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html
-
-[Documentation\Spanish\Cmd_Ref]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\CmdRef
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Cmd_Ref_Spanish_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\CmdRef
-
-[Readme\Spanish\Release_Notes]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\ReleaseNotes
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Release_Notes_Spanish_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation
-
-[Readme\Spanish\Doc_Misc]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Doc_Misc_Spanish_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html
-
-[Documentation\Spanish\Sys_Admin_Guide]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\SysAdminGd
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Sys_Admin_Guide_Spanish_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\SysAdminGd
-
-[Documentation\Spanish]
-required0=Readme\Spanish
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>
-FTPLOCATION=
-member0=Documentation\Spanish\Cmd_Ref
-VISIBLE=No
-DESCRIPTION=
-member1=Documentation\Spanish\Sys_Admin_Guide
-member2=Documentation\Spanish\Doc_Misc
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination
-
-[Readme\Spanish\Install_Guide]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\InstallGd
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Install_Guide_Spanish_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\InstallGd
-
-[Languages\Lang_Spanish]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=LANGUAGE
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Common
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Lang_Spanish_files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Common
-
-[Readme\Spanish]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>
-member0=Readme\Spanish\Release_Notes
-FTPLOCATION=
-member1=Readme\Spanish\Install_Guide
-VISIBLE=No
-DESCRIPTION=
-member2=Readme\Spanish\Doc_Misc
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-requiredby0=Documentation\Spanish
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination
-
-[Documentation\Spanish\Doc_Misc]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Doc_Misc_Spanish_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html
-
-[Documentation\Portuguese\Cmd_Ref]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\CmdRef
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Cmd_Ref_Portuguese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\CmdRef
-
-[Readme\Portuguese\Release_Notes]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\ReleaseNotes
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Release_Notes_Portuguese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation
-
-[Readme\Portuguese\Doc_Misc]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Doc_Misc_Portuguese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html
-
-[Documentation\Portuguese\Sys_Admin_Guide]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\SysAdminGd
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Sys_Admin_Guide_Portuguese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\SysAdminGd
-
-[Documentation\Portuguese]
-required0=Readme\Portuguese
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>
-FTPLOCATION=
-member0=Documentation\Portuguese\Cmd_Ref
-VISIBLE=No
-DESCRIPTION=
-member1=Documentation\Portuguese\Sys_Admin_Guide
-member2=Documentation\Portuguese\Doc_Misc
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination
-
-[Readme\Portuguese\Install_Guide]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html\InstallGd
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Install_Guide_Portuguese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html\InstallGd
-
-[Languages\Lang_Portuguese]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=LANGUAGE
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Common
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Lang_Portuguese_files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Common
-
-[Readme\Portuguese]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>
-member0=Readme\Portuguese\Release_Notes
-FTPLOCATION=
-member1=Readme\Portuguese\Install_Guide
-VISIBLE=No
-DESCRIPTION=
-member2=Readme\Portuguese\Doc_Misc
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-requiredby0=Documentation\Portuguese
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination
-
-[Documentation\Portuguese\Doc_Misc]
-SELECTED=Yes
-FILENEED=STANDARD
-HTTPLOCATION=
-STATUS=
-UNINSTALLABLE=Yes
-TARGET=<TARGETDIR>\Documentation\Html
-FTPLOCATION=
-VISIBLE=No
-DESCRIPTION=
-DISPLAYTEXT=
-IMAGE=
-DEFSELECTION=Yes
-filegroup0=Doc_Misc_Portuguese_Files
-COMMENT=
-INCLUDEINBUILD=Yes
-INSTALLATION=NEWERVERSION\NEWERDATE
-COMPRESSIFSEPARATE=No
-MISC=
-ENCRYPT=No
-DISK=ANYDISK
-TARGETDIRCDROM=
-PASSWORD=
-TARGETHIDDEN=General Application Destination\Documentation\Html
-
+++ /dev/null
-[Lang_Trad_Chinese_files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Control_Center_WinDir_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=0000000000000000
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Control_Center_Program_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=0000000000000000
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Server_Common_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=0000000000000000
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Server_Program_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=0000000000000000
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[FileGroups]
-group0=Light95_Client_Common_Files
-group1=Server_Program_Files
-group2=Server_Common_Files
-group3=Control_Center_Program_Files
-group4=Control_Center_WinDir_Files
-group5=Lang_Trad_Chinese_files
-group6=Sys_Admin_Guide_Trad_Chinese_Files
-group7=Sys_Admin_Guide_English_Files
-group8=Release_Notes_Trad_Chinese_Files
-group9=Client_System32_Files
-group10=Light_Client_System32_Files
-group11=Client_Main_Header_Files
-group12=Install_Guide_Japanese_Files
-group13=Light95_Client_WinDir_Files
-group14=Light95_Client_Program_Files
-group15=Release_Notes_English_Files
-group16=Server_WinDir_Files
-group17=Client_Program_Files
-group18=Release_Notes_Japanese_Files
-group19=Lang_English_files
-group20=Sys_Admin_Guide_Japanese_Files
-group21=Cmd_Ref_Simp_Chinese_Files
-group22=Doc_Files
-group23=Client_Common_Files
-group24=Control_Center_System32_Files
-group25=Lang_Japanese_files
-group26=Doc_Misc_Trad_Chinese_Files
-group27=Client_Sample_Files
-group28=Release_Notes_Korean_Files
-group29=Install_Guide_Trad_Chinese_Files
-group30=Lang_Simp_Chinese_files
-group31=Light95_Client_System32_Files
-group32=Sys_Admin_Guide_Simp_Chinese_Files
-group33=Cmd_Ref_Korean_Files
-group34=Release_Notes_Simp_Chinese_Files
-group35=Install_Guide_English_Files
-group36=Cmd_Ref_Japanese_Files
-group37=Doc_Misc_English_Files
-group38=Doc_Misc_Japanese_Files
-group39=Server_System32_Files
-group40=Client_WinDir_Files
-group41=Light_Client_Common_Files
-group42=Client_Rx_Header_Files
-group43=Sys_Admin_Guide_Korean_Files
-group44=Install_Guide_Korean_Files
-group45=Light_Client_Program_Files
-group46=Control_Center_Common_Files
-group47=Doc_Misc_Korean_Files
-group48=Lang_Korean_files
-group49=Cmd_Ref_Trad_Chinese_Files
-group50=Doc_Misc_Simp_Chinese_Files
-group51=Client_Afs_Header_Files
-group52=Install_Guide_Simp_Chinese_Files
-group53=Cmd_Ref_English_Files
-group54=Light_Client_WinDir_Files
-group55=Doc_Misc_German_Files
-group56=Cmd_Ref_German_Files
-group57=Lang_German_files
-group58=Sys_Admin_Guide_German_Files
-group59=Release_Notes_German_Files
-group60=Install_Guide_German_Files
-group61=Doc_Misc_Spanish_Files
-group62=Cmd_Ref_Spanish_Files
-group63=Lang_Spanish_files
-group64=Sys_Admin_Guide_Spanish_Files
-group65=Release_Notes_Spanish_Files
-group66=Install_Guide_Spanish_Files
-group67=Doc_Misc_Portuguese_Files
-group68=Cmd_Ref_Portuguese_Files
-group69=Lang_Portuguese_files
-group70=Sys_Admin_Guide_Portuguese_Files
-group71=Release_Notes_Portuguese_Files
-group72=Install_Guide_Portuguese_Files
-
-[Light95_Client_Common_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Sys_Admin_Guide_English_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Sys_Admin_Guide_Trad_Chinese_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Light_Client_System32_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=0000000000000000
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Client_System32_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=0000000000000000
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Release_Notes_Trad_Chinese_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Install_Guide_Japanese_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Client_Main_Header_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Client_Program_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=0000000000000000
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Server_WinDir_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=0000000000000000
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Release_Notes_English_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Light95_Client_Program_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Light95_Client_WinDir_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Lang_English_files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Release_Notes_Japanese_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Cmd_Ref_Simp_Chinese_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Sys_Admin_Guide_Japanese_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Client_Sample_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Doc_Misc_Trad_Chinese_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Lang_Japanese_files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Control_Center_System32_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=0000000000000000
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Client_Common_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=0000000000000000
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Doc_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Lang_Simp_Chinese_files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Install_Guide_Trad_Chinese_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Release_Notes_Korean_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Cmd_Ref_Korean_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Sys_Admin_Guide_Simp_Chinese_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Light95_Client_System32_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Doc_Misc_Japanese_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Doc_Misc_English_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Cmd_Ref_Japanese_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Install_Guide_English_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Release_Notes_Simp_Chinese_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Light_Client_Common_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=0000000000000000
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Client_WinDir_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=0000000000000000
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Server_System32_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=0000000000000000
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Install_Guide_Korean_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Sys_Admin_Guide_Korean_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Client_Rx_Header_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Info]
-Type=FileGrp
-Version=1.00.000
-Name=
-
-[Doc_Misc_Korean_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Control_Center_Common_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=0000000000000000
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Light_Client_Program_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=0000000000000000
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Lang_Korean_files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Doc_Misc_Simp_Chinese_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Cmd_Ref_Trad_Chinese_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Light_Client_WinDir_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=0000000000000000
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Cmd_Ref_English_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Install_Guide_Simp_Chinese_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Client_Afs_Header_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Install_Guide_German_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Release_Notes_German_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Sys_Admin_Guide_German_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Lang_German_files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Doc_Misc_German_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Cmd_Ref_German_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Install_Guide_Spanish_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Release_Notes_Spanish_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Sys_Admin_Guide_Spanish_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Lang_Spanish_files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Doc_Misc_Spanish_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Cmd_Ref_Spanish_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Install_Guide_Portuguese_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Release_Notes_Portuguese_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Sys_Admin_Guide_Portuguese_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
-[Lang_Portuguese_files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Doc_Misc_Portuguese_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=Yes
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=Yes
-MISC=
-
-[Cmd_Ref_Portuguese_Files]
-SELFREGISTERING=No
-HTTPLOCATION=
-LANGUAGE=
-OPERATINGSYSTEM=
-FTPLOCATION=
-FILETYPE=No
-INFOTYPE=Standard
-COMMENT=
-COMPRESS=Yes
-COMPRESSDLL=
-POTENTIALLY=No
-MISC=
-
+++ /dev/null
-[<PROGRAMFILES>\<COMMONFILES>]
-DISPLAYTEXT=Common Files Folder
-TYPE=TEXTSUBFIXED
-fulldirectory=
-
-[<TARGETDIR>\Client\Program\Sample]
-DISPLAYTEXT=
-TYPE=FOLDER
-fulldirectory=
-
-[<WINDIR>\<WINSYSDIR>]
-DISPLAYTEXT=Windows System Folder
-TYPE=TEXTSUBFIXED
-fulldirectory=
-
-[USERDEFINED]
-DISPLAYTEXT=Script-defined Folders
-TYPE=USERSTART
-fulldirectory=
-
-[<PROGRAMFILES>]
-DISPLAYTEXT=Program Files Folder
-SubDir0=<PROGRAMFILES>\<COMMONFILES>
-TYPE=TEXTSUBFIXED
-fulldirectory=
-
-[<TARGETDIR>]
-DISPLAYTEXT=General Application Destination
-SubDir0=<TARGETDIR>\Client
-SubDir1=<TARGETDIR>\Server
-TYPE=TEXTSUBFIXED
-SubDir2=<TARGETDIR>\Control Center
-SubDir3=<TARGETDIR>\Common
-fulldirectory=
-SubDir4=<TARGETDIR>\Documentation
-
-[<TARGETDIR>\Documentation\Html\BackupCmdRef]
-DISPLAYTEXT=
-TYPE=FOLDER
-fulldirectory=
-
-[<TARGETDIR>\Documentation]
-DISPLAYTEXT=
-SubDir0=<TARGETDIR>\Documentation\Html
-TYPE=FOLDER
-fulldirectory=
-
-[<TARGETDIR>\Documentation\Html\InstallGd]
-DISPLAYTEXT=
-TYPE=FOLDER
-fulldirectory=
-
-[<TARGETDIR>\Client\Program\Include]
-DISPLAYTEXT=
-SubDir0=<TARGETDIR>\Client\Program\Include\afs
-SubDir1=<TARGETDIR>\Client\Program\Include\rx
-TYPE=FOLDER
-fulldirectory=
-
-[<TARGETDIR>\Client\Program\Include\afs]
-DISPLAYTEXT=
-TYPE=FOLDER
-fulldirectory=
-
-[<TARGETDIR>\Client\Program\Include\rx]
-DISPLAYTEXT=
-TYPE=FOLDER
-fulldirectory=
-
-[<TARGETDIR>\Client\Program]
-DISPLAYTEXT=
-SubDir0=<TARGETDIR>\Client\Program\Include
-SubDir1=<TARGETDIR>\Client\Program\Sample
-TYPE=FOLDER
-fulldirectory=
-
-[<WINDIR>]
-DISPLAYTEXT=Windows Operating System
-SubDir0=<WINDIR>\<WINSYSDIR>
-TYPE=TEXTSUBFIXED
-fulldirectory=
-
-[<TARGETDIR>\Server]
-DISPLAYTEXT=
-SubDir0=<TARGETDIR>\Server\usr
-TYPE=FOLDER
-fulldirectory=
-
-[TopDir]
-SubDir0=<WINDIR>
-SubDir1=<PROGRAMFILES>
-SubDir2=<TARGETDIR>
-SubDir3=USERDEFINED
-
-[<TARGETDIR>\Documentation\Html\CmdRef]
-DISPLAYTEXT=
-TYPE=FOLDER
-fulldirectory=
-
-[<TARGETDIR>\Server\usr]
-DISPLAYTEXT=
-SubDir0=<TARGETDIR>\Server\usr\afs
-TYPE=FOLDER
-fulldirectory=
-
-[<TARGETDIR>\Client\Help]
-DISPLAYTEXT=
-TYPE=FOLDER
-fulldirectory=
-
-[<TARGETDIR>\Server\usr\afs\bin]
-DISPLAYTEXT=
-TYPE=FOLDER
-fulldirectory=
-
-[<TARGETDIR>\Documentation\Html\SysAdminGd]
-DISPLAYTEXT=
-TYPE=FOLDER
-fulldirectory=
-
-[<TARGETDIR>\Documentation\Html]
-DISPLAYTEXT=
-SubDir0=<TARGETDIR>\Documentation\Html\InstallGd
-SubDir1=<TARGETDIR>\Documentation\Html\BackupCmdRef
-TYPE=FOLDER
-SubDir2=<TARGETDIR>\Documentation\Html\CmdRef
-SubDir3=<TARGETDIR>\Documentation\Html\SysAdminGd
-fulldirectory=
-
-[General]
-Type=FILELIST
-Version=1.00.000
-
-[<TARGETDIR>\Control Center]
-DISPLAYTEXT=
-TYPE=FOLDER
-fulldirectory=
-
-[<TARGETDIR>\Common]
-DISPLAYTEXT=
-TYPE=FOLDER
-fulldirectory=
-
-[<TARGETDIR>\Server\usr\afs]
-DISPLAYTEXT=
-SubDir0=<TARGETDIR>\Server\usr\afs\bin
-TYPE=FOLDER
-fulldirectory=
-
-[<TARGETDIR>\Client]
-DISPLAYTEXT=
-SubDir0=<TARGETDIR>\Client\Program
-SubDir1=<TARGETDIR>\Client\Help
-TYPE=FOLDER
-fulldirectory=
-
+++ /dev/null
-[Shortcut0]
-Target=<TARGETDIR>\Client\Program\afscreds.exe
-Parameters=/show
-ShortcutKey=
-SeparateMemorySpace=No
-Run=Normal Window
-FileGroup=Client_Program_Files
-Replace=Yes
-IconIndex=
-StartIn=
-InternetShortcut=No
-IconFile=<TARGETDIR>\Client\Program\afscreds.exe
-Comments=
-DisplayText=Authentication
-
-[Shortcut1]
-Target=<TARGETDIR>\Control Center\TaAfsServerManager.exe
-Parameters=
-ShortcutKey=
-SeparateMemorySpace=No
-Run=Normal Window
-FileGroup=Control_Center_Program_Files
-Replace=Yes
-IconIndex=
-StartIn=
-InternetShortcut=No
-IconFile=<TARGETDIR>\Control Center\TaAfsServerManager.exe
-Comments=
-DisplayText=Server Manager
-
-[Folder4]
-Type=Common
-Comments=
-DisplayText=<SHELL_OBJECT_FOLDER>
-
-[Shortcut2]
-Target=<TARGETDIR>\Server\usr\afs\bin\afssvrcfg.exe
-Parameters=/wizard
-ShortcutKey=
-SeparateMemorySpace=No
-Run=Normal Window
-FileGroup=Server_Program_Files
-Replace=Yes
-IconIndex=
-StartIn=
-InternetShortcut=No
-IconFile=<TARGETDIR>\Server\usr\afs\bin\afssvrcfg.exe
-Comments=
-DisplayText=Configuration Wizard
-
-[Folder5]
-Type=Common
-Comments=
-DisplayText=Client
-
-[Folder6]
-Type=Common
-Comments=
-DisplayText=Server
-
-[Shortcut3]
-Target=<TARGETDIR>\Control Center\TaAfsAccountManager.exe
-Parameters=
-ShortcutKey=
-SeparateMemorySpace=No
-Run=Normal Window
-FileGroup=Control_Center_Program_Files
-Replace=Yes
-IconIndex=
-StartIn=
-InternetShortcut=No
-IconFile=<TARGETDIR>\Control Center\TaAfsAccountManager.exe
-Comments=
-DisplayText=Account Manager
-
-[Folder7]
-Type=Common
-Comments=
-DisplayText=Control Center
-
-[Shortcut4]
-Target=<CLIENT_HELP>
-Parameters=
-ShortcutKey=
-SeparateMemorySpace=No
-Run=Normal Window
-IconIndex=
-Replace=Yes
-FileGroup=Client_Program_Files
-StartIn=
-IconFile=
-InternetShortcut=No
-DisplayText=AFS Client Help
-Comments=
-
-[Folder8]
-Type=Common
-Comments=
-DisplayText=Light
-
-[Shortcut5]
-Target=<TARGETDIR>\Client\Program\afscreds.exe
-Parameters=/show
-ShortcutKey=
-SeparateMemorySpace=No
-Run=Normal Window
-IconIndex=
-Replace=Yes
-FileGroup=Light_Client_Program_Files
-StartIn=
-IconFile=<TARGETDIR>\Client\Program\afscreds.exe
-InternetShortcut=No
-DisplayText=Authentication
-Comments=
-
-[Shortcut6]
-Target=<CLIENT_HELP>
-Parameters=
-ShortcutKey=
-SeparateMemorySpace=No
-Run=Normal Window
-IconIndex=
-Replace=Yes
-FileGroup=Light_Client_Program_Files
-StartIn=
-IconFile=
-InternetShortcut=No
-DisplayText=AFS Light Help
-Comments=
-
-[Data]
-Shortcut0=Folder5\Authentication
-Folder3=<FOLDER_STARTUP>
-Shortcut1=Folder7\Server Manager
-Folder4=Folder2\User Specified - default is Transarc AFS
-Shortcut2=Folder6\Config Wizard
-Folder5=Folder4\Client
-Group0=Main
-Folder6=Folder4\Server
-Group1=Startup
-Shortcut3=Folder7\Account Manager
-Folder7=Folder4\Control_Center
-Shortcut4=Folder5\AFS Client Help
-Folder8=Folder4\Light
-Shortcut5=Folder8\Authentication
-Shortcut6=Folder8\AFS Light Help
-Folder0=<FOLDER_DESKTOP>
-Folder1=<FOLDER_STARTMENU>
-Folder2=<FOLDER_PROGRAMS>
-
-[Info]
-Type=ShellObject
-Version=1.00.000
-
+++ /dev/null
-[DEFAULT_INSTALL_DIR]
-Comment=
-
-[NOTHING_SELECTED_MSG]
-Comment=
-
-[DOWNGRADE_LIGHT_CLIENT_MSG]
-Comment=
-
-[SETUP_FINISHED_MSG]
-Comment=
-
-[TITLE_MAIN]
-Comment=
-
-[SEVERE_DIALOG_TITLE]
-Comment=
-
-[UPGRADE_CLIENT_MSG]
-Comment=
-
-[PRODUCT_VERSION_MINOR]
-Comment=
-
-[CONFIGURING_AFS_CLIENT_SERVICE]
-Comment=
-
-[PRODUCT_NAME_CC]
-Comment=
-
-[PRODUCT_NAME_SERVER]
-Comment=
-
-[UPGRADE_CC_MSG]
-Comment=
-
-[DOWNGRADE_SERVER_MSG]
-Comment=
-
-[UNINST_DISPLAY_NAME_LIGHT_CLIENT]
-Comment=
-
-[PRODUCT_NAME_LIGHT_CLIENT]
-Comment=
-
-[ERROR_COMPONENT]
-Comment=
-
-[COMPANY_NAME]
-Comment=
-
-[REINSTALL_CLIENT_MSG]
-Comment=
-
-[DOWNGRADE_CC_MSG]
-Comment=
-
-[UNINST_DISPLAY_NAME_DOCS]
-Comment=
-
-[UNINST_KEY_SERVER]
-Comment=
-
-[VIEW_README_PROMPT_MSG]
-Comment=
-
-[INSTALL_LIGHT_CLIENT_MSG]
-Comment=
-
-[PRODUCT_VERSION_TITLE]
-Comment=
-
-[UNINST_DISPLAY_NAME_CC]
-Comment=
-
-[ERROR_FILEGROUP]
-Comment=
-
-[ERROR_MOVEDATA]
-Comment=
-
-[CONFIGURING_AFS_SERVER_SERVICE]
-Comment=
-
-[CLIENT_DESC]
-Comment=
-
-[SET_NETWORK_PROVIDER_ERROR]
-Comment=
-
-[PRODUCT_VERSION_MAJOR]
-Comment=
-
-[UNINST_DISPLAY_NAME_SERVER]
-Comment=
-
-[SETUPUTILS_NOT_FOUND]
-Comment=
-
-[LIGHT_CLIENT_ALREADY_INSTALLED_MSG]
-Comment=
-
-[SETUP_TYPE_MSG]
-Comment=
-
-[PRODUCT_KEY_SERVER]
-Comment=
-
-[Language]
-Lang0=0009
-CurrentLang=0
-
-[INSTALL_SERVER_MSG]
-Comment=
-
-[REINSTALL_LIGHT_CLIENT_MSG]
-Comment=
-
-[PRODUCT_NAME_DOCS]
-Comment=
-
-[PRODUCT_KEY_DOCS]
-Comment=
-
-[TITLE_CAPTIONBAR]
-Comment=
-
-[CONFIG_FILE_MAN_EXT_ERROR]
-Comment=
-
-[CONFIGURING_AFS_CREDS_ERROR]
-Comment=
-
-[UPGRADE_SERVER_MSG]
-Comment=
-
-[PRODUCT_VERSION_RELEASE_TYPE]
-Comment=
-
-[AFS_CLIENT_SERVICE_INSTALL_ERROR]
-Comment=
-
-[CLIENT_TITLE]
-Comment=
-
-[PRODUCT_KEY_CC]
-Comment=
-
-[AFS_SERVER_SERVICE_INSTALL_ERROR]
-Comment=
-
-[LIGHT_CLIENT_DESC]
-Comment=
-
-[CLIENT_FILE_MAN_EXT_ENTRY_NAME]
-Comment=
-
-[INSTALL_CC_MSG]
-Comment=
-
-[REINSTALL_CC_MSG]
-Comment=
-
-[PRODUCT_NAME_CLIENT]
-Comment=
-
-[Data]
-Entry0=ERROR_VGARESOLUTION
-Entry1=TITLE_MAIN
-Entry2=TITLE_CAPTIONBAR
-Entry3=UNINST_KEY_SERVER
-Entry4=UNINST_DISPLAY_NAME_SERVER
-Entry5=COMPANY_NAME
-Entry6=PRODUCT_NAME_SERVER
-Entry7=PRODUCT_VERSION_MAJOR
-Entry8=PRODUCT_KEY_SERVER
-Entry9=ERROR_MOVEDATA
-Entry10=ERROR_UNINSTSETUP
-Entry11=ERROR_COMPONENT
-Entry12=ERROR_FILEGROUP
-Entry13=ERROR_FILE
-Entry14=FOLDER_NAME
-Entry15=DEFAULT_INSTALL_DIR
-Entry16=PRODUCT_NAME_CLIENT
-Entry17=PRODUCT_NAME_CC
-Entry18=PRODUCT_VERSION_TITLE
-Entry19=PRODUCT_VERSION_MINOR
-Entry20=PRODUCT_KEY_CLIENT
-Entry21=PRODUCT_KEY_CC
-Entry22=UNINST_KEY_CLIENT
-Entry23=UNINST_KEY_CC
-Entry24=UNINST_DISPLAY_NAME_CLIENT
-Entry25=UNINST_DISPLAY_NAME_CC
-Entry26=PRODUCT_NAME
-Entry27=SETUP_TYPE_MSG
-Entry28=NOTHING_SELECTED_MSG
-Entry29=SEVERE_DIALOG_TITLE
-Entry30=VIEW_README_PROMPT_MSG
-Entry31=SERVER_NEEDS_CLIENT_MSG
-Entry32=AFS_SERVER_SERVICE_INSTALL_ERROR
-Entry33=CONFIGURING_AFS_SERVER_SERVICE
-Entry34=SETUPUTILS_NOT_FOUND
-Entry35=ADD_PATH_ERROR
-Entry36=CLIENT_DESC
-Entry37=LIGHT_CLIENT_DESC
-Entry38=PRODUCT_NAME_LIGHT_CLIENT
-Entry39=PRODUCT_VERSION_PATCH_LEVEL
-Entry40=PRODUCT_KEY_LIGHT_CLIENT
-Entry41=UNINST_KEY_LIGHT_CLIENT
-Entry42=UNINST_DISPLAY_NAME_LIGHT_CLIENT
-Entry43=CLIENT_TITLE
-Entry44=LIGHT_CLIENT_TITLE
-Entry45=SET_NETWORK_PROVIDER_ERROR
-Entry46=CONFIGURING_AFS_CLIENT_SERVICE
-Entry47=AFS_CLIENT_SERVICE_INSTALL_ERROR
-Entry48=CONFIG_FILE_MAN_EXT_ERROR
-Entry49=CLIENT_FILE_MAN_EXT_ENTRY_NAME
-Entry50=CONFIGURING_AFS_CREDS
-Entry51=CONFIGURING_AFS_CREDS_ERROR
-Entry52=CANT_INSTALL_BOTH_CLIENTS_MSG
-Entry53=MUST_BE_AN_ADMIN_MSG
-Entry54=PRODUCT_NAME_DOCS
-Entry55=PRODUCT_VERSION_RELEASE_TYPE
-Entry56=UNINST_DISPLAY_NAME_DOCS
-Entry57=UNINST_KEY_DOCS
-Entry58=INSTALL_CLIENT_MSG
-Entry59=INSTALL_SERVER_MSG
-Entry60=INSTALL_CC_MSG
-Entry61=INSTALL_LIGHT_CLIENT_MSG
-Entry62=UPGRADE_CLIENT_MSG
-Entry63=UPGRADE_SERVER_MSG
-Entry64=UPGRADE_CC_MSG
-Entry65=UPGRADE_LIGHT_CLIENT_MSG
-Entry66=REINSTALL_CLIENT_MSG
-Entry67=REINSTALL_SERVER_MSG
-Entry68=REINSTALL_CC_MSG
-Entry69=REINSTALL_LIGHT_CLIENT_MSG
-Entry70=DOWNGRADE_CLIENT_MSG
-Entry71=DOWNGRADE_SERVER_MSG
-Entry72=DOWNGRADE_CC_MSG
-Entry73=DOWNGRADE_LIGHT_CLIENT_MSG
-Entry74=WSPP_FOLDER_NAME
-Entry75=DOWNGRADE_DOCS_MSG
-Entry76=INSTALL_DOCS_MSG
-Entry77=REINSTALL_DOCS_MSG
-Entry78=UPGRADE_DOCS_MSG
-Entry79=PRODUCT_KEY_DOCS
-Entry80=SETUP_FINISHED_MSG
-Entry81=LIGHT_CLIENT_ALREADY_INSTALLED_MSG
-Entry82=REINSTALL_PREP_MSG
-Entry83=UPGRADE_PREP_MSG
-Entry84=DOWNGRADE_PREP_MSG
-Entry85=NON_UPGRADABLE_SOFTWARE_INSTALLED_ERROR_MSG
-Entry86=APPS_NOT_SAME_VERSION
-Entry87=PRODUCT_VERSION_BETA_LEVEL
-Entry88=STATUS_INSTALLING_CLIENT
-Entry89=STATUS_INSTALLING_SERVER
-Entry90=STATUS_INSTALLING_CCENTER
-Entry91=STATUS_INSTALLING_LIGHT
-Entry92=STATUS_INSTALLING_HEADERS
-Entry93=STATUS_INSTALLING_DOCS
-Entry94=STATUS_INSTALLING_LANGUAGE
-Entry95=DOCUMENTATION_ITEM_NAME
-Entry96=CFG_WIZARD_ITEM_NAME
-Entry97=CREDS_TOOL_ITEM_NAME
-Entry98=CLIENT_HELP_ITEM_NAME
-Entry99=LIGHT_CLIENT_HELP_ITEM_NAME
-Entry100=SERVER_MANAGER_ITEM_NAME
-Entry101=ACCT_MANAGER_ITEM_NAME
-Entry102=SERVER_GROUP_NAME
-Entry103=CLIENT_GROUP_NAME
-Entry104=CCENTER_GROUP_NAME
-Entry105=LIGHT_GROUP_NAME
-Entry106=CELLNAME_DEFAULT
-Entry107=WELCOME_MESSAGE
-Entry108=CELLSERVDB_WEB
-Entry109=CELLSERVDB_INSTALL
-Entry110=CELLSERVDB_CONFIGNAME
-
-[CONFIGURING_AFS_CREDS]
-Comment=
-
-[DOWNGRADE_DOCS_MSG]
-Comment=
-
-[INSTALL_DOCS_MSG]
-Comment=
-
-[PRODUCT_KEY_LIGHT_CLIENT]
-Comment=
-
-[FOLDER_NAME]
-Comment=
-
-[ERROR_FILE]
-Comment=
-
-[ERROR_VGARESOLUTION]
-Comment=
-
-[REINSTALL_SERVER_MSG]
-Comment=
-
-[DOWNGRADE_CLIENT_MSG]
-Comment=
-
-[PRODUCT_VERSION_BETA_LEVEL]
-Comment=
-
-[UNINST_KEY_CC]
-Comment=
-
-[UNINST_KEY_CLIENT]
-Comment=
-
-[UPGRADE_DOCS_MSG]
-Comment=
-
-[DOWNGRADE_PREP_MSG]
-Comment=
-
-[PRODUCT_VERSION_PATCH_LEVEL]
-Comment=
-
-[NON_UPGRADABLE_SOFTWARE_INSTALLED_ERROR_MSG]
-Comment=
-
-[UNINST_KEY_LIGHT_CLIENT]
-Comment=
-
-[CANT_INSTALL_BOTH_CLIENTS_MSG]
-Comment=
-
-[UPGRADE_LIGHT_CLIENT_MSG]
-Comment=
-
-[UNINST_KEY_DOCS]
-Comment=
-
-[UNINST_DISPLAY_NAME_CLIENT]
-Comment=
-
-[General]
-Type=STRINGTABLE
-Version=1.00.000
-
-[REINSTALL_DOCS_MSG]
-Comment=
-
-[UPGRADE_PREP_MSG]
-Comment=
-
-[MUST_BE_AN_ADMIN_MSG]
-Comment=
-
-[LIGHT_CLIENT_TITLE]
-Comment=
-
-[PRODUCT_NAME]
-Comment=
-
-[PRODUCT_KEY_CLIENT]
-Comment=
-
-[ERROR_UNINSTSETUP]
-Comment=
-
-[ADD_PATH_ERROR]
-Comment=
-
-[SERVER_NEEDS_CLIENT_MSG]
-Comment=
-
-[INSTALL_CLIENT_MSG]
-Comment=
-
-[WSPP_FOLDER_NAME]
-Comment=
-
-[REINSTALL_PREP_MSG]
-Comment=
-
-[APPS_NOT_SAME_VERSION]
-Comment=
-
-[STATUS_INSTALLING_CLIENT]
-Comment=
-
-[STATUS_INSTALLING_SERVER]
-Comment=
-
-[STATUS_INSTALLING_CCENTER]
-Comment=
-
-[STATUS_INSTALLING_LIGHT]
-Comment=
-
-[STATUS_INSTALLING_HEADERS]
-Comment=
-
-[STATUS_INSTALLING_DOCS]
-Comment=
-
-[STATUS_INSTALLING_LANGUAGE]
-Comment=
-
-[DOCUMENTATION_ITEM_NAME]
-Comment=
-
-[CFG_WIZARD_ITEM_NAME]
-Comment=
-
-[CREDS_TOOL_ITEM_NAME]
-Comment=
-
-[CLIENT_HELP_ITEM_NAME]
-Comment=
-
-[LIGHT_CLIENT_HELP_ITEM_NAME]
-Comment=
-
-[SERVER_MANAGER_ITEM_NAME]
-Comment=
-
-[ACCT_MANAGER_ITEM_NAME]
-Comment=
-
-[SERVER_GROUP_NAME]
-Comment=
-
-[CLIENT_GROUP_NAME]
-Comment=
-
-[CCENTER_GROUP_NAME]
-Comment=
-
-[LIGHT_GROUP_NAME]
-Comment=
-
-[CELLNAME_DEFAULT]
-Comment=Default Cell name
-
-[WELCOME_MESSAGE]
-Comment=Display in Welcome Box
-
-[CELLSERVDB_WEB]
-Comment=Web address to load cellservdb
-
-[CELLSERVDB_INSTALL]
-Comment=Source file for installable Cellservdb
-
-[CELLSERVDB_CONFIGNAME]
-Comment=Cellservdb file name
-
+++ /dev/null
-[Client:HKCR:CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}\InprocServer32]
-(Default)=S,<TARGETDIR>\Client\Program\afs_shl_ext.dll
----Comment---=
-ThreadingModel=S,Apartment
-
-[Client:HKCR:*\shellex\ContextMenuHandlers\AFS Client Shell Extension]
-(Default)=S,{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}
----Comment---=
-
-[WinNT_Client_NoUninstall:HKLM:SOFTWARE\Microsoft\Windows NT\CurrentVersion\File Manager\AddOns]
-(Default)=S,
----Comment---=
-AFS Client FME=S,<TARGETDIR>\Client\Program\afs_fme.dll
-
-[Server]
----Comment---=
----FileGroup---=
-HKLM0=Software\TransarcCorporation\AFS Server\CurrentVersion
-HKLM1=System\CurrentControlSet\Services\EventLog\Application\AFS Service
-HKLM2=Software\TransarcCorporation\AFS Server
-HKLM3=Software\TransarcCorporation\AFS Server\%1.%2 %3.%4
-
-[Server:HKLM:System\CurrentControlSet\Services\EventLog\Application\AFS Service]
----Comment---=
-(Default)=S,
-EventMessageFile=S,<EVENT_MSG_DLL>
-TypesSupported=N,7
-
-[Control_Center]
----Comment---=
----FileGroup---=
-HKLM0=Software\TransarcCorporation\AFS Control Center\CurrentVersion
-HKLM1=Software\TransarcCorporation\AFS Control Center
-HKLM2=Software\TransarcCorporation\AFS Control Center\%1.%2 %3.%4
-
-[Light_Client:HKLM:SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters]
-(Default)=S,
----Comment---=
-Gateway=S,
-
-[Client:HKLM:SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon]
----Comment---=
-(Default)=S,
-
-[Client_NoUninstall]
----Comment---=
----FileGroup---=
-HKLM0=SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved
-
-[Control_Center:HKLM:Software\TransarcCorporation\AFS Control Center]
-(Default)=S,
----Comment---=
-
-[Client_NoUninstall:HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved]
----Comment---=
-(Default)=S,
-{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}=S,AFS Client Shell Extension
-
-[Server:HKLM:Software\TransarcCorporation\AFS Server\%1.%2 %3.%4]
-Revision=N,0
-PatchLevel=N,%3%4
-(Default)=S,
----Comment---=
-MajorVersion=N,%1
-InstallDateString=S,<INSTALL_DATE>
-PathName=S,<TARGETDIR>\Server
-BetaLevel=N,1
-Software Type=S,File System
-MinorVersion=N,%2
-ReleaseType=S,<RELEASE_TYPE>
-VersionString=S,%5
-Description=S,AFS Server for Windows NT
-
-[Light_Client]
----Comment---=
----FileGroup---=
-HKLM0=SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters
-
-[Control_Center:HKLM:Software\TransarcCorporation\AFS Control Center\CurrentVersion]
-Revision=N,0
-PatchLevel=N,%3%4
-(Default)=S,
----Comment---=
-MajorVersion=N,%1
-InstallDateString=S,<INSTALL_DATE>
-PathName=S,<TARGETDIR>\Control Center
-BetaLevel=N,1
-Software Type=S,File System
-MinorVersion=N,%2
-ReleaseType=S,<RELEASE_TYPE>
-VersionString=S,%5
-Description=S,AFS Control Center for Windows NT
-
-[Docs:HKLM:Software\TransarcCorporation\AFS Supplemental Documentation\%1.%2 %3.%4]
-Revision=N,0
-PatchLevel=N,%3%4
-(Default)=S,
----Comment---=
-MajorVersion=N,%1
-InstallDateString=S,<INSTALL_DATE>
-PathName=S,<TARGETDIR>\Documentation
-BetaLevel=N,1
-Software Type=S,File System
-MinorVersion=N,%2
-ReleaseType=S,<RELEASE_TYPE>
-VersionString=S,%5
-Description=S,AFS System Administration Documentation
-
-[Full_Client:HKLM:SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters]
-(Default)=S,
----Comment---=
-IsGateway=N,0
-
-[Docs]
----Comment---=
----FileGroup---=
-HKLM0=Software\TransarcCorporation\AFS Supplemental Documentation\CurrentVersion
-HKLM1=Software\TransarcCorporation\AFS Supplemental Documentation
-HKLM2=Software\TransarcCorporation\AFS Supplemental Documentation\%1.%2 %3.%4
-
-[Server:HKLM:Software\TransarcCorporation\AFS Server]
-(Default)=S,
----Comment---=
-
-[Client]
----Comment---=
----FileGroup---=
-HKLM0=Software\TransarcCorporation\AFS Client\CurrentVersion
-HKLM1=Software\TransarcCorporation\AFS Client
-HKLM2=Software\TransarcCorporation\AFS Client\%1.%2 %3.%4
-HKCR0=CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}
-HKLM3=SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon
-HKCR1=CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}\InprocServer32
-HKLM4=SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters
-HKCR2=*\shellex\ContextMenuHandlers\AFS Client Shell Extension
-HKLM5=SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider
-HKCR3=FOLDER\shellex\ContextMenuHandlers\AFS Client Shell Extension
-
-[Data]
-Set0=Server
-Set1=Client
-Set2=Control_Center
-Set3=Client_NoUninstall
-Set4=WinNT_Client_NoUninstall
-Set5=Light_Client
-Set6=Full_Client
-Set7=Docs
-
-[Docs:HKLM:Software\TransarcCorporation\AFS Supplemental Documentation\CurrentVersion]
-Revision=N,0
-PatchLevel=N,%3%4
-(Default)=S,
----Comment---=
-MajorVersion=N,%1
-InstallDateString=S,<INSTALL_DATE>
-PathName=S,<TARGETDIR>\Documentation
-BetaLevel=N,1
-Software Type=S,File System
-MinorVersion=N,%2
-ReleaseType=S,<RELEASE_TYPE>
-VersionString=S,%5
-Description=S,AFS System Administration Documentation
-
-[Full_Client]
----Comment---=
----FileGroup---=
-HKLM0=SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters
-
-[Client:HKLM:Software\TransarcCorporation\AFS Client\CurrentVersion]
-Revision=N,0
-PatchLevel=N,%3%4
-(Default)=S,
----Comment---=
-Title=S,<CLIENT_TITLE>
-MajorVersion=N,%1
-InstallDateString=S,<INSTALL_DATE>
-PathName=S,<TARGETDIR>\Client
-BetaLevel=N,1
-Software Type=S,File System
-MinorVersion=N,%2
-ReleaseType=S,<RELEASE_TYPE>
-VersionString=S,%5
-Description=S,<CLIENT_DESC>
-
-[Client:HKLM:Software\TransarcCorporation\AFS Client]
-(Default)=S,
----Comment---=
-
-[WinNT_Client_NoUninstall:HKLM:SOFTWARE\Microsoft\Windows NT\Current Version\File Manager\AddOns]
----Comment---=
-(Default)=S,
-AFS Client FME=S,<TARGETDIR>\Client\Program\afs_fme.dll
-
-[Client:HKLM:SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider]
----Comment---=
-(Default)=S,
-Class=N,2
-LogonOptions=N,0
-Name=S,TransarcAFSDaemon
-LogonScript=S,<TARGETDIR>\Client\Program\afscreds.exe -:%s -x
-ProviderPath=S,<LOGON_DLL>
-AuthentProviderPath=S,<LOGON_DLL>
-
-[WinNT_Client_NoUninstall]
----Comment---=
----FileGroup---=
-HKLM0=SOFTWARE\Microsoft\Windows NT\CurrentVersion\File Manager\AddOns
-
-[Client:HKCR:FOLDER\shellex\ContextMenuHandlers\AFS Client Shell Extension]
-(Default)=S,{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}
----Comment---=
-
-[General]
-Type=REGISTRYDATA
-Version=1.00.000
-
-[Client:HKLM:Software\TransarcCorporation\AFS Client\%1.%2 %3.%4]
-Revision=N,0
-PatchLevel=N,%3%4
-(Default)=S,
----Comment---=
-Title=S,<CLIENT_TITLE>
-MajorVersion=N,%1
-InstallDateString=S,<INSTALL_DATE>
-PathName=S,<TARGETDIR>\Client
-BetaLevel=N,1
-Software Type=S,File System
-MinorVersion=N,%2
-ReleaseType=S,<RELEASE_TYPE>
-VersionString=S,%5
-Description=S,<CLIENT_DESC>
-
-[Server:HKLM:Software\TransarcCorporation\AFS Server\CurrentVersion]
-Revision=N,0
-PatchLevel=N,%3%4
-(Default)=S,
----Comment---=
-MajorVersion=N,%1
-InstallDateString=S,<INSTALL_DATE>
-PathName=S,<TARGETDIR>\Server
-BetaLevel=N,1
-Software Type=S,File System
-MinorVersion=N,%2
-ReleaseType=S,<RELEASE_TYPE>
-VersionString=S,%5
-Description=S,AFS Server for Windows NT
-
-[Control_Center:HKLM:Software\TransarcCorporation\AFS Control Center\%1.%2 %3.%4]
-Revision=N,0
-PatchLevel=N,%3%4
-(Default)=S,
----Comment---=
-MajorVersion=N,%1
-InstallDateString=S,<INSTALL_DATE>
-PathName=S,<TARGETDIR>\Control Center
-BetaLevel=N,1
-Software Type=S,File System
-MinorVersion=N,%2
-ReleaseType=S,<RELEASE_TYPE>
-VersionString=S,%5
-Description=S,AFS Control Center for Windows NT
-
-[Docs:HKLM:Software\TransarcCorporation\AFS Supplemental Documentation]
-(Default)=S,
----Comment---=
-
-[Client:HKCR:CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}]
-(Default)=S,AFS Client Shell Extension
----Comment---=
+++ /dev/null
-@echo off
-rem Copyright 2000, International Business Machines Corporation and others.
-rem All Rights Reserved.
-rem
-rem This software has been released under the terms of the IBM Public
-rem License. For details, see the LICENSE file in the top-level source
-rem directory or online at http://www.openafs.org/dl/license10.html
-
-rem This file deletes the IS5 dir tree. First it will delete all the files we
-rem know about. Then it will delete the IS5 dirs. For dirs that contain
-rem output files that we don't care about, we deltree them. For all other dirs
-rem we use rmdir, and if IS5 added some file to one of those dirs, it will fail
-rem to delete. We can then look at the dir and see if the file needs to be added
-rem to CML.
-
-rem First delete all the files we know about.
-
-del "Component Definitions\Default.cdf"
-del "Component Definitions\Default.fgl"
-del "File Groups\Default.fdf"
-del "File Groups\GenFileGroups.bat"
-del "File Groups\Server_Program_Files.fgl"
-del "File Groups\Server_Common_Files.fgl"
-del "File Groups\Server_WinDir_Files.fgl"
-del "File Groups\Server_System32_Files.fgl"
-del "File Groups\Client_Program_Files.fgl"
-del "File Groups\Client_Common_Files.fgl"
-del "File Groups\Client_WinDir_Files.fgl"
-del "File Groups\Client_System32_Files.fgl"
-del "File Groups\Client_Afs_Header_Files.fgl"
-del "File Groups\Client_Rx_Header_Files.fgl"
-del "File Groups\Client_Main_Header_Files.fgl"
-del "File Groups\Client_Sample_Files.fgl"
-del "File Groups\Light_Client_Program_Files.fgl"
-del "File Groups\Light_Client_Common_Files.fgl"
-del "File Groups\Light_Client_WinDir_Files.fgl"
-del "File Groups\Light_Client_System32_Files.fgl"
-del "File Groups\Light95_Client_Program_Files.fgl"
-del "File Groups\Light95_Client_Common_Files.fgl"
-del "File Groups\Light95_Client_WinDir_Files.fgl"
-del "File Groups\Light95_Client_System32_Files.fgl"
-del "File Groups\Control_Center_Program_Files.fgl"
-del "File Groups\Control_Center_Common_Files.fgl"
-del "File Groups\Control_Center_WinDir_Files.fgl"
-del "File Groups\Control_Center_System32_Files.fgl"
-del "File Groups\Cmd_Ref_English_Files.fgl"
-del "File Groups\Install_Guide_English_Files.fgl"
-del "File Groups\Release_Notes_English_Files.fgl"
-del "File Groups\Sys_Admin_Guide_English_Files.fgl"
-del "File Groups\Cmd_Ref_Japanese_Files.fgl"
-del "File Groups\Install_Guide_Japanese_Files.fgl"
-del "File Groups\Release_Notes_Japanese_Files.fgl"
-del "File Groups\Sys_Admin_Guide_Japanese_Files.fgl"
-del "File Groups\Cmd_Ref_Korean_Files.fgl"
-del "File Groups\Install_Guide_Korean_Files.fgl"
-del "File Groups\Release_Notes_Korean_Files.fgl"
-del "File Groups\Sys_Admin_Guide_Korean_Files.fgl"
-del "File Groups\Cmd_Ref_Trad_Chinese_Files.fgl"
-del "File Groups\Install_Guide_Trad_Chinese_Files.fgl"
-del "File Groups\Release_Notes_Trad_Chinese_Files.fgl"
-del "File Groups\Sys_Admin_Guide_Trad_Chinese_Files.fgl"
-del "File Groups\Cmd_Ref_Simp_Chinese_Files.fgl"
-del "File Groups\Install_Guide_Simp_Chinese_Files.fgl"
-del "File Groups\Release_Notes_Simp_Chinese_Files.fgl"
-del "File Groups\Sys_Admin_Guide_Simp_Chinese_Files.fgl"
-del "File Groups\Doc_Misc_English_Files.fgl"
-del "File Groups\Doc_Misc_Japanese_Files.fgl"
-del "File Groups\Doc_Misc_Korean_Files.fgl"
-del "File Groups\Doc_Misc_Trad_Chinese_Files.fgl"
-del "File Groups\Doc_Misc_Simp_Chinese_Files.fgl"
-del "File Groups\Doc_Files.fgl"
-del "File Groups\Lang_English_Files.fgl"
-del "File Groups\Lang_Simp_Chinese_Files.fgl"
-del "File Groups\Lang_Trad_Chinese_Files.fgl"
-del "File Groups\Lang_Korean_Files.fgl"
-del "File Groups\Lang_Japanese_Files.fgl"
-del "Media\Transarc AFS\GenDefault.mda.bat"
-del "Registry Entries\Default.rge"
-del "Script Files\setup.rul"
-del "Setup Files\Uncompressed Files\Language Independent\OS Independent\setup.bmp"
-del "Setup Files\Compressed Files\Language Independent\OS Independent\InstallUtils.dll"
-del "Setup Files\Compressed Files\Language Independent\OS Independent\afs_setup_utils_*.dll"
-del "Shell Objects\Default.shl"
-del "String Tables\Default.shl"
-del "String Tables\0009-English\value.shl"
-del "String Tables\0011-Japanese\value.shl"
-del "String Tables\0012-Korean\value.shl"
-del "String Tables\0404-Chinese (Taiwan)\value.shl"
-del "String Tables\0804-Chinese (PRC)\value.shl"
-del "String Tables\0007-German\value.shl"
-del "String Tables\0416-Portuguese (Brazilian)\value.shl"
-del "String Tables\000a-Spanish\value.shl"
-del "Text Substitutions\Build.tsb"
-del "Text Substitutions\Setup.tsb"
-del "File Groups\Cmd_Ref_German_Files.fgl"
-del "File Groups\Install_Guide_German_Files.fgl"
-del "File Groups\Release_Notes_German_Files.fgl"
-del "File Groups\Sys_Admin_Guide_German_Files.fgl"
-del "File Groups\Doc_Misc_German_Files.fgl"
-del "File Groups\Lang_German_Files.fgl"
-del "File Groups\Cmd_Ref_Spanish_Files.fgl"
-del "File Groups\Install_Guide_Spanish_Files.fgl"
-del "File Groups\Release_Notes_Spanish_Files.fgl"
-del "File Groups\Sys_Admin_Guide_Spanish_Files.fgl"
-del "File Groups\Doc_Misc_Spanish_Files.fgl"
-del "File Groups\Lang_Spanish_Files.fgl"
-del "File Groups\Cmd_Ref_Portuguese_Files.fgl"
-del "File Groups\Install_Guide_Portuguese_Files.fgl"
-del "File Groups\Release_Notes_Portuguese_Files.fgl"
-del "File Groups\Sys_Admin_Guide_Portuguese_Files.fgl"
-del "File Groups\Doc_Misc_Portuguese_Files.fgl"
-del "File Groups\Lang_Portuguese_Files.fgl"
-del InstallShield5.ipr
-
-
-rem Now delete the directories.
-
-rmdir /s /q "Setup Files\Compressed Files\0009-English"
-rmdir /s /q "Setup Files\Compressed Files\0011-Japanese"
-rmdir /s /q "Setup Files\Compressed Files\0012-Korean"
-rmdir /s /q "Setup Files\Compressed Files\0404-Chinese (Taiwan)"
-rmdir /s /q "Setup Files\Compressed Files\0804-Chinese (PRC)"
-rmdir /s /q "Setup Files\Compressed Files\0007-German"
-rmdir /s /q "Setup Files\Compressed Files\0416-Portuguese (Brazilian)"
-rmdir /s /q "Setup Files\Compressed Files\000a-Spanish"
-
-rmdir /s /q "Setup Files\Uncompressed Files\0009-English"
-rmdir /s /q "Setup Files\Uncompressed Files\0011-Japanese"
-rmdir /s /q "Setup Files\Uncompressed Files\0012-Korean"
-rmdir /s /q "Setup Files\Uncompressed Files\0404-Chinese (Taiwan)"
-rmdir /s /q "Setup Files\Uncompressed Files\0804-Chinese (PRC)"
-rmdir /s /q "Setup Files\Uncompressed Files\0007-German"
-rmdir /s /q "Setup Files\Uncompressed Files\0416-Portuguese (Brazilian)"
-rmdir /s /q "Setup Files\Uncompressed Files\000a-Spanish"
-
-rmdir "Component Definitions"
-rmdir "File Groups"
-rmdir /s /q "Media\Transarc AFS"
-rmdir Media
-rmdir "Registry Entries"
-rmdir /s /q "Script Files"
-rmdir "Setup Files\Uncompressed Files\Language Independent\OS Independent"
-rmdir "Setup Files\Uncompressed Files\Language Independent"
-rmdir "Setup Files\Uncompressed Files"
-rmdir "Setup Files\Compressed Files\Language Independent\OS Independent"
-rmdir "Setup Files\Compressed Files\Language Independent"
-rmdir "Setup Files\Compressed Files"
-rmdir "Setup Files"
-rmdir "Shell Objects"
-rmdir "String Tables\0009-English"
-rmdir "String Tables\0011-Japanese"
-rmdir "String Tables\0012-Korean"
-rmdir "String Tables\0404-Chinese (Taiwan)"
-rmdir "String Tables\0804-Chinese (PRC)"
-rmdir "String Tables\0007-German"
-rmdir "String Tables\0416-Portuguese (Brazilian)"
-rmdir "String Tables\000a-Spanish"
-rmdir "String Tables"
-rmdir "Text Substitutions"
-
-
-
+++ /dev/null
-@echo off
-rem Copyright 2000, International Business Machines Corporation and others.
-rem All Rights Reserved.
-rem
-rem This software has been released under the terms of the IBM Public
-rem License. For details, see the LICENSE file in the top-level source
-rem directory or online at http://www.openafs.org/dl/license10.html
-
-rem This file copies the IS5 files from the IS5 dirs to the CMl dir.
-
-
-copy "Component Definitions\Default.cdf" .
-copy "Component Definitions\Default.fgl" .
-
-copy "File Groups\Default.fdf" .
-copy "File Groups\GenFileGroups.bat" .
-
-copy "Media\OpenAFS\GenDefault.mda.bat" .
-
-copy "Registry Entries\Default.rge" .
-
-copy "Script Files\setup.rul" .
-
-copy "Setup Files\Uncompressed Files\Language Independent\OS Independent\setup.bmp" .
-
-
-copy "Setup Files\Uncompressed Files\Language Independent\OS Independent\_isuser.dll" .
-
-copy "Shell Objects\Default.shl" .\Default.shell
-
-copy "String Tables\Default.shl" .
-
-copy "String Tables\0009-English\value.shl" lang\en_US
-copy "String Tables\0011-Japanese\value.shl" lang\ja_JP
-copy "String Tables\0012-Korean\value.shl" lang\ko_KR
-copy "String Tables\0404-Chinese (Taiwan)\value.shl" lang\zh_TW
-copy "String Tables\0804-Chinese (PRC)\value.shl" lang\zh_CN
-copy "String Tables\0007-German\value.shl" lang\de_DE
-copy "String Tables\0416-Portuguese (Brazilian)\value.shl" lang\pt_BR
-copy "String Tables\000a-Spanish\value.shl" lang\es_ES
-
-copy "Text Substitutions\Build.tsb" .
-copy "Text Substitutions\Setup.tsb" .
-
+++ /dev/null
-@echo off
-rem Copyright 2000, International Business Machines Corporation and others.
-rem All Rights Reserved.
-rem
-rem This software has been released under the terms of the IBM Public
-rem License. For details, see the LICENSE file in the top-level source
-rem directory or online at http://www.openafs.org/dl/license10.html
-
-rem -------------- default.mda --------------------------------------------
-
-echo [Platforms] > default.mda
-echo key0=0000000000010000 >> default.mda
-echo count=1 >> default.mda
-echo. >> default.mda
-echo [Filter] >> default.mda
-echo LANGUAGEDEFAULT=0009 >> default.mda
-echo. >> default.mda
-echo [GeneralInfo] >> default.mda
-echo MEDIATYPE=CDROM >> default.mda
-echo DATAASFILES=No >> default.mda
-echo BUILDTYPE=Full >> default.mda
-echo BuildLocation=Media\OpenAFS >> default.mda
-echo BREAKBYTOPCOMPONENT=No >> default.mda
-echo REFRESH_DATAFILES=Yes >> default.mda
-echo REFRESH_SPLASH=Yes >> default.mda
-echo BUILDSIZE= >> default.mda
-echo Name=OpenAFS for Windows >> default.mda
-echo REVIEWREPORT=No >> default.mda
-echo REFRESH_IFILES=Yes >> default.mda
-echo PASSWORD= >> default.mda
-echo. >> default.mda
-echo [SetupInfo] >> default.mda
-echo ENABLELANGDLG=Yes >> default.mda
-echo ALTERNATEISDELETENAME= >> default.mda
-echo APPLICATIONNAME=OpenAFS for Windows >> default.mda
-echo HIDESTATUSBAR=No >> default.mda
-echo WIN32SENABLE=No >> default.mda
-echo. >> default.mda
-echo [InstallDateInfo] >> default.mda
-echo TYPE=BUILDTIME >> default.mda
-echo TIME= >> default.mda
-echo DATE= >> default.mda
-echo. >> default.mda
-echo [FileInstallDateInfo] >> default.mda
-echo TYPE=ORIGINAL >> default.mda
-echo TIME= >> default.mda
-echo DATE= >> default.mda
-echo. >> default.mda
-echo [Languages] >> default.mda
-echo key0=0009 >> default.mda
-echo key1=0416 >> default.mda
-echo key2=0804 >> default.mda
-echo key3=0404 >> default.mda
-echo key4=0007 >> default.mda
-echo key5=0011 >> default.mda
-echo key6=0012 >> default.mda
-echo key7=000a >> default.mda
-echo count=8 >> default.mda
-echo. >> default.mda
-echo [TagFileInfo] >> default.mda
-echo PRODUCTCATEGORY=System Tool >> default.mda
-echo APPLICATIONNAME=OpenAFS for Windows >> default.mda
-echo COMPANYNAME=OpenAFS >> default.mda
-echo VERSION=1.00.000 >> default.mda
-echo INFO=http://www.openafs.org >> default.mda
-
+++ /dev/null
-@echo off
-rem Copyright 2000, International Business Machines Corporation and others.
-rem All Rights Reserved.
-rem
-rem This software has been released under the terms of the IBM Public
-rem License. For details, see the LICENSE file in the top-level source
-rem directory or online at http://www.openafs.org/dl/license10.html
-
-set IS5_DEST=%AFSROOT%\DEST
-set IS5_WINNT=%AFSROOT%\src\WINNT
-set IS5_HELP=%AFSROOT%\src\WINNT\doc\help
-set IS5_INCL=%AFSROOT%\DEST\include
-set IS5_DOCROOT=%AFSROOT%\src\WINNT\doc
-
-rem -------------- Client_Program_Files.fgl ----------------------------
-
-echo [TopDir] > Client_Program_Files.fgl
-echo file0=%IS5_DEST%\root.client\usr\vice\etc\afsshare.exe >> Client_Program_Files.fgl
-echo file1=%IS5_DEST%\include\afs\cm_config.h >> Client_Program_Files.fgl
-echo file2=%IS5_DEST%\root.client\usr\vice\etc\libosi.dll >> Client_Program_Files.fgl
-echo file3=%IS5_DEST%\include\afs\kautils.h >> Client_Program_Files.fgl
-echo file4=%IS5_DEST%\root.client\usr\vice\etc\libafsconf.dll >> Client_Program_Files.fgl
-echo file5=%IS5_DEST%\root.client\usr\vice\etc\klog.exe >> Client_Program_Files.fgl
-echo file6=%IS5_DEST%\root.client\usr\vice\etc\tokens.exe >> Client_Program_Files.fgl
-echo file7=%IS5_DEST%\root.client\usr\vice\etc\unlog.exe >> Client_Program_Files.fgl
-echo file8=%IS5_DEST%\root.client\usr\vice\etc\fs.exe >> Client_Program_Files.fgl
-echo file9=%IS5_DEST%\lib\libafsconf.lib >> Client_Program_Files.fgl
-echo file10=%IS5_DEST%\lib\afsauthent.lib >> Client_Program_Files.fgl
-echo file11=%IS5_DEST%\root.client\usr\vice\etc\afscreds.exe >> Client_Program_Files.fgl
-echo file12=%IS5_DEST%\root.client\usr\vice\etc\afs_shl_ext.dll >> Client_Program_Files.fgl
-echo file13=%IS5_DEST%\include\afs\auth.h >> Client_Program_Files.fgl
-echo file14=%IS5_DEST%\root.client\usr\vice\etc\afsd_service.exe >> Client_Program_Files.fgl
-echo file15=%IS5_DEST%\root.client\usr\vice\etc\afslogon.dll >> Client_Program_Files.fgl
-echo file16=%IS5_DEST%\root.client\usr\vice\etc\symlink.exe >> Client_Program_Files.fgl
-echo file17=%IS5_DEST%\bin\kpasswd.exe >> Client_Program_Files.fgl
-echo file18=%IS5_DEST%\root.server\usr\afs\bin\pts.exe >> Client_Program_Files.fgl
-echo file19=%IS5_DEST%\root.server\usr\afs\bin\bos.exe >> Client_Program_Files.fgl
-echo file20=%IS5_DEST%\root.server\usr\afs\bin\kas.exe >> Client_Program_Files.fgl
-echo file21=%IS5_DEST%\root.server\usr\afs\bin\vos.exe >> Client_Program_Files.fgl
-echo file22=%IS5_DEST%\root.server\usr\afs\bin\udebug.exe >> Client_Program_Files.fgl
-echo file23=%IS5_DEST%\bin\translate_et.exe >> Client_Program_Files.fgl
-echo file24=%IS5_DEST%\etc\rxdebug.exe >> Client_Program_Files.fgl
-echo file25=%IS5_DEST%\etc\backup.exe >> Client_Program_Files.fgl
-echo file26=%IS5_DEST%\root.server\usr\afs\bin\ClientUninst.dll >> Client_Program_Files.fgl
-echo. >> Client_Program_Files.fgl
-echo [General] >> Client_Program_Files.fgl
-echo Type=FILELIST >> Client_Program_Files.fgl
-echo Version=1.00.000 >> Client_Program_Files.fgl
-
-
-rem -------------- Client_Common_Files.fgl -----------------------------
-
-echo [TopDir] > Client_Common_Files.fgl
-echo file0=%IS5_DEST%\root.client\usr\vice\etc\afs_config.exe >> Client_Common_Files.fgl
-echo file1=%IS5_DEST%\lib\afsrpc.dll >> Client_Common_Files.fgl
-echo file2=%IS5_DEST%\lib\afsauthent.dll >> Client_Common_Files.fgl
-echo file3=%IS5_DEST%\lib\afspthread.dll >> Client_Common_Files.fgl
-echo file4=%IS5_DEST%\root.server\usr\afs\bin\afsprocmgmt.dll >> Client_Common_Files.fgl
-echo file5=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAppLib.dll >> Client_Common_Files.fgl
-echo file6=%IS5_DEST%\root.server\usr\afs\bin\afsadminutil.dll >> Client_Common_Files.fgl
-echo file7=%IS5_DEST%\root.server\usr\afs\bin\afsclientadmin.dll >> Client_Common_Files.fgl
-echo file8=%IS5_DEST%\root.server\usr\afs\bin\afsvosadmin.dll >> Client_Common_Files.fgl
-echo. >> Client_Common_Files.fgl
-echo [General] >> Client_Common_Files.fgl
-echo Type=FILELIST >> Client_Common_Files.fgl
-echo Version=1.00.000 >> Client_Common_Files.fgl
-
-
-rem -------------- Client_WinDir_Files.fgl -----------------------------
-
-echo [TopDir] > Client_WinDir_Files.fgl
-rem echo file0=%IS5_DEST%\root.client\usr\vice\etc\afsdcell.ini >> Client_WinDir_Files.fgl
-echo. >> Client_WinDir_Files.fgl
-echo [General] >> Client_WinDir_Files.fgl
-echo Type=FILELIST >> Client_WinDir_Files.fgl
-echo Version=1.00.000 >> Client_WinDir_Files.fgl
-
-
-rem -------------- Client_System32_Files.fgl ---------------------------
-
-echo [TopDir] > Client_System32_Files.fgl
-echo file0=%IS5_DEST%\root.client\usr\vice\etc\afs_cpa.cpl >> Client_System32_Files.fgl
-echo file1=%MSVCDIR%\REDIST\Msvcrt.dll >> Client_System32_Files.fgl
-echo file2=%MSVCDIR%\REDIST\Mfc42.dll >> Client_System32_Files.fgl
-echo. >> Client_System32_Files.fgl
-echo [General] >> Client_System32_Files.fgl
-echo Type=FILELIST >> Client_System32_Files.fgl
-echo Version=1.00.000 >> Client_System32_Files.fgl
-
-
-rem -------------- Light_Client_Program_Files.fgl ----------------------
-
-echo [TopDir] > Light_Client_Program_Files.fgl
-echo file0=%IS5_DEST%\root.client\usr\vice\etc\afsshare.exe >> Light_Client_Program_Files.fgl
-echo file1=%IS5_DEST%\include\afs\cm_config.h >> Light_Client_Program_Files.fgl
-echo file2=%IS5_DEST%\root.client\usr\vice\etc\libosi.dll >> Light_Client_Program_Files.fgl
-echo file3=%IS5_DEST%\include\afs\kautils.h >> Light_Client_Program_Files.fgl
-echo file4=%IS5_DEST%\root.client\usr\vice\etc\libafsconf.dll >> Light_Client_Program_Files.fgl
-echo file5=%IS5_DEST%\root.client\usr\vice\etc\klog.exe >> Light_Client_Program_Files.fgl
-echo file6=%IS5_DEST%\root.client\usr\vice\etc\tokens.exe >> Light_Client_Program_Files.fgl
-echo file7=%IS5_DEST%\root.client\usr\vice\etc\unlog.exe >> Light_Client_Program_Files.fgl
-echo file8=%IS5_DEST%\root.client\usr\vice\etc\fs.exe >> Light_Client_Program_Files.fgl
-echo file9=%IS5_DEST%\lib\libafsconf.lib >> Light_Client_Program_Files.fgl
-echo file10=%IS5_DEST%\lib\afsauthent.lib >> Light_Client_Program_Files.fgl
-echo file11=%IS5_DEST%\root.client\usr\vice\etc\afscreds.exe >> Light_Client_Program_Files.fgl
-echo file12=%IS5_DEST%\root.client\usr\vice\etc\afs_shl_ext.dll >> Light_Client_Program_Files.fgl
-echo file13=%IS5_DEST%\root.client\usr\vice\etc\unlog.exe >> Light_Client_Program_Files.fgl
-echo file14=%IS5_DEST%\include\afs\auth.h >> Light_Client_Program_Files.fgl
-echo file15=%IS5_DEST%\root.client\usr\vice\etc\afslog95.dll >> Light_Client_Program_Files.fgl
-echo file16=%IS5_DEST%\root.client\usr\vice\etc\symlink.exe >> Light_Client_Program_Files.fgl
-echo file17=%IS5_DEST%\bin\kpasswd.exe >> Light_Client_Program_Files.fgl
-echo file18=%IS5_DEST%\root.server\usr\afs\bin\pts.exe >> Light_Client_Program_Files.fgl
-echo file19=%IS5_DEST%\root.server\usr\afs\bin\bos.exe >> Light_Client_Program_Files.fgl
-echo file20=%IS5_DEST%\root.server\usr\afs\bin\kas.exe >> Light_Client_Program_Files.fgl
-echo file21=%IS5_DEST%\root.server\usr\afs\bin\vos.exe >> Light_Client_Program_Files.fgl
-echo file22=%IS5_DEST%\root.server\usr\afs\bin\udebug.exe >> Light_Client_Program_Files.fgl
-echo file23=%IS5_DEST%\bin\translate_et.exe >> Light_Client_Program_Files.fgl
-echo file24=%IS5_DEST%\etc\rxdebug.exe >> Light_Client_Program_Files.fgl
-echo file25=%IS5_DEST%\etc\backup.exe >> Light_Client_Program_Files.fgl
-echo file26=%IS5_DEST%\root.server\usr\afs\bin\LightClientUninst.dll >> Light_Client_Program_Files.fgl
-echo. >> Light_Client_Program_Files.fgl
-echo [General] >> Light_Client_Program_Files.fgl
-echo Type=FILELIST >> Light_Client_Program_Files.fgl
-echo Version=1.00.000 >> Light_Client_Program_Files.fgl
-
-
-rem -------------- Light_Client_Common_Files.fgl -----------------------
-
-echo [TopDir] > Light_Client_Common_Files.fgl
-echo file0=%IS5_DEST%\root.client\usr\vice\etc\afs_config.exe >> Light_Client_Common_Files.fgl
-echo file1=%IS5_DEST%\lib\afsrpc.dll >> Light_Client_Common_Files.fgl
-echo file2=%IS5_DEST%\lib\afsauthent.dll >> Light_Client_Common_Files.fgl
-echo file3=%IS5_DEST%\lib\afspthread.dll >> Light_Client_Common_Files.fgl
-echo file4=%IS5_DEST%\root.server\usr\afs\bin\afsprocmgmt.dll >> Light_Client_Common_Files.fgl
-echo file5=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAppLib.dll >> Light_Client_Common_Files.fgl
-echo file6=%IS5_DEST%\root.server\usr\afs\bin\afsadminutil.dll >> Light_Client_Common_Files.fgl
-echo file7=%IS5_DEST%\root.server\usr\afs\bin\afsclientadmin.dll >> Light_Client_Common_Files.fgl
-echo file8=%IS5_DEST%\root.server\usr\afs\bin\afsvosadmin.dll >> Light_Client_Common_Files.fgl
-echo. >> Light_Client_Common_Files.fgl
-echo [General] >> Light_Client_Common_Files.fgl
-echo Type=FILELIST >> Light_Client_Common_Files.fgl
-echo Version=1.00.000 >> Light_Client_Common_Files.fgl
-
-
-rem -------------- Light_Client_WinDir_Files.fgl -----------------------
-
-echo [TopDir] > Light_Client_WinDir_Files.fgl
-rem echo file0=%IS5_DEST%\root.client\usr\vice\etc\afsdcell.ini >> Light_Client_WinDir_Files.fgl
-echo. >> Light_Client_WinDir_Files.fgl
-echo [General] >> Light_Client_WinDir_Files.fgl
-echo Type=FILELIST >> Light_Client_WinDir_Files.fgl
-echo Version=1.00.000 >> Light_Client_WinDir_Files.fgl
-
-
-rem -------------- Light_Client_System32_Files.fgl ---------------------
-
-echo [TopDir] > Light_Client_System32_Files.fgl
-echo file0=%MSVCDIR%\REDIST\Msvcrt.dll >> Light_Client_System32_Files.fgl
-echo file1=%MSVCDIR%\REDIST\Mfc42.dll >> Light_Client_System32_Files.fgl
-echo file2=%IS5_DEST%\root.client\usr\vice\etc\afs_cpa.cpl >> Light_Client_System32_Files.fgl
-echo. >> Light_Client_System32_Files.fgl
-echo [General] >> Light_Client_System32_Files.fgl
-echo Type=FILELIST >> Light_Client_System32_Files.fgl
-echo Version=1.00.000 >> Light_Client_System32_Files.fgl
-
-
-rem -------------- Light95_Client_Program_Files.fgl ----------------------
-
-echo [TopDir] > Light95_Client_Program_Files.fgl
-echo file0=%IS5_DEST%\root.client\usr\vice\etc\libosi.dll >> Light95_Client_Program_Files.fgl
-echo file1=%IS5_DEST%\root.client\usr\vice\etc\libafsconf.dll >> Light95_Client_Program_Files.fgl
-echo file2=%IS5_DEST%\root.client\usr\vice\etc\fs.exe >> Light95_Client_Program_Files.fgl
-echo file3=%IS5_DEST%\root.client\usr\vice\etc\afscreds.exe >> Light95_Client_Program_Files.fgl
-echo file4=%IS5_DEST%\root.client\usr\vice\etc\afs_shl_ext.dll >> Light95_Client_Program_Files.fgl
-echo file5=%IS5_DEST%\root.client\usr\vice\etc\afslog95.dll >> Light95_Client_Program_Files.fgl
-echo file6=%IS5_DEST%\root.client\usr\vice\etc\symlink.exe >> Light95_Client_Program_Files.fgl
-echo file7=%IS5_DEST%\root.server\usr\afs\bin\LightClientUninst.dll >> Light95_Client_Program_Files.fgl
-echo file8=%IS5_DEST%\bin\kpasswd.exe >> Light95_Client_Program_Files.fgl
-echo. >> Light95_Client_Program_Files.fgl
-echo [General] >> Light95_Client_Program_Files.fgl
-echo Type=FILELIST >> Light95_Client_Program_Files.fgl
-echo Version=1.00.000 >> Light95_Client_Program_Files.fgl
-
-
-rem -------------- Light95_Client_Common_Files.fgl -----------------------
-
-echo [TopDir] > Light95_Client_Common_Files.fgl
-echo file0=%IS5_DEST%\root.client\usr\vice\etc\afs_config.exe >> Light95_Client_Common_Files.fgl
-echo file1=%IS5_DEST%\lib\afsrpc.dll >> Light95_Client_Common_Files.fgl
-echo file2=%IS5_DEST%\lib\afsauthent.dll >> Light95_Client_Common_Files.fgl
-echo file3=%IS5_DEST%\lib\win95\afspthread.dll >> Light95_Client_Common_Files.fgl
-echo file4=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAppLib.dll >> Light95_Client_Common_Files.fgl
-echo file5=%IS5_DEST%\root.server\usr\afs\bin\afsadminutil.dll >> Light95_Client_Common_Files.fgl
-echo file6=%IS5_DEST%\root.server\usr\afs\bin\afsclientadmin.dll >> Light95_Client_Common_Files.fgl
-echo. >> Light95_Client_Common_Files.fgl
-echo [General] >> Light95_Client_Common_Files.fgl
-echo Type=FILELIST >> Light95_Client_Common_Files.fgl
-echo Version=1.00.000 >> Light95_Client_Common_Files.fgl
-
-
-rem -------------- Light95_Client_WinDir_Files.fgl -----------------------
-
-echo [TopDir] > Light95_Client_WinDir_Files.fgl
-rem echo file0=%IS5_DEST%\root.client\usr\vice\etc\afsdcell.ini >> Light95_Client_WinDir_Files.fgl
-echo. >> Light95_Client_WinDir_Files.fgl
-echo [General] >> Light95_Client_WinDir_Files.fgl
-echo Type=FILELIST >> Light95_Client_WinDir_Files.fgl
-echo Version=1.00.000 >> Light95_Client_WinDir_Files.fgl
-
-
-rem -------------- Light95_Client_System32_Files.fgl ---------------------
-
-echo [TopDir] > Light95_Client_System32_Files.fgl
-echo file0=%MSVCDIR%\REDIST\Msvcrt.dll >> Light95_Client_System32_Files.fgl
-echo file1=%MSVCDIR%\REDIST\Mfc42.dll >> Light95_Client_System32_Files.fgl
-echo file2=%IS5_DEST%\root.client\usr\vice\etc\afs_cpa.cpl >> Light95_Client_System32_Files.fgl
-echo. >> Light95_Client_System32_Files.fgl
-echo [General] >> Light95_Client_System32_Files.fgl
-echo Type=FILELIST >> Light95_Client_System32_Files.fgl
-echo Version=1.00.000 >> Light95_Client_System32_Files.fgl
-
-
-rem -------------- Server_Program_Files.fgl ----------------------------
-
-echo [TopDir] > Server_Program_Files.fgl
-echo file0=%IS5_DEST%\root.server\usr\afs\bin\vlserver.exe >> Server_Program_Files.fgl
-echo file1=%IS5_DEST%\root.server\usr\afs\bin\volinfo.exe >> Server_Program_Files.fgl
-echo file2=%IS5_DEST%\root.server\usr\afs\bin\volserver.exe >> Server_Program_Files.fgl
-echo file3=%IS5_DEST%\root.server\usr\afs\bin\afskill.exe >> Server_Program_Files.fgl
-echo file4=%IS5_DEST%\root.server\usr\afs\bin\afssvrcfg.exe >> Server_Program_Files.fgl
-echo file5=%IS5_DEST%\root.server\usr\afs\bin\bosctlsvc.exe >> Server_Program_Files.fgl
-echo file6=%IS5_DEST%\root.server\usr\afs\bin\bosserver.exe >> Server_Program_Files.fgl
-echo file7=%IS5_DEST%\root.server\usr\afs\bin\buserver.exe >> Server_Program_Files.fgl
-echo file8=%IS5_DEST%\root.server\usr\afs\bin\fileserver.exe >> Server_Program_Files.fgl
-echo file9=%IS5_DEST%\etc\fms.exe >> Server_Program_Files.fgl
-echo file10=%IS5_DEST%\etc\butc.exe >> Server_Program_Files.fgl
-echo file11=%IS5_DEST%\root.server\usr\afs\bin\kaserver.exe >> Server_Program_Files.fgl
-echo file12=%IS5_DEST%\root.server\usr\afs\bin\ptserver.exe >> Server_Program_Files.fgl
-echo file13=%IS5_DEST%\root.server\usr\afs\bin\salvager.exe >> Server_Program_Files.fgl
-echo file14=%IS5_DEST%\root.server\usr\afs\bin\upclient.exe >> Server_Program_Files.fgl
-echo file15=%IS5_DEST%\root.server\usr\afs\bin\upserver.exe >> Server_Program_Files.fgl
-echo file16=%IS5_DEST%\root.server\usr\afs\bin\ServerUninst.dll >> Server_Program_Files.fgl
-echo. >> Server_Program_Files.fgl
-echo [General] >> Server_Program_Files.fgl
-echo Type=FILELIST >> Server_Program_Files.fgl
-echo Version=1.00.000 >> Server_Program_Files.fgl
-
-
-rem -------------- Server_Common_Files.fgl -----------------------------
-
-echo [TopDir] > Server_Common_Files.fgl
-echo file0=%IS5_DEST%\root.server\usr\afs\bin\afsbosadmin.dll >> Server_Common_Files.fgl
-echo file1=%IS5_DEST%\root.server\usr\afs\bin\afscfgadmin.dll >> Server_Common_Files.fgl
-echo file2=%IS5_DEST%\root.server\usr\afs\bin\afsclientadmin.dll >> Server_Common_Files.fgl
-echo file3=%IS5_DEST%\root.server\usr\afs\bin\afskasadmin.dll >> Server_Common_Files.fgl
-echo file4=%IS5_DEST%\root.server\usr\afs\bin\afsptsadmin.dll >> Server_Common_Files.fgl
-echo file5=%IS5_DEST%\root.server\usr\afs\bin\afsvosadmin.dll >> Server_Common_Files.fgl
-echo file6=%IS5_DEST%\root.server\usr\afs\bin\afsadminutil.dll >> Server_Common_Files.fgl
-echo file7=%IS5_DEST%\lib\afsrpc.dll >> Server_Common_Files.fgl
-echo file8=%IS5_DEST%\lib\afsauthent.dll >> Server_Common_Files.fgl
-echo file9=%IS5_DEST%\lib\afspthread.dll >> Server_Common_Files.fgl
-echo file10=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAppLib.dll >> Server_Common_Files.fgl
-echo file11=%IS5_DEST%\root.server\usr\afs\bin\afsprocmgmt.dll >> Server_Common_Files.fgl
-echo. >> Server_Common_Files.fgl
-echo [General] >> Server_Common_Files.fgl
-echo Type=FILELIST >> Server_Common_Files.fgl
-echo Version=1.00.000 >> Server_Common_Files.fgl
-
-
-rem -------------- Server_WinDir_Files.fgl -----------------------------
-
-echo [TopDir] > Server_WinDir_Files.fgl
-echo. >> Server_WinDir_Files.fgl
-echo [General] >> Server_WinDir_Files.fgl
-echo Type=FILELIST >> Server_WinDir_Files.fgl
-echo Version=1.00.000 >> Server_WinDir_Files.fgl
-
-
-rem -------------- Server_System32_Files.fgl ---------------------------
-
-echo [TopDir] > Server_System32_Files.fgl
-echo file0=%IS5_DEST%\root.server\usr\afs\bin\afsserver.cpl >> Server_System32_Files.fgl
-echo file1=%MSVCDIR%\REDIST\Msvcrt.dll >> Server_System32_Files.fgl
-echo. >> Server_System32_Files.fgl
-echo [General] >> Server_System32_Files.fgl
-echo Type=FILELIST >> Server_System32_Files.fgl
-echo Version=1.00.000 >> Server_System32_Files.fgl
-
-
-rem -------------- Control_Center_Program_Files.fgl --------------------
-
-echo [TopDir] > Control_Center_Program_Files.fgl
-echo file0=%IS5_DEST%\root.server\usr\afs\bin\TaAfsServerManager.exe >> Control_Center_Program_Files.fgl
-echo file1=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAdmSvr.exe >> Control_Center_Program_Files.fgl
-echo file2=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAccountManager.exe >> Control_Center_Program_Files.fgl
-echo file3=%IS5_DEST%\root.server\usr\afs\bin\CCUninst.dll >> Control_Center_Program_Files.fgl
-echo. >> Control_Center_Program_Files.fgl
-echo [General] >> Control_Center_Program_Files.fgl
-echo Type=FILELIST >> Control_Center_Program_Files.fgl
-echo Version=1.00.000 >> Control_Center_Program_Files.fgl
-
-
-rem -------------- Control_Center_Common_Files.fgl ---------------------
-
-echo [TopDir] > Control_Center_Common_Files.fgl
-echo file0=%IS5_DEST%\root.server\usr\afs\bin\afsbosadmin.dll >> Control_Center_Common_Files.fgl
-echo file1=%IS5_DEST%\root.server\usr\afs\bin\afscfgadmin.dll >> Control_Center_Common_Files.fgl
-echo file2=%IS5_DEST%\root.server\usr\afs\bin\afsclientadmin.dll >> Control_Center_Common_Files.fgl
-echo file3=%IS5_DEST%\root.server\usr\afs\bin\afskasadmin.dll >> Control_Center_Common_Files.fgl
-echo file4=%IS5_DEST%\root.server\usr\afs\bin\afsptsadmin.dll >> Control_Center_Common_Files.fgl
-echo file5=%IS5_DEST%\root.server\usr\afs\bin\afsvosadmin.dll >> Control_Center_Common_Files.fgl
-echo file6=%IS5_DEST%\root.server\usr\afs\bin\afsadminutil.dll >> Control_Center_Common_Files.fgl
-echo file7=%IS5_DEST%\lib\afsrpc.dll >> Control_Center_Common_Files.fgl
-echo file8=%IS5_DEST%\lib\afsauthent.dll >> Control_Center_Common_Files.fgl
-echo file9=%IS5_DEST%\lib\afspthread.dll >> Control_Center_Common_Files.fgl
-echo file10=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAppLib.dll >> Control_Center_Common_Files.fgl
-echo file11=%IS5_DEST%\root.client\usr\vice\etc\afs_config.exe >> Control_Center_Common_Files.fgl
-echo. >> Control_Center_Common_Files.fgl
-echo [General] >> Control_Center_Common_Files.fgl
-echo Type=FILELIST >> Control_Center_Common_Files.fgl
-echo Version=1.00.000 >> Control_Center_Common_Files.fgl
-
-
-rem -------------- Control_Center_WinDir_Files.fgl ---------------------
-
-echo [TopDir] > Control_Center_WinDir_Files.fgl
-rem echo file0=%IS5_DEST%\root.client\usr\vice\etc\afsdcell.ini >> Control_Center_Windir_Files.fgl
-echo. >> Control_Center_WinDir_Files.fgl
-echo [General] >> Control_Center_WinDir_Files.fgl
-echo Type=FILELIST >> Control_Center_WinDir_Files.fgl
-echo Version=1.00.000 >> Control_Center_WinDir_Files.fgl
-
-
-rem -------------- Control_Center_System32_Files.fgl--------------------
-
-echo [TopDir] > Control_Center_System32_Files.fgl
-echo file0=%IS5_DEST%\root.client\usr\vice\etc\afs_cpa.cpl >> Control_Center_System32_Files.fgl
-echo file1=%MSVCDIR%\REDIST\Msvcrt.dll >> Control_Center_System32_Files.fgl
-echo. >> Control_Center_System32_Files.fgl
-echo [General] >> Control_Center_System32_Files.fgl
-echo Type=FILELIST >> Control_Center_System32_Files.fgl
-echo Version=1.00.000 >> Control_Center_System32_Files.fgl
-
-
-rem -------------- Generate the Release Notes file groups ---------------
-
-rem English
-set FILEGROUP=Release_Notes_English_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\en_US
-call :Generate_Release_Notes_File_Group
-
-rem Japanese
-set FILEGROUP=Release_Notes_Japanese_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\ja_JP
-call :Generate_Release_Notes_File_Group
-
-rem Korean
-set FILEGROUP=Release_Notes_Korean_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\ko_KR
-call :Generate_Release_Notes_File_Group
-
-rem Trad_Chinese
-set FILEGROUP=Release_Notes_Trad_Chinese_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\zh_TW
-call :Generate_Release_Notes_File_Group
-
-rem Simp_Chinese
-set FILEGROUP=Release_Notes_Simp_Chinese_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\zh_CN
-call :Generate_Release_Notes_File_Group
-
-rem German
-set FILEGROUP=Release_Notes_German_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\de_DE
-call :Generate_Empty_File_Group
-
-rem Spanish
-set FILEGROUP=Release_Notes_Spanish_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\es_ES
-call :Generate_Empty_File_Group
-
-rem Portuguese
-set FILEGROUP=Release_Notes_Portuguese_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\pt_BR
-call :Generate_Release_Notes_File_Group
-
-goto Install_Guide_Files
-
-:Generate_Release_Notes_File_Group
-echo [TopDir] > %FILEGROUP%
-echo file0=%IS5_DOC%\README.txt >> %FILEGROUP%
-echo file1=%IS5_DOC%\html\ReleaseNotes\awrns000.htm >> %FILEGROUP%
-echo file2=%IS5_DOC%\html\ReleaseNotes\awrns002.htm >> %FILEGROUP%
-echo file3=%IS5_DOC%\html\ReleaseNotes\awrns003.htm >> %FILEGROUP%
-echo file4=%IS5_DOC%\html\ReleaseNotes\awrns004.htm >> %FILEGROUP%
-echo file5=%IS5_DOC%\html\ReleaseNotes\awrns005.htm >> %FILEGROUP%
-echo file6=%IS5_DOC%\html\ReleaseNotes\awrns006.htm >> %FILEGROUP%
-echo file7=%IS5_DOC%\html\ReleaseNotes\awrns007.htm >> %FILEGROUP%
-echo. >> %FILEGROUP%
-echo [General] >> %FILEGROUP%
-echo Type=FILELIST >> %FILEGROUP%
-echo Version=1.00.000 >> %FILEGROUP%
-goto :EOF
-
-:Generate_Empty_File_Group
-echo [TopDir] > %FILEGROUP%
-echo. >> %FILEGROUP%
-echo [General] >> %FILEGROUP%
-echo Type=FILELIST >> %FILEGROUP%
-echo Version=1.00.000 >> %FILEGROUP%
-goto :EOF
-
-
-rem -------------- Generate the Install Guide file groups ---------------
-
-:Install_Guide_Files
-
-rem English
-set FILEGROUP=Install_Guide_English_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\en_US\Html
-call :Generate_Install_Guide_File_Group
-
-rem Japanese
-set FILEGROUP=Install_Guide_Japanese_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\ja_JP\Html
-call :Generate_Install_Guide_File_Group
-
-rem Korean
-set FILEGROUP=Install_Guide_Korean_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\ko_KR\Html
-call :Generate_Install_Guide_File_Group
-
-rem Trad_Chinese
-set FILEGROUP=Install_Guide_Trad_Chinese_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\zh_TW\Html
-call :Generate_Install_Guide_File_Group
-
-rem Simp_Chinese
-set FILEGROUP=Install_Guide_Simp_Chinese_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\zh_CN\Html
-call :Generate_Install_Guide_File_Group
-
-rem German
-set FILEGROUP=Install_Guide_German_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\de_DE\Html
-call :Generate_Install_Guide_File_Group
-
-rem Spanish
-set FILEGROUP=Install_Guide_Spanish_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\es_ES\Html
-call :Generate_Install_Guide_File_Group
-
-rem Portuguese
-set FILEGROUP=Install_Guide_Portuguese_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\pt_BR\Html
-call :Generate_Install_Guide_File_Group
-
-goto Sys_Admin_Guide_Files
-
-:Generate_Install_Guide_File_Group
-echo [TopDir] > %FILEGROUP%
-echo file0=%IS5_DOC%\InstallGd\awqbg000.htm >> %FILEGROUP%
-echo file1=%IS5_DOC%\InstallGd\awqbg002.htm >> %FILEGROUP%
-echo file2=%IS5_DOC%\InstallGd\awqbg003.htm >> %FILEGROUP%
-echo file3=%IS5_DOC%\InstallGd\awqbg004.htm >> %FILEGROUP%
-echo. >> %FILEGROUP%
-echo [General] >> %FILEGROUP%
-echo Type=FILELIST >> %FILEGROUP%
-echo Version=1.00.000 >> %FILEGROUP%
-goto :EOF
-
-
-rem -------------- Generate the Sys Admin Guide file groups -------------
-
-:Sys_Admin_Guide_Files
-
-rem English
-set FILEGROUP=Sys_Admin_Guide_English_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\en_US\Html
-call :Generate_Sys_Admin_Guide_File_Group
-
-rem Japanese
-set FILEGROUP=Sys_Admin_Guide_Japanese_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\ja_JP\Html
-call :Generate_Sys_Admin_Guide_File_Group
-
-rem Korean
-set FILEGROUP=Sys_Admin_Guide_Korean_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\ko_KR\Html
-call :Generate_Sys_Admin_Guide_File_Group
-
-rem Trad_Chinese
-set FILEGROUP=Sys_Admin_Guide_Trad_Chinese_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\zh_TW\Html
-call :Generate_Empty_File_Group
-
-rem Simp_Chinese
-set FILEGROUP=Sys_Admin_Guide_Simp_Chinese_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\zh_CN\Html
-call :Generate_Empty_File_Group
-
-rem German
-set FILEGROUP=Sys_Admin_Guide_German_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\de_DE\Html
-call :Generate_Empty_File_Group
-
-rem Spanish
-set FILEGROUP=Sys_Admin_Guide_Spanish_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\es_ES\Html
-call :Generate_Empty_File_Group
-
-rem Portuguese
-set FILEGROUP=Sys_Admin_Guide_Portuguese_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\pt_BR\Html
-call :Generate_Empty_File_Group
-
-goto Cmd_Ref_Files
-
-:Generate_Sys_Admin_Guide_File_Group
-echo [TopDir] > %FILEGROUP%
-echo file0=%IS5_DOC%\SysAdminGd\auagd000.htm >> %FILEGROUP%
-echo file1=%IS5_DOC%\SysAdminGd\auagd002.htm >> %FILEGROUP%
-echo file2=%IS5_DOC%\SysAdminGd\auagd003.htm >> %FILEGROUP%
-echo file3=%IS5_DOC%\SysAdminGd\auagd004.htm >> %FILEGROUP%
-echo file4=%IS5_DOC%\SysAdminGd\auagd005.htm >> %FILEGROUP%
-echo file5=%IS5_DOC%\SysAdminGd\auagd006.htm >> %FILEGROUP%
-echo file6=%IS5_DOC%\SysAdminGd\auagd007.htm >> %FILEGROUP%
-echo file7=%IS5_DOC%\SysAdminGd\auagd008.htm >> %FILEGROUP%
-echo file8=%IS5_DOC%\SysAdminGd\auagd009.htm >> %FILEGROUP%
-echo file9=%IS5_DOC%\SysAdminGd\auagd010.htm >> %FILEGROUP%
-echo file10=%IS5_DOC%\SysAdminGd\auagd011.htm >> %FILEGROUP%
-echo file11=%IS5_DOC%\SysAdminGd\auagd012.htm >> %FILEGROUP%
-echo file12=%IS5_DOC%\SysAdminGd\auagd013.htm >> %FILEGROUP%
-echo file13=%IS5_DOC%\SysAdminGd\auagd014.htm >> %FILEGROUP%
-echo file14=%IS5_DOC%\SysAdminGd\auagd015.htm >> %FILEGROUP%
-echo file15=%IS5_DOC%\SysAdminGd\auagd016.htm >> %FILEGROUP%
-echo file16=%IS5_DOC%\SysAdminGd\auagd017.htm >> %FILEGROUP%
-echo file17=%IS5_DOC%\SysAdminGd\auagd018.htm >> %FILEGROUP%
-echo file18=%IS5_DOC%\SysAdminGd\auagd019.htm >> %FILEGROUP%
-echo file19=%IS5_DOC%\SysAdminGd\auagd020.htm >> %FILEGROUP%
-echo file20=%IS5_DOC%\SysAdminGd\auagd021.htm >> %FILEGROUP%
-echo file21=%IS5_DOC%\SysAdminGd\auagd022.htm >> %FILEGROUP%
-echo file22=%IS5_DOC%\SysAdminGd\auagd023.htm >> %FILEGROUP%
-echo file23=%IS5_DOC%\SysAdminGd\auagd024.htm >> %FILEGROUP%
-echo file24=%IS5_DOC%\SysAdminGd\auagd025.htm >> %FILEGROUP%
-echo file25=%IS5_DOC%\SysAdminGd\auagd026.htm >> %FILEGROUP%
-echo file26=%IS5_DOC%\SysAdminGd\vnode.gif >> %FILEGROUP%
-echo file27=%IS5_DOC%\SysAdminGd\fserver1.gif >> %FILEGROUP%
-echo file28=%IS5_DOC%\SysAdminGd\fserver2.gif >> %FILEGROUP%
-echo file29=%IS5_DOC%\SysAdminGd\overview.gif >> %FILEGROUP%
-echo file30=%IS5_DOC%\SysAdminGd\scout1.gif >> %FILEGROUP%
-echo file31=%IS5_DOC%\SysAdminGd\scout2.gif >> %FILEGROUP%
-echo file32=%IS5_DOC%\SysAdminGd\scout3.gif >> %FILEGROUP%
-echo file33=%IS5_DOC%\SysAdminGd\scout4.gif >> %FILEGROUP%
-echo file34=%IS5_DOC%\SysAdminGd\cachmgr.gif >> %FILEGROUP%
-echo. >> %FILEGROUP%
-echo [General] >> %FILEGROUP%
-echo Type=FILELIST >> %FILEGROUP%
-echo Version=1.00.000 >> %FILEGROUP%
-goto :EOF
-
-rem -------------- Generate the Cmd Ref file groups ---------------------
-
-:Cmd_Ref_Files
-
-rem English
-set FILEGROUP=Cmd_Ref_English_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\en_US\Html
-call :Generate_Cmd_Ref_File_Group
-
-rem Japanese
-set FILEGROUP=Cmd_Ref_Japanese_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\ja_JP\Html
-call :Generate_Cmd_Ref_File_Group
-
-rem Korean
-set FILEGROUP=Cmd_Ref_Korean_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\ko_KR\Html
-call :Generate_Empty_File_Group
-
-rem Trad_Chinese
-set FILEGROUP=Cmd_Ref_Trad_Chinese_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\zh_TW\Html
-call :Generate_Empty_File_Group
-
-rem Simp_Chinese
-set FILEGROUP=Cmd_Ref_Simp_Chinese_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\zh_CN\Html
-call :Generate_Empty_File_Group
-
-rem German
-set FILEGROUP=Cmd_Ref_German_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\de_DE\Html
-call :Generate_Empty_File_Group
-
-rem Spanish
-set FILEGROUP=Cmd_Ref_Spanish_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\es_ES\Html
-call :Generate_Empty_File_Group
-
-rem Portuguese
-set FILEGROUP=Cmd_Ref_Portuguese_Files.fgl
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\pt_BR\Html
-call :Generate_Empty_File_Group
-
-goto Doc_Misc_Files
-
-:Generate_Cmd_Ref_File_Group
-echo [TopDir] > %FILEGROUP%
-echo file0=%IS5_DOC%\CmdRef\auarf000.htm >> %FILEGROUP%
-echo file1=%IS5_DOC%\CmdRef\auarf002.htm >> %FILEGROUP%
-echo file2=%IS5_DOC%\CmdRef\auarf003.htm >> %FILEGROUP%
-echo file3=%IS5_DOC%\CmdRef\auarf004.htm >> %FILEGROUP%
-echo file4=%IS5_DOC%\CmdRef\auarf005.htm >> %FILEGROUP%
-echo file5=%IS5_DOC%\CmdRef\auarf006.htm >> %FILEGROUP%
-echo file6=%IS5_DOC%\CmdRef\auarf007.htm >> %FILEGROUP%
-echo file7=%IS5_DOC%\CmdRef\auarf008.htm >> %FILEGROUP%
-echo file8=%IS5_DOC%\CmdRef\auarf009.htm >> %FILEGROUP%
-echo file9=%IS5_DOC%\CmdRef\auarf010.htm >> %FILEGROUP%
-echo file10=%IS5_DOC%\CmdRef\auarf011.htm >> %FILEGROUP%
-echo file11=%IS5_DOC%\CmdRef\auarf012.htm >> %FILEGROUP%
-echo file12=%IS5_DOC%\CmdRef\auarf013.htm >> %FILEGROUP%
-echo file13=%IS5_DOC%\CmdRef\auarf014.htm >> %FILEGROUP%
-echo file14=%IS5_DOC%\CmdRef\auarf015.htm >> %FILEGROUP%
-echo file15=%IS5_DOC%\CmdRef\auarf016.htm >> %FILEGROUP%
-echo file16=%IS5_DOC%\CmdRef\auarf017.htm >> %FILEGROUP%
-echo file17=%IS5_DOC%\CmdRef\auarf018.htm >> %FILEGROUP%
-echo file18=%IS5_DOC%\CmdRef\auarf019.htm >> %FILEGROUP%
-echo file19=%IS5_DOC%\CmdRef\auarf020.htm >> %FILEGROUP%
-echo file20=%IS5_DOC%\CmdRef\auarf021.htm >> %FILEGROUP%
-echo file21=%IS5_DOC%\CmdRef\auarf022.htm >> %FILEGROUP%
-echo file22=%IS5_DOC%\CmdRef\auarf023.htm >> %FILEGROUP%
-echo file23=%IS5_DOC%\CmdRef\auarf024.htm >> %FILEGROUP%
-echo file24=%IS5_DOC%\CmdRef\auarf025.htm >> %FILEGROUP%
-echo file25=%IS5_DOC%\CmdRef\auarf026.htm >> %FILEGROUP%
-echo file26=%IS5_DOC%\CmdRef\auarf027.htm >> %FILEGROUP%
-echo file27=%IS5_DOC%\CmdRef\auarf028.htm >> %FILEGROUP%
-echo file28=%IS5_DOC%\CmdRef\auarf029.htm >> %FILEGROUP%
-echo file29=%IS5_DOC%\CmdRef\auarf030.htm >> %FILEGROUP%
-echo file30=%IS5_DOC%\CmdRef\auarf031.htm >> %FILEGROUP%
-echo file31=%IS5_DOC%\CmdRef\auarf032.htm >> %FILEGROUP%
-echo file32=%IS5_DOC%\CmdRef\auarf033.htm >> %FILEGROUP%
-echo file33=%IS5_DOC%\CmdRef\auarf034.htm >> %FILEGROUP%
-echo file34=%IS5_DOC%\CmdRef\auarf035.htm >> %FILEGROUP%
-echo file35=%IS5_DOC%\CmdRef\auarf036.htm >> %FILEGROUP%
-echo file36=%IS5_DOC%\CmdRef\auarf037.htm >> %FILEGROUP%
-echo file37=%IS5_DOC%\CmdRef\auarf038.htm >> %FILEGROUP%
-echo file38=%IS5_DOC%\CmdRef\auarf039.htm >> %FILEGROUP%
-echo file39=%IS5_DOC%\CmdRef\auarf040.htm >> %FILEGROUP%
-echo file40=%IS5_DOC%\CmdRef\auarf041.htm >> %FILEGROUP%
-echo file41=%IS5_DOC%\CmdRef\auarf042.htm >> %FILEGROUP%
-echo file42=%IS5_DOC%\CmdRef\auarf043.htm >> %FILEGROUP%
-echo file43=%IS5_DOC%\CmdRef\auarf044.htm >> %FILEGROUP%
-echo file44=%IS5_DOC%\CmdRef\auarf045.htm >> %FILEGROUP%
-echo file45=%IS5_DOC%\CmdRef\auarf046.htm >> %FILEGROUP%
-echo file46=%IS5_DOC%\CmdRef\auarf047.htm >> %FILEGROUP%
-echo file47=%IS5_DOC%\CmdRef\auarf048.htm >> %FILEGROUP%
-echo file48=%IS5_DOC%\CmdRef\auarf049.htm >> %FILEGROUP%
-echo file49=%IS5_DOC%\CmdRef\auarf050.htm >> %FILEGROUP%
-echo file50=%IS5_DOC%\CmdRef\auarf051.htm >> %FILEGROUP%
-echo file51=%IS5_DOC%\CmdRef\auarf052.htm >> %FILEGROUP%
-echo file52=%IS5_DOC%\CmdRef\auarf053.htm >> %FILEGROUP%
-echo file53=%IS5_DOC%\CmdRef\auarf054.htm >> %FILEGROUP%
-echo file54=%IS5_DOC%\CmdRef\auarf055.htm >> %FILEGROUP%
-echo file55=%IS5_DOC%\CmdRef\auarf056.htm >> %FILEGROUP%
-echo file56=%IS5_DOC%\CmdRef\auarf057.htm >> %FILEGROUP%
-echo file57=%IS5_DOC%\CmdRef\auarf058.htm >> %FILEGROUP%
-echo file58=%IS5_DOC%\CmdRef\auarf059.htm >> %FILEGROUP%
-echo file59=%IS5_DOC%\CmdRef\auarf060.htm >> %FILEGROUP%
-echo file60=%IS5_DOC%\CmdRef\auarf061.htm >> %FILEGROUP%
-echo file61=%IS5_DOC%\CmdRef\auarf062.htm >> %FILEGROUP%
-echo file62=%IS5_DOC%\CmdRef\auarf063.htm >> %FILEGROUP%
-echo file63=%IS5_DOC%\CmdRef\auarf064.htm >> %FILEGROUP%
-echo file64=%IS5_DOC%\CmdRef\auarf065.htm >> %FILEGROUP%
-echo file65=%IS5_DOC%\CmdRef\auarf066.htm >> %FILEGROUP%
-echo file66=%IS5_DOC%\CmdRef\auarf067.htm >> %FILEGROUP%
-echo file67=%IS5_DOC%\CmdRef\auarf068.htm >> %FILEGROUP%
-echo file68=%IS5_DOC%\CmdRef\auarf069.htm >> %FILEGROUP%
-echo file69=%IS5_DOC%\CmdRef\auarf070.htm >> %FILEGROUP%
-echo file70=%IS5_DOC%\CmdRef\auarf071.htm >> %FILEGROUP%
-echo file71=%IS5_DOC%\CmdRef\auarf072.htm >> %FILEGROUP%
-echo file72=%IS5_DOC%\CmdRef\auarf073.htm >> %FILEGROUP%
-echo file73=%IS5_DOC%\CmdRef\auarf074.htm >> %FILEGROUP%
-echo file74=%IS5_DOC%\CmdRef\auarf075.htm >> %FILEGROUP%
-echo file75=%IS5_DOC%\CmdRef\auarf076.htm >> %FILEGROUP%
-echo file76=%IS5_DOC%\CmdRef\auarf077.htm >> %FILEGROUP%
-echo file77=%IS5_DOC%\CmdRef\auarf078.htm >> %FILEGROUP%
-echo file78=%IS5_DOC%\CmdRef\auarf079.htm >> %FILEGROUP%
-echo file79=%IS5_DOC%\CmdRef\auarf080.htm >> %FILEGROUP%
-echo file80=%IS5_DOC%\CmdRef\auarf081.htm >> %FILEGROUP%
-echo file81=%IS5_DOC%\CmdRef\auarf082.htm >> %FILEGROUP%
-echo file82=%IS5_DOC%\CmdRef\auarf083.htm >> %FILEGROUP%
-echo file83=%IS5_DOC%\CmdRef\auarf084.htm >> %FILEGROUP%
-echo file84=%IS5_DOC%\CmdRef\auarf085.htm >> %FILEGROUP%
-echo file85=%IS5_DOC%\CmdRef\auarf086.htm >> %FILEGROUP%
-echo file86=%IS5_DOC%\CmdRef\auarf087.htm >> %FILEGROUP%
-echo file87=%IS5_DOC%\CmdRef\auarf088.htm >> %FILEGROUP%
-echo file88=%IS5_DOC%\CmdRef\auarf089.htm >> %FILEGROUP%
-echo file89=%IS5_DOC%\CmdRef\auarf090.htm >> %FILEGROUP%
-echo file90=%IS5_DOC%\CmdRef\auarf091.htm >> %FILEGROUP%
-echo file91=%IS5_DOC%\CmdRef\auarf092.htm >> %FILEGROUP%
-echo file92=%IS5_DOC%\CmdRef\auarf093.htm >> %FILEGROUP%
-echo file93=%IS5_DOC%\CmdRef\auarf094.htm >> %FILEGROUP%
-echo file94=%IS5_DOC%\CmdRef\auarf095.htm >> %FILEGROUP%
-echo file95=%IS5_DOC%\CmdRef\auarf096.htm >> %FILEGROUP%
-echo file96=%IS5_DOC%\CmdRef\auarf097.htm >> %FILEGROUP%
-echo file97=%IS5_DOC%\CmdRef\auarf098.htm >> %FILEGROUP%
-echo file98=%IS5_DOC%\CmdRef\auarf099.htm >> %FILEGROUP%
-echo file99=%IS5_DOC%\CmdRef\auarf100.htm >> %FILEGROUP%
-echo file100=%IS5_DOC%\CmdRef\auarf101.htm >> %FILEGROUP%
-echo file101=%IS5_DOC%\CmdRef\auarf102.htm >> %FILEGROUP%
-echo file102=%IS5_DOC%\CmdRef\auarf103.htm >> %FILEGROUP%
-echo file103=%IS5_DOC%\CmdRef\auarf104.htm >> %FILEGROUP%
-echo file104=%IS5_DOC%\CmdRef\auarf105.htm >> %FILEGROUP%
-echo file105=%IS5_DOC%\CmdRef\auarf106.htm >> %FILEGROUP%
-echo file106=%IS5_DOC%\CmdRef\auarf107.htm >> %FILEGROUP%
-echo file107=%IS5_DOC%\CmdRef\auarf108.htm >> %FILEGROUP%
-echo file108=%IS5_DOC%\CmdRef\auarf109.htm >> %FILEGROUP%
-echo file109=%IS5_DOC%\CmdRef\auarf110.htm >> %FILEGROUP%
-echo file110=%IS5_DOC%\CmdRef\auarf111.htm >> %FILEGROUP%
-echo file111=%IS5_DOC%\CmdRef\auarf112.htm >> %FILEGROUP%
-echo file112=%IS5_DOC%\CmdRef\auarf113.htm >> %FILEGROUP%
-echo file113=%IS5_DOC%\CmdRef\auarf114.htm >> %FILEGROUP%
-echo file114=%IS5_DOC%\CmdRef\auarf115.htm >> %FILEGROUP%
-echo file115=%IS5_DOC%\CmdRef\auarf116.htm >> %FILEGROUP%
-echo file116=%IS5_DOC%\CmdRef\auarf117.htm >> %FILEGROUP%
-echo file117=%IS5_DOC%\CmdRef\auarf118.htm >> %FILEGROUP%
-echo file118=%IS5_DOC%\CmdRef\auarf119.htm >> %FILEGROUP%
-echo file119=%IS5_DOC%\CmdRef\auarf120.htm >> %FILEGROUP%
-echo file120=%IS5_DOC%\CmdRef\auarf121.htm >> %FILEGROUP%
-echo file121=%IS5_DOC%\CmdRef\auarf122.htm >> %FILEGROUP%
-echo file122=%IS5_DOC%\CmdRef\auarf123.htm >> %FILEGROUP%
-echo file123=%IS5_DOC%\CmdRef\auarf124.htm >> %FILEGROUP%
-echo file124=%IS5_DOC%\CmdRef\auarf125.htm >> %FILEGROUP%
-echo file125=%IS5_DOC%\CmdRef\auarf126.htm >> %FILEGROUP%
-echo file126=%IS5_DOC%\CmdRef\auarf127.htm >> %FILEGROUP%
-echo file127=%IS5_DOC%\CmdRef\auarf128.htm >> %FILEGROUP%
-echo file128=%IS5_DOC%\CmdRef\auarf129.htm >> %FILEGROUP%
-echo file129=%IS5_DOC%\CmdRef\auarf130.htm >> %FILEGROUP%
-echo file130=%IS5_DOC%\CmdRef\auarf131.htm >> %FILEGROUP%
-echo file131=%IS5_DOC%\CmdRef\auarf132.htm >> %FILEGROUP%
-echo file132=%IS5_DOC%\CmdRef\auarf133.htm >> %FILEGROUP%
-echo file133=%IS5_DOC%\CmdRef\auarf134.htm >> %FILEGROUP%
-echo file134=%IS5_DOC%\CmdRef\auarf135.htm >> %FILEGROUP%
-echo file135=%IS5_DOC%\CmdRef\auarf136.htm >> %FILEGROUP%
-echo file136=%IS5_DOC%\CmdRef\auarf137.htm >> %FILEGROUP%
-echo file137=%IS5_DOC%\CmdRef\auarf138.htm >> %FILEGROUP%
-echo file138=%IS5_DOC%\CmdRef\auarf139.htm >> %FILEGROUP%
-echo file139=%IS5_DOC%\CmdRef\auarf140.htm >> %FILEGROUP%
-echo file140=%IS5_DOC%\CmdRef\auarf141.htm >> %FILEGROUP%
-echo file141=%IS5_DOC%\CmdRef\auarf142.htm >> %FILEGROUP%
-echo file142=%IS5_DOC%\CmdRef\auarf143.htm >> %FILEGROUP%
-echo file143=%IS5_DOC%\CmdRef\auarf144.htm >> %FILEGROUP%
-echo file144=%IS5_DOC%\CmdRef\auarf145.htm >> %FILEGROUP%
-echo file145=%IS5_DOC%\CmdRef\auarf146.htm >> %FILEGROUP%
-echo file146=%IS5_DOC%\CmdRef\auarf147.htm >> %FILEGROUP%
-echo file147=%IS5_DOC%\CmdRef\auarf148.htm >> %FILEGROUP%
-echo file148=%IS5_DOC%\CmdRef\auarf149.htm >> %FILEGROUP%
-echo file149=%IS5_DOC%\CmdRef\auarf150.htm >> %FILEGROUP%
-echo file150=%IS5_DOC%\CmdRef\auarf151.htm >> %FILEGROUP%
-echo file151=%IS5_DOC%\CmdRef\auarf152.htm >> %FILEGROUP%
-echo file152=%IS5_DOC%\CmdRef\auarf153.htm >> %FILEGROUP%
-echo file153=%IS5_DOC%\CmdRef\auarf154.htm >> %FILEGROUP%
-echo file154=%IS5_DOC%\CmdRef\auarf155.htm >> %FILEGROUP%
-echo file155=%IS5_DOC%\CmdRef\auarf156.htm >> %FILEGROUP%
-echo file156=%IS5_DOC%\CmdRef\auarf157.htm >> %FILEGROUP%
-echo file157=%IS5_DOC%\CmdRef\auarf158.htm >> %FILEGROUP%
-echo file158=%IS5_DOC%\CmdRef\auarf159.htm >> %FILEGROUP%
-echo file159=%IS5_DOC%\CmdRef\auarf160.htm >> %FILEGROUP%
-echo file160=%IS5_DOC%\CmdRef\auarf161.htm >> %FILEGROUP%
-echo file161=%IS5_DOC%\CmdRef\auarf162.htm >> %FILEGROUP%
-echo file162=%IS5_DOC%\CmdRef\auarf163.htm >> %FILEGROUP%
-echo file163=%IS5_DOC%\CmdRef\auarf164.htm >> %FILEGROUP%
-echo file164=%IS5_DOC%\CmdRef\auarf165.htm >> %FILEGROUP%
-echo file165=%IS5_DOC%\CmdRef\auarf166.htm >> %FILEGROUP%
-echo file166=%IS5_DOC%\CmdRef\auarf167.htm >> %FILEGROUP%
-echo file167=%IS5_DOC%\CmdRef\auarf168.htm >> %FILEGROUP%
-echo file168=%IS5_DOC%\CmdRef\auarf169.htm >> %FILEGROUP%
-echo file169=%IS5_DOC%\CmdRef\auarf170.htm >> %FILEGROUP%
-echo file170=%IS5_DOC%\CmdRef\auarf171.htm >> %FILEGROUP%
-echo file171=%IS5_DOC%\CmdRef\auarf172.htm >> %FILEGROUP%
-echo file172=%IS5_DOC%\CmdRef\auarf173.htm >> %FILEGROUP%
-echo file173=%IS5_DOC%\CmdRef\auarf174.htm >> %FILEGROUP%
-echo file174=%IS5_DOC%\CmdRef\auarf175.htm >> %FILEGROUP%
-echo file175=%IS5_DOC%\CmdRef\auarf176.htm >> %FILEGROUP%
-echo file176=%IS5_DOC%\CmdRef\auarf177.htm >> %FILEGROUP%
-echo file177=%IS5_DOC%\CmdRef\auarf178.htm >> %FILEGROUP%
-echo file178=%IS5_DOC%\CmdRef\auarf179.htm >> %FILEGROUP%
-echo file179=%IS5_DOC%\CmdRef\auarf180.htm >> %FILEGROUP%
-echo file180=%IS5_DOC%\CmdRef\auarf181.htm >> %FILEGROUP%
-echo file181=%IS5_DOC%\CmdRef\auarf182.htm >> %FILEGROUP%
-echo file182=%IS5_DOC%\CmdRef\auarf183.htm >> %FILEGROUP%
-echo file183=%IS5_DOC%\CmdRef\auarf184.htm >> %FILEGROUP%
-echo file184=%IS5_DOC%\CmdRef\auarf185.htm >> %FILEGROUP%
-echo file185=%IS5_DOC%\CmdRef\auarf186.htm >> %FILEGROUP%
-echo file186=%IS5_DOC%\CmdRef\auarf187.htm >> %FILEGROUP%
-echo file187=%IS5_DOC%\CmdRef\auarf188.htm >> %FILEGROUP%
-echo file188=%IS5_DOC%\CmdRef\auarf189.htm >> %FILEGROUP%
-echo file189=%IS5_DOC%\CmdRef\auarf190.htm >> %FILEGROUP%
-echo file190=%IS5_DOC%\CmdRef\auarf191.htm >> %FILEGROUP%
-echo file191=%IS5_DOC%\CmdRef\auarf192.htm >> %FILEGROUP%
-echo file192=%IS5_DOC%\CmdRef\auarf193.htm >> %FILEGROUP%
-echo file193=%IS5_DOC%\CmdRef\auarf194.htm >> %FILEGROUP%
-echo file194=%IS5_DOC%\CmdRef\auarf195.htm >> %FILEGROUP%
-echo file195=%IS5_DOC%\CmdRef\auarf196.htm >> %FILEGROUP%
-echo file196=%IS5_DOC%\CmdRef\auarf197.htm >> %FILEGROUP%
-echo file197=%IS5_DOC%\CmdRef\auarf198.htm >> %FILEGROUP%
-echo file198=%IS5_DOC%\CmdRef\auarf199.htm >> %FILEGROUP%
-echo file199=%IS5_DOC%\CmdRef\auarf200.htm >> %FILEGROUP%
-echo file200=%IS5_DOC%\CmdRef\auarf201.htm >> %FILEGROUP%
-echo file201=%IS5_DOC%\CmdRef\auarf202.htm >> %FILEGROUP%
-echo file202=%IS5_DOC%\CmdRef\auarf203.htm >> %FILEGROUP%
-echo file203=%IS5_DOC%\CmdRef\auarf204.htm >> %FILEGROUP%
-echo file204=%IS5_DOC%\CmdRef\auarf205.htm >> %FILEGROUP%
-echo file205=%IS5_DOC%\CmdRef\auarf206.htm >> %FILEGROUP%
-echo file206=%IS5_DOC%\CmdRef\auarf207.htm >> %FILEGROUP%
-echo file207=%IS5_DOC%\CmdRef\auarf208.htm >> %FILEGROUP%
-echo file208=%IS5_DOC%\CmdRef\auarf209.htm >> %FILEGROUP%
-echo file209=%IS5_DOC%\CmdRef\auarf210.htm >> %FILEGROUP%
-echo file210=%IS5_DOC%\CmdRef\auarf211.htm >> %FILEGROUP%
-echo file211=%IS5_DOC%\CmdRef\auarf212.htm >> %FILEGROUP%
-echo file212=%IS5_DOC%\CmdRef\auarf213.htm >> %FILEGROUP%
-echo file213=%IS5_DOC%\CmdRef\auarf214.htm >> %FILEGROUP%
-echo file214=%IS5_DOC%\CmdRef\auarf215.htm >> %FILEGROUP%
-echo file215=%IS5_DOC%\CmdRef\auarf216.htm >> %FILEGROUP%
-echo file216=%IS5_DOC%\CmdRef\auarf217.htm >> %FILEGROUP%
-echo file217=%IS5_DOC%\CmdRef\auarf218.htm >> %FILEGROUP%
-echo file218=%IS5_DOC%\CmdRef\auarf219.htm >> %FILEGROUP%
-echo file219=%IS5_DOC%\CmdRef\auarf220.htm >> %FILEGROUP%
-echo file220=%IS5_DOC%\CmdRef\auarf221.htm >> %FILEGROUP%
-echo file221=%IS5_DOC%\CmdRef\auarf222.htm >> %FILEGROUP%
-echo file222=%IS5_DOC%\CmdRef\auarf223.htm >> %FILEGROUP%
-echo file223=%IS5_DOC%\CmdRef\auarf224.htm >> %FILEGROUP%
-echo file224=%IS5_DOC%\CmdRef\auarf225.htm >> %FILEGROUP%
-echo file225=%IS5_DOC%\CmdRef\auarf226.htm >> %FILEGROUP%
-echo file226=%IS5_DOC%\CmdRef\auarf227.htm >> %FILEGROUP%
-echo file227=%IS5_DOC%\CmdRef\auarf228.htm >> %FILEGROUP%
-echo file228=%IS5_DOC%\CmdRef\auarf229.htm >> %FILEGROUP%
-echo file229=%IS5_DOC%\CmdRef\auarf230.htm >> %FILEGROUP%
-echo file230=%IS5_DOC%\CmdRef\auarf231.htm >> %FILEGROUP%
-echo file231=%IS5_DOC%\CmdRef\auarf232.htm >> %FILEGROUP%
-echo file232=%IS5_DOC%\CmdRef\auarf233.htm >> %FILEGROUP%
-echo file233=%IS5_DOC%\CmdRef\auarf234.htm >> %FILEGROUP%
-echo file234=%IS5_DOC%\CmdRef\auarf235.htm >> %FILEGROUP%
-echo file235=%IS5_DOC%\CmdRef\auarf236.htm >> %FILEGROUP%
-echo file236=%IS5_DOC%\CmdRef\auarf237.htm >> %FILEGROUP%
-echo file237=%IS5_DOC%\CmdRef\auarf238.htm >> %FILEGROUP%
-echo file238=%IS5_DOC%\CmdRef\auarf239.htm >> %FILEGROUP%
-echo file239=%IS5_DOC%\CmdRef\auarf240.htm >> %FILEGROUP%
-echo file240=%IS5_DOC%\CmdRef\auarf241.htm >> %FILEGROUP%
-echo file241=%IS5_DOC%\CmdRef\auarf242.htm >> %FILEGROUP%
-echo file242=%IS5_DOC%\CmdRef\auarf243.htm >> %FILEGROUP%
-echo file243=%IS5_DOC%\CmdRef\auarf244.htm >> %FILEGROUP%
-echo file244=%IS5_DOC%\CmdRef\auarf245.htm >> %FILEGROUP%
-echo file245=%IS5_DOC%\CmdRef\auarf246.htm >> %FILEGROUP%
-echo file246=%IS5_DOC%\CmdRef\auarf247.htm >> %FILEGROUP%
-echo file247=%IS5_DOC%\CmdRef\auarf248.htm >> %FILEGROUP%
-echo file248=%IS5_DOC%\CmdRef\auarf249.htm >> %FILEGROUP%
-echo file249=%IS5_DOC%\CmdRef\auarf250.htm >> %FILEGROUP%
-echo file250=%IS5_DOC%\CmdRef\auarf251.htm >> %FILEGROUP%
-echo file251=%IS5_DOC%\CmdRef\auarf252.htm >> %FILEGROUP%
-echo file252=%IS5_DOC%\CmdRef\auarf253.htm >> %FILEGROUP%
-echo file253=%IS5_DOC%\CmdRef\auarf254.htm >> %FILEGROUP%
-echo file254=%IS5_DOC%\CmdRef\auarf255.htm >> %FILEGROUP%
-echo file255=%IS5_DOC%\CmdRef\auarf256.htm >> %FILEGROUP%
-echo file256=%IS5_DOC%\CmdRef\auarf257.htm >> %FILEGROUP%
-echo file257=%IS5_DOC%\CmdRef\auarf258.htm >> %FILEGROUP%
-echo file258=%IS5_DOC%\CmdRef\auarf259.htm >> %FILEGROUP%
-echo file259=%IS5_DOC%\CmdRef\auarf260.htm >> %FILEGROUP%
-echo file260=%IS5_DOC%\CmdRef\auarf261.htm >> %FILEGROUP%
-echo file261=%IS5_DOC%\CmdRef\auarf262.htm >> %FILEGROUP%
-echo file262=%IS5_DOC%\CmdRef\auarf263.htm >> %FILEGROUP%
-echo file263=%IS5_DOC%\CmdRef\auarf264.htm >> %FILEGROUP%
-echo file264=%IS5_DOC%\CmdRef\auarf265.htm >> %FILEGROUP%
-echo file265=%IS5_DOC%\CmdRef\auarf266.htm >> %FILEGROUP%
-echo file266=%IS5_DOC%\CmdRef\auarf267.htm >> %FILEGROUP%
-echo file267=%IS5_DOC%\CmdRef\auarf268.htm >> %FILEGROUP%
-echo file268=%IS5_DOC%\CmdRef\auarf269.htm >> %FILEGROUP%
-echo file269=%IS5_DOC%\CmdRef\auarf270.htm >> %FILEGROUP%
-echo file270=%IS5_DOC%\CmdRef\auarf271.htm >> %FILEGROUP%
-echo file271=%IS5_DOC%\CmdRef\auarf272.htm >> %FILEGROUP%
-echo file272=%IS5_DOC%\CmdRef\auarf273.htm >> %FILEGROUP%
-echo file273=%IS5_DOC%\CmdRef\auarf274.htm >> %FILEGROUP%
-echo file274=%IS5_DOC%\CmdRef\auarf275.htm >> %FILEGROUP%
-echo file275=%IS5_DOC%\CmdRef\auarf276.htm >> %FILEGROUP%
-echo file276=%IS5_DOC%\CmdRef\auarf277.htm >> %FILEGROUP%
-echo file277=%IS5_DOC%\CmdRef\auarf278.htm >> %FILEGROUP%
-echo file278=%IS5_DOC%\CmdRef\auarf279.htm >> %FILEGROUP%
-echo file279=%IS5_DOC%\CmdRef\auarf280.htm >> %FILEGROUP%
-echo file280=%IS5_DOC%\CmdRef\auarf281.htm >> %FILEGROUP%
-echo file281=%IS5_DOC%\CmdRef\auarf282.htm >> %FILEGROUP%
-echo file282=%IS5_DOC%\CmdRef\auarf283.htm >> %FILEGROUP%
-echo file283=%IS5_DOC%\CmdRef\auarf284.htm >> %FILEGROUP%
-echo. >> %FILEGROUP%
-echo [General] >> %FILEGROUP%
-echo Type=FILELIST >> %FILEGROUP%
-echo Version=1.00.000 >> %FILEGROUP%
-goto :EOF
-
-rem -------------- Generate the Doc Misc file groups --------------------
-
-:Doc_Misc_Files
-
-rem English
-set FILEGROUP=Doc_Misc_English_Files.fgl
-set IS5_LANG=en_US
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\en_US\Html
-call :Generate_Doc_Misc_File_Group
-copy %AFSROOT%\src\WINNT\license\lang\%IS5_LANG%.rtf %AFSROOT%\src\WINNT\install\InstallShield5\lang\%IS5_LANG%\license.rtf
-
-rem Japanese
-set FILEGROUP=Doc_Misc_Japanese_Files.fgl
-set IS5_LANG=ja_JP
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\ja_JP\Html
-call :Generate_Doc_Misc_File_Group
-copy %AFSROOT%\src\WINNT\license\lang\%IS5_LANG%.rtf %AFSROOT%\src\WINNT\install\InstallShield5\lang\%IS5_LANG%\license.rtf
-
-rem Korean
-set FILEGROUP=Doc_Misc_Korean_Files.fgl
-set IS5_LANG=ko_KR
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\ko_KR\Html
-call :Generate_Doc_Misc_File_Group
-copy %AFSROOT%\src\WINNT\license\lang\%IS5_LANG%.rtf %AFSROOT%\src\WINNT\install\InstallShield5\lang\%IS5_LANG%\license.rtf
-
-rem Trad_Chinese
-set FILEGROUP=Doc_Misc_Trad_Chinese_Files.fgl
-set IS5_LANG=zh_TW
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\zh_TW\Html
-call :Generate_Doc_Misc_File_Group
-copy %AFSROOT%\src\WINNT\license\lang\%IS5_LANG%.rtf %AFSROOT%\src\WINNT\install\InstallShield5\lang\%IS5_LANG%\license.rtf
-
-rem Simp_Chinese
-set FILEGROUP=Doc_Misc_Simp_Chinese_Files.fgl
-set IS5_LANG=zh_CN
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\zh_CN\Html
-call :Generate_Doc_Misc_File_Group
-copy %AFSROOT%\src\WINNT\license\lang\%IS5_LANG%.rtf %AFSROOT%\src\WINNT\install\InstallShield5\lang\%IS5_LANG%\license.rtf
-
-rem German
-set FILEGROUP=Doc_Misc_German_Files.fgl
-set IS5_LANG=de_DE
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\de_DE\Html
-call :Generate_Doc_Misc_File_Group
-copy %AFSROOT%\src\WINNT\license\lang\%IS5_LANG%.rtf %AFSROOT%\src\WINNT\install\InstallShield5\lang\%IS5_LANG%\license.rtf
-
-rem Spanish
-set FILEGROUP=Doc_Misc_Spanish_Files.fgl
-set IS5_LANG=es_ES
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\es_ES\Html
-call :Generate_Doc_Misc_File_Group
-copy %AFSROOT%\src\WINNT\license\lang\%IS5_LANG%.rtf %AFSROOT%\src\WINNT\install\InstallShield5\lang\%IS5_LANG%\license.rtf
-
-rem Portuguese
-set FILEGROUP=Doc_Misc_Portuguese_Files.fgl
-set IS5_LANG=pt_BR
-set IS5_DOC=%IS5_DOCROOT%\install\Documentation\pt_BR\Html
-call :Generate_Doc_Misc_File_Group
-copy %AFSROOT%\src\WINNT\license\lang\%IS5_LANG%.rtf %AFSROOT%\src\WINNT\install\InstallShield5\lang\%IS5_LANG%\license.rtf
-
-goto Doc_Files
-
-:Generate_Doc_Misc_File_Group
-echo [TopDir] > %FILEGROUP%
-echo file0=%IS5_DOC%\banner.gif >> %FILEGROUP%
-echo file1=%IS5_DOC%\books.gif >> %FILEGROUP%
-echo file2=%IS5_DOC%\bot.gif >> %FILEGROUP%
-echo file3=%IS5_DOC%\index.gif >> %FILEGROUP%
-echo file4=%IS5_DOC%\index.htm >> %FILEGROUP%
-echo file5=%IS5_DOC%\next.gif >> %FILEGROUP%
-echo file6=%IS5_DOC%\prev.gif >> %FILEGROUP%
-echo file7=%IS5_DOC%\toc.gif >> %FILEGROUP%
-echo file8=%IS5_DOC%\top.gif >> %FILEGROUP%
-echo file9=%AFSROOT%\src\WINNT\install\InstallShield5\lang\%IS5_LANG%\license.rtf >> %FILEGROUP%
-echo. >> %FILEGROUP%
-echo [General] >> %FILEGROUP%
-echo Type=FILELIST >> %FILEGROUP%
-echo Version=1.00.000 >> %FILEGROUP%
-goto :EOF
-
-rem -------------- Doc_Files.fgl ------------------------------
-
-:Doc_Files
-echo [TopDir] > Doc_Files.fgl
-echo file0=%IS5_DEST%\root.server\usr\afs\bin\DocsUninst.dll >> Doc_Files.fgl
-echo. >> Doc_Files.fgl
-echo [General] >> Doc_Files.fgl
-echo Type=FILELIST >> Doc_Files.fgl
-echo Version=1.00.000 >> Doc_Files.fgl
-
-
-rem -------------- Lang_English_Files.fgl ------------------------------
-
-echo [TopDir] > Lang_English_Files.fgl
-echo file0=%IS5_DEST%\root.server\usr\afs\bin\afseventmsg_1033.dll >> Lang_English_Files.fgl
-echo file1=%IS5_DEST%\root.server\usr\afs\bin\afs_setup_utils_1033.dll >> Lang_English_Files.fgl
-echo file2=%IS5_DEST%\root.server\usr\afs\bin\afsserver_1033.dll >> Lang_English_Files.fgl
-echo file3=%IS5_DEST%\root.server\usr\afs\bin\afssvrcfg_1033.dll >> Lang_English_Files.fgl
-echo file4=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAccountManager_1033.dll >> Lang_English_Files.fgl
-echo file5=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAppLib_1033.dll >> Lang_English_Files.fgl
-echo file6=%IS5_DEST%\root.server\usr\afs\bin\TaAfsServerManager_1033.dll >> Lang_English_Files.fgl
-echo file7=%IS5_DEST%\root.client\usr\vice\etc\afscreds_1033.dll >> Lang_English_Files.fgl
-echo file8=%IS5_DEST%\root.client\usr\vice\etc\afs_config_1033.dll >> Lang_English_Files.fgl
-echo file9=%IS5_DEST%\root.client\usr\vice\etc\afs_cpa_1033.dll >> Lang_English_Files.fgl
-echo file10=%IS5_DEST%\root.client\usr\vice\etc\afs_shl_ext_1033.dll >> Lang_English_Files.fgl
-echo file11=%IS5_HELP%\en_US\afs-nt.hlp >> Lang_English_Files.fgl
-echo file12=%IS5_HELP%\en_US\afs-nt.cnt >> Lang_English_Files.fgl
-echo file13=%IS5_HELP%\en_US\taafssvrmgr.cnt >> Lang_English_Files.fgl
-echo file14=%IS5_HELP%\en_US\taafssvrmgr.hlp >> Lang_English_Files.fgl
-echo file15=%IS5_HELP%\en_US\taafsusrmgr.cnt >> Lang_English_Files.fgl
-echo file16=%IS5_HELP%\en_US\taafsusrmgr.hlp >> Lang_English_Files.fgl
-echo file17=%IS5_HELP%\en_US\afs-cc.cnt >> Lang_English_Files.fgl
-echo file18=%IS5_HELP%\en_US\afs-cc.hlp >> Lang_English_Files.fgl
-echo file19=%IS5_HELP%\en_US\afs-light.cnt >> Lang_English_Files.fgl
-echo file20=%IS5_HELP%\en_US\afs-light.hlp >> Lang_English_Files.fgl
-echo file21=%IS5_HELP%\en_US\taafscfg.cnt >> Lang_English_Files.fgl
-echo file22=%IS5_HELP%\en_US\taafscfg.hlp >> Lang_English_Files.fgl
-echo. >> Lang_English_Files.fgl
-echo [General] >> Lang_English_Files.fgl
-echo Type=FILELIST >> Lang_English_Files.fgl
-echo Version=1.00.000 >> Lang_English_Files.fgl
-
-
-rem -------------- Lang_Simp_Chinese_Files.fgl -------------------------
-
-echo [TopDir] > Lang_Simp_Chinese_Files.fgl
-echo file0=%IS5_DEST%\root.server\usr\afs\bin\afseventmsg_2052.dll >> Lang_Simp_Chinese_Files.fgl
-echo file1=%IS5_DEST%\root.server\usr\afs\bin\afs_setup_utils_2052.dll >> Lang_Simp_Chinese_Files.fgl
-echo file2=%IS5_DEST%\root.server\usr\afs\bin\afsserver_2052.dll >> Lang_Simp_Chinese_Files.fgl
-echo file3=%IS5_DEST%\root.server\usr\afs\bin\afssvrcfg_2052.dll >> Lang_Simp_Chinese_Files.fgl
-echo file4=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAccountManager_2052.dll >> Lang_Simp_Chinese_Files.fgl
-echo file5=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAppLib_2052.dll >> Lang_Simp_Chinese_Files.fgl
-echo file6=%IS5_DEST%\root.server\usr\afs\bin\TaAfsServerManager_2052.dll >> Lang_Simp_Chinese_Files.fgl
-echo file7=%IS5_DEST%\root.client\usr\vice\etc\afscreds_2052.dll >> Lang_Simp_Chinese_Files.fgl
-echo file8=%IS5_DEST%\root.client\usr\vice\etc\afs_config_2052.dll >> Lang_Simp_Chinese_Files.fgl
-echo file9=%IS5_DEST%\root.client\usr\vice\etc\afs_cpa_2052.dll >> Lang_Simp_Chinese_Files.fgl
-echo file10=%IS5_DEST%\root.client\usr\vice\etc\afs_shl_ext_2052.dll >> Lang_Simp_Chinese_Files.fgl
-echo file11=%IS5_HELP%\zh_CN\afs-nt.hlp >> Lang_Simp_Chinese_Files.fgl
-echo file12=%IS5_HELP%\zh_CN\afs-nt.cnt >> Lang_Simp_Chinese_Files.fgl
-echo file13=%IS5_HELP%\zh_CN\taafssvrmgr.cnt >> Lang_Simp_Chinese_Files.fgl
-echo file14=%IS5_HELP%\zh_CN\taafssvrmgr.hlp >> Lang_Simp_Chinese_Files.fgl
-echo file15=%IS5_HELP%\zh_CN\taafsusrmgr.cnt >> Lang_Simp_Chinese_Files.fgl
-echo file16=%IS5_HELP%\zh_CN\taafsusrmgr.hlp >> Lang_Simp_Chinese_Files.fgl
-echo file17=%IS5_HELP%\zh_CN\afs-cc.cnt >> Lang_Simp_Chinese_Files.fgl
-echo file18=%IS5_HELP%\zh_CN\afs-cc.hlp >> Lang_Simp_Chinese_Files.fgl
-echo file19=%IS5_HELP%\zh_CN\afs-light.cnt >> Lang_Simp_Chinese_Files.fgl
-echo file20=%IS5_HELP%\zh_CN\afs-light.hlp >> Lang_Simp_Chinese_Files.fgl
-echo file21=%IS5_HELP%\zh_CN\taafscfg.cnt >> Lang_Simp_Chinese_Files.fgl
-echo file22=%IS5_HELP%\zh_CN\taafscfg.hlp >> Lang_Simp_Chinese_Files.fgl
-echo. >> Lang_Simp_Chinese_Files.fgl
-echo [General] >> Lang_Simp_Chinese_Files.fgl
-echo Type=FILELIST >> Lang_Simp_Chinese_Files.fgl
-echo Version=1.00.000 >> Lang_Simp_Chinese_Files.fgl
-
-
-rem -------------- Lang_Trad_Chinese_Files.fgl -------------------------
-
-echo [TopDir] > Lang_Trad_Chinese_Files.fgl
-echo file0=%IS5_DEST%\root.server\usr\afs\bin\afseventmsg_1028.dll >> Lang_Trad_Chinese_Files.fgl
-echo file1=%IS5_DEST%\root.server\usr\afs\bin\afs_setup_utils_1028.dll >> Lang_Trad_Chinese_Files.fgl
-echo file2=%IS5_DEST%\root.server\usr\afs\bin\afsserver_1028.dll >> Lang_Trad_Chinese_Files.fgl
-echo file3=%IS5_DEST%\root.server\usr\afs\bin\afssvrcfg_1028.dll >> Lang_Trad_Chinese_Files.fgl
-echo file4=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAccountManager_1028.dll >> Lang_Trad_Chinese_Files.fgl
-echo file5=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAppLib_1028.dll >> Lang_Trad_Chinese_Files.fgl
-echo file6=%IS5_DEST%\root.server\usr\afs\bin\TaAfsServerManager_1028.dll >> Lang_Trad_Chinese_Files.fgl
-echo file7=%IS5_DEST%\root.client\usr\vice\etc\afscreds_1028.dll >> Lang_Trad_Chinese_Files.fgl
-echo file8=%IS5_DEST%\root.client\usr\vice\etc\afs_config_1028.dll >> Lang_Trad_Chinese_Files.fgl
-echo file9=%IS5_DEST%\root.client\usr\vice\etc\afs_cpa_1028.dll >> Lang_Trad_Chinese_Files.fgl
-echo file10=%IS5_DEST%\root.client\usr\vice\etc\afs_shl_ext_1028.dll >> Lang_Trad_Chinese_Files.fgl
-echo file11=%IS5_HELP%\zh_TW\afs-nt.hlp >> Lang_Trad_Chinese_Files.fgl
-echo file12=%IS5_HELP%\zh_TW\afs-nt.cnt >> Lang_Trad_Chinese_Files.fgl
-echo file13=%IS5_HELP%\zh_TW\taafssvrmgr.cnt >> Lang_Trad_Chinese_Files.fgl
-echo file14=%IS5_HELP%\zh_TW\taafssvrmgr.hlp >> Lang_Trad_Chinese_Files.fgl
-echo file15=%IS5_HELP%\zh_TW\taafsusrmgr.cnt >> Lang_Trad_Chinese_Files.fgl
-echo file16=%IS5_HELP%\zh_TW\taafsusrmgr.hlp >> Lang_Trad_Chinese_Files.fgl
-echo file17=%IS5_HELP%\zh_TW\afs-cc.cnt >> Lang_Trad_Chinese_Files.fgl
-echo file18=%IS5_HELP%\zh_TW\afs-cc.hlp >> Lang_Trad_Chinese_Files.fgl
-echo file19=%IS5_HELP%\zh_TW\afs-light.cnt >> Lang_Trad_Chinese_Files.fgl
-echo file20=%IS5_HELP%\zh_TW\afs-light.hlp >> Lang_Trad_Chinese_Files.fgl
-echo file21=%IS5_HELP%\zh_TW\taafscfg.cnt >> Lang_Trad_Chinese_Files.fgl
-echo file22=%IS5_HELP%\zh_TW\taafscfg.hlp >> Lang_Trad_Chinese_Files.fgl
-echo. >> Lang_Trad_Chinese_Files.fgl
-echo [General] >> Lang_Trad_Chinese_Files.fgl
-echo Type=FILELIST >> Lang_Trad_Chinese_Files.fgl
-echo Version=1.00.000 >> Lang_Trad_Chinese_Files.fgl
-
-
-rem -------------- Lang_Korean_Files.fgl -------------------------------
-
-echo [TopDir] > Lang_Korean_Files.fgl
-echo file0=%IS5_DEST%\root.server\usr\afs\bin\afseventmsg_1042.dll >> Lang_Korean_Files.fgl
-echo file1=%IS5_DEST%\root.server\usr\afs\bin\afs_setup_utils_1042.dll >> Lang_Korean_Files.fgl
-echo file2=%IS5_DEST%\root.server\usr\afs\bin\afsserver_1042.dll >> Lang_Korean_Files.fgl
-echo file3=%IS5_DEST%\root.server\usr\afs\bin\afssvrcfg_1042.dll >> Lang_Korean_Files.fgl
-echo file4=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAccountManager_1042.dll >> Lang_Korean_Files.fgl
-echo file5=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAppLib_1042.dll >> Lang_Korean_Files.fgl
-echo file6=%IS5_DEST%\root.server\usr\afs\bin\TaAfsServerManager_1042.dll >> Lang_Korean_Files.fgl
-echo file7=%IS5_DEST%\root.client\usr\vice\etc\afscreds_1042.dll >> Lang_Korean_Files.fgl
-echo file8=%IS5_DEST%\root.client\usr\vice\etc\afs_config_1042.dll >> Lang_Korean_Files.fgl
-echo file9=%IS5_DEST%\root.client\usr\vice\etc\afs_cpa_1042.dll >> Lang_Korean_Files.fgl
-echo file10=%IS5_DEST%\root.client\usr\vice\etc\afs_shl_ext_1042.dll >> Lang_Korean_Files.fgl
-echo file11=%IS5_HELP%\ko_KR\afs-nt.hlp >> Lang_Korean_Files.fgl
-echo file12=%IS5_HELP%\ko_KR\afs-nt.cnt >> Lang_Korean_Files.fgl
-echo file13=%IS5_HELP%\ko_KR\taafssvrmgr.cnt >> Lang_Korean_Files.fgl
-echo file14=%IS5_HELP%\ko_KR\taafssvrmgr.hlp >> Lang_Korean_Files.fgl
-echo file15=%IS5_HELP%\ko_KR\taafsusrmgr.cnt >> Lang_Korean_Files.fgl
-echo file16=%IS5_HELP%\ko_KR\taafsusrmgr.hlp >> Lang_Korean_Files.fgl
-echo file17=%IS5_HELP%\ko_KR\afs-cc.cnt >> Lang_Korean_Files.fgl
-echo file18=%IS5_HELP%\ko_KR\afs-cc.hlp >> Lang_Korean_Files.fgl
-echo file19=%IS5_HELP%\ko_KR\afs-light.cnt >> Lang_Korean_Files.fgl
-echo file20=%IS5_HELP%\ko_KR\afs-light.hlp >> Lang_Korean_Files.fgl
-echo file21=%IS5_HELP%\ko_KR\taafscfg.cnt >> Lang_Korean_Files.fgl
-echo file22=%IS5_HELP%\ko_KR\taafscfg.hlp >> Lang_Korean_Files.fgl
-echo. >> Lang_Korean_Files.fgl
-echo [General] >> Lang_Korean_Files.fgl
-echo Type=FILELIST >> Lang_Korean_Files.fgl
-echo Version=1.00.000 >> Lang_Korean_Files.fgl
-
-
-rem -------------- Lang_Japanese_Files.fgl -----------------------------
-
-echo [TopDir] > Lang_Japanese_Files.fgl
-echo file0=%IS5_DEST%\root.server\usr\afs\bin\afseventmsg_1041.dll >> Lang_Japanese_Files.fgl
-echo file1=%IS5_DEST%\root.server\usr\afs\bin\afs_setup_utils_1041.dll >> Lang_Japanese_Files.fgl
-echo file2=%IS5_DEST%\root.server\usr\afs\bin\afsserver_1041.dll >> Lang_Japanese_Files.fgl
-echo file3=%IS5_DEST%\root.server\usr\afs\bin\afssvrcfg_1041.dll >> Lang_Japanese_Files.fgl
-echo file4=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAccountManager_1041.dll >> Lang_Japanese_Files.fgl
-echo file5=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAppLib_1041.dll >> Lang_Japanese_Files.fgl
-echo file6=%IS5_DEST%\root.server\usr\afs\bin\TaAfsServerManager_1041.dll >> Lang_Japanese_Files.fgl
-echo file7=%IS5_DEST%\root.client\usr\vice\etc\afscreds_1041.dll >> Lang_Japanese_Files.fgl
-echo file8=%IS5_DEST%\root.client\usr\vice\etc\afs_config_1041.dll >> Lang_Japanese_Files.fgl
-echo file9=%IS5_DEST%\root.client\usr\vice\etc\afs_cpa_1041.dll >> Lang_Japanese_Files.fgl
-echo file10=%IS5_DEST%\root.client\usr\vice\etc\afs_shl_ext_1041.dll >> Lang_Japanese_Files.fgl
-echo file11=%IS5_HELP%\ja_JP\afs-nt.hlp >> Lang_Japanese_Files.fgl
-echo file12=%IS5_HELP%\ja_JP\afs-nt.cnt >> Lang_Japanese_Files.fgl
-echo file13=%IS5_HELP%\ja_JP\taafssvrmgr.cnt >> Lang_Japanese_Files.fgl
-echo file14=%IS5_HELP%\ja_JP\taafssvrmgr.hlp >> Lang_Japanese_Files.fgl
-echo file15=%IS5_HELP%\ja_JP\taafsusrmgr.cnt >> Lang_Japanese_Files.fgl
-echo file16=%IS5_HELP%\ja_JP\taafsusrmgr.hlp >> Lang_Japanese_Files.fgl
-echo file17=%IS5_HELP%\ja_JP\afs-cc.cnt >> Lang_Japanese_Files.fgl
-echo file18=%IS5_HELP%\ja_JP\afs-cc.hlp >> Lang_Japanese_Files.fgl
-echo file19=%IS5_HELP%\ja_JP\afs-light.cnt >> Lang_Japanese_Files.fgl
-echo file20=%IS5_HELP%\ja_JP\afs-light.hlp >> Lang_Japanese_Files.fgl
-echo file21=%IS5_HELP%\ja_JP\taafscfg.cnt >> Lang_Japanese_Files.fgl
-echo file22=%IS5_HELP%\ja_JP\taafscfg.hlp >> Lang_Japanese_Files.fgl
-echo. >> Lang_Japanese_Files.fgl
-echo [General] >> Lang_Japanese_Files.fgl
-echo Type=FILELIST >> Lang_Japanese_Files.fgl
-echo Version=1.00.000 >> Lang_Japanese_Files.fgl
-
-
-rem -------------- Lang_German_Files.fgl -----------------------------
-
-echo [TopDir] > Lang_German_Files.fgl
-echo file0=%IS5_DEST%\root.server\usr\afs\bin\afseventmsg_1032.dll >> Lang_German_Files.fgl
-echo file1=%IS5_DEST%\root.server\usr\afs\bin\afs_setup_utils_1032.dll >> Lang_German_Files.fgl
-echo file2=%IS5_DEST%\root.server\usr\afs\bin\afsserver_1032.dll >> Lang_German_Files.fgl
-echo file3=%IS5_DEST%\root.server\usr\afs\bin\afssvrcfg_1032.dll >> Lang_German_Files.fgl
-echo file4=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAccountManager_1032.dll >> Lang_German_Files.fgl
-echo file5=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAppLib_1032.dll >> Lang_German_Files.fgl
-echo file6=%IS5_DEST%\root.server\usr\afs\bin\TaAfsServerManager_1032.dll >> Lang_German_Files.fgl
-echo file7=%IS5_DEST%\root.client\usr\vice\etc\afscreds_1032.dll >> Lang_German_Files.fgl
-echo file8=%IS5_DEST%\root.client\usr\vice\etc\afs_config_1032.dll >> Lang_German_Files.fgl
-echo file9=%IS5_DEST%\root.client\usr\vice\etc\afs_cpa_1032.dll >> Lang_German_Files.fgl
-echo file10=%IS5_DEST%\root.client\usr\vice\etc\afs_shl_ext_1032.dll >> Lang_German_Files.fgl
-echo file11=%IS5_HELP%\de_DE\afs-nt.hlp >> Lang_German_Files.fgl
-echo file12=%IS5_HELP%\de_DE\afs-nt.cnt >> Lang_German_Files.fgl
-echo file13=%IS5_HELP%\de_DE\taafssvrmgr.cnt >> Lang_German_Files.fgl
-echo file14=%IS5_HELP%\de_DE\taafssvrmgr.hlp >> Lang_German_Files.fgl
-echo file15=%IS5_HELP%\de_DE\taafsusrmgr.cnt >> Lang_German_Files.fgl
-echo file16=%IS5_HELP%\de_DE\taafsusrmgr.hlp >> Lang_German_Files.fgl
-echo file17=%IS5_HELP%\de_DE\afs-cc.cnt >> Lang_German_Files.fgl
-echo file18=%IS5_HELP%\de_DE\afs-cc.hlp >> Lang_German_Files.fgl
-echo file19=%IS5_HELP%\de_DE\afs-light.cnt >> Lang_German_Files.fgl
-echo file20=%IS5_HELP%\de_DE\afs-light.hlp >> Lang_German_Files.fgl
-echo file21=%IS5_HELP%\de_DE\taafscfg.cnt >> Lang_German_Files.fgl
-echo file22=%IS5_HELP%\de_DE\taafscfg.hlp >> Lang_German_Files.fgl
-echo. >> Lang_German_Files.fgl
-echo [General] >> Lang_German_Files.fgl
-echo Type=FILELIST >> Lang_German_Files.fgl
-echo Version=1.00.000 >> Lang_German_Files.fgl
-
-
-rem -------------- Lang_Spanish_Files.fgl -----------------------------
-
-echo [TopDir] > Lang_Spanish_Files.fgl
-echo file0=%IS5_DEST%\root.server\usr\afs\bin\afseventmsg_1034.dll >> Lang_Spanish_Files.fgl
-echo file1=%IS5_DEST%\root.server\usr\afs\bin\afs_setup_utils_1034.dll >> Lang_Spanish_Files.fgl
-echo file2=%IS5_DEST%\root.server\usr\afs\bin\afsserver_1034.dll >> Lang_Spanish_Files.fgl
-echo file3=%IS5_DEST%\root.server\usr\afs\bin\afssvrcfg_1034.dll >> Lang_Spanish_Files.fgl
-echo file4=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAccountManager_1034.dll >> Lang_Spanish_Files.fgl
-echo file5=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAppLib_1034.dll >> Lang_Spanish_Files.fgl
-echo file6=%IS5_DEST%\root.server\usr\afs\bin\TaAfsServerManager_1034.dll >> Lang_Spanish_Files.fgl
-echo file7=%IS5_DEST%\root.client\usr\vice\etc\afscreds_1034.dll >> Lang_Spanish_Files.fgl
-echo file8=%IS5_DEST%\root.client\usr\vice\etc\afs_config_1034.dll >> Lang_Spanish_Files.fgl
-echo file9=%IS5_DEST%\root.client\usr\vice\etc\afs_cpa_1034.dll >> Lang_Spanish_Files.fgl
-echo file10=%IS5_DEST%\root.client\usr\vice\etc\afs_shl_ext_1034.dll >> Lang_Spanish_Files.fgl
-echo file11=%IS5_HELP%\es_ES\afs-nt.hlp >> Lang_Spanish_Files.fgl
-echo file12=%IS5_HELP%\es_ES\afs-nt.cnt >> Lang_Spanish_Files.fgl
-echo file13=%IS5_HELP%\es_ES\taafssvrmgr.cnt >> Lang_Spanish_Files.fgl
-echo file14=%IS5_HELP%\es_ES\taafssvrmgr.hlp >> Lang_Spanish_Files.fgl
-echo file15=%IS5_HELP%\es_ES\taafsusrmgr.cnt >> Lang_Spanish_Files.fgl
-echo file16=%IS5_HELP%\es_ES\taafsusrmgr.hlp >> Lang_Spanish_Files.fgl
-echo file17=%IS5_HELP%\es_ES\afs-cc.cnt >> Lang_Spanish_Files.fgl
-echo file18=%IS5_HELP%\es_ES\afs-cc.hlp >> Lang_Spanish_Files.fgl
-echo file19=%IS5_HELP%\es_ES\afs-light.cnt >> Lang_Spanish_Files.fgl
-echo file20=%IS5_HELP%\es_ES\afs-light.hlp >> Lang_Spanish_Files.fgl
-echo file21=%IS5_HELP%\es_ES\taafscfg.cnt >> Lang_Spanish_Files.fgl
-echo file22=%IS5_HELP%\es_ES\taafscfg.hlp >> Lang_Spanish_Files.fgl
-echo. >> Lang_Spanish_Files.fgl
-echo [General] >> Lang_Spanish_Files.fgl
-echo Type=FILELIST >> Lang_Spanish_Files.fgl
-echo Version=1.00.000 >> Lang_Spanish_Files.fgl
-
-
-rem -------------- Lang_Portuguese_Files.fgl -----------------------------
-
-echo [TopDir] > Lang_Portuguese_Files.fgl
-echo file0=%IS5_DEST%\root.server\usr\afs\bin\afseventmsg_1046.dll >> Lang_Portuguese_Files.fgl
-echo file1=%IS5_DEST%\root.server\usr\afs\bin\afs_setup_utils_1046.dll >> Lang_Portuguese_Files.fgl
-echo file2=%IS5_DEST%\root.server\usr\afs\bin\afsserver_1046.dll >> Lang_Portuguese_Files.fgl
-echo file3=%IS5_DEST%\root.server\usr\afs\bin\afssvrcfg_1046.dll >> Lang_Portuguese_Files.fgl
-echo file4=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAccountManager_1046.dll >> Lang_Portuguese_Files.fgl
-echo file5=%IS5_DEST%\root.server\usr\afs\bin\TaAfsAppLib_1046.dll >> Lang_Portuguese_Files.fgl
-echo file6=%IS5_DEST%\root.server\usr\afs\bin\TaAfsServerManager_1046.dll >> Lang_Portuguese_Files.fgl
-echo file7=%IS5_DEST%\root.client\usr\vice\etc\afscreds_1046.dll >> Lang_Portuguese_Files.fgl
-echo file8=%IS5_DEST%\root.client\usr\vice\etc\afs_config_1046.dll >> Lang_Portuguese_Files.fgl
-echo file9=%IS5_DEST%\root.client\usr\vice\etc\afs_cpa_1046.dll >> Lang_Portuguese_Files.fgl
-echo file10=%IS5_DEST%\root.client\usr\vice\etc\afs_shl_ext_1046.dll >> Lang_Portuguese_Files.fgl
-echo file11=%IS5_HELP%\pt_BR\afs-nt.hlp >> Lang_Portuguese_Files.fgl
-echo file12=%IS5_HELP%\pt_BR\afs-nt.cnt >> Lang_Portuguese_Files.fgl
-echo file13=%IS5_HELP%\pt_BR\taafssvrmgr.cnt >> Lang_Portuguese_Files.fgl
-echo file14=%IS5_HELP%\pt_BR\taafssvrmgr.hlp >> Lang_Portuguese_Files.fgl
-echo file15=%IS5_HELP%\pt_BR\taafsusrmgr.cnt >> Lang_Portuguese_Files.fgl
-echo file16=%IS5_HELP%\pt_BR\taafsusrmgr.hlp >> Lang_Portuguese_Files.fgl
-echo file17=%IS5_HELP%\pt_BR\afs-cc.cnt >> Lang_Portuguese_Files.fgl
-echo file18=%IS5_HELP%\pt_BR\afs-cc.hlp >> Lang_Portuguese_Files.fgl
-echo file19=%IS5_HELP%\pt_BR\afs-light.cnt >> Lang_Portuguese_Files.fgl
-echo file20=%IS5_HELP%\pt_BR\afs-light.hlp >> Lang_Portuguese_Files.fgl
-echo file21=%IS5_HELP%\pt_BR\taafscfg.cnt >> Lang_Portuguese_Files.fgl
-echo file22=%IS5_HELP%\pt_BR\taafscfg.hlp >> Lang_Portuguese_Files.fgl
-echo. >> Lang_Portuguese_Files.fgl
-echo [General] >> Lang_Portuguese_Files.fgl
-echo Type=FILELIST >> Lang_Portuguese_Files.fgl
-echo Version=1.00.000 >> Lang_Portuguese_Files.fgl
-
-
-rem -------------- Client_Afs_Header_Files.fgl --------------------------
-
-echo [TopDir] > Client_Afs_Header_Files.fgl
-echo file0=%IS5_INCL%\afs\afs_args.h >> Client_Afs_Header_Files.fgl
-echo file1=%IS5_INCL%\afs\debug.h >> Client_Afs_Header_Files.fgl
-echo file2=%IS5_INCL%\afs\param.h >> Client_Afs_Header_Files.fgl
-echo file3=%IS5_INCL%\afs\afs_sysnames.h >> Client_Afs_Header_Files.fgl
-echo file4=%IS5_INCL%\afs\permit_xprt.h >> Client_Afs_Header_Files.fgl
-echo file5=%IS5_INCL%\afs\stds.h >> Client_Afs_Header_Files.fgl
-echo file6=%IS5_INCL%\afs\icl.h >> Client_Afs_Header_Files.fgl
-echo file7=%IS5_INCL%\afs\procmgmt.h >> Client_Afs_Header_Files.fgl
-echo file8=%IS5_INCL%\afs\afsutil.h >> Client_Afs_Header_Files.fgl
-echo file9=%IS5_INCL%\afs\assert.h >> Client_Afs_Header_Files.fgl
-echo file10=%IS5_INCL%\afs\dirent.h >> Client_Afs_Header_Files.fgl
-echo file11=%IS5_INCL%\afs\errors.h >> Client_Afs_Header_Files.fgl
-echo file12=%IS5_INCL%\afs\itc.h >> Client_Afs_Header_Files.fgl
-echo file13=%IS5_INCL%\afs\vice.h >> Client_Afs_Header_Files.fgl
-echo file14=%IS5_INCL%\afs\pthread_glock.h >> Client_Afs_Header_Files.fgl
-echo file15=%IS5_INCL%\afs\errmap_nt.h >> Client_Afs_Header_Files.fgl
-echo file16=%IS5_INCL%\afs\dirpath.h >> Client_Afs_Header_Files.fgl
-echo file17=%IS5_INCL%\afs\ktime.h >> Client_Afs_Header_Files.fgl
-echo file18=%IS5_INCL%\afs\fileutil.h >> Client_Afs_Header_Files.fgl
-echo file19=%IS5_INCL%\afs\secutil_nt.h >> Client_Afs_Header_Files.fgl
-echo file20=%IS5_INCL%\afs\com_err.h >> Client_Afs_Header_Files.fgl
-echo file21=%IS5_INCL%\afs\error_table.h >> Client_Afs_Header_Files.fgl
-echo file22=%IS5_INCL%\afs\mit-sipb-cr.h >> Client_Afs_Header_Files.fgl
-echo file23=%IS5_INCL%\afs\cmd.h >> Client_Afs_Header_Files.fgl
-echo file24=%IS5_INCL%\afs\rxgen_consts.h >> Client_Afs_Header_Files.fgl
-echo file25=%IS5_INCL%\afs\afsint.h >> Client_Afs_Header_Files.fgl
-echo file26=%IS5_INCL%\afs\afscbint.h >> Client_Afs_Header_Files.fgl
-echo file27=%IS5_INCL%\afs\audit.h >> Client_Afs_Header_Files.fgl
-echo file28=%IS5_INCL%\afs\acl.h >> Client_Afs_Header_Files.fgl
-echo file29=%IS5_INCL%\afs\prs_fs.h >> Client_Afs_Header_Files.fgl
-echo file30=%IS5_INCL%\afs\afsd.h >> Client_Afs_Header_Files.fgl
-echo file31=%IS5_INCL%\afs\cm.h >> Client_Afs_Header_Files.fgl
-echo file32=%IS5_INCL%\afs\cm_buf.h >> Client_Afs_Header_Files.fgl
-echo file33=%IS5_INCL%\afs\cm_cell.h >> Client_Afs_Header_Files.fgl
-echo file34=%IS5_INCL%\afs\cm_config.h >> Client_Afs_Header_Files.fgl
-echo file35=%IS5_INCL%\afs\cm_conn.h >> Client_Afs_Header_Files.fgl
-echo file36=%IS5_INCL%\afs\cm_ioctl.h >> Client_Afs_Header_Files.fgl
-echo file37=%IS5_INCL%\afs\cm_scache.h >> Client_Afs_Header_Files.fgl
-echo file38=%IS5_INCL%\afs\cm_server.h >> Client_Afs_Header_Files.fgl
-echo file39=%IS5_INCL%\afs\cm_user.h >> Client_Afs_Header_Files.fgl
-echo file40=%IS5_INCL%\afs\cm_utils.h >> Client_Afs_Header_Files.fgl
-echo file41=%IS5_INCL%\afs\fs_utils.h >> Client_Afs_Header_Files.fgl
-echo file42=%IS5_INCL%\afs\krb.h >> Client_Afs_Header_Files.fgl
-echo file43=%IS5_INCL%\afs\krb_prot.h >> Client_Afs_Header_Files.fgl
-echo file44=%IS5_INCL%\afs\smb.h >> Client_Afs_Header_Files.fgl
-echo file45=%IS5_INCL%\afs\smb3.h >> Client_Afs_Header_Files.fgl
-echo file46=%IS5_INCL%\afs\smb_iocons.h >> Client_Afs_Header_Files.fgl
-echo file47=%IS5_INCL%\afs\smb_ioctl.h >> Client_Afs_Header_Files.fgl
-echo file48=%IS5_INCL%\afs\afsrpc.h >> Client_Afs_Header_Files.fgl
-echo file49=%IS5_INCL%\afs\afssyscalls.h >> Client_Afs_Header_Files.fgl
-echo file50=%IS5_INCL%\afs\pioctl_nt.h >> Client_Afs_Header_Files.fgl
-echo file51=%IS5_INCL%\afs\auth.h >> Client_Afs_Header_Files.fgl
-echo file52=%IS5_INCL%\afs\cellconfig.h >> Client_Afs_Header_Files.fgl
-echo file53=%IS5_INCL%\afs\keys.h >> Client_Afs_Header_Files.fgl
-echo file54=%IS5_INCL%\afs\ptserver.h >> Client_Afs_Header_Files.fgl
-echo file55=%IS5_INCL%\afs\ptint.h >> Client_Afs_Header_Files.fgl
-echo file56=%IS5_INCL%\afs\pterror.h >> Client_Afs_Header_Files.fgl
-echo file57=%IS5_INCL%\afs\ptclient.h >> Client_Afs_Header_Files.fgl
-echo file58=%IS5_INCL%\afs\prserver.h >> Client_Afs_Header_Files.fgl
-echo file59=%IS5_INCL%\afs\print.h >> Client_Afs_Header_Files.fgl
-echo file60=%IS5_INCL%\afs\prerror.h >> Client_Afs_Header_Files.fgl
-echo file61=%IS5_INCL%\afs\prclient.h >> Client_Afs_Header_Files.fgl
-echo file62=%IS5_INCL%\afs\kautils.h >> Client_Afs_Header_Files.fgl
-echo file63=%IS5_INCL%\afs\kauth.h >> Client_Afs_Header_Files.fgl
-echo file64=%IS5_INCL%\afs\kaport.h >> Client_Afs_Header_Files.fgl
-echo file65=%IS5_INCL%\afs\vl_opcodes.h >> Client_Afs_Header_Files.fgl
-echo file66=%IS5_INCL%\afs\vlserver.h >> Client_Afs_Header_Files.fgl
-echo file67=%IS5_INCL%\afs\vldbint.h >> Client_Afs_Header_Files.fgl
-echo file68=%IS5_INCL%\afs\usd.h >> Client_Afs_Header_Files.fgl
-echo file69=%IS5_INCL%\afs\bubasics.h >> Client_Afs_Header_Files.fgl
-echo file70=%IS5_INCL%\afs\butc.h >> Client_Afs_Header_Files.fgl
-echo file71=%IS5_INCL%\afs\bumon.h >> Client_Afs_Header_Files.fgl
-echo file72=%IS5_INCL%\afs\butm.h >> Client_Afs_Header_Files.fgl
-echo file73=%IS5_INCL%\afs\tcdata.h >> Client_Afs_Header_Files.fgl
-echo file74=%IS5_INCL%\afs\budb.h >> Client_Afs_Header_Files.fgl
-echo file75=%IS5_INCL%\afs\budb_errs.h >> Client_Afs_Header_Files.fgl
-echo file76=%IS5_INCL%\afs\budb_client.h >> Client_Afs_Header_Files.fgl
-echo file77=%IS5_INCL%\afs\dir.h >> Client_Afs_Header_Files.fgl
-echo file78=%IS5_INCL%\afs\fssync.h >> Client_Afs_Header_Files.fgl
-echo file79=%IS5_INCL%\afs\ihandle.h >> Client_Afs_Header_Files.fgl
-echo file80=%IS5_INCL%\afs\nfs.h >> Client_Afs_Header_Files.fgl
-echo file81=%IS5_INCL%\afs\ntops.h >> Client_Afs_Header_Files.fgl
-echo file82=%IS5_INCL%\afs\partition.h >> Client_Afs_Header_Files.fgl
-echo file83=%IS5_INCL%\afs\viceinode.h >> Client_Afs_Header_Files.fgl
-echo file84=%IS5_INCL%\afs\vnode.h >> Client_Afs_Header_Files.fgl
-echo file85=%IS5_INCL%\afs\volume.h >> Client_Afs_Header_Files.fgl
-echo file86=%IS5_INCL%\afs\voldefs.h >> Client_Afs_Header_Files.fgl
-echo file87=%IS5_INCL%\afs\volser.h >> Client_Afs_Header_Files.fgl
-echo file88=%IS5_INCL%\afs\volint.h >> Client_Afs_Header_Files.fgl
-echo file89=%IS5_INCL%\afs\fs_stats.h >> Client_Afs_Header_Files.fgl
-echo file90=%IS5_INCL%\afs\bosint.h >> Client_Afs_Header_Files.fgl
-echo file91=%IS5_INCL%\afs\bnode.h >> Client_Afs_Header_Files.fgl
-echo. >> Client_Afs_Header_Files.fgl
-echo [General] >> Client_Afs_Header_Files.fgl
-echo Type=FILELIST >> Client_Afs_Header_Files.fgl
-echo Version=1.00.000 >> Client_Afs_Header_Files.fgl
-
-
-rem -------------- Client_Rx_Header_Files.fgl ---------------------------
-
-echo [TopDir] > Client_Rx_Header_Files.fgl
-echo file0=%IS5_INCL%\rx\rx.h >> Client_Rx_Header_Files.fgl
-echo file1=%IS5_INCL%\rx\rx_packet.h >> Client_Rx_Header_Files.fgl
-echo file2=%IS5_INCL%\rx\rx_user.h >> Client_Rx_Header_Files.fgl
-echo file3=%IS5_INCL%\rx\rx_event.h >> Client_Rx_Header_Files.fgl
-echo file4=%IS5_INCL%\rx\rx_queue.h >> Client_Rx_Header_Files.fgl
-echo file5=%IS5_INCL%\rx\rx_globals.h >> Client_Rx_Header_Files.fgl
-echo file6=%IS5_INCL%\rx\rx_clock.h >> Client_Rx_Header_Files.fgl
-echo file7=%IS5_INCL%\rx\rx_misc.h >> Client_Rx_Header_Files.fgl
-echo file8=%IS5_INCL%\rx\rx_multi.h >> Client_Rx_Header_Files.fgl
-echo file9=%IS5_INCL%\rx\rx_null.h >> Client_Rx_Header_Files.fgl
-echo file10=%IS5_INCL%\rx\rx_lwp.h >> Client_Rx_Header_Files.fgl
-echo file11=%IS5_INCL%\rx\rx_pthread.h >> Client_Rx_Header_Files.fgl
-echo file12=%IS5_INCL%\rx\rx_xmit_nt.h >> Client_Rx_Header_Files.fgl
-echo file13=%IS5_INCL%\rx\xdr.h >> Client_Rx_Header_Files.fgl
-echo file14=%IS5_INCL%\rx\rxkad.h >> Client_Rx_Header_Files.fgl
-echo. >> Client_Rx_Header_Files.fgl
-echo [General] >> Client_Rx_Header_Files.fgl
-echo Type=FILELIST >> Client_Rx_Header_Files.fgl
-echo Version=1.00.000 >> Client_Rx_Header_Files.fgl
-
-
-rem -------------- Client_Main_Header_Files.fgl -------------------------
-
-echo [TopDir] > Client_Main_Header_Files.fgl
-echo file0=%IS5_INCL%\lock.h >> Client_Main_Header_Files.fgl
-echo file1=%IS5_INCL%\lwp.h >> Client_Main_Header_Files.fgl
-echo file2=%IS5_INCL%\preempt.h >> Client_Main_Header_Files.fgl
-echo file3=%IS5_INCL%\timer.h >> Client_Main_Header_Files.fgl
-echo file4=%IS5_INCL%\des.h >> Client_Main_Header_Files.fgl
-echo file5=%IS5_INCL%\des_conf.h >> Client_Main_Header_Files.fgl
-echo file6=%IS5_INCL%\mit-cpyright.h >> Client_Main_Header_Files.fgl
-echo file7=%IS5_INCL%\des_odd.h >> Client_Main_Header_Files.fgl
-echo file8=%IS5_INCL%\crypt.h >> Client_Main_Header_Files.fgl
-echo file9=%IS5_INCL%\pthread.h >> Client_Main_Header_Files.fgl
-echo file10=%IS5_INCL%\dbrpc.h >> Client_Main_Header_Files.fgl
-echo file11=%IS5_INCL%\basic.h >> Client_Main_Header_Files.fgl
-echo file12=%IS5_INCL%\osidebug.h >> Client_Main_Header_Files.fgl
-echo file13=%IS5_INCL%\osiltype.h >> Client_Main_Header_Files.fgl
-echo file14=%IS5_INCL%\osistatl.h >> Client_Main_Header_Files.fgl
-echo file15=%IS5_INCL%\trylock.h >> Client_Main_Header_Files.fgl
-echo file16=%IS5_INCL%\main.h >> Client_Main_Header_Files.fgl
-echo file17=%IS5_INCL%\osibasel.h >> Client_Main_Header_Files.fgl
-echo file18=%IS5_INCL%\osifd.h >> Client_Main_Header_Files.fgl
-echo file19=%IS5_INCL%\osiqueue.h >> Client_Main_Header_Files.fgl
-echo file20=%IS5_INCL%\osiutils.h >> Client_Main_Header_Files.fgl
-echo file21=%IS5_INCL%\osi.h >> Client_Main_Header_Files.fgl
-echo file22=%IS5_INCL%\osidb.h >> Client_Main_Header_Files.fgl
-echo file23=%IS5_INCL%\osilog.h >> Client_Main_Header_Files.fgl
-echo file24=%IS5_INCL%\osisleep.h >> Client_Main_Header_Files.fgl
-echo file25=%IS5_INCL%\perf.h >> Client_Main_Header_Files.fgl
-echo file26=%IS5_INCL%\ubik.h >> Client_Main_Header_Files.fgl
-echo file27=%IS5_INCL%\ubik_int.h >> Client_Main_Header_Files.fgl
-echo. >> Client_Main_Header_Files.fgl
-echo [General] >> Client_Main_Header_Files.fgl
-echo Type=FILELIST >> Client_Main_Header_Files.fgl
-echo Version=1.00.000 >> Client_Main_Header_Files.fgl
-
-
-rem -------------- Client_Sample_Files.fgl ------------------------------
-
-echo [TopDir] > Client_Sample_Files.fgl
-echo file0=%IS5_WINNT%\afsd\sample\token.c >> Client_Sample_Files.fgl
-echo. >> Client_Sample_Files.fgl
-echo [General] >> Client_Sample_Files.fgl
-echo Type=FILELIST >> Client_Sample_Files.fgl
-echo Version=1.00.000 >> Client_Sample_Files.fgl
-
-:EOF
+++ /dev/null
-@echo off
-rem Copyright 2000, International Business Machines Corporation and others.
-rem All Rights Reserved.
-rem
-rem This software has been released under the terms of the IBM Public
-rem License. For details, see the LICENSE file in the top-level source
-rem directory or online at http://www.openafs.org/dl/license10.html
-
-echo [Language] > InstallShield5.ipr
-echo LanguageSupport0=0009 >> InstallShield5.ipr
-echo LanguageSupport1=0416 >> InstallShield5.ipr
-echo LanguageSupport2=0804 >> InstallShield5.ipr
-echo LanguageSupport3=0404 >> InstallShield5.ipr
-echo LanguageSupport4=0007 >> InstallShield5.ipr
-echo LanguageSupport5=0011 >> InstallShield5.ipr
-echo LanguageSupport6=0012 >> InstallShield5.ipr
-echo LanguageSupport7=000a >> InstallShield5.ipr
-echo. >> InstallShield5.ipr
-echo [OperatingSystem] >> InstallShield5.ipr
-echo OSSupport=0000000000010000 >> InstallShield5.ipr
-echo. >> InstallShield5.ipr
-echo [Data] >> InstallShield5.ipr
-echo CurrentMedia=OpenAFS >> InstallShield5.ipr
-echo set_mifserial= >> InstallShield5.ipr
-echo ProductName=OpenAFS for Windows >> InstallShield5.ipr
-echo CurrentComponentDef=Default.cdf >> InstallShield5.ipr
-echo set_dlldebug=No >> InstallShield5.ipr
-echo AppExe= >> InstallShield5.ipr
-echo DevEnvironment=Microsoft Visual C++ >> InstallShield5.ipr
-echo set_mif=No >> InstallShield5.ipr
-echo set_testmode=No >> InstallShield5.ipr
-echo Instructions=Instructions.txt >> InstallShield5.ipr
-echo EmailAddresss= >> InstallShield5.ipr
-echo SummaryText= >> InstallShield5.ipr
-echo Department= >> InstallShield5.ipr
-echo Type=Generic Application >> InstallShield5.ipr
-echo Author= >> InstallShield5.ipr
-echo HomeURL= >> InstallShield5.ipr
-echo InstallRoot=. >> InstallShield5.ipr
-echo set_level=Level 3 >> InstallShield5.ipr
-echo InstallationGUID=c982a6e4-4252-11d2-852e-0000b459dea3 >> InstallShield5.ipr
-echo Version=1.00.000 >> InstallShield5.ipr
-echo set_miffile=Status.mif >> InstallShield5.ipr
-echo set_args= >> InstallShield5.ipr
-echo set_maxerr=50 >> InstallShield5.ipr
-echo Notes=Notes.txt >> InstallShield5.ipr
-echo CurrentFileGroupDef=Default.fdf >> InstallShield5.ipr
-echo set_dllcmdline= >> InstallShield5.ipr
-echo set_warnaserr=No >> InstallShield5.ipr
-echo Copyright= >> InstallShield5.ipr
-echo set_preproc= >> InstallShield5.ipr
-echo Category= >> InstallShield5.ipr
-echo CurrentPlatform= >> InstallShield5.ipr
-echo set_compileb4build=No >> InstallShield5.ipr
-echo set_crc=Yes >> InstallShield5.ipr
-echo set_maxwarn=50 >> InstallShield5.ipr
-echo Description=Description.txt >> InstallShield5.ipr
-echo CompanyName=OpenAFS >> InstallShield5.ipr
-echo CurrentLanguage=English >> InstallShield5.ipr
-echo. >> InstallShield5.ipr
-echo [MediaInfo] >> InstallShield5.ipr
-echo mediadata0=OpenAFS/Media\OpenAFS >> InstallShield5.ipr
-echo. >> InstallShield5.ipr
-echo [General] >> InstallShield5.ipr
-echo Type=INSTALLMAIN >> InstallShield5.ipr
-echo Version=1.20.000 >> InstallShield5.ipr
-
+++ /dev/null
-Copyright 2000, International Business Machines Corporation and others.
-All Rights Reserved.
-This software has been released under the terms of the IBM Public
-License. For details, see the LICENSE file in the top-level source
-directory or online at http://www.openafs.org/dl/license10.html
-HOW TO SET THE AFS FOR WINDOWS VERSION INFORMATION
-
-Set AFSPRODUCT_VERSION in the following files:
-src\config\NTMakefile.i386_win95
-src\config\NTMakefile.i386_nt40
-
-The format of this variable should be
-x.y.z.p or x.y.z p
-
-x= major verson (1-9)
-y= minor verson (1-9)
-z.p= patch level z=(1-9) p=(1-99 or a-z)
-
-For example:
-AFSPRODUCT_VERSION=1.1.1 a
-AFSPRODUCT_VERSION=1.1.1.1
-AFSPRODUCT_VERSION=1.1.101
-AFSPRODUCT_VERSION=1.1.1a
-
-These examples represent different forms of the same version.
-However the version will be displayed to the user as they are shown!
-
-
-
-
+++ /dev/null
-# Copyright 2000, International Business Machines Corporation and others.
-# All Rights Reserved.
-#
-# This software has been released under the terms of the IBM Public
-# License. For details, see the LICENSE file in the top-level source
-# directory or online at http://www.openafs.org/dl/license10.html
-
-RELDIR=WINNT\install\InstallShield5
-!INCLUDE ..\..\..\config\NTMakefile.$(SYS_NAME)
-!INCLUDE ..\..\..\config\NTMakefile.version
-
-# Install comments
-# Don't use '=' in the following strings!
-# WELCOMEMESSAGE=Display during installation process
-# AFSBUILDCOMMENTS=Displayed in properity page for install file
-# CELLSERVDB_CONFIGNAME = name of configuration file (ThisCell)
-
-CELLSERVDB_CONFIGNAME=afsdcell.ini
-WELCOMEMESSAGE=Default Configuration Information:\nBuild:*DatE* *TimE* Ver:$(AFSPRODUCT_VERSION)\nCellname:$(CELLNAME_DEFAULT)\nCellSrvDB:$(CELLSERVDB_INSTALL)
-AFSBUILDCOMMENTS=Build:*DatE* *TimE* CellServDB:$(CELLSERVDB_INSTALL)
-
-#CHECK which OS we are using to avoid using the wrong options
-!IF (([$(DESTDIR)\bin\util_cr.exe _ xp w2])==1)
-XCOPY= xcopy /s/e/y
-!ELSE
-XCOPY= xcopy /s/e
-!ENDIF
-
-############################################################################
-
-prep: AFS_component_version_number.txt
- $(DESTDIR)\bin\util_cr.exe } "$(AFSPRODUCT_VERSION)" ".\lang\en_US\value.txt" "$(OUT)\lang\en_US\value.shl"
- $(DESTDIR)\bin\util_cr.exe } "$(AFSPRODUCT_VERSION)" "default.txt" "default.rge"
- $(DESTDIR)\bin\util_cr.exe @ "$(OUT)\lang\en_US\value.shl" "[DATA] CELLSERVDB_CONFIGNAME=$(CELLSERVDB_CONFIGNAME)"
- $(DESTDIR)\bin\util_cr.exe @ "$(OUT)\lang\en_US\value.shl" "[DATA] CELLNAME_DEFAULT=$(CELLNAME_DEFAULT)"
- $(DESTDIR)\bin\util_cr.exe @ "$(OUT)\lang\en_US\value.shl" "[DATA] CELLSERVDB_INSTALL=$(CELLSERVDB_INSTALL)"
- $(DESTDIR)\bin\util_cr.exe @ "$(OUT)\lang\en_US\value.shl" "[DATA] CELLSERVDB_WEB=$(CELLSERVDB_WEB)"
-!IF "$(WELCOMEMESSAGE)" != ""
- $(DESTDIR)\bin\util_cr.exe @ "$(OUT)\lang\en_US\value.shl" "[DATA] WELCOME_MESSAGE=$(WELCOMEMESSAGE)"
-!ENDIF
-! IF ((EXIST("$(ISWEB)")) &&("$(ISWEB)"!=""))
- $(DESTDIR)\bin\util_cr.exe @ "$(OUT)\packageweb.pfw" "[Options] Version=$(AFSPRODUCT_VERSION)"
- $(DESTDIR)\bin\util_cr.exe @ "$(OUT)\packageweb.pfw" "[Options] Comments=$(AFSBUILDCOMMENTS)"
- $(DESTDIR)\bin\util_cr.exe @ "$(OUT)\packageweb.pfw" "[Options] ApplicationName=AFSforWindows"
- $(DESTDIR)\bin\util_cr.exe @ "$(OUT)\packageweb.pfw" "[Options] Company=Open AFS"
- $(DESTDIR)\bin\util_cr.exe @ "$(OUT)\packageweb.pfw" "[Options] Title=Open AFS for Windows"
- $(DESTDIR)\bin\util_cr.exe @ "$(OUT)\packageweb.pfw" "[Options] OutputSpec="$(DESTDIR)\WinInstall\PackageWeb\AFSforWindows.exe"
-! ENDIF
- CreateISDirTree.bat
- ScatterFiles.bat
- CreateGeneratedFiles.bat
- CompileScript.bat
- $(COPY) $(SYSTEMROOT)\SYSTEM32\wininet.dll ".\Setup Files\Compressed Files\0009-English\Intel 32\."
- $(COPY) $(SYSTEMROOT)\SYSTEM32\shlwapi.dll ".\Setup Files\Compressed Files\0009-English\Intel 32\."
- $(COPY) $(DESTDIR)\WinInstall\Config\_isuser.dll ".\Setup Files\Compressed Files\0009-English\Intel 32\."
- $(COPY) $(DESTDIR)\WinInstall\Config\getwebdll.dll ".\Setup Files\Compressed Files\0009-English\Intel 32\."
- $(COPY) $(DESTDIR)\WinInstall\Config\$(CELLSERVDB_INSTALL) ".\Setup Files\Compressed Files\0009-English\Intel 32\$(CELLSERVDB_CONFIGNAME)"
- $(DESTDIR)\bin\util_cr.exe ~ ".\Setup Files\Compressed Files\0009-English\Intel 32\$(CELLSERVDB_CONFIGNAME)"
- $(DESTDIR)\bin\util_cr.exe ~ ".\Setup Files\Compressed Files\0009-English\Intel 32\_ISUSER.DLL"
- $(DESTDIR)\bin\util_cr.exe ~ ".\Setup Files\Compressed Files\0009-English\Intel 32\shlwapi.DLL"
- $(DESTDIR)\bin\util_cr.exe ~ ".\Setup Files\Compressed Files\0009-English\Intel 32\wininet.DLL"
- $(DESTDIR)\bin\util_cr.exe ~ ".\Setup Files\Compressed Files\0009-English\Intel 32\GETWEBDLL.DLL"
-
-build:
- BuildSetup.bat
-!IF ((EXIST("$(ISWEB)")) &&("$(ISWEB)"!=""))
-! IF (!EXIST($(DESTDIR)\Wininstall\PackageWeb))
- $(MKDIR) $(DESTDIR)\Wininstall\PackageWeb
-! ENDIF
- $(DEL) /q $(DESTDIR)\Wininstall\PackageWeb\*.*
- $(ISWEB)\Pftwwiz.exe $(SRT)PackageWeb.pfw -s -a
-!ENDIF
- $(XCOPY) Media\OpenAFS\DiskIm~1\disk1\*.* $(DESTDIR)\WinInstall
- copy AFS_component_version_number.txt $(DESTDIR)\WinInstall\Version.txt
- $(DEL) /q "Media\OpenAFS\Disk Images\disk1\*.*"
-install: prep build
-
-mkdir:
+++ /dev/null
-[PackageForTheWeb]
-Version=2.0
-
-[Options]
-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:11/07/01 10:26 CellServDB:
-Notice=
-Version=1.2.2 a
-OutputSpec=Y:\DEST\WinInstall\PackageWeb\AFSforWindows.exe
-GUIDs=0
-Type=2
-Compress=1
-Sign=0
-Transfer=0
-Files=33
-
-[Engine]
-Setup=Disk1\Setup.exe
-
-[Web Page]
-Generate=1
-Template=
-MSClient=
-NClient=
-
-[Runtime]
-Welcome=
-License=
-Prompt=
-Password=
-DefaultPath=
-Language=English
-WindowStyle=0
-Options=19
-Execute=Disk1\Setup.exe
-CmdLine=/SMS
-
-[Extension]
-Server=
-Calls=0
-
-[Code Signing]
-CompanyURL=
-SpecFile=
-KeyFile=
-Method=0
-
-; ~~~~~~~~~~ File Section ~~~~~~~~~~~
-[SubFolders]
-Count=10
-Folder1=Disk1
-Folder2=Disk1\setupdir\0009
-Folder3=Disk1\setupdir\0416
-Folder4=Disk1\setupdir\0804
-Folder5=Disk1\setupdir\0404
-Folder6=Disk1\setupdir\0007
-Folder7=Disk1\setupdir\0011
-Folder8=Disk1\setupdir\0012
-Folder9=Disk1\setupdir\000a
-Folder10=Disk1\License
-
-[File 1]
-Name=_ISDel.exe
-Path=.\Media\OpenAFS\Disk Images\Disk1\
-Flags=589825
-Disk=0
-
-[File 2]
-Name=Setup.exe
-Path=.\Media\OpenAFS\Disk Images\Disk1\
-Flags=589825
-Disk=0
-
-[File 3]
-Name=_inst32i.ex_
-Path=.\Media\OpenAFS\Disk Images\Disk1\
-Flags=524289
-Disk=0
-
-[File 4]
-Name=os.dat
-Path=.\Media\OpenAFS\Disk Images\Disk1\
-Flags=1
-Disk=0
-
-[File 5]
-Name=lang.dat
-Path=.\Media\OpenAFS\Disk Images\Disk1\
-Flags=1
-Disk=0
-
-[File 6]
-Name=_Setup.dll
-Path=.\Media\OpenAFS\Disk Images\Disk1\setupdir\0009\
-Flags=655377
-Disk=0
-
-[File 7]
-Name=_Setup.dll
-Path=.\Media\OpenAFS\Disk Images\Disk1\setupdir\0416\
-Flags=655377
-Disk=0
-
-[File 8]
-Name=_Setup.dll
-Path=.\Media\OpenAFS\Disk Images\Disk1\setupdir\0804\
-Flags=655377
-Disk=0
-
-[File 9]
-Name=_Setup.dll
-Path=.\Media\OpenAFS\Disk Images\Disk1\setupdir\0404\
-Flags=655377
-Disk=0
-
-[File 10]
-Name=_Setup.dll
-Path=.\Media\OpenAFS\Disk Images\Disk1\setupdir\0007\
-Flags=655377
-Disk=0
-
-[File 11]
-Name=_Setup.dll
-Path=.\Media\OpenAFS\Disk Images\Disk1\setupdir\0011\
-Flags=655377
-Disk=0
-
-[File 12]
-Name=_Setup.dll
-Path=.\Media\OpenAFS\Disk Images\Disk1\setupdir\0012\
-Flags=655377
-Disk=0
-
-[File 13]
-Name=_Setup.dll
-Path=.\Media\OpenAFS\Disk Images\Disk1\setupdir\000a\
-Flags=655377
-Disk=0
-
-[File 14]
-Name=setup.ins
-Path=.\Media\OpenAFS\Disk Images\Disk1\
-Flags=1
-Disk=0
-
-[File 15]
-Name=_sys1.hdr
-Path=.\Media\OpenAFS\Disk Images\Disk1\
-Flags=2097153
-Disk=0
-
-[File 16]
-Name=_sys1.cab
-Path=.\Media\OpenAFS\Disk Images\Disk1\
-Flags=2097153
-Disk=0
-
-[File 17]
-Name=_user1.hdr
-Path=.\Media\OpenAFS\Disk Images\Disk1\
-Flags=2097153
-Disk=0
-
-[File 18]
-Name=_user1.cab
-Path=.\Media\OpenAFS\Disk Images\Disk1\
-Flags=2097153
-Disk=0
-
-[File 19]
-Name=DATA.TAG
-Path=.\Media\OpenAFS\Disk Images\Disk1\
-Flags=1
-Disk=0
-
-[File 20]
-Name=SETUP.INI
-Path=.\Media\OpenAFS\Disk Images\Disk1\
-Flags=1
-Disk=0
-
-[File 21]
-Name=setup.lid
-Path=.\Media\OpenAFS\Disk Images\Disk1\
-Flags=1
-Disk=0
-
-[File 22]
-Name=setup.bmp
-Path=.\Media\OpenAFS\Disk Images\Disk1\
-Flags=1
-Disk=0
-
-[File 23]
-Name=data1.hdr
-Path=.\Media\OpenAFS\Disk Images\Disk1\
-Flags=2097153
-Disk=0
-
-[File 24]
-Name=data1.cab
-Path=.\Media\OpenAFS\Disk Images\Disk1\
-Flags=2097153
-Disk=0
-
-[File 25]
-Name=layout.bin
-Path=.\Media\OpenAFS\Disk Images\Disk1\
-Flags=1
-Disk=0
-
-[File 26]
-Name=en_US.rtf
-Path=.\Media\OpenAFS\Disk Images\Disk1\License\
-Flags=1
-Disk=0
-
-[File 27]
-Name=ja_JP.rtf
-Path=.\Media\OpenAFS\Disk Images\Disk1\License\
-Flags=1
-Disk=0
-
-[File 28]
-Name=ko_KR.rtf
-Path=.\Media\OpenAFS\Disk Images\Disk1\License\
-Flags=1
-Disk=0
-
-[File 29]
-Name=zh_CN.rtf
-Path=.\Media\OpenAFS\Disk Images\Disk1\License\
-Flags=1
-Disk=0
-
-[File 30]
-Name=zh_TW.rtf
-Path=.\Media\OpenAFS\Disk Images\Disk1\License\
-Flags=1
-Disk=0
-
-[File 31]
-Name=pt_BR.rtf
-Path=.\Media\OpenAFS\Disk Images\Disk1\License\
-Flags=1
-Disk=0
-
-[File 32]
-Name=es_ES.rtf
-Path=.\Media\OpenAFS\Disk Images\Disk1\License\
-Flags=1
-Disk=0
-
-[File 33]
-Name=de_DE.rtf
-Path=.\Media\OpenAFS\Disk Images\Disk1\License\
-Flags=1
-Disk=0
+++ /dev/null
-Copyright 2000, International Business Machines Corporation and others.
-All Rights Reserved.
-
-This software has been released under the terms of the IBM Public
-License. For details, see the LICENSE file in the top-level source
-directory or online at http://www.openafs.org/dl/license10.html
-
-HOW TO USE THIS MESS
-
-TO EDIT THE IS5 FILES
-
-If you need to modify the InstallShield project files, follow these steps:
-
-0) Go to the src dir version of the install files.
-
-1) Run the batch file CreateISDirs.bat
- This will create the directories that IS needs. We can't store these
- dirs in CML because the directory names contain spaces.
-
-2) Run the batch file ScatterFiles.bat
- This will copy the IS files that are in the main install dir to the
- appropriate IS dirs.
-
-3) Run the batch file CreateGeneratedFiles.bat
- This will run other batch files that will generate certain IS files that
- we can't use directly. This is because the IS IDE puts paths in those
- files that are relative to the machine the IDE is running on. If some
- other person doing a build used a different drive mapping to get at the
- build tree, the IS build would fail. These batch files will generate the
- IS files such that the paths will be relative to the person doing the
- build.
-
-4) Run InstallShield and load the InstallShield5.ipr project file.
- It is called InstallShield5.ipr, and not something more appropriate like
- TransarcAFS.ipr, because IS requires that the project name match the
- name of the directory in which the project lives.
-
-5) Do whatever it is you need to do to the IS5 project.
-
-6) CML edit the files in the main install dir.
-
-7) If you changed the file groups, you must go into the File Groups dir and
- modify the GenFileGroups.bat file. If you changed an existing file group,
- then you must make the change again in the batch file. If you have deleted
- a file group, then you must delete it from the batch file. If you added a
- group, then add it to the batch file.
-
-7) Run the batch file GatherFiles.bat.
- This will get all the IS5 files out of their IS5 dirs and copy them into
- the main install dir.
-
-8) If you have added or deleted file groups, edit the batch file DelISDirTree.bat.
- It removes the file group files, so modify its list to match what currently
- is in use.
-
-9) Run the batch file DelISDirTree.bat.
- This will delete all of the IS dirs. Some of the dirs, like the media build
- report dirs, are always removed. Most other dirs are removed only if they
- are empty. Any dirs not removed after running the batch file contain files
- that we previously didn't know about, so IS had some reason to create them
- for the first time. You will have to determine if the file should be added
- to cml. If it should be added, then check to see if it contains path names.
- If it does, then you must create a batch file to generate this new file.
- Look at GenFileGroups.bat for an example of how to do that. In either case
- you have a new file to add to the build tree, either the new file IS made or
- your batch file that generates the IS file. Copy this file to the main
- install dir (rename it if it clashes with a file already there), and modify
- ScatterFiles.bat, GatherFiles.bat, and DelISDirTree.bat to include the new
- file.
-
- Also, if you had to create a batch file to generate the IS file, then modify
- CreateGeneratedFiles.bat to include a call to your batch file.
-
-10) Do a cml close. If you want to diff the IS5 files, do so only on the setup.rul
- file. IS5 reoriganizes most other files more or less randomly each time
- they are saved. It's easist to just edit all the files and then check in all
- of them. However, if you know IS well and you know which files your changes
- have affected, then only check in those files.
-
-
-
-HOW TO BUILD THE SETUP PROJECT
-
-0) Go to the obj dir version of the install files.
-
-1) To build the distribution type:
- nmake /f NTMakfile install
-
- If the build fails, you may not have the environment variable IS5ROOT
- defined. Define it and try again.
-
- If it still fails, then you're on your own. Use your excellent debugging
- skills to fix the problem.
-
+++ /dev/null
-@echo off
-rem Copyright 2000, International Business Machines Corporation and others.
-rem All Rights Reserved.
-rem
-rem This software has been released under the terms of the IBM Public
-rem License. For details, see the LICENSE file in the top-level source
-rem directory or online at http://www.openafs.org/dl/license10.html
-
-rem This file copies the IS5 files from the CML dir to the IS5 dirs.
-
-echo Populating the IS dir tree...
-
-copy Default.cdf "Component Definitions"
-copy Default.fgl "Component Definitions"
-
-copy Default.fdf "File Groups"
-copy GenFileGroups.bat "File Groups"
-
-copy GenDefault.mda.bat "Media\OpenAFS"
-
-copy Default.rge "Registry Entries"
-
-copy setup.rul "Script Files"
-
-rem Only copy this file when NOT doing a WSPP build
-if not defined AFSBLD_IS_WSPP copy setup.bmp "Setup Files\Uncompressed Files\Language Independent\OS Independent"
-if not defined AFSBLD_IS_WSPP copy _isuser.dll "Setup Files\Uncompressed Files\Language Independent\OS Independent"
-
-copy %AFSROOT%\DEST\root.server\usr\afs\bin\InstallUtils.dll "Setup Files\Compressed Files\Language Independent\OS Independent"
-copy %AFSROOT%\DEST\root.server\usr\afs\bin\afs_setup_utils_*.dll "Setup Files\Compressed Files\Language Independent\OS Independent"
-
-copy Default.shell "Shell Objects\Default.shl"
-
-copy Default.shl "String Tables"
-
-copy lang\en_US\value.shl "String Tables\0009-English"
-copy lang\ja_JP\value.shl "String Tables\0011-Japanese"
-copy lang\ko_KR\value.shl "String Tables\0012-Korean"
-copy lang\zh_TW\value.shl "String Tables\0404-Chinese (Taiwan)"
-copy lang\zh_CN\value.shl "String Tables\0804-Chinese (PRC)"
-copy lang\de_DE\value.shl "String Tables\0007-German"
-copy lang\pt_BR\value.shl "String Tables\0416-Portuguese (Brazilian)"
-copy lang\es_ES\value.shl "String Tables\000a-Spanish"
-
-copy Build.tsb "Text Substitutions"
-copy Setup.tsb "Text Substitutions"
-
+++ /dev/null
-[<LOGON_DLL>]
-KeyType=3
-Value=
-
-[<CLIENT_DESC>]
-KeyType=3
-Value=
-
-[<INSTALL_DATE>]
-KeyType=3
-Value=
-
-[<HKCR>]
-KeyType=4
-Value=
-
-[<HKUS>]
-KeyType=4
-Value=
-
-[<SRCDIR>]
-KeyType=4
-Value=
-
-[<CLIENT_HELP>]
-Value=
-KeyType=3
-
-[<CLIENT_DESCRIPTION>]
-KeyType=3
-Value=
-
-[<PROGRAMFILES>]
-KeyType=4
-Value=
-
-[<TARGETDIR>]
-KeyType=4
-Value=
-
-[<WINSYSDIR>]
-KeyType=4
-Value=
-
-[<PROVIDER_ORDER>]
-Value=
-KeyType=3
-
-[<COMMONFILES>]
-KeyType=4
-Value=
-
-[<WINDIR>]
-KeyType=4
-Value=
-
-[Data]
-Key18=<CLIENT_DESC>
-Key19=<PROVIDER_ORDER>
-Key0=<PROGRAMFILES>
-Key1=<COMMONFILES>
-Key2=<WINDIR>
-Key3=<WINSYSDIR>
-Key4=<TARGETDIR>
-Key20=<LOGON_DLL>
-Key10=<HKDD>
-Key5=<SUPPORTDIR>
-Key21=<CLIENT_HELP>
-Key22=<EVENT_MSG_FILE>
-Key11=<HKUS>
-Key6=<SRCDIR>
-Key12=<HKCR>
-Key7=<HKLM>
-Key23=<EVENT_MSG_DLL>
-Key24=<RELEASE_TYPE>
-Key13=<SHELL_OBJECT_FOLDER>
-Key8=<HKCU>
-Key14=<UNINST>
-Key9=<HKCC>
-Key15=<INSTALL_DATE>
-Key16=<CLIENT_DESCRIPTION>
-Key17=<CLIENT_TITLE>
-
-[<UNINST>]
-KeyType=4
-Value=
-
-[<EVENT_MSG_FILE>]
-KeyType=3
-Value=
-
-[<CLIENT_TITLE>]
-KeyType=3
-Value=
-
-[<SHELL_OBJECT_FOLDER>]
-KeyType=4
-Value=
-
-[<SUPPORTDIR>]
-KeyType=4
-Value=
-
-[General]
-Type=TEXTSUB
-Version=1.10.000
-
-[<HKCU>]
-KeyType=4
-Value=
-
-[<HKLM>]
-KeyType=4
-Value=
-
-[<RELEASE_TYPE>]
-KeyType=3
-Value=
-
-[<HKDD>]
-KeyType=4
-Value=
-
-[<HKCC>]
-KeyType=4
-Value=
-
-[<EVENT_MSG_DLL>]
-Value=
-KeyType=3
-
+++ /dev/null
->grand.central.org #GCO Public CellServDB 11 May 2004
-18.7.14.88 #grand-opening.mit.edu
-128.2.191.224 #penn.central.org
->wu-wien.ac.at #University of Economics, Vienna, Austria
-137.208.3.33 #afsdb1.wu-wien.ac.at
-137.208.7.4 #afsdb2.wu-wien.ac.at
-137.208.7.7 #afsdb3.wu-wien.ac.at
->hephy.at #hephy-vienna
-193.170.243.10 #mowgli.oeaw.ac.at
-193.170.243.12 #baloo.oeaw.ac.at
-193.170.243.14 #akela.oeaw.ac.at
->itp.tugraz.at #Institute for Theoretical Physics, TU Graz, Austria
-129.27.157.6 #fubphsv2.tu-graz.ac.at
-129.27.161.7 #faepsv01.tu-graz.ac.at
-129.27.161.15 #faepsv02.tu-graz.ac.at
->cern.ch #European Laboratory for Particle Physics, Geneva
-137.138.128.148 #afsdb1.cern.ch
-137.138.246.50 #afsdb3.cern.ch
-137.138.246.51 #afsdb2.cern.ch
->ams.cern.ch #AMS Experiment
-137.138.206.77 #pcamsf2.cern.ch
-137.138.206.123 #pcamsf4.cern.ch
->ethz.ch #Swiss Federal Inst. of Tech. - Zurich, Switzerland
-129.132.97.19 #amalthea.ethz.ch
-129.132.97.27 #nethzafs-001.ethz.ch
-129.132.115.3 #himalia.ethz.ch
-129.132.115.37 #nethzafs-005.ethz.ch
-129.132.115.38 #nethzafs-006.ethz.ch
->psi.ch #Paul Scherrer Institut - Villigen, Switzerland
-129.129.16.10 #afs1.psi.ch
-129.129.16.11 #afs2.psi.ch
->extundo.com #Simon Josefsson's cell
-195.42.214.241 #slipsten.extundo.com
->mekinok.com #Mekinok, Inc.
-4.36.43.98 #loggerhead.mekinok.com
->membrain.com #membrain.com
-66.93.118.125 #stormy
-130.85.24.11 #weasel
-130.85.24.13 #straykitten
->midnightlinux.com #Midnight Linux, Pittsburgh PA
-66.93.62.18 #romulus.midnihtlinux.com
-66.93.62.20 #yar.midnightlinux.com
->setfilepointer.com #SetFilePointer.com
-63.224.10.2 #hamlet.SetFilePointer.com
-63.224.10.4 #troilus.SetFilePointer.com
->sodre.cx #Sodre.cx
-128.8.140.165 #greed.sodre.cx
->desy.de #Deutsches Elektronen-Synchrotron
-131.169.40.62 #vayu.desy.de
-131.169.244.60 #solar00.desy.de
->gppc.de #GPP Chemnitz mbH
-213.187.92.33 #gpp1.gppc.de
-213.187.92.34 #paulchen.gppc.de
-213.187.92.35 #lotus.gppc.de
->ifh.de #DESY Zeuthen
-141.34.22.10 #romulus.ifh.de
-141.34.22.11 #remus.ifh.de
-141.34.22.29 #hekate.ifh.de
->lrz-muenchen.de #Leibniz Computing Centre, Germany
-129.187.10.36 #afs1.lrz-muenchen.de
-129.187.10.56 #afs3.lrz-muenchen.de
-129.187.10.57 #afs2.lrz-muenchen.de
->ipp-garching.mpg.de #Institut fuer Plasmaphysik
-130.183.9.5 #afs-db1.rzg.mpg.de
-130.183.100.10 #afs-db2.aug.ipp-garching.mpg.de
-130.183.100.23 #afs-db3.aug.ipp-garching.mpg.de
->mpe.mpg.de #MPE cell
-130.183.130.7 #irafs1.mpe-garching.mpg.de
-130.183.134.20 #irafs2.mpe-garching.mpg.de
->i1.informatik.rwth-aachen.de #Informatik I, RWTH Aachen
-137.226.244.79 #remus.informatik.rwth-aachen.de
->tu-chemnitz.de #Technische Universitaet Chemnitz, Germany
-134.109.2.1 #zuse.hrz.tu-chemnitz.de
-134.109.2.15 #phoenix.hrz.tu-chemnitz.de
-134.109.200.7 #aetius.hrz.tu-chemnitz.de
->e18.ph.tum.de #Experimental Physics, TU Munich, Germany
-129.187.154.223 #hamlet.e18.physik.tu-muenchen.de
->uni-bonn.de #Cell name
-131.220.14.198 #work15-eth.rhrz.uni-bonn.de
-131.220.14.203 #node03-en2.rhrz.uni-bonn.de
-131.220.14.205 #node05.rhrz.uni-bonn.de
->uni-freiburg.de #Albert-Ludwigs-Universitat Freiburg
-132.230.6.235 #sv6.ruf.uni-freiburg.de
-132.230.6.236 #sv7.ruf.uni-freiburg.de
-132.230.6.237 #sv8.ruf.uni-freiburg.de
->physik.uni-freiburg.de #institute of physics, university Freiburg, Germany
-132.230.77.16 #hepafs.physik.uni-freiburg.de
->urz.uni-heidelberg.de #Uni Heidelberg (Rechenzentrum)
-129.206.119.10 #afsdb.urz.uni-heidelberg.de
-129.206.119.16 #afsdb1.urz.uni-heidelberg.de
-129.206.119.17 #afsdb2.urz.uni-heidelberg.de
->uni-hohenheim.de #University of Hohenheim
-144.41.2.2 #rs13.serv.uni-hohenheim.de
-144.41.2.3 #rs14.serv.uni-hohenheim.de
-144.41.2.4 #rs15.serv.uni-hohenheim.de
->rz.uni-jena.de #Rechenzentrum University of Jena, Germany
-141.35.2.160 #lc00.rz.uni-jena.de
-141.35.7.9 #fsuj01.rz.uni-jena.de
-141.35.7.10 #zaphod.rz.uni-jena
->meteo.uni-koeln.de #Univ. of Cologne - Inst. for Geophysics & Meteorology
-134.95.144.22 #afs1.meteo.uni-koeln.de
-134.95.144.24 #afs2.meteo.uni-koeln.de
->rrz.uni-koeln.de #University of Cologne - Reg Comp Center
-134.95.19.3 #afsdb1.rrz.uni-koeln.de
-134.95.19.30 #fileserv3.rrz.uni-koeln.de
-134.95.67.97 #afs.thp.uni-koeln.de
-134.95.140.190 #rzkbserv.rrz.uni-koeln.de
->physik.uni-mainz.de #institute of physics, university Mainz, Germany
-134.93.130.93 #hardy.physik.uni-mainz.de
->uni-mannheim.de #Uni Mannheim (Rechenzentrum)
-134.155.50.165 #afsdbx.uni-mannheim.de
-134.155.50.166 #afsdby.uni-mannheim.de
-134.155.50.167 #afsdbz.uni-mannheim.de
->physik.uni-wuppertal.de #Physics department of Bergische Universität Wuppertal
-132.195.104.3 #afs1.physik.uni-wuppertal.de
-132.195.104.230 #afs2.physik.uni-wuppertal.de
->ies.auc.dk #Aalborg Univ., Inst. of Electronic Systems, Denmark
-130.225.51.73 #afsdb1.kom.auc.dk
-130.225.51.74 #afsdb2.kom.auc.dk
-130.225.51.85 #afsdb3.kom.auc.dk
->hep.caltech.edu #CalTech High Energy Physics
-131.215.126.150 #afs.hep.caltech.edu
->andrew.cmu.edu #Carnegie Mellon University - Computing Services Cell
-128.2.10.2 #vice2.fs.andrew.cmu.edu
-128.2.10.7 #vice7.fs.andrew.cmu.edu
-128.2.10.11 #vice11.fs.andrew.cmu.edu
-128.2.10.28 #vice28.fs.andrew.cmu.edu
-128.2.32.44 #new-vice12.fs.andrew.cmu.edu
->club.cc.cmu.edu #Carnegie Mellon University Computer Club
-128.2.4.131 #yttrium.club.cc.cmu.edu
-128.2.4.132 #zirconium.club.cc.cmu.edu
->chem.cmu.edu #Carnegie Mellon University - Chemistry Dept.
-128.2.40.134 #afs.chem.cmu.edu
-128.2.40.140 #afs2.chem.cmu.edu
->cs.cmu.edu #Carnegie Mellon University - School of Comp. Sci.
-128.2.194.178 #cherry.srv.cs.cmu.edu
-128.2.194.179 #pumpkin.srv.cs.cmu.edu
-128.2.194.180 #strawberry.srv.cs.cmu.edu
->ece.cmu.edu #Carnegie Mellon University - Elec. Comp. Eng. Dept.
-128.2.129.7 #porok.ece.cmu.edu
-128.2.129.8 #vicio.ece.cmu.edu
-128.2.129.9 #e-xing.ece.cmu.edu
->scotch.ece.cmu.edu #CMU ECE CALCM research group
-128.2.134.82 #lagavulin.ece.cmu.edu
->msc.cornell.edu #Cornell University Materials Science Center
-128.84.231.242 #miranda.ccmr.cornell.edu
-128.84.241.35 #co.ccmr.cornell.edu
-128.84.249.78 #dax.ccmr.cornell.edu
->dbic.dartmouth.edu #Dartmouth Brain Imaging Center
-129.170.30.143 #dbicafs1.dartmouth.edu
-129.170.30.144 #dbicafs2.dartmouth.edu
-129.170.30.145 #dbicafs3.dartmouth.edu
->northstar.dartmouth.edu #Dartmouth College Research Computing
-129.170.16.22 #halley.dartmouth.edu
-129.170.16.42 #oort.dartmouth.edu
-129.170.16.43 #cygnusx1.dartmouth.edu
->iastate.edu #Iowa State University
-129.186.1.243 #afsdb-1.iastate.edu
-129.186.6.243 #afsdb-2.iastate.edu
-129.186.142.243 #afsdb-3.iastate.edu
->athena.mit.edu #MIT/Athena cell
-18.7.1.66 #paris.mit.edu.
-18.7.1.74 #chimera.mit.edu.
-18.158.0.37 #prill.mit.edu.
->dev.mit.edu #MIT/IS Development cell
-18.7.1.70 #wham.mit.edu.
-18.7.15.89 #rattle.mit.edu.
-18.7.15.93 #hum.mit.edu.
->net.mit.edu #MIT/Network Group cell
-18.7.7.73 #gracie.mit.edu
-18.7.21.95 #george.mit.edu
->sipb.mit.edu #MIT/SIPB cell
-18.181.0.19 #reynelda.mit.edu.
-18.181.0.22 #rosebud.mit.edu.
-18.181.0.23 #ronald-ann.mit.edu.
->msu.edu #Michigan State University Main Cell
-35.9.7.10 #afsdb0.cl.msu.edu
->nd.edu #University of Notre Dame
-129.74.223.17 #john.helios.nd.edu
-129.74.223.33 #lizardo.helios.nd.edu
-129.74.223.65 #buckaroo.helios.nd.edu
->pitt.edu #University of Pittsburgh
-136.142.8.15 #afs09.srv.cis.pitt.edu
-136.142.8.20 #afs10.srv.cis.pitt.edu
-136.142.8.21 #afs11.srv.cis.pitt.edu
->cs.pitt.edu #University of Pittsburgh - Computer Science
-130.49.220.11 #afs01.cs.pitt.edu
-130.49.220.12 #afs02.cs.pitt.edu
-130.49.220.13 #afs03.cs.pitt.edu
->psc.edu #PSC (Pittsburgh Supercomputing Center)
-128.182.59.182 #shaggy.psc.edu
-128.182.66.184 #velma.psc.edu
-128.182.66.185 #daphne.psc.edu
->scoobydoo.psc.edu #PSC Test Cell
-128.182.59.181 #scooby.psc.edu
->cede.psu.edu #Penn State - Center for Engr. Design & Entrepeneurship
-146.186.218.10 #greenly.cede.psu.edu
-146.186.218.60 #b50.cede.psu.edu
-146.186.218.246 #stalin.cede.psu.edu
->rose-hulman.edu #Rose-Hulman Institute of Technology
-137.112.7.11 #afs1.rose-hulman.edu
-137.112.7.12 #afs2.rose-hulman.edu
-137.112.7.13 #afs3.rose-hulman.edu
->cs.rose-hulman.edu #Rose-Hulman CS Department
-137.112.40.10 #galaxy.cs.rose-hulman.edu
->rpi.edu #Rensselaer Polytechnic Institute
-128.113.22.11 #saul.server.rpi.edu
-128.113.22.12 #joab.server.rpi.edu
-128.113.22.13 #korah.server.rpi.edu
-128.113.22.14 #achan.server.rpi.edu
->hep.sc.edu #University of South Carolina, Dept. of Physics
-129.252.78.77 #cpeven.physics.sc.edu
->cs.stanford.edu #Stanford University Computer Science Department
-171.64.64.10 #cs-afs-1.Stanford.EDU
-171.64.64.66 #cs-afs-2.stanford.edu
-171.64.64.69 #cs-afs-3.stanford.edu
->ir.stanford.edu #Stanford University
-171.64.7.222 #afsdb1.stanford.edu
-171.64.7.234 #afsdb2.stanford.edu
-171.64.7.246 #afsdb3.stanford.edu
->slac.stanford.edu #Stanford Linear Accelerator Center
-134.79.18.25 #afsdb1.slac.stanford.edu
-134.79.18.26 #afsdb2.slac.stanford.edu
-134.79.18.27 #afsdb3.slac.stanford.edu
->cats.ucsc.edu #UC Santa Cruz, Comm. and Tech. Services, California U.S.A
-128.114.129.14 #elan.ucsc.edu
-128.114.129.15 #ichabod.ucsc.edu
-128.114.129.18 #maneki.ucsc.edu
->acm.uiuc.edu #ACM at the University of Illinois
-128.174.251.8 #alnitak.acm.uiuc.edu
-128.174.251.9 #alnilam.acm.uiuc.edu
-128.174.251.10 #mintaka.acm.uiuc.edu
->ncsa.uiuc.edu #University of Illinois
-141.142.3.5 #congo.ncsa.uiuc.edu
-141.142.3.8 #nile.ncsa.uiuc.edu
-141.142.230.19 #jinx.ncsa.uiuc.edu
->umbc.edu #University of Maryland, Baltimore County
-130.85.24.23 #db2.afs.umbc.edu
-130.85.24.87 #db3.afs.umbc.edu
-130.85.24.101 #db1.afs.umbc.edu
->glue.umd.edu #University of Maryland - Project Glue
-128.8.70.11 #olmec.umd.edu
-128.8.73.3 #babylon.umd.edu
-129.2.128.53 #egypt.umd.edu
->wam.umd.edu #University of Maryland Network WAM Project
-128.8.70.9 #csc-srv.wam.umd.edu
-128.8.73.9 #pg2-srv.wam.umd.edu
-129.2.128.54 #avw-srv.wam.umd.edu
->umich.edu #University of Michigan - Campus
-141.211.1.32 #fear.ifs.umich.edu
-141.211.1.33 #surprise.ifs.umich.edu
-141.211.1.34 #ruthless.ifs.umich.edu
->atlas.umich.edu #ATLAS group cell in physics at University of Michigan
-141.211.43.102 #linat02.grid.umich.edu
-141.211.43.106 #linat06.grid.umich.edu
-141.211.43.109 #atgrid.grid.umich.edu
->citi.umich.edu #Center for Information Technology Integration
-141.211.133.5 #babylon.citi.umich.edu
->lsa.umich.edu #University of Michigan - College of LS&A
-141.211.54.132 #curtis.admin.lsa.umich.edu
-141.211.61.23 #zee.admin.lsa.umich.edu
-141.211.68.15 #marshall.lsa.umich.edu
->math.lsa.umich.edu #University of Michigan - Math Department
-141.211.61.40 #ike.math.lsa.umich.edu
-141.211.61.41 #clark.math.lsa.umich.edu
-141.211.61.42 #nimitz.math.lsa.umich.edu
->umr.edu #University of Missouri - Rolla
-131.151.1.59 #afsdb1.umr.edu
-131.151.1.70 #afsdb3.umr.edu
-131.151.1.146 #afsdb2.umr.edu
->physics.unc.edu #Univ. of NC at Chapel Hill, Dept. of Physics
-152.2.5.2 #valerian.physics.unc.edu
-152.2.5.3 #augustus.physics.unc.edu
-152.2.7.67 #nerva.astro.unc.edu
->uncc.edu #University of NC at Charlotte Mosaic AFS Cell
-152.15.10.70 #as-sm1.uncc.edu
-152.15.13.7 #as-sm2.uncc.edu
-152.15.30.27 #fs-kenn3.uncc.edu
->eng.utah.edu #University of Utah - Engineering
-155.99.222.9 #lenny.eng.utah.edu
-155.99.222.10 #carl.eng.utah.edu
->cs.uwm.edu #University of Wisconsin--Milwaukee
-129.89.38.124 #solomons.cs.uwm.edu
->cs.wisc.edu #Univ. of Wisconsin-Madison, Computer Sciences Dept.
-128.105.132.14 #timon.cs.wisc.edu
-128.105.132.15 #pumbaa.cs.wisc.edu
-128.105.132.16 #zazu.cs.wisc.edu
->engr.wisc.edu #University of Wisconsin-Madison, College of Engineering
-144.92.13.14 #larry.cae.wisc.edu
-144.92.13.15 #curly.cae.wisc.edu
-144.92.13.16 #moe.cae.wisc.edu
->hep.wisc.edu #University of Wisconsin -- High Energy Physics
-128.104.28.219 #anise.physics.wisc.edu
->physics.wisc.edu #Univ. of Wisconsin-Madison, Physics Department
-128.104.220.51 #bubbles.physics.wisc.edu
-128.104.220.52 #buttercup.physics.wisc.edu
-128.104.220.53 #blossom.physics.wisc.edu
->ifca.unican.es #Instituto de Fisica de Cantabria (IFCA), Santander, Spain
-193.144.209.20 #gridwall.ifca.unican.es
->ific.uv.es #Instituto de Fisica Corpuscular, Valencia, Spain
-147.156.163.11 #alpha.ific.uv.es
->biocenter.helsinki.fi #University of Helsinki, Institute of Biotechnology
-128.214.58.174 #afsdb1.biocenter.helsinki.fi
-128.214.88.114 #afsdb2.biocenter.helsinki.fi
->dapnia.saclay.cea.fr #CEA DAPNIA
-132.166.32.7 #dphrsg.saclay.cea.fr
-132.166.32.12 #dphrsl.saclay.cea.fr
->in2p3.fr #IN2P3 production cell
-134.158.232.11 #ccafsdb1.in2p3.fr
-134.158.232.12 #ccafsdb2.in2p3.fr
-134.158.232.13 #ccafsdb3.in2p3.fr
->anl.gov #Argonne National Laboratory
-146.137.96.33 #arteus.ctd.anl.gov
-146.137.162.88 #agamemnon.ctd.anl.gov
-146.137.194.80 #antenor.ctd.anl.gov
->rhic.bnl.gov #Relativistic Heavy Ion Collider
-130.199.6.51 #rafs03.rcf.bnl.gov
-130.199.6.52 #rafs02.rcf.bnl.gov
-130.199.6.69 #rafs01.rcf.bnl.gov
->usatlas.bnl.gov #US Atlas Tier 1 Facility at BNL
-130.199.48.32 #aafs01.usatlas.bnl.gov
-130.199.48.33 #aafs02.usatlas.bnl.gov
-130.199.48.34 #aafs03.usatlas.bnl.gov
->fnal.gov #Fermi National Acclerator Laboratory
-131.225.68.1 #fsus01.fnal.gov
-131.225.68.4 #fsus03.fnal.gov
-131.225.68.14 #fsus04.fnal.gov
->ic-afs.arc.nasa.gov #Code IC, Ames Research Center
-128.102.105.62 #udanax.arc.nasa.gov
->nersc.gov #National Energy Research Supercomputer Center
-128.55.128.250 #mars.nersc.gov
-128.55.128.252 #alfred.nersc.gov
-128.55.128.254 #lurch.nersc.gov
->caspur.it #CASPUR Inter-University Computing Consortium, Rome
-193.204.5.45 #pomodoro.caspur.it
-193.204.5.46 #banana.caspur.it
-193.204.5.50 #maslo.caspur.it
->fusione.it #Assoz. FUSIONE/Euratom, ENEA, Frascati-Italy
-192.107.90.2 #fusafs1.frascati.enea.it
-192.107.90.3 #fusafs2.frascati.enea.it
-192.107.90.4 #fusafs3.frascati.enea.it
->icemb.it #ICEMB, Universita' La Sapienza - Rome - Italy
-193.204.6.130 #icembfs.caspur.it
->infn.it #Istituto Nazionale di Fisica Nucleare (INFN), Italia
-131.154.1.7 #afs3.infn.it
-141.108.3.252 #afs1.infn.it
-192.84.134.75 #afs2.infn.it
->kloe.infn.it #INFN, KLOE experiment at Laboratori di Frascati
-192.135.25.111 #kloeafs1.lnf.infn.it
-192.135.25.112 #kloeafs2.lnf.infn.it
->le.infn.it #INFN, Sezione di Lecce
-192.84.152.40 #afs01.le.infn.it
-192.84.152.148 #afs02.le.infn.it
->lnf.infn.it #INFN, Laboratori Nazionali di Frascati
-193.206.84.121 #afs1.lnf.infn.it
-193.206.84.122 #afs2.lnf.infn.it
-193.206.84.123 #afs3.lnf.infn.it
->lngs.infn.it #INFN, Laboratori Nazionali di Gran Sasso
-192.84.135.21 #rsgs05.lngs.infn.it
->pi.infn.it #INFN, Sezione di Pisa
-131.114.134.26 #unknownhost.pi.infn.it
-192.84.133.50 #aix1.pi.infn.it
->psm.it #Progetto San Marco, Universita' di Roma-1
-151.100.1.65 #atlante.psm.uniroma1.it
->tgrid.it #CASPUR-CILEA-CINECA Grid Cell
-193.204.5.33 #cccgrid.caspur.it
->ictp.trieste.it #The Abdus Salam International Centre for Theoretical Physics (IC
-140.105.16.8 #fs1.ictp.trieste.it
-140.105.16.9 #fs2.ictp.trieste.it
->ing.uniroma1.it #Universita' La Sapienza, Fac. Ingeneria
-151.100.85.253 #alfa.ing.uniroma1.it
->vn.uniroma3.it #University of Rome 3, Area Vasca Navale
-193.204.161.136 #alfa.dia.uniroma3.it
-193.204.161.137 #beta.dia.uniroma3.it
-193.204.161.138 #gamma.dia.uniroma3.it
->italia #Italian public AFS cell
-193.204.5.9 #afs.caspur.it
->cmf.nrl.navy.mil #Naval Research Lab - CCS
-134.207.10.68 #picard.cmf.nrl.navy.mil
-134.207.10.69 #riker.cmf.nrl.navy.mil
-134.207.10.70 #kirk.cmf.nrl.navy.mil
->lcp.nrl.navy.mil #Naval Research Lab - Lab for Computational Physics
-132.250.114.2 #afs1.lcp.nrl.navy.mil
-132.250.114.4 #afs2.lcp.nrl.navy.mil
-132.250.114.6 #afs3.lcp.nrl.navy.mil
->es.net #Energy Sciences Net
-198.128.3.21 #fs1.es.net
-198.128.3.22 #fs2.es.net
-198.128.3.23 #fs3.es.net
->laroia.net #Laroia Networks
-66.66.102.254 #supercore.laroia.net
->sinenomine.net #Sine Nomine Associates
-66.92.236.139 #afs.sinenomine.net
->slackers.net #The Slackers' Network
-63.201.48.27 #alexandria.slackers.net
->nikhef.nl #The Dutch National Institute for High Energy Physics
-192.16.185.26 #afs1.nikhef.nl
-192.16.185.27 #afs2.nikhef.nl
->1ts.org #KCR/private Karl Ramm, Cambridge, MA
-4.36.43.102 #dol-guldur.1ts.org
->bazquux.org #Baz Quux Organization
-66.207.142.196 #baxquux.org
->coed.org #Adam Pennington's Cell
-66.93.61.184 #vice1.coed.org
-128.2.4.163 #vice3.coed.org
->dementia.org #Dementia Unlimited
-128.2.12.45 #alycia.dementia.org
-128.2.120.216 #meredith.dementia.org
->idahofuturetruck.org #University of Idaho hybrid vehicle development
-12.18.238.210 #dsle210.fsr.net
->nimlabs.org #Nimlabs, Ink. Cell.
-18.238.1.103 #olfin.nimlabs.org
-18.238.1.105 #caerbanog.nimlabs.org
->nomh.org #nomh.org
-204.29.154.12 #iota.nomh.org
->oc7.org #The OC7 Project
-128.2.6.107 #vice3.oc7.org
-128.2.122.140 #vice2.oc7.org
->openafs.org #OpenAFS Project
-128.2.13.199 #new-virtue.openafs.org
-128.2.121.218 #virtue.openafs.org
-130.237.48.87 #andrew.e.kth.se
-130.237.48.107 #onyx.e.kth.se
->e.kth.se #Royal Institute of Technology, Elektro
-130.237.32.145 #sonen.e.kth.se
-130.237.48.7 #anden.e.kth.se
-130.237.48.244 #fadern.e.kth.se
->hallf.kth.se #Royal Institute of Technology, HALLF
-130.237.24.141 #rasmus13.hallf.kth.se
-130.237.24.152 #rasmus3.hallf.kth.se
-130.237.24.177 #rasmus29.hallf.kth.se
->isk.kth.se #Royal Institute of Technology, ISK
-130.237.202.12 #afsdb2.isk.kth.se
-130.237.206.13 #afsdb1.isk.kth.se
-130.237.209.141 #afsdb3.isk.kth.se
->it.kth.se #Royal Institute of Technology, IT
-130.237.212.15 #ptah.it.kth.se
-130.237.212.16 #toth.it.kth.se
-130.237.215.7 #isis.it.kth.se
->md.kth.se #Royal Institute of Technology, MMK
-130.237.57.68 #trinity.md.kth.se
-130.237.57.72 #morpheus.md.kth.se
-130.237.67.230 #neo.speech.kth.se
->mech.kth.se #Royal Institute of Technology, MECH
-130.237.233.142 #matterhorn.mech.kth.se
-130.237.233.143 #castor.mech.kth.se
-130.237.233.144 #pollux.mech.kth.se
->nada.kth.se #Royal Institute of Technology, NADA
-130.237.222.20 #kosmos.nada.kth.se
-130.237.223.12 #sputnik.nada.kth.se
-130.237.224.78 #mir.nada.kth.se
-130.237.227.23 #gagarin.nada.kth.se
-130.237.228.28 #laika.nada.kth.se
->pdc.kth.se #Royal Institute of Technology, PDC
-130.237.232.29 #crab.pdc.kth.se
-130.237.232.112 #anna.pdc.kth.se
-130.237.232.114 #hokkigai.pdc.kth.se
->stacken.kth.se #Stacken Computer Club
-130.237.234.3 #milko.stacken.kth.se
-130.237.234.43 #hot.stacken.kth.se
-130.237.237.230 #fishburger.stacken.kth.se
->syd.kth.se #Royal Institute of Technology, KTH-Syd
-130.237.83.23 #afs.haninge.kth.se
->physto.se #Physics department Stockholm University
-130.237.205.36 #sysafs1.physto.se
-130.237.205.72 #sysafs2.physto.se
->sanchin.se #Sanchin Consulting AB, Sweden
-192.195.148.10 #sesan.sanchin.se
->su.se #Stockholm University
-130.237.162.81 #afsdb1.su.se
-130.237.162.82 #afsdb2.su.se
->f9.ijs.si #F9, Jozef Stefan Institue
-194.249.156.1 #brenta.ijs.si
->p-ng.si #Nova Gorica Polytechnic
-193.2.120.2 #solkan.p-ng.si
->phy.bris.ac.uk #Bristol University - phyics
-137.222.58.9 #afs1.phy.bris.ac.uk
->hep.man.ac.uk #Manchester HEP
-194.36.2.3 #afs1.hep.man.ac.uk
-194.36.2.4 #afs2.hep.man.ac.uk
-194.36.2.5 #afs3.hep.man.ac.uk
->rl.ac.uk #Rutherford Appleton Lab, England
-130.246.183.164 #wallace.cc.rl.ac.uk
+++ /dev/null
-[Data]
-DEFAULT_INSTALL_DIR=IBM\AFS
-NOTHING_SELECTED_MSG=Sie müssen Komponenten für die Installation auswählen, bevor Sie fortfahren können.
-DOWNGRADE_LIGHT_CLIENT_MSG=Herunterstufen von AFS Light Client
-SETUP_FINISHED_MSG=Die Installation von AFS® für Windows auf Ihrem Computer ist abgeschlossen.
-TITLE_MAIN=AFS® für Windows 3.6
-SEVERE_DIALOG_TITLE=AFS® für Windows
-UPGRADE_CLIENT_MSG=Erweiterung von AFS Client
-PRODUCT_VERSION_MINOR=6
-CONFIGURING_AFS_CLIENT_SERVICE=Der AFS Client-Service wird konfiguriert
-PRODUCT_NAME_CC=AFS Control Center
-PRODUCT_NAME_SERVER=AFS Server
-UPGRADE_CC_MSG=Erweiterung von AFS Control Center
-DOWNGRADE_SERVER_MSG=Herunterstufen von AFS Server
-UNINST_DISPLAY_NAME_LIGHT_CLIENT=AFS Light 3.6
-PRODUCT_NAME_LIGHT_CLIENT=AFS Light
-ERROR_COMPONENT=Komponente:
-COMPANY_NAME=TransarcCorporation
-REINSTALL_CLIENT_MSG=AFS Client erneut installieren
-DOWNGRADE_CC_MSG=Herunterstufen von AFS Control Center
-UNINST_DISPLAY_NAME_DOCS=AFS Supplemental Documentation 3.6
-UNINST_KEY_SERVER=AFS Server
-VIEW_README_PROMPT_MSG=Informationsdatei anzeigen
-INSTALL_LIGHT_CLIENT_MSG=AFS Light Client
-PRODUCT_VERSION_TITLE=3.6
-UNINST_DISPLAY_NAME_CC=AFS Control Center 3.6
-ERROR_FILEGROUP=Dateigruppe:
-ERROR_MOVEDATA=Beim Verschieben von Daten ist ein Fehler aufgetreten: %d
-CONFIGURING_AFS_SERVER_SERVICE=AFS Server-Service wird konfiguriert
-CLIENT_DESC=AFS Client
-SET_NETWORK_PROVIDER_ERROR=AFS Client konnte nicht als Netzbetreiber konfiguriert werden.
-PRODUCT_VERSION_MAJOR=3
-UNINST_DISPLAY_NAME_SERVER=AFS Server 3.6
-SETUPUTILS_NOT_FOUND=Die Datei InstallUtils.dll konnte nicht geladen werden. Die Installation kann nicht fortgesetzt werden.
-LIGHT_CLIENT_ALREADY_INSTALLED_MSG=AFS Light ist bereits auf diesem Computer installiert.
-SETUP_TYPE_MSG=Wählen Sie die Produkte von AFS® für Windows, die Sie installieren möchten:
-PRODUCT_KEY_SERVER=bosctlsvc.exe
-INSTALL_SERVER_MSG=AFS Server
-REINSTALL_LIGHT_CLIENT_MSG=AFS Light Client erneut installieren
-PRODUCT_NAME_DOCS=AFS Supplemental Documentation
-NEW_STRING1=
-PRODUCT_KEY_DOCS=dummy.exe
-TITLE_CAPTIONBAR=Installation von AFS® für Windows
-CONFIG_FILE_MAN_EXT_ERROR=Die Dateimanager-Erweiterung für AFS Client konnte nicht konfiguriert werden.
-CONFIGURING_AFS_CREDS_ERROR=Die AFS Client-Funktionsleiste konnte nicht konfiguriert werden.
-UPGRADE_SERVER_MSG=Erweiterung von AFS Server
-PRODUCT_VERSION_RELEASE_TYPE=GA
-AFS_CLIENT_SERVICE_INSTALL_ERROR=Bei der Konfiguration des AFS Client-Services ist ein Fehler aufgetreten: %d
-CLIENT_TITLE=AFS Client
-PRODUCT_KEY_CC=TaAfsServerManager.exe
-AFS_SERVER_SERVICE_INSTALL_ERROR=Bei der Konfiguration des AFS Server-Services ist ein Fehler aufgetreten: %d
-LIGHT_CLIENT_DESC=AFS Light
-CLIENT_FILE_MAN_EXT_ENTRY_NAME=TransarcAFSFileManExt
-INSTALL_CC_MSG=AFS Control Center
-REINSTALL_CC_MSG=AFS Control Center erneut installieren
-PRODUCT_NAME_CLIENT=AFS Client
-CONFIGURING_AFS_CREDS=Der AFS Client wird konfiguriert
-DOWNGRADE_DOCS_MSG=Herunterstufen der AFS Supplemental Documentation
-INSTALL_DOCS_MSG=AFS Supplemental Documentation
-PRODUCT_KEY_LIGHT_CLIENT=fs.exe
-FOLDER_NAME=IBM AFS
-ERROR_FILE=Datei:
-ERROR_VGARESOLUTION=Dieses Programm erfordert VGA oder eine bessere Auflösung.
-REINSTALL_SERVER_MSG=AFS Server erneut installieren
-DOWNGRADE_CLIENT_MSG=Herunterstufen von AFS Client
-PRODUCT_VERSION_BETA_LEVEL=0
-UNINST_KEY_CC=AFS Control Center
-UNINST_KEY_CLIENT=AFS Client
-UPGRADE_DOCS_MSG=Erweiterung der AFS Supplemental Documentation
-DOWNGRADE_PREP_MSG=Das Herunterstufen von %s wird vorbereitet. Bitte warten... dies kann einige Zeit dauern.
-PRODUCT_VERSION_PATCH_LEVEL=0
-NON_UPGRADABLE_SOFTWARE_INSTALLED_ERROR_MSG=Auf Ihrem Computer sind nicht erweiterbare Versionen dieses Produkts installiert. Diese \nVersionen müssen erst deinstalliert werden, bevor aktuelle Versionen installiert werden können.
-CANT_INSTALL_BOTH_CLIENTS_MSG=Wählen Sie einen der folgenden AFS Clients für die Installation. Sie können nicht beide installieren.
-UNINST_KEY_LIGHT_CLIENT=AFS Light
-UPGRADE_LIGHT_CLIENT_MSG=Erweiterung von AFS Light Client
-UNINST_KEY_DOCS=AFS Supplemental Documentation
-UNINST_DISPLAY_NAME_CLIENT=AFS Client 3.6
-REINSTALL_DOCS_MSG=AFS Supplemental Documentation erneut installieren
-UPGRADE_PREP_MSG=Die Erweiterung von %s wird vorbereitet. Bitte warten... dies kann einige Zeit dauern.
-MUST_BE_AN_ADMIN_MSG=Sie müssen ein Mitglied der lokalen Administratorengruppe für dieses Windows-System sein, um dieses Produkt installieren zu können.
-LIGHT_CLIENT_TITLE=AFS Light
-PRODUCT_NAME=AFS® für Windows
-PRODUCT_KEY_CLIENT=fs.exe
-ERROR_UNINSTSETUP=Die Einrichtung von unInstaller konnte nicht initialisiert werden. Sie können dieses Produkt möglicherweise nicht deinstallieren.
-ADD_PATH_ERROR=Das Programmverzeichnis konnte nicht zum Systempfad hinzugefügt werden.
-SERVER_NEEDS_CLIENT_MSG=Sie müssen auch die Installation von AFS Client auswählen, um AFS Server zu installieren.
-INSTALL_CLIENT_MSG=AFS Client
-WSPP_FOLDER_NAME=IBM WebSphere\Performance Pack\AFS
-REINSTALL_PREP_MSG=Die erneute Installation von %s wird vorbereitet. Bitte warten... dies kann einige Zeit dauern.
-APPS_NOT_SAME_VERSION=Die von Ihnen für die Installation gewählten Komponenten führen zu einer Kombination verschiedener Versionen von AFS für Windows. AFS kann nicht einwandfrei funktionieren, wenn es auf diese Weise installiert wird. Treffen Sie eine neue Auswahl, so daß alle AFS-Komponenten nach der Installation dieselbe Version besitzen.\n
-STATUS_INSTALLING_CLIENT=AFS Client wird installiert...
-STATUS_INSTALLING_SERVER=AFS Server wird installiert...
-STATUS_INSTALLING_CCENTER=AFS Control Center wird installiert...
-STATUS_INSTALLING_LIGHT=AFS Light wird installiert...
-STATUS_INSTALLING_HEADERS=AFS Client-Erweiterungsdateien werden installiert...
-STATUS_INSTALLING_DOCS=AFS Supplemental Documentation wird installiert...
-STATUS_INSTALLING_LANGUAGE=Sprachspezifischer Inhalt wird installiert...
-DOCUMENTATION_ITEM_NAME=Dokumentation
-CFG_WIZARD_ITEM_NAME=Konfigurations-Assistent
-CREDS_TOOL_ITEM_NAME=Authentifizierung
-CLIENT_HELP_ITEM_NAME=AFS-Client-Hilfe
-LIGHT_CLIENT_HELP_ITEM_NAME=AFS Light-Hilfe
-SERVER_MANAGER_ITEM_NAME=Server Manager
-ACCT_MANAGER_ITEM_NAME=Account Manager
-SERVER_GROUP_NAME=Server
-CLIENT_GROUP_NAME=Client
-CCENTER_GROUP_NAME=Control Center
-LIGHT_GROUP_NAME=Light
-
-[General]
-Language=0007
-Type=STRINGTABLESPECIFIC
-Version=1.00.000
-
-\1a
+++ /dev/null
-[Data]
-DEFAULT_INSTALL_DIR=IBM\AFS
-CELLNAME_DEFAULT=almaden.ibm.com
-CELLSERVDB_CONFIGNAME=
-CELLSERVDB_WEB=
-CELLSERVDB_INSTALL=
-WELCOME_MESSAGE=
-NOTHING_SELECTED_MSG=You must select something to install before continuing.
-DOWNGRADE_LIGHT_CLIENT_MSG=Downgrade AFS Light Client
-SETUP_FINISHED_MSG=Setup has finished installing AFS® for Windows on your computer.
-TITLE_MAIN=Open AFS for Windows %5
-SEVERE_DIALOG_TITLE=Open AFS for Windows
-UPGRADE_CLIENT_MSG=Upgrade AFS Client
-PRODUCT_VERSION_MINOR=%2
-CONFIGURING_AFS_CLIENT_SERVICE=Configuring the AFS Client service
-PRODUCT_NAME_CC=AFS Control Center
-PRODUCT_NAME_SERVER=AFS Server
-UPGRADE_CC_MSG=Upgrade AFS Control Center
-DOWNGRADE_SERVER_MSG=Downgrade AFS Server
-UNINST_DISPLAY_NAME_LIGHT_CLIENT=AFS Light %5
-PRODUCT_NAME_LIGHT_CLIENT=AFS Light
-ERROR_COMPONENT=Component:
-COMPANY_NAME=TransarcCorporation
-REINSTALL_CLIENT_MSG=Reinstall AFS Client
-DOWNGRADE_CC_MSG=Downgrade AFS Control Center
-UNINST_DISPLAY_NAME_DOCS=AFS Supplemental Documentation %5
-UNINST_KEY_SERVER=AFS Server
-VIEW_README_PROMPT_MSG=View the readme file
-INSTALL_LIGHT_CLIENT_MSG=AFS Light Client
-PRODUCT_VERSION_TITLE=%5
-UNINST_DISPLAY_NAME_CC=AFS Control Center %5
-ERROR_FILEGROUP=File Group:
-ERROR_MOVEDATA=An error occurred during the move data process: %d
-CONFIGURING_AFS_SERVER_SERVICE=Configuring the AFS Server service
-CLIENT_DESC=AFS Client
-SET_NETWORK_PROVIDER_ERROR=Unable to configure the AFS Client as a Network Provider.
-PRODUCT_VERSION_MAJOR=%1
-UNINST_DISPLAY_NAME_SERVER=AFS Server %5
-SETUPUTILS_NOT_FOUND=The file InstallUtils.dll could not be loaded. Setup cannot continue.
-LIGHT_CLIENT_ALREADY_INSTALLED_MSG=AFS Light is already installed on this computer.
-SETUP_TYPE_MSG=Select the OpenAFS® for Windows products that you wish to install:
-PRODUCT_KEY_SERVER=bosctlsvc.exe
-INSTALL_SERVER_MSG=AFS Server
-REINSTALL_LIGHT_CLIENT_MSG=Reinstall AFS Light Client
-PRODUCT_NAME_DOCS=AFS Supplemental Documentation
-NEW_STRING1=
-PRODUCT_KEY_DOCS=dummy.exe
-TITLE_CAPTIONBAR=OpenAFS® for Windows Setup
-CONFIG_FILE_MAN_EXT_ERROR=Failed to configure the AFS Client File Manager Extension.
-CONFIGURING_AFS_CREDS_ERROR=Failed to configure the AFS Client toolbar tool.
-UPGRADE_SERVER_MSG=Upgrade AFS Server
-PRODUCT_VERSION_RELEASE_TYPE=GA
-AFS_CLIENT_SERVICE_INSTALL_ERROR=An error occurred during configuration of the AFS Client service: %d
-CLIENT_TITLE=AFS Client
-PRODUCT_KEY_CC=TaAfsServerManager.exe
-AFS_SERVER_SERVICE_INSTALL_ERROR=An error occurred during configuration of the AFS Server service: %d
-LIGHT_CLIENT_DESC=AFS Light
-CLIENT_FILE_MAN_EXT_ENTRY_NAME=TransarcAFSFileManExt
-INSTALL_CC_MSG=AFS Control Center
-REINSTALL_CC_MSG=Reinstall AFS Control Center
-PRODUCT_NAME_CLIENT=AFS Client
-CONFIGURING_AFS_CREDS=Configuring the AFS Client
-DOWNGRADE_DOCS_MSG=Downgrade AFS Supplemental Documentation
-INSTALL_DOCS_MSG=AFS Supplemental Documentation
-PRODUCT_KEY_LIGHT_CLIENT=fs.exe
-FOLDER_NAME=OpenAFS
-ERROR_FILE=File:
-ERROR_VGARESOLUTION=This program requires VGA or better resolution.
-REINSTALL_SERVER_MSG=Reinstall AFS Server
-DOWNGRADE_CLIENT_MSG=Downgrade AFS Client
-PRODUCT_VERSION_BETA_LEVEL=0
-UNINST_KEY_CC=AFS Control Center
-UNINST_KEY_CLIENT=AFS Client
-UPGRADE_DOCS_MSG=Upgrade AFS Supplemental Documentation
-DOWNGRADE_PREP_MSG=Preparing to downgrade the %s. Please wait...this may be a lengthy process.
-PRODUCT_VERSION_PATCH_LEVEL=%3%4
-NON_UPGRADABLE_SOFTWARE_INSTALLED_ERROR_MSG=Non-upgradable versions of this product are installed on your computer. These \nversions must be uninstalled before the current versions can be installed.
-CANT_INSTALL_BOTH_CLIENTS_MSG=Please select only one of the AFS Clients to install. You cannot install both.
-UNINST_KEY_LIGHT_CLIENT=AFS Light
-UPGRADE_LIGHT_CLIENT_MSG=Upgrade AFS Light Client
-UNINST_KEY_DOCS=AFS Supplemental Documentation
-UNINST_DISPLAY_NAME_CLIENT=AFS Client %5
-REINSTALL_DOCS_MSG=Reinstall AFS Supplemental Documentation
-UPGRADE_PREP_MSG=Preparing to upgrade the %s. Please wait...this may be a lengthy process.
-MUST_BE_AN_ADMIN_MSG=You must be a member of the local Administrators group on this Windows system in order to install this product.
-LIGHT_CLIENT_TITLE=AFS Light
-PRODUCT_NAME=OpenAFS® for Windows
-PRODUCT_KEY_CLIENT=fs.exe
-ERROR_UNINSTSETUP=unInstaller setup failed to initialize. You may not be able to uninstall this product.
-ADD_PATH_ERROR=Failed to add program directory to the system path.
-SERVER_NEEDS_CLIENT_MSG=To install the AFS Server, you must also choose to install the AFS Client.
-INSTALL_CLIENT_MSG=AFS Client
-WSPP_FOLDER_NAME=IBM WebSphere\Performance Pack\AFS
-REINSTALL_PREP_MSG=Preparing to reinstall the %s. Please wait...this may be a lengthy process.
-APPS_NOT_SAME_VERSION=The components you have selected for installation will result in a mixture of different versions of AFS for Windows. AFS will not work correctly if installed in this way. Please remake your selections so that all of the AFS components will be the same version after installation.\n
-STATUS_INSTALLING_CLIENT=Installing the AFS Client...
-STATUS_INSTALLING_SERVER=Installing the AFS Server...
-STATUS_INSTALLING_CCENTER=Installing the AFS Control Center...
-STATUS_INSTALLING_LIGHT=Installing AFS Light...
-STATUS_INSTALLING_HEADERS=Installing AFS Client extension files...
-STATUS_INSTALLING_DOCS=Installing AFS Supplemental Documentation...
-STATUS_INSTALLING_LANGUAGE=Installing language-specific content...
-DOCUMENTATION_ITEM_NAME=Documentation
-CFG_WIZARD_ITEM_NAME=Configuration Wizard
-CREDS_TOOL_ITEM_NAME=Authentication
-CLIENT_HELP_ITEM_NAME=AFS Client Help
-LIGHT_CLIENT_HELP_ITEM_NAME=AFS Light Help
-SERVER_MANAGER_ITEM_NAME=Server Manager
-ACCT_MANAGER_ITEM_NAME=Account Manager
-SERVER_GROUP_NAME=Server
-CLIENT_GROUP_NAME=Client
-CCENTER_GROUP_NAME=Control Center
-LIGHT_GROUP_NAME=Light
-
-[General]
-Language=0009
-Type=STRINGTABLESPECIFIC
-Version=1.00.000
-
+++ /dev/null
-[Data]
-DEFAULT_INSTALL_DIR=IBM\AFS
-NOTHING_SELECTED_MSG=Debe seleccionar lo que ha de instalarse antes de continuar.
-DOWNGRADE_LIGHT_CLIENT_MSG=Nivel anterior de AFS Light Client
-SETUP_FINISHED_MSG=La configuración ha finalizado la instalación de AFS« para Windows en el sistema.
-TITLE_MAIN=AFS« para Windows 3.6
-SEVERE_DIALOG_TITLE=AFS« para Windows
-UPGRADE_CLIENT_MSG=Actualizar AFS Client
-PRODUCT_VERSION_MINOR=6
-CONFIGURING_AFS_CLIENT_SERVICE=Configuración del servicio de AFS Client
-PRODUCT_NAME_CC=AFS Control Center
-PRODUCT_NAME_SERVER=AFS Server
-UPGRADE_CC_MSG=Actualizar AFS Control Center
-DOWNGRADE_SERVER_MSG=Nivel anterior de AFS Server
-UNINST_DISPLAY_NAME_LIGHT_CLIENT=AFS Light 3.6
-PRODUCT_NAME_LIGHT_CLIENT=AFS Light
-ERROR_COMPONENT=Componente:
-COMPANY_NAME=TransarcCorporation
-REINSTALL_CLIENT_MSG=Reinstalar AFS Client
-DOWNGRADE_CC_MSG=Nivel anterior de AFS Control Center
-UNINST_DISPLAY_NAME_DOCS=AFS Supplemental Documentation 3.6
-UNINST_KEY_SERVER=AFS Server
-VIEW_README_PROMPT_MSG=Visualizar el archivo léame
-INSTALL_LIGHT_CLIENT_MSG=AFS Light Client
-PRODUCT_VERSION_TITLE=3.6
-UNINST_DISPLAY_NAME_CC=AFS Control Center 3.6
-ERROR_FILEGROUP=Grupo de archivos:
-ERROR_MOVEDATA=Se ha producido un error durante el proceso de mover datos: %d
-CONFIGURING_AFS_SERVER_SERVICE=Configuración del servicio de AFS Server
-CLIENT_DESC=AFS Client
-SET_NETWORK_PROVIDER_ERROR=No se puede configurar el AFS Client como Proveedor de red.
-PRODUCT_VERSION_MAJOR=3
-UNINST_DISPLAY_NAME_SERVER=AFS Server 3.6
-SETUPUTILS_NOT_FOUND=No se ha podido cargar el archivo InstallUtils.dll. No puede continuar la configuración.
-LIGHT_CLIENT_ALREADY_INSTALLED_MSG=AFS Light ya está instalado en este sistema.
-SETUP_TYPE_MSG=Seleccione los productos de AFS« para Windows que desea instalar:
-PRODUCT_KEY_SERVER=bosctlsvc.exe
-INSTALL_SERVER_MSG=AFS Server
-REINSTALL_LIGHT_CLIENT_MSG=Reinstalar AFS Light Client
-PRODUCT_NAME_DOCS=AFS Supplemental Documentation
-NEW_STRING1=
-PRODUCT_KEY_DOCS=dummy.exe
-TITLE_CAPTIONBAR=Configuración de AFS« para Windows
-CONFIG_FILE_MAN_EXT_ERROR=No se ha podido configurar la Extensión del administrador de archivos de AFS Client.
-CONFIGURING_AFS_CREDS_ERROR=No se ha podido configurar la herramienta de la barra de herramientas de AFS Client.
-UPGRADE_SERVER_MSG=Actualizar AFS Server
-PRODUCT_VERSION_RELEASE_TYPE=GA
-AFS_CLIENT_SERVICE_INSTALL_ERROR=Se ha producido un error durante la configuración del servicio de AFS Client: %d
-CLIENT_TITLE=AFS Client
-PRODUCT_KEY_CC=TaAfsServerManager.exe
-AFS_SERVER_SERVICE_INSTALL_ERROR=Se ha producido un error durante la configuración del servicio de AFS Server: %d
-LIGHT_CLIENT_DESC=AFS Light
-CLIENT_FILE_MAN_EXT_ENTRY_NAME=TransarcAFSFileManExt
-INSTALL_CC_MSG=AFS Control Center
-REINSTALL_CC_MSG=Reinstalar AFS Control Center
-PRODUCT_NAME_CLIENT=AFS Client
-CONFIGURING_AFS_CREDS=Configuración del AFS Client
-DOWNGRADE_DOCS_MSG=Nivel anterior de AFS Supplemental Documentation
-INSTALL_DOCS_MSG=AFS Supplemental Documentation
-PRODUCT_KEY_LIGHT_CLIENT=fs.exe
-FOLDER_NAME=IBM AFS
-ERROR_FILE=Archivo:
-ERROR_VGARESOLUTION=Este programa requiere VGA o una resolución mejor.
-REINSTALL_SERVER_MSG=Reinstalar AFS Server
-DOWNGRADE_CLIENT_MSG=Nvel anterior de AFS Client
-PRODUCT_VERSION_BETA_LEVEL=0
-UNINST_KEY_CC=AFS Control Center
-UNINST_KEY_CLIENT=AFS Client
-UPGRADE_DOCS_MSG=Actualizar AFS Supplemental Documentation
-DOWNGRADE_PREP_MSG=Preparándose para nivel anterior de %s. Espere... este proceso puede llevar mucho tiempo.
-PRODUCT_VERSION_PATCH_LEVEL=0
-NON_UPGRADABLE_SOFTWARE_INSTALLED_ERROR_MSG=En el sistema están instaladas versiones no actualizables de este producto. Estas \nversiones deben estar desinstaladas antes de que puedan instalarse las versiones actuales.
-CANT_INSTALL_BOTH_CLIENTS_MSG=Por favor, seleccione únicamente uno de los AFS Clients a instalar. No puede instalar los dos.
-UNINST_KEY_LIGHT_CLIENT=AFS Light
-UPGRADE_LIGHT_CLIENT_MSG=Actualizar AFS Light Client
-UNINST_KEY_DOCS=AFS Supplemental Documentation
-UNINST_DISPLAY_NAME_CLIENT=AFS Client 3.6
-REINSTALL_DOCS_MSG=Reinstalar AFS Supplemental Documentation
-UPGRADE_PREP_MSG=Preparándose para actualizar %s. Espere... este proceso puede llevar mucho tiempo.
-MUST_BE_AN_ADMIN_MSG=Debe ser miembro del grupo de Administradores locales en este sistema Windows para instalar este producto.
-LIGHT_CLIENT_TITLE=AFS Light
-PRODUCT_NAME=AFS« para Windows
-PRODUCT_KEY_CLIENT=fs.exe
-ERROR_UNINSTSETUP=Ha fallado la inicialización de la configuración de unInstaller. Es posible que no pueda desinstalar este producto.
-ADD_PATH_ERROR=No se ha podido añadir el directorio de programas a la vía de acceso del sistema.
-SERVER_NEEDS_CLIENT_MSG=Para instalar AFS Server, debe optar por instalar asimismo el AFS Client.
-INSTALL_CLIENT_MSG=AFS Client
-WSPP_FOLDER_NAME=IBM WebSphere\Performance Pack\AFS
-REINSTALL_PREP_MSG=Preparándose para reinstalar %s. Espere... este proceso puede llevar mucho tiempo.
-APPS_NOT_SAME_VERSION=Los componentes seleccionados para la instalación darán como resultado una mezcla de diferentes versiones de AFS para Windows. AFS no funcionará correctamente si se instala de este modo. Por favor, vuelva a crear las selecciones de modo que todos los componentes de AFS tengan la misma versión después de la instalación.\n
-STATUS_INSTALLING_CLIENT=Instalando AFS Client...
-STATUS_INSTALLING_SERVER=Instalando AFS Server...
-STATUS_INSTALLING_CCENTER=Instalando AFS Control Center...
-STATUS_INSTALLING_LIGHT=Instalando AFS Light...
-STATUS_INSTALLING_HEADERS=Instalando archivos de extensión de AFS Client...
-STATUS_INSTALLING_DOCS=Instalando AFS Supplemental Documentation...
-STATUS_INSTALLING_LANGUAGE=Instalando contenido específico del idioma...
-DOCUMENTATION_ITEM_NAME=Documentación
-CFG_WIZARD_ITEM_NAME=Asistente de configuración
-CREDS_TOOL_ITEM_NAME=Autentificación
-CLIENT_HELP_ITEM_NAME=Ayuda para AFS Client
-LIGHT_CLIENT_HELP_ITEM_NAME=Ayuda para AFS Light
-SERVER_MANAGER_ITEM_NAME=Server Manager
-ACCT_MANAGER_ITEM_NAME=Account Manager
-SERVER_GROUP_NAME=Server
-CLIENT_GROUP_NAME=Client
-CCENTER_GROUP_NAME=Control Center
-LIGHT_GROUP_NAME=Light
-
-[General]
-Language=0009
-Type=STRINGTABLESPECIFIC
-Version=1.00.000
-
+++ /dev/null
-[Data]
-DEFAULT_INSTALL_DIR=IBM\AFS
-NOTHING_SELECTED_MSG=\91±\8ds\82·\82é\91O\82É\81A\83C\83\93\83X\83g\81[\83\8b\82·\82é\82È\82É\82©\82ð\91I\91ð\82µ\82È\82¯\82ê\82Î\82È\82è\82Ü\82¹\82ñ\81B
-DOWNGRADE_LIGHT_CLIENT_MSG=AFS Light \83N\83\89\83C\83A\83\93\83g\82ð\83_\83E\83\93\83O\83\8c\81[\83h\82·\82é
-SETUP_FINISHED_MSG=\83Z\83b\83g\83A\83b\83v\82É\82æ\82Á\82Ä\83\86\81[\83U\81[\82Ì\83R\83\93\83s\83\85\81[\83^\81[\82Ö\82Ì AFS(R) for Windows \82Ì\83C\83\93\83X\83g\81[\83\8b\82ª\8fI\97¹\82µ\82Ü\82µ\82½\81B
-TITLE_MAIN=AFS(R) for Windows 3.6
-SEVERE_DIALOG_TITLE=AFS(R) for Windows
-UPGRADE_CLIENT_MSG=AFS \83N\83\89\83C\83A\83\93\83g\82ð\83A\83b\83v\83O\83\8c\81[\83h\82·\82é
-PRODUCT_VERSION_MINOR=6
-CONFIGURING_AFS_CLIENT_SERVICE=AFS \83N\83\89\83C\83A\83\93\83g\81E\83T\81[\83r\83X\82ð\8d\\90¬\92\86
-PRODUCT_NAME_CC=AFS \83R\83\93\83g\83\8d\81[\83\8b\81E\83Z\83\93\83^\81[
-PRODUCT_NAME_SERVER=AFS \83T\81[\83o\81[
-UPGRADE_CC_MSG=AFS \83R\83\93\83g\83\8d\81[\83\8b\81E\83Z\83\93\83^\81[\82ð\83A\83b\83v\83O\83\8c\81[\83h\82·\82é
-DOWNGRADE_SERVER_MSG=AFS \83T\81[\83o\81[\82ð\83_\83E\83\93\83O\83\8c\81[\83h\82·\82é
-UNINST_DISPLAY_NAME_LIGHT_CLIENT=AFS Light 3.6
-PRODUCT_NAME_LIGHT_CLIENT=AFS Light
-ERROR_COMPONENT=\83R\83\93\83|\81[\83l\83\93\83g:
-COMPANY_NAME=TransarcCorporation
-REINSTALL_CLIENT_MSG=AFS \83N\83\89\83C\83A\83\93\83g\82ð\8dÄ\83C\83\93\83X\83g\81[\83\8b\82·\82é
-DOWNGRADE_CC_MSG=AFS \83R\83\93\83g\83\8d\81[\83\8b\81E\83Z\83\93\83^\81[\82ð\83_\83E\83\93\83O\83\8c\81[\83h\82·\82é
-UNINST_DISPLAY_NAME_DOCS=AFS \95â\91«\95¶\8f\91 3.6
-UNINST_KEY_SERVER=AFS \83T\81[\83o\81[
-VIEW_README_PROMPT_MSG=README \83t\83@\83C\83\8b\82ð\95\\8e¦\82·\82é
-INSTALL_LIGHT_CLIENT_MSG=AFS Light \83N\83\89\83C\83A\83\93\83g
-PRODUCT_VERSION_TITLE=3.6
-UNINST_DISPLAY_NAME_CC=AFS \83R\83\93\83g\83\8d\81[\83\8b\81E\83Z\83\93\83^\81[ 3.6
-ERROR_FILEGROUP=\83t\83@\83C\83\8b\81E\83O\83\8b\81[\83v:
-ERROR_MOVEDATA=\83f\81[\83^\82Ì\88Ú\93®\8f\88\97\9d\92\86\82É\83G\83\89\81[\82ª\8bN\82±\82è\82Ü\82µ\82½: %d
-CONFIGURING_AFS_SERVER_SERVICE=AFS \83T\81[\83o\81[\81E\83T\81[\83r\83X\82ð\8d\\90¬\92\86
-CLIENT_DESC=AFS \83N\83\89\83C\83A\83\93\83g
-SET_NETWORK_PROVIDER_ERROR=AFS \83N\83\89\83C\83A\83\93\83g\82ð\83l\83b\83g\83\8f\81[\83N\81E\83v\83\8d\83o\83C\83_\81[\82Æ\82µ\82Ä\8d\\90¬\82·\82é\82±\82Æ\82ª\82Å\82«\82Ü\82¹\82ñ\81B
-PRODUCT_VERSION_MAJOR=3
-UNINST_DISPLAY_NAME_SERVER=AFS \83T\81[\83o\81[ 3.6
-SETUPUTILS_NOT_FOUND=\83t\83@\83C\83\8b InstallUtils.dll \82ð\83\8d\81[\83h\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½\81B\83Z\83b\83g\83A\83b\83v\82ð\91±\8ds\82Å\82«\82Ü\82¹\82ñ\81B
-LIGHT_CLIENT_ALREADY_INSTALLED_MSG=\82±\82Ì\83R\83\93\83s\83\85\81[\83^\81[\82É\82Í\82·\82Å\82É AFS Light \82ª\83C\83\93\83X\83g\81[\83\8b\82³\82ê\82Ä\82¢\82Ü\82·\81B
-SETUP_TYPE_MSG=\83C\83\93\83X\83g\81[\83\8b\82µ\82½\82¢ AFS(R) for Windows \90»\95i\82ð\91I\91ð\82µ\82Ä\82\82¾\82³\82¢:
-PRODUCT_KEY_SERVER=bosctlsvc.exe
-INSTALL_SERVER_MSG=AFS \83T\81[\83o\81[
-REINSTALL_LIGHT_CLIENT_MSG=AFS Light \83N\83\89\83C\83A\83\93\83g\82ð\8dÄ\83C\83\93\83X\83g\81[\83\8b\82·\82é
-PRODUCT_NAME_DOCS=AFS \95â\91«\95¶\8f\91
-NEW_STRING1=
-PRODUCT_KEY_DOCS=dummy.exe
-TITLE_CAPTIONBAR=AFS(R) for Windows \82Ì\83Z\83b\83g\83A\83b\83v
-CONFIG_FILE_MAN_EXT_ERROR=AFS \83N\83\89\83C\83A\83\93\83g\82Ì\83t\83@\83C\83\8b\81E\83}\83l\81[\83W\83\83\81[\8ag\92£\82Ì\8d\\90¬\82É\8e¸\94s\82µ\82Ü\82µ\82½\81B
-CONFIGURING_AFS_CREDS_ERROR=AFS \83N\83\89\83C\83A\83\93\83g\82Ì\83c\81[\83\8b\83o\81[\81E\83c\81[\83\8b\82Ì\8d\\90¬\82É\8e¸\94s\82µ\82Ü\82µ\82½\81B
-UPGRADE_SERVER_MSG=AFS \83T\81[\83o\81[\82ð\83A\83b\83v\83O\83\8c\81[\83h\82·\82é
-PRODUCT_VERSION_RELEASE_TYPE=GA
-AFS_CLIENT_SERVICE_INSTALL_ERROR=AFS \83N\83\89\83C\83A\83\93\83g\81E\83T\81[\83r\83X\82Ì\8d\\90¬\92\86\82É\83G\83\89\81[\82ª\8bN\82±\82è\82Ü\82µ\82½: %d
-CLIENT_TITLE=AFS \83N\83\89\83C\83A\83\93\83g
-PRODUCT_KEY_CC=TaAfsServerManager.exe
-AFS_SERVER_SERVICE_INSTALL_ERROR=AFS \83T\81[\83o\81[\81E\83T\81[\83r\83X\82Ì\8d\\90¬\92\86\82É\83G\83\89\81[\82ª\8bN\82±\82è\82Ü\82µ\82½: %d
-LIGHT_CLIENT_DESC=AFS Light
-CLIENT_FILE_MAN_EXT_ENTRY_NAME=TransarcAFSFileManExt
-INSTALL_CC_MSG=AFS \83R\83\93\83g\83\8d\81[\83\8b\81E\83Z\83\93\83^\81[
-REINSTALL_CC_MSG=AFS \83R\83\93\83g\83\8d\81[\83\8b\81E\83Z\83\93\83^\81[\82ð\8dÄ\83C\83\93\83X\83g\81[\83\8b\82·\82é
-PRODUCT_NAME_CLIENT=AFS \83N\83\89\83C\83A\83\93\83g
-CONFIGURING_AFS_CREDS=AFS \83N\83\89\83C\83A\83\93\83g\82ð\8d\\90¬\92\86
-DOWNGRADE_DOCS_MSG=AFS \95â\91«\95¶\8f\91\82ð\83_\83E\83\93\83O\83\8c\81[\83h\82·\82é
-INSTALL_DOCS_MSG=AFS \95â\91«\95¶\8f\91
-PRODUCT_KEY_LIGHT_CLIENT=fs.exe
-FOLDER_NAME=IBM AFS
-ERROR_FILE=\83t\83@\83C\83\8b:
-ERROR_VGARESOLUTION=\82±\82Ì\83v\83\8d\83O\83\89\83\80\82É\82Í VGA \88È\8fã\82Ì\97Ç\8dD\82È\89ð\91\9c\93x\82ª\95K\97v\82Å\82·\81B
-REINSTALL_SERVER_MSG=AFS \83T\81[\83o\81[\82ð\8dÄ\83C\83\93\83X\83g\81[\83\8b\82·\82é
-DOWNGRADE_CLIENT_MSG=AFS \83N\83\89\83C\83A\83\93\83g\82ð\83_\83E\83\93\83O\83\8c\81[\83h\82·\82é
-PRODUCT_VERSION_BETA_LEVEL=0
-UNINST_KEY_CC=AFS \83R\83\93\83g\83\8d\81[\83\8b\81E\83Z\83\93\83^\81[
-UNINST_KEY_CLIENT=AFS \83N\83\89\83C\83A\83\93\83g
-UPGRADE_DOCS_MSG=AFS \95â\91«\95¶\8f\91\82ð\83A\83b\83v\83O\83\8c\81[\83h\82·\82é
-DOWNGRADE_PREP_MSG=%s \82Ì\83_\83E\83\93\83O\83\8c\81[\83h\82Ì\8f\80\94õ\92\86\82Å\82·\81B\82µ\82Î\82ç\82\82¨\91Ò\82¿\82\82¾\82³\82¢...\82±\82ê\82É\82Í\92·\8e\9e\8aÔ\82©\82©\82é\82±\82Æ\82ª\82 \82è\82Ü\82·\81B
-PRODUCT_VERSION_PATCH_LEVEL=0
-NON_UPGRADABLE_SOFTWARE_INSTALLED_ERROR_MSG=\83\86\81[\83U\81[\82Ì\83R\83\93\83s\83\85\81[\83^\81[\82É\82Í\82±\82Ì\90»\95i\82Ì\83A\83b\83v\83O\83\8c\81[\83h\95s\94\\83o\81[\83W\83\87\83\93\82ª\83C\83\93\83X\83g\81[\n\83\8b\82³\82ê\82Ä\82¢\82Ü\82·\81B\82±\82ê\82ç\82Ì\83o\81[\83W\83\87\83\93\82ð\83A\83\93\83C\83\93\83X\83g\81[\83\8b\82µ\82È\82¢\82Æ\81A\8c»\8ds\83o\81[\83W\83\87\83\93\82Í\n\83C\83\93\83X\83g\81[\83\8b\82Å\82«\82Ü\82¹\82ñ\81B
-CANT_INSTALL_BOTH_CLIENTS_MSG=\83C\83\93\83X\83g\81[\83\8b\82·\82é AFS \83N\83\89\83C\83A\83\93\83g\82ð 1 \82Â\82¾\82¯\91I\91ð\82µ\82Ä\82\82¾\82³\82¢\81B\97¼\95û\82ð\83C\83\93\83X\83g\81[\83\8b\82·\82é\82±\82Æ\82Í\82Å\82«\82Ü\82¹\82ñ\81B
-UNINST_KEY_LIGHT_CLIENT=AFS Light
-UPGRADE_LIGHT_CLIENT_MSG=AFS Light \83N\83\89\83C\83A\83\93\83g\82ð\83A\83b\83v\83O\83\8c\81[\83h\82·\82é
-UNINST_KEY_DOCS=AFS \95â\91«\95¶\8f\91
-UNINST_DISPLAY_NAME_CLIENT=AFS \83N\83\89\83C\83A\83\93\83g 3.6
-REINSTALL_DOCS_MSG=AFS \95â\91«\95¶\8f\91\82ð\8dÄ\83C\83\93\83X\83g\81[\83\8b\82·\82é
-UPGRADE_PREP_MSG=%s \82Ì\83A\83b\83v\83O\83\8c\81[\83h\82Ì\8f\80\94õ\92\86\82Å\82·\81B\82µ\82Î\82ç\82\82¨\91Ò\82¿\82\82¾\82³\82¢...\82±\82ê\82É\82Í\92·\8e\9e\8aÔ\82©\82©\82é\82±\82Æ\82ª\82 \82è\82Ü\82·\81B
-MUST_BE_AN_ADMIN_MSG=\82±\82Ì\90»\95i\82ð\83C\83\93\83X\83g\81[\83\8b\82·\82é\82É\82Í\81A\82±\82Ì Windows \83V\83X\83e\83\80\8fã\82Ì\83\8d\81[\83J\83\8b\8aÇ\97\9d\8eÒ\83O\83\8b\81[\83v\82Ì\83\81\83\93\83o\81[\82Å\82 \82é\82±\82Æ\82ª\95K\97v\82Å\82·\81B
-LIGHT_CLIENT_TITLE=AFS Light
-PRODUCT_NAME=AFS(R) for Windows
-PRODUCT_KEY_CLIENT=fs.exe
-ERROR_UNINSTSETUP=unInstaller \82Ì\83Z\83b\83g\83A\83b\83v\82Å\8f\89\8aú\89»\82É\8e¸\94s\82µ\82Ü\82µ\82½\81B\82±\82Ì\90»\95i\82ð\83A\83\93\83C\83\93\83X\83g\81[\83\8b\82Å\82«\82È\82¢\8fê\8d\87\82ª\82 \82è\82Ü\82·\81B
-ADD_PATH_ERROR=\83V\83X\83e\83\80\81E\83p\83X\82Ö\82Ì\83v\83\8d\83O\83\89\83\80\81E\83f\83B\83\8c\83N\83g\83\8a\81[\82Ì\92Ç\89Á\82É\8e¸\94s\82µ\82Ü\82µ\82½\81B
-SERVER_NEEDS_CLIENT_MSG=AFS \83T\81[\83o\81[\82ð\83C\83\93\83X\83g\81[\83\8b\82·\82é\82É\82Í\81AAFS \83N\83\89\83C\83A\83\93\83g\82Ì\83C\83\93\83X\83g\81[\83\8b\82à\91I\91ð\82µ\82È\82¯\82ê\82Î\82È\82è\82Ü\82¹\82ñ\81B
-INSTALL_CLIENT_MSG=AFS \83N\83\89\83C\83A\83\93\83g
-WSPP_FOLDER_NAME=IBM WebSphere\Performance Pack\AFS
-REINSTALL_PREP_MSG=%s \82Ì\8dÄ\83C\83\93\83X\83g\81[\83\8b\82Ì\8f\80\94õ\92\86\82Å\82·\81B\82µ\82Î\82ç\82\82¨\91Ò\82¿\82\82¾\82³\82¢...\82±\82ê\82É\82Í\92·\8e\9e\8aÔ\82©\82©\82é\82±\82Æ\82ª\82 \82è\82Ü\82·\81B
-APPS_NOT_SAME_VERSION=\83C\83\93\83X\83g\81[\83\8b\82É\91I\91ð\82µ\82½\83R\83\93\83|\81[\83l\83\93\83g\82Í\81AAFS for Windows \82Ì\88Ù\82È\82é\83o\81[\83W\83\87\83\93\82ª\8d¬\8dÝ\82·\82é\8c\8b\89Ê\82Æ\82È\82è\82Ü\82·\81B\82±\82Ì\82æ\82¤\82É\82µ\82Ä\83C\83\93\83X\83g\81[\83\8b\82·\82é\82Æ\81AAFS \82Í\90³\82µ\82\93\82«\82Ü\82¹\82ñ\81B\82·\82×\82Ä\82Ì AFS \83R\83\93\83|\81[\83l\83\93\83g\82ª\83C\83\93\83X\83g\81[\83\8b\8cã\82É\93¯\82¶\83o\81[\83W\83\87\83\93\82É\82È\82é\82æ\82¤\82É\81A\91I\91ð\82µ\92¼\82µ\82Ä\82\82¾\82³\82¢\81B\n
-STATUS_INSTALLING_CLIENT=AFS \83N\83\89\83C\83A\83\93\83g\82ð\83C\83\93\83X\83g\81[\83\8b\82µ\82Ä\82¢\82Ü\82·...
-STATUS_INSTALLING_SERVER=AFS \83T\81[\83o\81[\82ð\83C\83\93\83X\83g\81[\83\8b\82µ\82Ä\82¢\82Ü\82·...
-STATUS_INSTALLING_CCENTER=AFS \83R\83\93\83g\83\8d\81[\83\8b\81E\83Z\83\93\83^\81[\82ð\83C\83\93\83X\83g\81[\83\8b\82µ\82Ä\82¢\82Ü\82·...
-STATUS_INSTALLING_LIGHT=AFS Light \82ð\83C\83\93\83X\83g\81[\83\8b\82µ\82Ä\82¢\82Ü\82·...
-STATUS_INSTALLING_HEADERS=AFS \83N\83\89\83C\83A\83\93\83g\8ag\92£\83t\83@\83C\83\8b\82ð\83C\83\93\83X\83g\81[\83\8b\82µ\82Ä\82¢\82Ü\82·...
-STATUS_INSTALLING_DOCS=AFS \95â\91«\95¶\8f\91\82ð\83C\83\93\83X\83g\81[\83\8b\82µ\82Ä\82¢\82Ü\82·...
-STATUS_INSTALLING_LANGUAGE=\8c¾\8cê\8cÅ\97L\82Ì\93à\97e\82ð\83C\83\93\83X\83g\81[\83\8b\82µ\82Ä\82¢\82Ü\82·...
-DOCUMENTATION_ITEM_NAME=\95¶\8f\91
-CFG_WIZARD_ITEM_NAME=\8d\\90¬\83E\83B\83U\81[\83h
-CREDS_TOOL_ITEM_NAME=\94F\8fØ
-CLIENT_HELP_ITEM_NAME=AFS \83N\83\89\83C\83A\83\93\83g\81E\83w\83\8b\83v
-LIGHT_CLIENT_HELP_ITEM_NAME=AFS Light \83w\83\8b\83v
-SERVER_MANAGER_ITEM_NAME=\83T\81[\83o\81[\81E\83}\83l\81[\83W\83\83\81[
-ACCT_MANAGER_ITEM_NAME=\83A\83J\83E\83\93\83g\81E\83}\83l\81[\83W\83\83\81[
-SERVER_GROUP_NAME=Server
-CLIENT_GROUP_NAME=Client
-CCENTER_GROUP_NAME=Control Center
-LIGHT_GROUP_NAME=Light
-
-[General]
-Language=0011
-Type=STRINGTABLESPECIFIC
-Version=1.00.000
-
+++ /dev/null
-[Data]
-DEFAULT_INSTALL_DIR=IBM\AFS
-NOTHING_SELECTED_MSG=°è¼ÓÇϱâ Àü¿¡ ¼³Ä¡ÇÒ Ç׸ñÀ» ¼±ÅÃÇØ¾ß ÇÕ´Ï´Ù.
-DOWNGRADE_LIGHT_CLIENT_MSG=AFS ¶óÀÌÆ® Ŭ¶óÀÌ¾ðÆ® ´Ù¿î±×·¹À̵å
-SETUP_FINISHED_MSG=Windows¿ë AFS ¼³Ä¡°¡ ¿Ï·áµÇ¾ú½À´Ï´Ù.
-TITLE_MAIN=Windows¿ë AFS 3.6
-SEVERE_DIALOG_TITLE=Windows¿ë AFS
-UPGRADE_CLIENT_MSG=AFS Ŭ¶óÀÌ¾ðÆ® ¾÷±×·¹À̵å
-PRODUCT_VERSION_MINOR=6
-CONFIGURING_AFS_CLIENT_SERVICE=AFS Ŭ¶óÀÌ¾ðÆ® ¼ºñ½º ±¸¼º
-PRODUCT_NAME_CC=AFS Á¦¾î ¼¾ÅÍ
-PRODUCT_NAME_SERVER=AFS ¼¹ö
-UPGRADE_CC_MSG=AFS Á¦¾î ¼¾ÅÍ ¾÷±×·¹À̵å
-DOWNGRADE_SERVER_MSG=AFS ¼¹ö ´Ù¿î±×·¹À̵å
-UNINST_DISPLAY_NAME_LIGHT_CLIENT=AFS ¶óÀÌÆ® 3.6
-PRODUCT_NAME_LIGHT_CLIENT=AFS ¶óÀÌÆ®
-ERROR_COMPONENT=±¸¼º¿ä¼Ò:
-COMPANY_NAME=TransarcCorporation
-REINSTALL_CLIENT_MSG=AFS Ŭ¶óÀÌ¾ðÆ® À缳ġ
-DOWNGRADE_CC_MSG=AFS Á¦¾î ¼¾ÅÍ ´Ù¿î±×·¹À̵å
-UNINST_DISPLAY_NAME_DOCS=AFS º¸Ãæ ¹®¼ 3.6
-UNINST_KEY_SERVER=AFS ¼¹ö
-VIEW_README_PROMPT_MSG=readme ÆÄÀÏ º¸±â
-INSTALL_LIGHT_CLIENT_MSG=AFS ¶óÀÌÆ® Ŭ¶óÀ̾ðÆ®
-PRODUCT_VERSION_TITLE=3.6
-UNINST_DISPLAY_NAME_CC=AFS Á¦¾î ¼¾ÅÍ 3.6
-ERROR_FILEGROUP=ÆÄÀÏ ±×·ì:
-ERROR_MOVEDATA=µ¥ÀÌÅÍ À̵¿ ÇÁ·Î¼¼½º Áß ¿À·ù ¹ß»ý: %d
-CONFIGURING_AFS_SERVER_SERVICE=AFS ¼¹ö ¼ºñ½º ±¸¼º Áß...
-CLIENT_DESC=AFS Ŭ¶óÀ̾ðÆ®
-SET_NETWORK_PROVIDER_ERROR=AFS Ŭ¶óÀÌ¾ðÆ®¸¦ ³×Æ®¿öÅ© Á¦°øÀÚ·Î ±¸¼ºÇÒ ¼ö ¾ø½À´Ï´Ù.
-PRODUCT_VERSION_MAJOR=3
-UNINST_DISPLAY_NAME_SERVER=AFS ¼¹ö 3.6
-SETUPUTILS_NOT_FOUND=InstallUtils.dll ÆÄÀÏÀ» ·ÎµåÇÒ ¼ö ¾ø½À´Ï´Ù. ¼³Á¤ÀÌ °è¼ÓµË´Ï´Ù.
-LIGHT_CLIENT_ALREADY_INSTALLED_MSG=AFS ¶óÀÌÆ®°¡ ÀÌ¹Ì ¼³Ä¡µÇ¾î ÀÖ½À´Ï´Ù.
-SETUP_TYPE_MSG=¼³Ä¡ÇϰíÀÚ ÇÏ´Â Windows¿ë AFS Á¦Ç°À» ¼±ÅÃÇϽʽÿÀ.
-PRODUCT_KEY_SERVER=bosctlsvc.exe
-INSTALL_SERVER_MSG=AFS ¼¹ö
-REINSTALL_LIGHT_CLIENT_MSG=AFS ¶óÀÌÆ® Ŭ¶óÀÌ¾ðÆ®¸¦ À缳ġÇϽʽÿÀ
-PRODUCT_NAME_DOCS=AFS º¸Ãæ ¹®¼
-NEW_STRING1=
-PRODUCT_KEY_DOCS=dummy.exe
-TITLE_CAPTIONBAR=Windows¿ë AFS ¼³Ä¡
-CONFIG_FILE_MAN_EXT_ERROR=AFS Ŭ¶óÀÌ¾ðÆ® ÆÄÀÏ °ü¸® ÇÁ·Î±×·¥ È®Àå ¼ÒÇÁÆ®¿þ¾î¸¦ ±¸¼ºÇÏ´Â µ¥ ½ÇÆÐÇß½À´Ï´Ù.
-CONFIGURING_AFS_CREDS_ERROR=AFS Ŭ¶óÀÌ¾ðÆ® µµ±¸ ¸ðÀ½À» ±¸¼ºÇÏ´Â µ¥ ½ÇÆÐÇß½À´Ï´Ù.
-UPGRADE_SERVER_MSG=AFS ¼¹ö ¾÷±×·¹À̵å
-PRODUCT_VERSION_RELEASE_TYPE=GA
-AFS_CLIENT_SERVICE_INSTALL_ERROR=AFS Ŭ¶óÀÌ¾ðÆ® ¼ºñ½º ±¸¼º Áß ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù: %d
-CLIENT_TITLE=AFS Ŭ¶óÀ̾ðÆ®
-PRODUCT_KEY_CC=TaAfsServerManager.exe
-AFS_SERVER_SERVICE_INSTALL_ERROR=AFS ¼¹ö ¼ºñ½º ±¸¼º Áß ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù: %d
-LIGHT_CLIENT_DESC=AFS ¶óÀÌÆ®
-CLIENT_FILE_MAN_EXT_ENTRY_NAME=TransarcAFSFileManExt
-INSTALL_CC_MSG=AFS Á¦¾î ¼¾ÅÍ
-REINSTALL_CC_MSG=AFS Á¦¾î ¼¾ÅÍ ´Ù½Ã ¼³Ä¡
-PRODUCT_NAME_CLIENT=AFS Ŭ¶óÀ̾ðÆ®
-CONFIGURING_AFS_CREDS=AFS Ŭ¶óÀÌ¾ðÆ® ±¸¼º Áß...
-DOWNGRADE_DOCS_MSG=AFS º¸Ãæ ¹®¼ ´Ù¿î±×·¹À̵å
-INSTALL_DOCS_MSG=AFS º¸Ãæ ¹®¼
-PRODUCT_KEY_LIGHT_CLIENT=fs.exe
-FOLDER_NAME=IBM AFS
-ERROR_FILE=ÆÄÀÏ:
-ERROR_VGARESOLUTION=ÀÌ ÇÁ·Î±×·¥Àº VGA ÀÌ»óÀÇ ÇØ»óµµ¸¦ ÇÊ¿ä·ÎÇÕ´Ï´Ù.
-REINSTALL_SERVER_MSG=AFS ¼¹ö À缳ġ
-DOWNGRADE_CLIENT_MSG=AFS Ŭ¶óÀÌ¾ðÆ® ´Ù¿î±×·¹À̵å
-PRODUCT_VERSION_BETA_LEVEL=0
-UNINST_KEY_CC=AFS Á¦¾î ¼¾ÅÍ
-UNINST_KEY_CLIENT=AFS Ŭ¶óÀ̾ðÆ®
-UPGRADE_DOCS_MSG=AFS º¸Ãæ ¹®¼ ¾÷±×·¹À̵å
-DOWNGRADE_PREP_MSG=%s ´Ù¿î±×·¹À̵带 ÁغñÁßÀÔ´Ï´Ù. Àá½Ã ±â´Ù·Á ÁֽʽÿÀ...À̰ÍÀº ¾à°£ÀÇ ½Ã°£ÀÌ ¼Ò¿äµË´Ï´Ù.
-PRODUCT_VERSION_PATCH_LEVEL=0
-NON_UPGRADABLE_SOFTWARE_INSTALLED_ERROR_MSG=ÄÄÇ»ÅÍ¿¡ ÀÌ Á¦Ç°ÀÇ ¾÷±×·¹À̵尡 ºÒ°¡´ÉÇÑ ¹öÀü¿¡ ¼³Ä¡µÇ¾î ÀÖ½À´Ï´Ù. \nÇöÀç ¹öÀüÀ» ÀνºÅçÇÏ·Á¸é ÀÌ ¹öÀüÀ» ¼³Ä¡ÇØÁ¦ÇØ¾ß ÇÕ´Ï´Ù.
-CANT_INSTALL_BOTH_CLIENTS_MSG=¼³Ä¡ÇÒ AFS Ŭ¶óÀÌ¾ðÆ®¸¦ Çϳª¸¸ ¼±ÅÃÇϽʽÿÀ. µÑ´Ù ¼³Ä¡ÇÒ ¼ö´Â ¾ø½À´Ï´Ù.
-UNINST_KEY_LIGHT_CLIENT=AFS ¶óÀÌÆ®
-UPGRADE_LIGHT_CLIENT_MSG=AFS ¶óÀÌÆ® Ŭ¶óÀÌ¾ðÆ® ¾÷±×·¹À̵å
-UNINST_KEY_DOCS=AFS º¸Ãæ ¹®¼
-UNINST_DISPLAY_NAME_CLIENT=AFS Ŭ¶óÀÌ¾ðÆ® 3.6
-REINSTALL_DOCS_MSG=AFS º¸Ãæ ¹®¼ À缳ġ
-UPGRADE_PREP_MSG=%s ¾÷±×·¹À̵带 ÁغñÁßÀÔ´Ï´Ù. Àá½Ã ±â´Ù·Á ÁֽʽÿÀ...À̰ÍÀº ¾à°£ÀÇ ½Ã°£ÀÌ ¼Ò¿äµË´Ï´Ù.
-MUST_BE_AN_ADMIN_MSG=ÀÌ Á¦Ç°À» ¼³Ä¡ÇÏ·Á¸é ÀÌ Windows ½Ã½ºÅÛ»ó¿¡¼ Áö¿ª °ü¸®ÀÚ ±×·ìÀÇ ¸â¹ö¿©¾ßÇÕ´Ï´Ù.
-LIGHT_CLIENT_TITLE=AFS ¶óÀÌÆ®
-PRODUCT_NAME=Windows¿ë AFS
-PRODUCT_KEY_CLIENT=fs.exe
-ERROR_UNINSTSETUP=unInstaller ¼³Ä¡ ÃʱâÈ¿¡ ½ÇÆÐÇß½À´Ï´Ù. ÀÌ Á¦Ç°À» ¼³Ä¡ ÇØÁ¦ÇÒ ¼ö ¾ø½À´Ï´Ù.
-ADD_PATH_ERROR=ÇÁ·Î±×·¥ µð·ºÅ丮¸¦ ½Ã½ºÅÛ °æ·Î¿¡ Ãß°¡ÇÏ´Â µ¥ ½ÇÆÐÇß½À´Ï´Ù.
-SERVER_NEEDS_CLIENT_MSG=AFS ¼¹ö¸¦ ¼³Ä¡ÇÏ·Á¸é AFS Ŭ¶óÀÌ¾ðÆ®µµ ¼³Ä¡Çϵµ·Ï ¼±ÅÃÇØ¾ß ÇÕ´Ï´Ù.
-INSTALL_CLIENT_MSG=AFS Ŭ¶óÀ̾ðÆ®
-WSPP_FOLDER_NAME=IBM WebSphere\Performance Pack\AFS
-REINSTALL_PREP_MSG=%s À缳ġ¸¦ ÁغñÁßÀÔ´Ï´Ù. Àá½Ã ±â´Ù·Á ÁֽʽÿÀ...À̰ÍÀº ¾à°£ÀÇ ½Ã°£ÀÌ ¼Ò¿äµË´Ï´Ù.
-APPS_NOT_SAME_VERSION=¼³Ä¡¸¦ À§ÇØ ¼±ÅÃÇÑ ±¸¼º¿ä¼Ò°¡ Windows¿ë AFSÀÇ ´Ù¸¥ ¹öÀü°ú È¥Çյ˴ϴÙ. ÀÌ ¹æ¹ýÀ¸·Î ¼³Ä¡ÇÑ °æ¿ì AFS´Â ¿Ã¹Ù¸£°Ô ÀÛµ¿ÇÏÁö ¾Ê½À´Ï´Ù. ¼³Ä¡ ÈÄ AFS ±¸¼º¿ä¼Ò°¡ È¥ÇÕµÇÁö ¾Ê°í µ¿ÀÏÇÑ ¹öÀü¿¡ ÀÖµµ·Ï ÇÏ·Á¸é ´Ù½Ã ¼±ÅÃÇϽʽÿÀ.\n
-STATUS_INSTALLING_CLIENT=AFS Ŭ¶óÀÌ¾ðÆ® ¼³Ä¡ Áß...
-STATUS_INSTALLING_SERVER=AFS ¼¹ö ¼³Ä¡ Áß...
-STATUS_INSTALLING_CCENTER=AFS Á¦¾î ¼¾ÅÍ ¼³Ä¡ Áß...
-STATUS_INSTALLING_LIGHT=AFS ¶óÀÌÆ® ¼³Ä¡ Áß...
-STATUS_INSTALLING_HEADERS=AFS Ŭ¶óÀÌ¾ðÆ® È®Àå ÆÄÀÏ ¼³Ä¡ Áß...
-STATUS_INSTALLING_DOCS=AFS º¸Ãæ ¹®¼ ¼³Ä¡ Áß...
-STATUS_INSTALLING_LANGUAGE=ƯÁ¤ ¾ð¾î Ç׸ñ ¼³Ä¡ Áß...
-DOCUMENTATION_ITEM_NAME=¹®¼
-CFG_WIZARD_ITEM_NAME=±¸¼º ¸¶¹ý»ç
-CREDS_TOOL_ITEM_NAME=ÀÎÁõ
-CLIENT_HELP_ITEM_NAME=AFS Ŭ¶óÀÌ¾ðÆ® µµ¿ò¸»
-LIGHT_CLIENT_HELP_ITEM_NAME=AFS ¶óÀÌÆ® µµ¿ò¸»
-SERVER_MANAGER_ITEM_NAME=¼¹ö °ü¸® ÇÁ·Î±×·¥
-ACCT_MANAGER_ITEM_NAME=°èÁ¤ °ü¸® ÇÁ·Î±×·¥
-SERVER_GROUP_NAME=Server
-CLIENT_GROUP_NAME=Client
-CCENTER_GROUP_NAME=Control Center
-LIGHT_GROUP_NAME=Light
-
-[General]
-Language=0012
-Type=STRINGTABLESPECIFIC
-Version=1.00.000
-
+++ /dev/null
-[Data]
-DEFAULT_INSTALL_DIR=IBM\AFS
-NOTHING_SELECTED_MSG=É preciso selecionar algo para instalar antes de continuar.
-DOWNGRADE_LIGHT_CLIENT_MSG=Regredir o Cliente AFS Básico
-SETUP_FINISHED_MSG=Config concluiu a instalação do AFS® para Windows em seu computador.
-TITLE_MAIN=AFS® para Windows 3.6
-SEVERE_DIALOG_TITLE=AFS® para Windows
-UPGRADE_CLIENT_MSG=Atualizar AFS Client
-PRODUCT_VERSION_MINOR=6
-CONFIGURING_AFS_CLIENT_SERVICE=Configurando o serviço do AFS Client
-PRODUCT_NAME_CC=Centro de Controle do AFS
-PRODUCT_NAME_SERVER=AFS Server
-UPGRADE_CC_MSG=Atualizar Centro de Controle do AFS
-DOWNGRADE_SERVER_MSG=Regredir o AFS Server
-UNINST_DISPLAY_NAME_LIGHT_CLIENT=AFS Básico 3.6
-PRODUCT_NAME_LIGHT_CLIENT=AFS Básico
-ERROR_COMPONENT=Componente:
-COMPANY_NAME=TransarcCorporation
-REINSTALL_CLIENT_MSG=Reinstalar o AFS Client
-DOWNGRADE_CC_MSG=Regredir o Centro de Controle do AFS
-UNINST_DISPLAY_NAME_DOCS=Documentação Suplementar do AFS 3.6
-UNINST_KEY_SERVER=AFS Server
-VIEW_README_PROMPT_MSG=Exibir o arquivo readme
-INSTALL_LIGHT_CLIENT_MSG=Cliente AFS Básico
-PRODUCT_VERSION_TITLE=3.6
-UNINST_DISPLAY_NAME_CC=Centro de Controle do AFS 3.6
-ERROR_FILEGROUP=Grupo de Arquivos:
-ERROR_MOVEDATA=Um erro ocorreu durante o processo de movimentação de dados: %d
-CONFIGURING_AFS_SERVER_SERVICE=Configurando o serviço do AFS Server
-CLIENT_DESC=AFS Client
-SET_NETWORK_PROVIDER_ERROR=Incapaz de configurar o AFS Client como Provedor de Rede.
-PRODUCT_VERSION_MAJOR=3
-UNINST_DISPLAY_NAME_SERVER=AFS Server 3.6
-SETUPUTILS_NOT_FOUND=O arquivo InstallUtils.dll não pôde ser carregado. A configuração não pode continuar.
-LIGHT_CLIENT_ALREADY_INSTALLED_MSG=O AFS Básico já está instalado neste computador.
-SETUP_TYPE_MSG=Selecione os produtos do AFS® para Windows que deseja instalar:
-PRODUCT_KEY_SERVER=bosctlsvc.exe
-INSTALL_SERVER_MSG=AFS Server
-REINSTALL_LIGHT_CLIENT_MSG=Reinstalar o Cliente AFS Básico
-PRODUCT_NAME_DOCS=Documentação Suplementar do AFS
-NEW_STRING1=
-PRODUCT_KEY_DOCS=dummy.exe
-TITLE_CAPTIONBAR=Configuração do AFS® para Windows
-CONFIG_FILE_MAN_EXT_ERROR=Falha na configuração da Extensão do Gerenciador de Arquivos do AFS Client.
-CONFIGURING_AFS_CREDS_ERROR=Falha na configuração da ferramenta de barra de ferramentas do AFS Client.
-UPGRADE_SERVER_MSG=Atualizar AFS Server
-PRODUCT_VERSION_RELEASE_TYPE=GA
-AFS_CLIENT_SERVICE_INSTALL_ERROR=Um erro ocorreu durante a configuração do serviço do AFS Client: %d
-CLIENT_TITLE=AFS Client
-PRODUCT_KEY_CC=TaAfsServerManager.exe
-AFS_SERVER_SERVICE_INSTALL_ERROR=Um erro ocorreu durante a configuração do serviço do AFS Server: %d
-LIGHT_CLIENT_DESC=AFS Básico
-CLIENT_FILE_MAN_EXT_ENTRY_NAME=TransarcAFSFileManExt
-INSTALL_CC_MSG=Centro de Controle do AFS
-REINSTALL_CC_MSG=Reinstalar o Centro de Controle do AFS
-PRODUCT_NAME_CLIENT=AFS Client
-CONFIGURING_AFS_CREDS=Configurando o AFS Client
-DOWNGRADE_DOCS_MSG=Regredir a Documentação Suplementar do AFS
-INSTALL_DOCS_MSG=Documentação Suplementar do AFS
-PRODUCT_KEY_LIGHT_CLIENT=fs.exe
-FOLDER_NAME=IBM AFS
-ERROR_FILE=Arquivo:
-ERROR_VGARESOLUTION=Este programa exige resolução VGA ou superior.
-REINSTALL_SERVER_MSG=Reinstalar o AFS Server
-DOWNGRADE_CLIENT_MSG=Regredir o AFS Client
-PRODUCT_VERSION_BETA_LEVEL=0
-UNINST_KEY_CC=Centro de Controle do AFS
-UNINST_KEY_CLIENT=AFS Client
-UPGRADE_DOCS_MSG=Atualizar a Documentação Suplementar do AFS
-DOWNGRADE_PREP_MSG=Preparando-se para regredir %s. Aguarde... isto pode ser um processo demorado.
-PRODUCT_VERSION_PATCH_LEVEL=0
-NON_UPGRADABLE_SOFTWARE_INSTALLED_ERROR_MSG=Versões não atualizáveis deste produto estão instaladas em seu computador. Estas \nversões devem ser removidas antes que as versões atuais possam ser instaladas.
-CANT_INSTALL_BOTH_CLIENTS_MSG=Selecione somente um dos AFS Clients para instalar. Não é possível instalar ambos.
-UNINST_KEY_LIGHT_CLIENT=AFS Básico
-UPGRADE_LIGHT_CLIENT_MSG=Atualizar Cliente AFS Básico
-UNINST_KEY_DOCS=Documentação Suplementar do AFS
-UNINST_DISPLAY_NAME_CLIENT=AFS Client 3.6
-REINSTALL_DOCS_MSG=Reinstalar a Documentação Suplementar do AFS
-UPGRADE_PREP_MSG=Preparando-se para atualizar %s. Aguarde... isto pode ser um processo demorado.
-MUST_BE_AN_ADMIN_MSG=Você deve ser membro do grupo local Administradores neste sistema Windows para poder instalar este produto.
-LIGHT_CLIENT_TITLE=AFS Básico
-PRODUCT_NAME=AFS® para Windows
-PRODUCT_KEY_CLIENT=fs.exe
-ERROR_UNINSTSETUP=Falha na inicialização da configuração do unInstaller. Pode não ser possível desinstalar este produto.
-ADD_PATH_ERROR=Falha na inclusão de diretório do programa no caminho do sistema.
-SERVER_NEEDS_CLIENT_MSG=Para instalar o AFS Server, é preciso selecionar também a instalação do AFS Client.
-INSTALL_CLIENT_MSG=AFS Client
-WSPP_FOLDER_NAME=IBM WebSphere\Performance Pack\AFS
-REINSTALL_PREP_MSG=Preparando-se para reinstalar %s. Aguarde... isto pode ser um processo demorado.
-APPS_NOT_SAME_VERSION=Os componentes selecionados para instalação resultarão em uma mistura de diferentes versões do AFS para Windows. O AFS não funcionará corretamente se instalado desta forma. Refaça suas seleções de modo que todos os componentes do AFS sejam da mesma versão após a instalação.\n
-STATUS_INSTALLING_CLIENT=Instalando o AFS Client...
-STATUS_INSTALLING_SERVER=Instalando o AFS Server...
-STATUS_INSTALLING_CCENTER=Instalando o Centro de Controle do AFS...
-STATUS_INSTALLING_LIGHT=Instalando o AFS Básico...
-STATUS_INSTALLING_HEADERS=Instalando os arquivos de extensão do AFS Cliente...
-STATUS_INSTALLING_DOCS=Instalando a Documentação Suplementar do AFS...
-STATUS_INSTALLING_LANGUAGE=Instalando conteúdo específico de idioma...
-DOCUMENTATION_ITEM_NAME=Documentação
-CFG_WIZARD_ITEM_NAME=Assistente de Configuração
-CREDS_TOOL_ITEM_NAME=Autenticação
-CLIENT_HELP_ITEM_NAME=Ajuda do AFS Client
-LIGHT_CLIENT_HELP_ITEM_NAME=Ajuda do AFS Básico
-SERVER_MANAGER_ITEM_NAME=Gerenciador de Servidor
-ACCT_MANAGER_ITEM_NAME=Gerenciador de Contas
-SERVER_GROUP_NAME=Server
-CLIENT_GROUP_NAME=Client
-CCENTER_GROUP_NAME=Control Center
-LIGHT_GROUP_NAME=Light
-
-[General]
-Language=0009
-Type=STRINGTABLESPECIFIC
-Version=1.00.000
-
+++ /dev/null
-[Data]
-DEFAULT_INSTALL_DIR=IBM\AFS
-NOTHING_SELECTED_MSG=ÔÚ¼ÌÐøÖ®Ç°Äú±ØÐëÑ¡ÔñÒª°²×°µÄ×é¼þ¡£
-DOWNGRADE_LIGHT_CLIENT_MSG=½µ¼¶ AFS Light ¿Í»§»ú
-SETUP_FINISHED_MSG=°²×°³ÌÐòÒÑÍê³ÉÔÚÄúµÄ¼ÆËã»úÉϰ²×° AFS(R) Windows °æ¡£
-TITLE_MAIN=AFS(R) Windows 3.6
-SEVERE_DIALOG_TITLE=AFS(R) Windows °æ
-UPGRADE_CLIENT_MSG=Éý¼¶ AFS ¿Í»§»ú
-PRODUCT_VERSION_MINOR=6
-CONFIGURING_AFS_CLIENT_SERVICE=ÅäÖÃ AFS ¿Í»§»ú·þÎñ
-PRODUCT_NAME_CC=AFS ¿ØÖÆÖÐÐÄ
-PRODUCT_NAME_SERVER=AFS ·þÎñÆ÷
-UPGRADE_CC_MSG=Éý¼¶ AFS ¿ØÖÆÖÐÐÄ
-DOWNGRADE_SERVER_MSG=½µ¼¶ AFS ·þÎñÆ÷
-UNINST_DISPLAY_NAME_LIGHT_CLIENT=AFS Light 3.6
-PRODUCT_NAME_LIGHT_CLIENT=AFS Light
-ERROR_COMPONENT=×é¼þ£º
-COMPANY_NAME=Transarc ¹«Ë¾
-REINSTALL_CLIENT_MSG=ÖØÐ°²×° AFS ¿Í»§»ú
-DOWNGRADE_CC_MSG=½µ¼¶ AFS ¿ØÖÆÖÐÐÄ
-UNINST_DISPLAY_NAME_DOCS=AFS ²¹³äÎĵµ£¬°æ±¾ 3.6
-UNINST_KEY_SERVER=AFS ·þÎñÆ÷
-VIEW_README_PROMPT_MSG=²é¿´×ÔÊöÎļþ
-INSTALL_LIGHT_CLIENT_MSG=AFS Light ¿Í»§»ú
-PRODUCT_VERSION_TITLE=3.6
-UNINST_DISPLAY_NAME_CC=AFS ¿ØÖÆÖÐÐÄ£¬°æ±¾ 3.6
-ERROR_FILEGROUP=Îļþ×飺
-ERROR_MOVEDATA=ÒÆ¶¯Êý¾Ý¹ý³ÌÖгö´í£º%d
-CONFIGURING_AFS_SERVER_SERVICE=ÕýÔÚÅäÖà AFS ·þÎñÆ÷·þÎñ
-CLIENT_DESC=AFS ¿Í»§»ú
-SET_NETWORK_PROVIDER_ERROR=ÎÞ·¨½« AFS ¿Í»§»úÅäÖóÉÍøÂçÌṩÕß¡£
-PRODUCT_VERSION_MAJOR=3
-UNINST_DISPLAY_NAME_SERVER=AFS ·þÎñÆ÷£¬°æ±¾ 3.6
-SETUPUTILS_NOT_FOUND=ÎÞ·¨×°ÈëÎļþ InstallUtils.dll¡£ÎÞ·¨¼ÌÐø°²×°¡£
-LIGHT_CLIENT_ALREADY_INSTALLED_MSG=AFS Light ÒѰ²×°Ôڴ˼ÆËã»úÉÏ¡£
-SETUP_TYPE_MSG=Ñ¡ÔñÄúÏ£Íû°²×°µÄ AFS(R) Windows °æ²úÆ·£º
-PRODUCT_KEY_SERVER=bosctlsvc.exe
-INSTALL_SERVER_MSG=AFS ·þÎñÆ÷
-REINSTALL_LIGHT_CLIENT_MSG=ÖØÐ°²×° AFS Light ¿Í»§»ú
-PRODUCT_NAME_DOCS=AFS ²¹³äÎĵµ
-NEW_STRING1=
-PRODUCT_KEY_DOCS=dummy.exe
-TITLE_CAPTIONBAR=AFS(R) Windows °æ°²×°³ÌÐò
-CONFIG_FILE_MAN_EXT_ERROR=ÅäÖà AFS ¿Í»§»úÎļþ¹ÜÀíÆ÷À©Õ¹Ê§°Ü¡£
-CONFIGURING_AFS_CREDS_ERROR=ÅäÖà AFS ¿Í»§»ú¹¤¾ßÀ¸¹¤¾ßʧ°Ü¡£
-UPGRADE_SERVER_MSG=Éý¼¶ AFS ·þÎñÆ÷
-PRODUCT_VERSION_RELEASE_TYPE=GA
-AFS_CLIENT_SERVICE_INSTALL_ERROR=ÅäÖà AFS ¿Í»§»ú·þÎñÆÚ¼ä³ö´í£º%d
-CLIENT_TITLE=AFS ¿Í»§»ú
-PRODUCT_KEY_CC=TaAfsServerManager.exe
-AFS_SERVER_SERVICE_INSTALL_ERROR=ÅäÖà AFS ·þÎñÆ÷·þÎñÆÚ¼ä³ö´í£º%d
-LIGHT_CLIENT_DESC=AFS Light
-CLIENT_FILE_MAN_EXT_ENTRY_NAME=TransarcAFSFileManExt
-INSTALL_CC_MSG=AFS ¿ØÖÆÖÐÐÄ
-REINSTALL_CC_MSG=ÖØÐ°²×° AFS ¿ØÖÆÖÐÐÄ
-PRODUCT_NAME_CLIENT=AFS ¿Í»§»ú
-CONFIGURING_AFS_CREDS=ÕýÔÚÅäÖÃ AFS ¿Í»§»ú
-DOWNGRADE_DOCS_MSG=½µ¼¶ AFS ²¹³äÎĵµ
-INSTALL_DOCS_MSG=AFS ²¹³äÎĵµ
-PRODUCT_KEY_LIGHT_CLIENT=fs.exe
-FOLDER_NAME=IBM AFS
-ERROR_FILE=Îļþ£º
-ERROR_VGARESOLUTION=±¾³ÌÐòÒªÇó VGA »ò¸ü¸ß·Ö±æÂÊ¡£
-REINSTALL_SERVER_MSG=ÖØÐ°²×° AFS ·þÎñÆ÷
-DOWNGRADE_CLIENT_MSG=½µ¼¶ AFS ¿Í»§»ú
-PRODUCT_VERSION_BETA_LEVEL=0
-UNINST_KEY_CC=AFS ¿ØÖÆÖÐÐÄ
-UNINST_KEY_CLIENT=AFS ¿Í»§»ú
-UPGRADE_DOCS_MSG=Éý¼¶ AFS ²¹³äÎĵµ
-DOWNGRADE_PREP_MSG=×¼±¸½µ¼¶ %s¡£ÇëÉÔºò...¿ÉÄÜÐèҪһЩʱ¼ä¡£
-PRODUCT_VERSION_PATCH_LEVEL=0
-NON_UPGRADABLE_SOFTWARE_INSTALLED_ERROR_MSG=ÄúµÄ¼ÆËã»úÉϰ²×°Á˱¾²úÆ·µÄÎÞ·¨Éý¼¶µÄ°æ±¾¡£ÔÚ°²×°´Ë°æ±¾Ö®Ç°±ØÐëжװÕâЩÎÞ·¨Éý¼¶µÄ°æ±¾¡£\n
-CANT_INSTALL_BOTH_CLIENTS_MSG=ÇëÑ¡Ôñ AFS ¿Í»§»úÖ®Ò»½øÐа²×°¡£ÄúÎÞ·¨Í¬Ê±°²×°Á½¸ö¿Í»§»ú¡£
-UNINST_KEY_LIGHT_CLIENT=AFS Light
-UPGRADE_LIGHT_CLIENT_MSG=Éý¼¶ AFS Light ¿Í»§»ú
-UNINST_KEY_DOCS=AFS ²¹³äÎĵµ
-UNINST_DISPLAY_NAME_CLIENT=AFS ¿Í»§»ú 3.6
-REINSTALL_DOCS_MSG=ÖØÐ°²×° AFS ²¹³äÎĵµ
-UPGRADE_PREP_MSG=×¼±¸Éý¼¶ %s¡£ÇëÉÔºò...¿ÉÄÜÐèҪһЩʱ¼ä¡£
-MUST_BE_AN_ADMIN_MSG=Òª°²×°±¾²úÆ·£¬Äú±ØÐëÊÇ´Ë Windows ϵͳµÄ±¾µØ¹ÜÀíÔ±Ö®Ò»¡£
-LIGHT_CLIENT_TITLE=AFS Light
-PRODUCT_NAME=AFS(R) Windows °æ
-PRODUCT_KEY_CLIENT=fs.exe
-ERROR_UNINSTSETUP=жװ³ÌÐò³õʼ»¯Ê§°Ü¡£Äú¿ÉÄÜÎÞ·¨Ð¶×°±¾²úÆ·¡£
-ADD_PATH_ERROR=Ìí¼Ó³ÌÐòĿ¼µ½ÏµÍ³Â·¾¶Ê§°Ü¡£
-SERVER_NEEDS_CLIENT_MSG=Òª°²×° AFS ·þÎñÆ÷£¬Äú»¹±ØÐëÑ¡Ôñ°²×° AFS ¿Í»§»ú¡£
-INSTALL_CLIENT_MSG=AFS ¿Í»§»ú
-WSPP_FOLDER_NAME=IBM WebSphere\Performance Pack\AFS
-REINSTALL_PREP_MSG=×¼±¸ÖØÐ°²×° %s¡£ÇëÉÔºò...¿ÉÄÜÐèҪһЩʱ¼ä¡£
-APPS_NOT_SAME_VERSION=ÄúÑ¡ÔñµÄÒª°²×°µÄ×é¼þ½«Ê¹ AFS Windows °æµÄ²»Í¬°æ±¾»ìÏý¡£Èç¹ûÕâÑù°²×°£¬AFS ½«ÎÞ·¨ÕýÈ·ÔË×÷¡£ÇëÖØÐÂÑ¡Ôñ£¬ÕâÑù°²×°ºóËùÓÐµÄ AFS ×é¼þµÄ°æ±¾½«±£³ÖÒ»Ö¡£\n
-STATUS_INSTALLING_CLIENT=°²×° AFS ¿Í»§»ú...
-STATUS_INSTALLING_SERVER=°²×° AFS ·þÎñÆ÷...
-STATUS_INSTALLING_CCENTER=°²×° AFS ¿ØÖÆÖÐÐÄ...
-STATUS_INSTALLING_LIGHT=°²×° AFS Light...
-STATUS_INSTALLING_HEADERS=°²×° AFS ¿Í»§»úÀ©Õ¹Îļþ...
-STATUS_INSTALLING_DOCS=°²×° AFS ²¹³äÎĵµ...
-STATUS_INSTALLING_LANGUAGE=°²×°Ìض¨ÓïÑÔÄÚÈÝ...
-DOCUMENTATION_ITEM_NAME=Îĵµ
-CFG_WIZARD_ITEM_NAME=ÅäÖÃÏòµ¼
-CREDS_TOOL_ITEM_NAME=ÈÏÖ¤
-CLIENT_HELP_ITEM_NAME=AFS ¿Í»§»ú°ïÖú
-LIGHT_CLIENT_HELP_ITEM_NAME=AFS Light °ïÖú
-SERVER_MANAGER_ITEM_NAME=·þÎñÆ÷¹ÜÀíÆ÷
-ACCT_MANAGER_ITEM_NAME=ÕÊ»§¹ÜÀíÆ÷
-SERVER_GROUP_NAME=Server
-CLIENT_GROUP_NAME=Client
-CCENTER_GROUP_NAME=Control Center
-LIGHT_GROUP_NAME=Light
-
-[General]
-Language=0009
-Type=STRINGTABLESPECIFIC
-Version=1.00.000
-
+++ /dev/null
-[Data]
-DEFAULT_INSTALL_DIR=IBM\AFS
-NOTHING_SELECTED_MSG=±z¥²¶·¦bÄ~Äò§@·~¤§«e¡A¿ï¾Ü±zn¦w¸Ëªº¶µ¥Ø¡C
-DOWNGRADE_LIGHT_CLIENT_MSG=±N AFS Light Client °¯Å
-SETUP_FINISHED_MSG=¦w¸Ëµ{¦¡¤w¦b±zªº¹q¸£¤W¶¶§Q¦w¸Ë AFS for Windows¡C
-TITLE_MAIN=AFS for Windows 3.6
-SEVERE_DIALOG_TITLE=AFS for Windows
-UPGRADE_CLIENT_MSG=±N AFS ¥Î¤áºÝ¤É¯Å
-PRODUCT_VERSION_MINOR=6
-CONFIGURING_AFS_CLIENT_SERVICE=¬[ºc AFS ¥Î¤áºÝªA°È
-PRODUCT_NAME_CC=AFS ±±¨î¤¤¤ß
-PRODUCT_NAME_SERVER=AFS ¦øªA¾¹
-UPGRADE_CC_MSG=±N AFS ±±¨î¤¤¤ß¤É¯Å
-DOWNGRADE_SERVER_MSG=±N AFS ¦øªA¾¹°¯Å
-UNINST_DISPLAY_NAME_LIGHT_CLIENT=AFS Light 3.6
-PRODUCT_NAME_LIGHT_CLIENT=AFS Light
-ERROR_COMPONENT=¤¸¥ó¡G
-COMPANY_NAME=TransarcCorporation
-REINSTALL_CLIENT_MSG=«·s¦w¸Ë AFS ¥Î¤áºÝ
-DOWNGRADE_CC_MSG=±N AFS ±±¨î¤¤¤ß°¯Å
-UNINST_DISPLAY_NAME_DOCS=AFS ¸É¥R»¡©ú¤å¥ó 3.6
-UNINST_KEY_SERVER=AFS ¦øªA¾¹
-VIEW_README_PROMPT_MSG=À˵ø README ÀÉ®×
-INSTALL_LIGHT_CLIENT_MSG=AFS Light Client
-PRODUCT_VERSION_TITLE=3.6
-UNINST_DISPLAY_NAME_CC=AFS ±±¨î¤¤¤ß 3.6
-ERROR_FILEGROUP=Àɮ׸s²Õ¡G
-ERROR_MOVEDATA=¦b²¾°Ê¸ê®Æ³B²z¹Lµ{®Éµo¥Í¿ù»~¡G %d
-CONFIGURING_AFS_SERVER_SERVICE=¬[ºc¡uAFS ¦øªA¾¹¡vªA°È
-CLIENT_DESC=AFS Client
-SET_NETWORK_PROVIDER_ERROR=µLªk±N¡uAFS ¥Î¤áºÝ¡v¬[ºc¬°¡uºô¸ô´£¨ÑªÌ¡v¡C
-PRODUCT_VERSION_MAJOR=3
-UNINST_DISPLAY_NAME_SERVER=AFS ¦øªA¾¹ 3.6
-SETUPUTILS_NOT_FOUND=µLªk¸ü¤JÀÉ®× InstallUtils.dll¡CµLªkÄ~Äò°õ¦æ¡u¦w¸Ëµ{¦¡¡v¡C
-LIGHT_CLIENT_ALREADY_INSTALLED_MSG= ¤w¦b¥»¹q¸£¤W¦w¸Ë AFS Light¡C
-SETUP_TYPE_MSG=½Ð¿ï¾Ü±zn¦w¸Ëªº AFS for Windows ²£«~¡G
-PRODUCT_KEY_SERVER=bosctlsvc.exe
-INSTALL_SERVER_MSG=AFS ¦øªA¾¹
-REINSTALL_LIGHT_CLIENT_MSG=«·s¦w¸Ë AFS Light Client
-PRODUCT_NAME_DOCS=AFS ¸É¥R»¡©ú¤å¥ó
-NEW_STRING1=
-PRODUCT_KEY_DOCS=dummy.exe
-TITLE_CAPTIONBAR=AFS for Windows ¦w¸Ëµ{¦¡
-CONFIG_FILE_MAN_EXT_ERROR=µLªk¬[ºc¡uAFS ¥Î¤áºÝÀɮ׺޲zµ{¦¡©µ¦ù¡v¡C
-CONFIGURING_AFS_CREDS_ERROR=µLªk¬[ºc¡uAFS ¥Î¤áºÝ¡v¤u¨ã¦C¤Wªº¤u¨ã¡C
-UPGRADE_SERVER_MSG=±N AFS ¦øªA¾¹¤É¯Å
-PRODUCT_VERSION_RELEASE_TYPE=GA
-AFS_CLIENT_SERVICE_INSTALL_ERROR=¬[ºc¡uAFS ¥Î¤áºÝ¡vªA°È®Éµo¥Í¿ù»~¡G %d
-CLIENT_TITLE=AFS ¥Î¤áºÝ
-PRODUCT_KEY_CC=TaAfsServerManager.exe
-AFS_SERVER_SERVICE_INSTALL_ERROR=¬[ºc¡uAFS ¦øªA¾¹¡vªA°È®Éµo¥Í¿ù»~¡G %d
-LIGHT_CLIENT_DESC=AFS Light
-CLIENT_FILE_MAN_EXT_ENTRY_NAME=TransarcAFSFileManExt
-INSTALL_CC_MSG=AFS ±±¨î¤¤¤ß
-REINSTALL_CC_MSG=«·s¦w¸Ë AFS ±±¨î¤¤¤ß
-PRODUCT_NAME_CLIENT=AFS ¥Î¤áºÝ
-CONFIGURING_AFS_CREDS=¬[ºc AFS ¥Î¤áºÝ
-DOWNGRADE_DOCS_MSG=±N AFS ¸É¥R»¡©ú¤å¥ó°¯Å
-INSTALL_DOCS_MSG=AFS ¸É¥R»¡©ú¤å¥ó
-PRODUCT_KEY_LIGHT_CLIENT=fs.exe
-FOLDER_NAME=IBM AFS
-ERROR_FILE=ÀɮסG
-ERROR_VGARESOLUTION=¦¹µ{¦¡»Ýn VGA ©Î§ó°ªªº¸ÑªR«×¡C
-REINSTALL_SERVER_MSG=«·s¦w¸Ë AFS ¦øªA¾¹
-DOWNGRADE_CLIENT_MSG=±N AFS ¥Î¤áºÝ°¯Å
-PRODUCT_VERSION_BETA_LEVEL=0
-UNINST_KEY_CC=AFS ±±¨î¤¤¤ß
-UNINST_KEY_CLIENT=AFS ¥Î¤áºÝ
-UPGRADE_DOCS_MSG=±N AFS ¸É¥R»¡©ú¤å¥ó¤É¯Å
-DOWNGRADE_PREP_MSG=·Ç³Æ±N %s °¯Å¡C½ÐµyÔ ... ³o¶µ³B²z¥i¯ànªáÂI®É¶¡¡C
-PRODUCT_VERSION_PATCH_LEVEL=0
-NON_UPGRADABLE_SOFTWARE_INSTALLED_ERROR_MSG=±z¹q¸£¤W©Ò¦w¸Ëªº²£«~¬OµLªk¤É¯Åªºª©¥»¡C\n½Ð¥ý¸Ñ°£¦w¸Ë³o¨Çª©¥»«á¡A¦A¦w¸Ë²{¦æª©¥»¡C
-CANT_INSTALL_BOTH_CLIENTS_MSG=±z¥u¯à¿ï¨ú¦w¸Ë¤@Ó¡uAFS ¥Î¤áºÝ¡v¡A¦Ó¤£¯à¦P®É¦w¸Ë¨âÓ¡C
-UNINST_KEY_LIGHT_CLIENT=AFS Light
-UPGRADE_LIGHT_CLIENT_MSG=±N AFS Light Client ¤É¯Å
-UNINST_KEY_DOCS=AFS ¸É¥R»¡©ú¤å¥ó
-UNINST_DISPLAY_NAME_CLIENT=AFS ¥Î¤áºÝ 3.6
-REINSTALL_DOCS_MSG=«·s¦w¸Ë AFS ¸É¥R»¡©ú¤å¥ó
-UPGRADE_PREP_MSG=·Ç³Æ¬°±N %s ¤É¯Å¡C½ÐµyÔ ... ³o¶µ³B²z¥i¯ànªáÂI®É¶¡¡C
-MUST_BE_AN_ADMIN_MSG=Yn¦w¸Ë¦¹²£«~¡A±z¥²¶·¬O¥» Windows ¨t²Î¤Wªº¡uºÞ²zªÌ¡v¸s²Õ¤@û¡C
-LIGHT_CLIENT_TITLE=AFS Light
-PRODUCT_NAME=AFS for Windows
-PRODUCT_KEY_CLIENT=fs.exe
-ERROR_UNINSTSETUP=µLªk°_©l³]©w¸Ñ°£¦w¸Ëµ{¦¡ªº³]©w¡C±z¥i¯àµLªk¸Ñ°£¦w¸Ë¦¹²£«~¡C
-ADD_PATH_ERROR=µLªk±Nµ{¦¡¥Ø¿ý·s¼W¨ì¨t²Î¸ô®|¤W¡C
-SERVER_NEEDS_CLIENT_MSG=¦pn¦w¸Ë¡uAFS ¦øªA¾¹¡v¡A±z¥²¶·¿ï¾Ü¦w¸Ë¡uAFS ¥Î¤áºÝ¡v¡C
-INSTALL_CLIENT_MSG=AFS ¥Î¤áºÝ
-WSPP_FOLDER_NAME=IBM WebSphere\Performance Pack\AFS
-REINSTALL_PREP_MSG=·Ç³Æ«·s¦w¸Ë %s¡C½ÐµyÔ ... ³o¶µ³B²z¥i¯ànªáÂI®É¶¡¡C
-APPS_NOT_SAME_VERSION=±z©Ò¿ï¾Üªº¦w¸Ë¤¸¥ó·|¾ÉP AFS for Windows ªº¦hª©²V¦X¡A¦p¦¹¤@¨Ó¡AAFS ±NµLªk¥¿±`¹B§@¡C½Ð«·s¿ï¨ú¡A¨Ï©Ò¦³ªº AFS ¤¸¥ó¦b¦w¸Ë«áª©¥»³£¬Û¦P¡C\n
-STATUS_INSTALLING_CLIENT=¦w¸Ë AFS ¥Î¤áºÝ...
-STATUS_INSTALLING_SERVER=¦w¸Ë AFS ¦øªA¾¹...
-STATUS_INSTALLING_CCENTER=¦w¸Ë AFS ±±¨î¤¤¤ß ...
-STATUS_INSTALLING_LIGHT=¦w¸Ë AFS Light...
-STATUS_INSTALLING_HEADERS=¦w¸Ë AFS ¥Î¤áºÝ©µ¦ùÀÉ...
-STATUS_INSTALLING_DOCS=¦w¸Ë AFS ¸É¥R»¡©ú¤å¥ó...
-STATUS_INSTALLING_LANGUAGE=¦w¸Ë¯S©w»y¨¥ªº¤º®e...
-DOCUMENTATION_ITEM_NAME=»¡©ú¤å¥ó
-CFG_WIZARD_ITEM_NAME=¬[ºcºëÆF
-CREDS_TOOL_ITEM_NAME=Ų§O
-CLIENT_HELP_ITEM_NAME=AFS ¥Î¤áºÝ»¡©ú
-LIGHT_CLIENT_HELP_ITEM_NAME=AFS Light »¡©ú
-SERVER_MANAGER_ITEM_NAME=¦øªA¾¹ºÞ²zµ{¦¡
-ACCT_MANAGER_ITEM_NAME=±b¤áºÞ²zµ{¦¡
-SERVER_GROUP_NAME=Server
-CLIENT_GROUP_NAME=Client
-CCENTER_GROUP_NAME=Control Center
-LIGHT_GROUP_NAME=Light
-
-[General]
-Language=0404
-Type=STRINGTABLESPECIFIC
-Version=1.00.000
-
-\1a
+++ /dev/null
-
-//
-// Copyright 2000, International Business Machines Corporation and others.
-// All Rights Reserved.
-//
-// This software has been released under the terms of the IBM Public
-// License. For details, see the LICENSE file in the top-level source
-// directory or online at http://www.openafs.org/dl/license10.html
-//
-
-
-// Include header files
-
- #include "sdlang.h"
- #include "sddialog.h"
-
-
-////////////////////// string defines ////////////////////////////
-
- // If the user places a file with this name in the same directory as
- // the setup files, only the client component will be available for
- // install. The contents of this file are not used.
- #define ALLOW_ONLY_CLIENT_FLAG_FILENAME "setup.co"
-
- // The release types
- #define RELEASE_TYPE_GA "GA"
- #define RELEASE_TYPE_BETA "Beta"
-
- // Client logon dll names
- #define FULL_CLIENT_LOGON_DLL "Client\\PROGRAM\\afslogon.dll"
- #define LIGHT_CLIENT_LOGON_DLL "Client\\PROGRAM\\afslog95.dll"
-
- // Uninstall log file names for each component
- #define SERVER_UNINST_LOGFILE_NAME "Server_Uninst.isu"
- #define CLIENT_UNINST_LOGFILE_NAME "Client_Uninst.isu"
- #define LIGHT_CLIENT_UNINST_LOGFILE_NAME "Light_Client_Uninst.isu"
- #define CC_UNINST_LOGFILE_NAME "CC_Uninst.isu"
- #define DOCS_UNINST_LOGFILE_NAME "Docs_Uninst.isu"
-
- // Uninstall dll names for each component
- #define SERVER_UNINST_DLL_NAME "ServerUninst.dll"
- #define CLIENT_UNINST_DLL_NAME "ClientUninst.dll"
- #define CC_UNINST_DLL_NAME "CCUninst.dll"
- #define LIGHT_CLIENT_UNINST_DLL_NAME "LightClientUninst.dll"
- #define DOCS_UNINST_DLL_NAME "DocsUninst.dll"
-
- // These are the components the user sees
- #define CLIENT_COMP_NAME "Client"
- #define LIGHT_CLIENT_COMP_NAME "Light_Client"
- #define SERVER_COMP_NAME "Server"
- #define CC_COMP_NAME "Control_Center"
-
- // Light Client platform components
- #define LIGHT95_CLIENT_COMP_NAME "Light_Client\\Win95"
- #define LIGHT98_CLIENT_COMP_NAME "Light_Client\\Win98"
-
- // This is added to autoexec.bat on Win95 systems
- #define LIGHT95_CLIENT_PROTSEQ "AFS_RPC_PROTSEQ=ncacn_ip_tcp"
-
- // Language components
- #define LANG_COMP_NAME "Languages"
- #define LANG_ENGLISH_COMP_NAME "Languages\\Lang_English"
- #define LANG_SIMP_CHINESE_COMP_NAME "Languages\\Lang_Simp_Chinese"
- #define LANG_TRAD_CHINESE_COMP_NAME "Languages\\Lang_Trad_Chinese"
- #define LANG_KOREAN_COMP_NAME "Languages\\Lang_Korean"
- #define LANG_JAPANESE_COMP_NAME "Languages\\Lang_Japanese"
- #define LANG_GERMAN_COMP_NAME "Languages\\Lang_German"
- #define LANG_SPANISH_COMP_NAME "Languages\\Lang_Spanish"
- #define LANG_PORTUGUESE_COMP_NAME "Languages\\Lang_Portuguese"
-
- // Documentation components
- #define DOCS_COMP_NAME "Documentation"
- #define DOCS_ENGLISH_COMP_NAME "Documentation\\English"
- #define DOCS_JAPANESE_COMP_NAME "Documentation\\Japanese"
- #define DOCS_KOREAN_COMP_NAME "Documentation\\Korean"
- #define DOCS_SIMP_CHINESE_COMP_NAME "Documentation\\Simp_Chinese"
- #define DOCS_TRAD_CHINESE_COMP_NAME "Documentation\\Trad_Chinese"
- #define DOCS_GERMAN_COMP_NAME "Documentation\\German"
- #define DOCS_SPANISH_COMP_NAME "Documentation\\Spanish"
- #define DOCS_PORTUGUESE_COMP_NAME "Documentation\\Portuguese"
-
- // Readme files components
- #define README_COMP_NAME "Readme"
- #define README_ENGLISH_COMP_NAME "Readme\\English"
- #define README_JAPANESE_COMP_NAME "Readme\\Japanese"
- #define README_KOREAN_COMP_NAME "Readme\\Korean"
- #define README_SIMP_CHINESE_COMP_NAME "Readme\\Simp_Chinese"
- #define README_TRAD_CHINESE_COMP_NAME "Readme\\Trad_Chinese"
- #define README_GERMAN_COMP_NAME "Readme\\German"
- #define README_SPANISH_COMP_NAME "Readme\\Spanish"
- #define README_PORTUGUESE_COMP_NAME "Readme\\Portuguese"
-
- // License filenames
- #define LICENSE_ENGLISH_FILENAME "License\\en_US.rtf"
- #define LICENSE_JAPANESE_FILENAME "License\\ja_JP.rtf"
- #define LICENSE_KOREAN_FILENAME "License\\ko_KR.rtf"
- #define LICENSE_SIMP_CHINESE_FILENAME "License\\zh_CN.rtf"
- #define LICENSE_TRAD_CHINESE_FILENAME "License\\zh_TW.rtf"
- #define LICENSE_GERMAN_FILENAME "License\\de_DE.rtf"
- #define LICENSE_SPANISH_FILENAME "License\\es_ES.rtf"
- #define LICENSE_PORTUGUESE_FILENAME "License\\pt_BR.rtf"
-
- #define SETUP_UTILS_DLL_PATH "InstallUtils.dll"
-
- // Some registry keys
- #define MSUNINSTALL_KEY "\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall"
- #define COMPANY_REG_KEY "Software\\TransarcCorporation\\"
- #define CONFIG_INFO_KEY "Software\\AfsPreservedConfigInfo"
-
- #define CLIENT_SERVICE_NAME "TransarcAFSDaemon"
-
- // Client help file names
- #define CLIENT_HELP_FILE_NAME "Common\\afs-nt.hlp"
- #define LIGHT_CLIENT_HELP_FILE_NAME "Common\\afs-light.hlp"
-
- #define MAX_STRING_LEN 512
-
- // Install actions
- #define ACTION_NONE 0
- #define ACTION_INSTALL 1
- #define ACTION_REINSTALL 2
- #define ACTION_UPGRADE 3
- #define ACTION_DOWNGRADE 4
-
- // Documenation start menu info
- #define DOCUMENTATION_CMD_PATH "Documentation\\Html\\index.htm"
- #define DOCUMENTATION_ARGS ""
-
- #define DOCUMENTATION_LICENSE_PATH "Documentation\\Html\\license.rtf"
-
- // Application start menu info
- #define CFG_WIZARD_CMD_PATH "Server\\usr\\afs\\bin\\afssvrcfg.exe"
- #define CFG_WIZARD_ARGS "/wizard"
- #define CREDS_TOOL_CMD_PATH "Client\\Program\\afscreds.exe"
- #define CREDS_TOOL_ARGS "/show"
- #define CLIENT_HELP_CMD_PATH "Common\\afs-nt.hlp"
- #define CLIENT_HELP_ARGS ""
- #define LIGHT_CLIENT_HELP_CMD_PATH "Common\\afs-light.hlp"
- #define LIGHT_CLIENT_HELP_ARGS ""
- #define SERVER_MANAGER_CMD_PATH "Control Center\\TaAfsServerManager.exe"
- #define SERVER_MANAGER_ARGS ""
- #define ACCT_MANAGER_CMD_PATH "Control Center\\TaAfsAccountManager.exe"
- #define ACCT_MANAGER_ARGS ""
-
- #define CELLSERVDB_FILENAME "afsdcell.ini"
-
- #define SERVER 1
- #define CLIENT 2
- #define LCLIENT 4
- #define CC 8
- #define DOCS 16
-
-
-
-//////////////////// installation declarations ///////////////////
-
-typedef VERINFO
-begin
- int nMajorVersion;
- int nMinorVersion;
- int nPatchLevel;
- int nBetaLevel;
- string szReleaseType[32];
- string szTitle[32];
-end;
-
-
-// NOTE: There is a problem with the IS registry set functionality in that if
-// you specify to write a value under an existing key, at uninstall time
-// not just the value will be removed, but the KEY AND ALL ITS SUBKEYS
-// will also be removed. So the registry sets can only be used to
-// create entries in the registry that are for values under keys that
-// we create.
-//
-// There are some values that we need to create that live under existing
-// NT keys, so when we create them we must turn off logging. The
-// szNoLogRegistrySets tell us which to create without logging.
-
-typedef APPINFO
-begin
- string szCompName[64];
- string szCompanyName[64];
- string szProductName[128];
- VERINFO Ver; // Version of this product
- VERINFO iVer; // Verison of this product that is already installed
- string szProductKey[128];
- BOOL bUseUninstDLL;
- string szUninstDllName[64];
- string szUninstLogfileName[64];
- string szUninstKey[128];
- string szAppPath[256]; // Below TARGETDIR
- string szBinPath[256]; // Path to binaries and uninstall dll
- BOOL bAddToPath; // TRUE if bin path should be added to path env var
- string szUninstDisplayName[128];
- string szRegistrySets[256]; // Comma separated list of registry sets to install
- string szNoLogRegistrySets[256]; // Comma separated list of registry sets to install without logging
- int nInstallAction;
- BOOL bInstallSucceeded;
-end;
-
-
-
-// ----- DLL function prototypes -----
-
-
-// ----- DLL prototypes -----
-
- // your DLL prototypes
- prototype int InstallUtils.InstallServerService(string);
- prototype int InstallUtils.InstallClientService(string);
- prototype int InstallUtils.AddToPath(string);
- prototype int InstallUtils.AddToNetworkProviderOrder(string);
- prototype int InstallUtils.CheckIfAdmin();
- prototype int InstallUtils.SetSilentMode();
- prototype int InstallUtils.WriteToInstallErrorLog(string);
- prototype int InstallUtils.RestoreConfigInfo(int);
- prototype int InstallUtils.Eradicate34Client();
- prototype int InstallUtils.Upgrade34ClientConfigInfo();
- prototype int InstallUtils.IsWin98();
- prototype int InstallUtils.ShowLicense(string,string);
-
-
-// ---- script function prototypes -----
-
- // generated by the Project Wizard
- prototype ShowDialogs();
- prototype MoveFileData();
- prototype HandleMoveDataError( NUMBER );
- prototype ProcessBeforeDataMove(APPINFO POINTER);
- prototype ProcessAfterDataMove();
- prototype SetupRegistry();
- prototype CleanUpInstall();
- prototype SetupInstall();
- prototype SetupScreen();
- prototype CheckRequirements();
- prototype DialogShowSdWelcome();
- prototype DialogShowSdAskDestPath();
- prototype DialogShowSdSetupType();
- prototype DialogShowSdSelectFolder();
- prototype DialogShowSdFinishReboot();
-
- // your script function prototypes
- prototype FixTargetPaths();
- prototype SetupAppInfo();
- prototype LocalizeComponents();
- prototype LocalizeComponentStatusText (STRING);
- prototype InstallApp(APPINFO POINTER);
- prototype DialogShowSdAskComponentDialog();
- prototype ShowIsSelected(string);
- prototype ShowSelectedComponents();
- prototype ConfigClientService();
- prototype ConfigServerService();
- prototype AddPath(string);
- prototype AddBinPaths();
- prototype ConfigUninstallDLL(APPINFO POINTER);
- prototype CreateServerDirs();
- prototype SetUserVars();
- prototype SetNetworkProviderOrder();
- prototype CreateRegistrySets(string);
- prototype ConfigAfsCreds();
- prototype GetLicenseFilename(BYREF string);
- prototype GetNlsComps(BYREF string, BYREF string, BYREF string, BYREF string);
- prototype DetectInstalledComponents();
- prototype IsAppInstalled(APPINFO POINTER);
- prototype ProcessCompsOnCmdLn(string);
- prototype ParseCommandLine();
- prototype GetVersionNumber(string);
- prototype GetInstallAction(string, BOOL, string, string, string, string, APPINFO POINTER);
- prototype GetInstallActions();
- prototype ClientSelectedOrInstalled();
- prototype RenameUninstDll(APPINFO POINTER);
- prototype RemoveInstalledBits(string);
- prototype PrepareForWSPPInstall();
- prototype CreateStartMenuEntries();
- prototype ShowError(string, int);
- prototype GetDateTimeString(BYREF string);
- prototype OnlyInstallingDocs();
- prototype CreateDirs();
- prototype AddShortCut(string, string, string, string);
- prototype CheckCopyCellServDB();
- prototype RestorePreviousConfigs();
- prototype RemoveCurrentVersion(APPINFO POINTER);
- prototype DoesConfigInfoExist(APPINFO POINTER);
- prototype UnselectComps();
- prototype AnyNonUpgradableSoftwareInstalled();
- prototype RemoveAllCurrentVersions();
- prototype AppVersionOk(BOOL, BOOL, APPINFO POINTER);
- prototype SetupVerInfo(APPINFO POINTER, string, string, string, string, string, string, BOOL);
- prototype NotUpgradable(APPINFO POINTER);
- prototype CompareVersions(APPINFO POINTER);
-
- // ----- global variables ------
-
- // generated by the Project Wizard
- BOOL bWin95, bWin98, bWinNT, bIsShellExplorer, bInstallAborted, bIs32BitSetup;
- STRING svDir;
- STRING svName, svCompany, svSerial;
- STRING svDefGroup;
- STRING szAppPath;
- STRING svSetupType;
- NUMBER nResult;
-
- // your global variables
- APPINFO appFullClient;
- APPINFO appLightClient;
- APPINFO appServer;
- APPINFO appControlCenter;
- APPINFO appDocs;
- APPINFO POINTER pApp;
-
- BOOL bFullClientSel, bServerSel, bCcSel, bLightClientSel, bDocsSel;
- string szCommonBinPath;
- string szCodePage;
- BOOL bClientInstalled, bServerInstalled, bCcInstalled, bLightClientInstalled, bDocsInstalled;
- string szLangComp, szReadmeComp, szDocsComp;
-
- // WSPP support vars
- BOOL bWSPPInstall;
- BOOL bPreinstallReplace;
-
-
-////////////////////////////////////////////////////////////////////////////////
-//
-// Function Name: Template
-//
-// Description: This dialog will show a dialog template which can be
-// used for creating any user-defined dialog with the
-// Windows 95 look and feel.
-// Comments:
-//
-////////////////////////////////////////////////////////////////////////////////
-
-number nvSection,nFileIsLocked;
-STRING szTemp,szCellName;
-
-#define IDC_HOMEPATH 301
-#define IDC_ROOTPATH 302
-#define IDC_HOMEDRIVELIST 1007
-#define IDC_ROOTDRIVELIST 1008
-#define IDC_ENABLEROOT 1010
-#define IDC_ENABLEHOME 1011
-#define IDC_INSTALL 1011
-#define IDC_WEB 1016
-#define IDC_CHECK_INSTALL 1018
-#define IDC_CHECK_WEB 1019
-#define IDC_CHECK_BROWSEFILE 1020
-#define IDC_CHECK_PREVIOUSFILE 1021
-#define IDC_PREVIOUSFILE 1024
-#define IDC_BROWSE 1025
-#define IDC_BROWSEFILE 1026
-#define DLG_TEMPLATE 13029
-#define DLG_DRIVEPATH 13030
-#define DLG_CELLSERVDB 13031
-#define IDC_PATH 13032
-
-prototype Logit(STRING);
-function Logit(szMsg)
-HWND handle;
-begin
- return;
- OpenFileMode(FILE_MODE_APPEND);
- if (OpenFile (handle, "y:\\dest", "silent.log") < 0) then
- CreateFile(handle,"y:\\dest", "silent.log");
- endif;
- WriteLine(handle,szMsg);
- CloseFile(handle);
-end;
-
-prototype Logitn(STRING,NUMBER);
-function Logitn(szMsg,i)
-HWND handle;
-STRING sz;
-begin
- Sprintf(sz,szMsg,i);
- Logit(sz);
-end;
-prototype INT GetWebDll.BrowseFile(NUMBER,BYREF STRING,BYREF STRING,NUMBER);
-prototype INT GetWebDll.GetWebPage(BYREF STRING,BYREF STRING,BYREF STRING);
-prototype INT GetWebDll.GetUserLogon(BYREF STRING);
-prototype SetCellServDB(STRING,BYREF NUMBER,BYREF STRING,BYREF STRING,BYREF STRING,BYREF STRING);
-prototype FormErrorMessage(NUMBER,BYREF STRING);
-prototype SetHomeRoot( STRING,BYREF STRING,BYREF STRING,BYREF STRING,BYREF STRING );
-prototype BOOL getWebCellSrvDB(STRING,STRING);
-
-prototype BOOL GetDefaultDrive(BYREF NUMBER);
-function GetDefaultDrive(listAv)
- NUMBER listAc;
- NUMBER I,nResult;
- STRING item,iitem;
-begin
- listAc = ListCreate (STRINGLIST);
- Enable (STATUS);
- SetStatusWindow (50, "Scaning for available Drives...");
- nResult=GetValidDrivesList (listAc, -1,-1);
- SetStatusWindow (100, "Completed.");
- Delay (2);
- if (nResult<0) then
- SetStatusWindow(0, "");
- MessageBox ("Scan Drive Error" , SEVERE);
- abort;
- endif;
- SetStatusWindow(0, "");
- listAv = ListCreate (STRINGLIST);
- ListAddString(listAv,"None:",AFTER);
- ListGetFirstString(listAc, iitem);
- for I=67 to 90
- Sprintf(item,"%c",I);
- nResult=ListFindString(listAc,item);
- if nResult==END_OF_LIST then
- ListAddString(listAv,item+":",AFTER);
- endif;
- ListGetNextString(listAc,iitem);
- endfor;
- ListDestroy(listAc);
- return TRUE;
-end;
-
-function FormErrorMessage(nResult,szResult)
-begin
- switch(nResult)
- case COPY_ERR_CREATEDIR:
- szResult=TARGETDIR+ "could not be created. Make sure that you have access rights to the target drive.";
- case COPY_ERR_MEMORY:
- szResult="The function was unable to allocate the memory required to complete the copy file process. Terminate as many running applications as possible to free memory.";
- case COPY_ERR_NODISKSPACE:
- szResult="The function could not find enough disk space on "+TARGETDIR+" to copy the files. Free disk space on the target drive.";
- case COPY_ERR_OPENINPUT:
- szResult="The function was unable to open the input file in "+SRCDIR+". Make sure the source file is a valid filename and that both the source file and target directory exist.";
- case COPY_ERR_OPENOUTPUT:
- szResult="The function was unable to copy the requested file.";
- case COPY_ERR_TARGETREADONLY:
- szResult="The file in "+TARGETDIR+" is read-only. Remove the read-only attribute from the target file and try again.";
- default:
- szResult="Unknown error";
- endswitch;
-end;
-
-function getWebCellSrvDB(szDefaultWeb,szDestFile)
- NUMBER nResult;
- STRING szFile,szErrMsg,szURL;
-begin
- szErrMsg=" ";
- Enable (STATUS);
- SetStatusWindow (50, "Now Downloading CellServDB file...");
- CreateDir(TARGETDIR);
- nResult=GetWebPage(szErrMsg,szDestFile,szDefaultWeb);
- SetStatusWindow (100, "Downloading completed.");
- Delay (2);
- if (nResult!=0) then
- SetStatusWindow(0, "");
- MessageBox (szErrMsg, INFORMATION);
- return FALSE;
- endif;
- // setup default status
- SetStatusWindow(0, "");
- return TRUE;
-end;
-
-// Transfer file to CELLSERVDB
-prototype BOOL InstallCellServDB(NUMBER,STRING,STRING);
-function InstallCellServDB(DefaultItem,szDefaultWeb,szDefaultBrowse)
-STRING szFile,svErrorMessage;
-begin
- switch (DefaultItem)
- case IDC_CHECK_WEB:
- nResult=getWebCellSrvDB(szDefaultWeb,TARGETDIR^@CELLSERVDB_CONFIGNAME);
- case IDC_CHECK_BROWSEFILE:
- // open file and copy to area
- ParsePath(szFile,szDefaultBrowse,PATH);
- SRCDIR=szFile;
- ParsePath(szFile,szDefaultBrowse,FILENAME);
- nResult=CopyFile ( szFile ,@CELLSERVDB_CONFIGNAME );
- if nResult < 0 then
- if nResult = -1 then
- MessageBox ( "CopyFile failed with error code -1!", WARNING );
- else
- FormErrorMessage(nResult,svErrorMessage);
- SprintfBox ( WARNING, "",
- "CopyFile failed!\n\nError code: %ld\nMessage text: %s",
- nResult, svErrorMessage );
- endif;
- nResult=FALSE;
- else
- nResult=TRUE;
- endif;
- case IDC_CHECK_INSTALL: //need to delete because install will never overwrite
- SRCDIR=SUPPORTDIR;
- nResult=CopyFile (@CELLSERVDB_CONFIGNAME,@CELLSERVDB_CONFIGNAME );
- if nResult < 0 then
- if nResult = -1 then
- MessageBox ( "CopyFile failed with error code -1!", WARNING );
- else
- FormErrorMessage(nResult,svErrorMessage);
- SprintfBox ( WARNING, "",
- "CopyFile failed!\n\nError code: %ld\nMessage text: %s",
- nResult, svErrorMessage );
- endif;
- nResult=FALSE;
- else
- nResult=TRUE;
- endif;
- case IDC_CHECK_PREVIOUSFILE:
- nResult=TRUE;// work is done, it will use previous file
- default:
- nResult=TRUE;
- ;
- endswitch;
- return nResult;
-end;
-
-// Return TRUE if silent mode active
-prototype BOOL SilentSetCellServDB(STRING,NUMBER,NUMBER,NUMBER,BYREF STRING,BYREF STRING);
-function SilentSetCellServDB(szDlg,option,nResult,DefaultItem,szDefaultWeb,szDefaultBrowse)
-STRING svSection,szTemp;
-NUMBER nTemp;
-begin
- switch (option)
- case 0: //READ function
- if (MODE!=SILENTMODE) then
- return FALSE;
- endif;
- SdMakeName( svSection, szDlg, "", nvSection );
- SilentReadData( svSection, "Result", DATA_NUMBER,szTemp,nResult);
- if (nResult!=NEXT) then
- return TRUE;
- endif;
- SilentReadData( svSection, "DefaultItem", DATA_NUMBER,szTemp,DefaultItem);
- SilentReadData( svSection, "szDefaultWeb", DATA_STRING, szDefaultWeb,nTemp);
- SilentReadData( svSection, "szDefaultBrowse", DATA_STRING,szDefaultBrowse,nTemp );
- if (InstallCellServDB(DefaultItem,szDefaultWeb,szDefaultBrowse)==FALSE) then
- nResult=CANCEL;
- else
- nResult=NEXT;
- endif;
- return TRUE;
- default: //write
- SdMakeName( svSection, szDlg, "", nvSection );
- SilentWriteData( svSection, "Result", DATA_NUMBER,szTemp, nResult );
- SilentWriteData( svSection, "DefaultItem", DATA_NUMBER,szTemp, DefaultItem );
- SilentWriteData( svSection, "szDefaultWeb", DATA_STRING, szDefaultWeb,nTemp );
- SilentWriteData( svSection, "szDefaultBrowse", DATA_STRING, szDefaultBrowse,nTemp );
- return TRUE;
- endswitch;
-end;
-
-function SetCellServDB( szTitle,DefaultItem,szPreviousInstall,szDefaultWeb,szDefaultBrowse,szDefaultInstall)
-STRING szDlg, szTemp,szResult[256],svErrorMessage,szFile,svSection;
-NUMBER bDone, nId, nMessage, nTemp,AvailableDrives,nResult;
-INT hwndDlg,hwndItem;
-
-begin
- szDlg = "DLG_CELLSERVDB";
- // record data produced by this dialog
- if SilentSetCellServDB(szDlg,0,nResult,DefaultItem,szDefaultWeb,szDefaultBrowse) then
- return nResult;
- endif;
-
- // ensure general initialization is complete
- if (!bSdInit) then
- SdInit();
- endif;
-
- if (EzDefineDialog( szDlg, "", "",
- DLG_CELLSERVDB ) = DLG_ERR) then
- return -1;
- endif;
-
- // Loop in dialog until the user selects a standard button
- Disable(LOGGING);
- VarSave(SRCTARGETDIR);
- TARGETDIR=WINDIR;
- doagain:
- bDone = FALSE;
-
- while (!bDone)
-
- nId = WaitOnDialog( szDlg );
- hwndDlg = CmdGetHwndDlg( szDlg );
-
- switch(nId)
-
- case DLG_INIT:
- // Initialize List Control
- // set file
- CtrlSetState (szDlg, DefaultItem,BUTTON_CHECKED);
- if !Is(FILE_EXISTS,szPreviousInstall) then
- hwndItem = GetDlgItem( hwndDlg, IDC_CHECK_PREVIOUSFILE );
- EnableWindow( hwndItem, FALSE);
- endif;
- hwndItem = GetDlgItem( hwndDlg, IDC_PREVIOUSFILE );
- EnableWindow( hwndItem, DefaultItem==IDC_CHECK_PREVIOUSFILE);
- hwndItem = GetDlgItem( hwndDlg, IDC_BROWSEFILE );
- EnableWindow( hwndItem, DefaultItem==IDC_CHECK_BROWSEFILE);
- hwndItem = GetDlgItem( hwndDlg, IDC_BROWSE );
- EnableWindow( hwndItem, DefaultItem==IDC_CHECK_BROWSEFILE);
- hwndItem = GetDlgItem( hwndDlg, IDC_WEB );
- EnableWindow( hwndItem, DefaultItem==IDC_CHECK_WEB);
- hwndItem = GetDlgItem( hwndDlg, IDC_INSTALL );
- EnableWindow( hwndItem, DefaultItem==IDC_CHECK_INSTALL);
- CtrlSetText (szDlg, IDC_PREVIOUSFILE, szPreviousInstall);
- CtrlSetText (szDlg, IDC_BROWSEFILE, szDefaultBrowse);
- CtrlSetText (szDlg, IDC_WEB, szDefaultWeb);
- CtrlSetText (szDlg, IDC_INSTALL, szDefaultInstall);
-
- SdGeneralInit( szDlg, hwndDlg, STYLE_NORMAL, szSdProduct );
-
- //This function sets the caption for old style dialogs or
- //sets the text in the top banner area of win2k style dialogs
-// SdSetDlgTitle(szDlg, hwndDlg, szTitle); //Version 6.0 only
-
- case OK:
- nId = NEXT;
- bDone = TRUE;
-
- case BACK:
- nId = BACK;
- bDone = TRUE;
-
- case DLG_ERR:
- SdError( -1, "DLG_CELLSERVDB" );
- nId = -1;
- bDone = TRUE;
-
- case DLG_CLOSE:
- SdCloseDlg( hwndDlg, nId, bDone );
-
- case IDC_BROWSE:
- szResult=szDefaultBrowse;
- szTitle="Select file to be used for CellServDB";
- nResult=BrowseFile(hwndDlg,szTitle,szResult,256);
- CtrlSetText (szDlg, IDC_BROWSEFILE, szResult);
- szDefaultBrowse=szResult;
-
- case IDC_CHECK_BROWSEFILE:
- hwndItem = GetDlgItem( hwndDlg, IDC_BROWSEFILE );
- EnableWindow( hwndItem, TRUE);
- hwndItem = GetDlgItem( hwndDlg, IDC_BROWSE );
- EnableWindow( hwndItem, TRUE);
- CtrlSetState (szDlg, DefaultItem,BUTTON_UNCHECKED);
- CtrlSetState (szDlg, nId,BUTTON_CHECKED);
- switch (DefaultItem)
- case IDC_CHECK_WEB:
- hwndItem = GetDlgItem( hwndDlg, IDC_WEB );
- EnableWindow( hwndItem, FALSE);
- case IDC_CHECK_PREVIOUSFILE:
- hwndItem = GetDlgItem( hwndDlg, IDC_PREVIOUSFILE );
- EnableWindow( hwndItem, FALSE);
- case IDC_CHECK_INSTALL:
- hwndItem = GetDlgItem( hwndDlg, IDC_INSTALL);
- EnableWindow( hwndItem, FALSE);
- default:
- ;
- endswitch;
- DefaultItem=nId;
- case IDC_CHECK_INSTALL:
- hwndItem = GetDlgItem( hwndDlg, IDC_INSTALL );
- EnableWindow( hwndItem, TRUE);
- CtrlSetState (szDlg, DefaultItem,BUTTON_UNCHECKED);
- CtrlSetState (szDlg, nId,BUTTON_CHECKED);
- switch (DefaultItem)
- case IDC_CHECK_BROWSEFILE:
- hwndItem = GetDlgItem( hwndDlg, IDC_BROWSE );
- EnableWindow( hwndItem, FALSE);
- hwndItem = GetDlgItem( hwndDlg, IDC_BROWSEFILE );
- EnableWindow( hwndItem, FALSE);
- case IDC_CHECK_WEB:
- hwndItem = GetDlgItem( hwndDlg, IDC_WEB );
- EnableWindow( hwndItem, FALSE);
- case IDC_CHECK_PREVIOUSFILE:
- hwndItem = GetDlgItem( hwndDlg, IDC_PREVIOUSFILE );
- EnableWindow( hwndItem, FALSE);
- default:
- ;
- endswitch;
- DefaultItem=nId;
- case IDC_CHECK_WEB:
- hwndItem = GetDlgItem( hwndDlg, IDC_WEB );
- EnableWindow( hwndItem, TRUE);
- CtrlSetState (szDlg, DefaultItem,BUTTON_UNCHECKED);
- CtrlSetState (szDlg, nId,BUTTON_CHECKED);
- switch (DefaultItem)
- case IDC_CHECK_BROWSEFILE:
- hwndItem = GetDlgItem( hwndDlg, IDC_BROWSE );
- EnableWindow( hwndItem, FALSE);
- hwndItem = GetDlgItem( hwndDlg, IDC_BROWSEFILE );
- EnableWindow( hwndItem, FALSE);
- case IDC_CHECK_INSTALL:
- hwndItem = GetDlgItem( hwndDlg, IDC_INSTALL);
- EnableWindow( hwndItem, FALSE);
- case IDC_CHECK_PREVIOUSFILE:
- hwndItem = GetDlgItem( hwndDlg, IDC_PREVIOUSFILE );
- EnableWindow( hwndItem, FALSE);
- default:
- ;
- endswitch;
- DefaultItem=nId;
- case IDC_CHECK_PREVIOUSFILE:
- hwndItem = GetDlgItem( hwndDlg, IDC_PREVIOUSFILE );
- EnableWindow( hwndItem, TRUE);
- CtrlSetState (szDlg, DefaultItem,BUTTON_UNCHECKED);
- CtrlSetState (szDlg, nId,BUTTON_CHECKED);
- switch (DefaultItem)
- case IDC_CHECK_BROWSEFILE:
- hwndItem = GetDlgItem( hwndDlg, IDC_BROWSE );
- EnableWindow( hwndItem, FALSE);
- hwndItem = GetDlgItem( hwndDlg, IDC_BROWSEFILE );
- EnableWindow( hwndItem, FALSE);
- case IDC_CHECK_INSTALL:
- hwndItem = GetDlgItem( hwndDlg, IDC_INSTALL);
- EnableWindow( hwndItem, FALSE);
- case IDC_CHECK_WEB:
- hwndItem = GetDlgItem( hwndDlg, IDC_WEB );
- EnableWindow( hwndItem, FALSE);
- default:
- ;
- endswitch;
- DefaultItem=nId;
- default:
- // check standard handling
- if (SdIsStdButton( nId ) && SdDoStdButton( nId )) then
- bDone = TRUE;
- endif;
- endswitch;
-
- endwhile;
-
- CtrlGetText (szDlg, IDC_BROWSEFILE, szDefaultBrowse);
- CtrlGetText (szDlg, IDC_WEB, szDefaultWeb);
- if (nId != NEXT) then
- return nId;
- endif;
- if InstallCellServDB(DefaultItem,szDefaultWeb,szDefaultBrowse)==FALSE then
- goto doagain;
- endif;
- EndDialog( szDlg );
- ReleaseDialog( szDlg );
- VarRestore(SRCTARGETDIR);
- Enable(LOGGING);
- SdUnInit( );
- // record data produced by this dialog
- SilentSetCellServDB(szDlg,1,nId,DefaultItem,szDefaultWeb,szDefaultBrowse);
- return nId;
-end;
-
-////////////////////////////////////////////////////////////////////////////////
-//
-// Function Name: Template
-//
-// Description: This dialog will show a dialog template which can be
-// used for creating any user-defined dialog with the
-// Windows 95 look and feel.
-// Comments:
-//
-////////////////////////////////////////////////////////////////////////////////
-
-prototype BOOL GetUser(BYREF STRING);
-
-function GetUser(sUser)
- NUMBER nResult;
-begin
- sUser=" ";
- nResult=GetUserLogon(sUser);
- if (nResult!=1) then
- sUser="";
- endif;
- return (nResult==1);
-end;
-
-
-prototype BOOL SetDriveMaps(STRING,STRING,STRING,STRING,STRING);
-function SetDriveMaps(szPath,szRootDrive,szRootPath,szHomeDrive,szHomePath)
-HWND handle;
-begin
- VarSave(SRCTARGETDIR);
- DeleteFile("afsdsbmt.ini");
- VarRestore(SRCTARGETDIR);
- CreateFile(handle, szPath, "afsdsbmt.ini");
- WriteLine(handle, "[AFS Submounts]");
- if (StrLength(szRootDrive)==2) then
- WriteLine(handle, "all="+szRootPath);
- endif;
- if (StrLength(szHomeDrive)==2) then
- WriteLine(handle, "home=" + szHomePath);
- endif;
- WriteLine(handle, "[AFS Mappings]");
- if (StrLength(szRootDrive)>0) then
- WriteLine(handle, szRootDrive+"="+szRootPath);
- endif;
- if (StrLength(szHomeDrive)>0) then
- WriteLine(handle, szHomeDrive+"="+szHomePath);
- endif;
- CloseFile(handle);
-end;
-
-// Return TRUE if silent mode active
-prototype BOOL SilentSetHomeRoot(STRING,NUMBER,NUMBER,BYREF STRING,BYREF STRING,BYREF STRING,BYREF STRING);
-function SilentSetHomeRoot(szDlg,option,nResult,szRootDrive,szRootPath,szHomeDrive,szHomePath)
-STRING svSection,szTemp,szTPath,szTShare,szTDrive,szLogname;
-NUMBER nTemp,nCount,I;
-HWND handle;
-begin
- Logitn("SilentSetHomeRoot option=%i",option);
- switch (option)
- case 0: //READ function
- if (MODE!=SILENTMODE) then
- return FALSE;
- endif; // this section is a little more complicated, allowing installation of n mappings
- SdMakeName( svSection, szDlg, "", nvSection );
- Logit("SdMakeName="+svSection);
- SilentReadData( svSection, "Result", DATA_NUMBER,szTemp,nResult);
- Logitn("nResult=%i",nResult);
- if (nResult!=NEXT) then
- return TRUE;
- endif;
- Logit("Do count");
- SilentReadData( svSection, "Count", DATA_NUMBER, szTemp,nCount);
- Logitn("nCount=%i",nCount);
- if nCount==0 then
- return TRUE;
- endif;
- VarSave(SRCTARGETDIR);
- TARGETDIR=WINDIR;
- DeleteFile("afsdsbmt.ini");
- VarRestore(SRCTARGETDIR);
- CreateFile(handle, WINDIR, "afsdsbmt.ini");
- WriteLine(handle, "[AFS Submounts]");
- for I=0 to nCount-1
- Logitn("I=%i",I);
- Sprintf(szTemp,"Path_%i",I);
- Logit("Path="+szTemp);
- SilentReadData( svSection, szTemp, DATA_STRING, szTPath,nTemp);
- Logit("TPath="+szTPath);
- if (szTPath % "%LOGINNAME%") then
- //Replace loginname with actual loging name
- nTemp=StrFind(szTPath,"%LOGINNAME%");
- StrSub(szTemp,szTPath,nTemp+11,StrLength(szTPath));
- StrSub(szTPath,szTPath,0,nTemp);
- if (GetUser(szLogname)) then
- szTPath=szTPath+szLogname+szTemp;
- endif;
- endif;
- Sprintf(szTemp,"Share_%i",I);
- SilentReadData( svSection, szTemp, DATA_STRING, szTShare,nTemp);
- WriteLine(handle, szTShare+"="+szTPath);
- endfor;
- WriteLine(handle, "[AFS Mappings]");
- for I=0 to nCount-1
- Sprintf(szTemp,"Drive_%i",I);
- SilentReadData( svSection, szTemp, DATA_STRING, szTDrive,nTemp);
- Sprintf(szTemp,"Path_%i",I);
- SilentReadData( svSection, szTemp, DATA_STRING, szTPath,nTemp);
- if (szTPath % "%LOGINNAME%") then
- //Replace loginname with actual loging name
- nTemp=StrFind(szTPath,"%LOGINNAME%");
- StrSub(szTemp,szTPath,nTemp+11,StrLength(szTPath));
- StrSub(szTPath,szTPath,0,nTemp);
- if (GetUser(szLogname)) then
- szTPath=szTPath+szLogname+szTemp;
- endif;
- endif;
- WriteLine(handle, szTDrive+"="+szTPath);
- endfor;
- CloseFile(handle);
- nResult=NEXT;
- return TRUE;
- default: //write
- SdMakeName( svSection, szDlg, "", nvSection );
- nCount=0;
- SilentWriteData( svSection, "Result", DATA_NUMBER,szTemp, nResult );
- if (StrLength(szRootDrive)==2) then
- Sprintf(szTemp,"Drive_%i",nCount);
- SilentWriteData( svSection,szTemp, DATA_STRING,szRootDrive, nTemp );//root drive
- Sprintf(szTemp,"Path_%i",nCount);
- SilentWriteData( svSection,szTemp, DATA_STRING,szRootPath, nTemp );//root drive
- Sprintf(szTemp,"Share_%i",nCount);
- SilentWriteData( svSection,szTemp, DATA_STRING,"all", nTemp );//root drive
- nCount++;
- endif;
- if (StrLength(szHomeDrive)==2) then
- Sprintf(szTemp,"Drive_%i",nCount);
- SilentWriteData( svSection,szTemp, DATA_STRING,szHomeDrive, nTemp );//root drive
- Sprintf(szTemp,"Path_%i",nCount);
- SilentWriteData( svSection,szTemp, DATA_STRING,szHomePath, nTemp );//root drive
- Sprintf(szTemp,"Share_%i",nCount);
- SilentWriteData( svSection,szTemp, DATA_STRING,"home", nTemp );//root drive
- nCount++;
- endif;
- SilentWriteData( svSection, "Count", DATA_NUMBER,szTemp, nCount ); // only two can be defined through Dialog box
- SetDriveMaps(WINDIR,szRootDrive,szRootPath,szHomeDrive,szHomePath);
- return TRUE;
- endswitch;
-end;
-
-function SetHomeRoot( szTitle,szRootDrive,szRootPath,szHomeDrive,szHomePath )
-
-STRING szDlg, szTemp,svSection;
-NUMBER bDone, nId, nMessage, nTemp,AvailableDrives,nResult;
-INT hwndDlg,hwndItem,hwndItem2;
-
-begin
- szDlg = "DLG_DRIVEPATH";
-
- // record data produced by this dialog
- Logit("SetHomeRoot");
- if SilentSetHomeRoot(szDlg,0,nResult,szRootDrive,szRootPath,szHomeDrive,szHomePath ) then
- return nResult;
- endif;
-
- GetDefaultDrive(AvailableDrives);
- // ensure general initialization is complete
- if (!bSdInit) then
- SdInit();
- endif;
-
- if (EzDefineDialog( szDlg, "", "",
- DLG_DRIVEPATH ) = DLG_ERR) then
- return -1;
- endif;
-
- // Loop in dialog until the user selects a standard button
- bDone = FALSE;
-
- while (!bDone)
-
- nId = WaitOnDialog( szDlg );
-
- switch(nId)
-
- case DLG_INIT:
- hwndDlg = CmdGetHwndDlg( szDlg );
- // Initialize List Control
- nResult=CtrlSetList( szDlg, IDC_HOMEDRIVELIST, AvailableDrives );
- if (nResult != 0) then
- // Handle error from CtrlSetList.
- MessageBox ("Unable to create folder name list.", SEVERE);
- bDone = TRUE;
- endif;
- if (CtrlSetCurSel(szDlg,IDC_HOMEDRIVELIST,szHomeDrive)!=0) then
- szHomeDrive="None:";
- CtrlSetCurSel(szDlg,IDC_HOMEDRIVELIST,szHomeDrive);
- endif;
-
- nResult=CtrlSetList( szDlg, IDC_ROOTDRIVELIST, AvailableDrives );
- if (nResult != 0) then
- // Handle error from CtrlSetList.
- MessageBox ("Unable to create folder name list.", SEVERE);
- bDone = TRUE;
- endif;
- if (CtrlSetCurSel(szDlg,IDC_ROOTDRIVELIST,szRootDrive)!=0) then
- szRootDrive="None:";
- CtrlSetCurSel(szDlg,IDC_ROOTDRIVELIST,szRootDrive);
- endif;
-
- nResult=CtrlSetText( szDlg, IDC_ROOTPATH,szRootPath );
- if (nResult != 0) then
- MessageBox ("Unable to create szRootPath.", SEVERE);
- bDone = TRUE;
- endif;
- nResult=CtrlSetText( szDlg, IDC_HOMEPATH,szHomePath );
- if (nResult != 0) then
- MessageBox ("Unable to create szHomePath.", SEVERE);
- bDone = TRUE;
- endif;
-
- CtrlSetState (szDlg, IDC_ENABLEHOME,BUTTON_CHECKED);
- CtrlSetState (szDlg, IDC_ENABLEROOT,BUTTON_CHECKED);
- SdGeneralInit( szDlg, hwndDlg, STYLE_NORMAL, szSdProduct );
-
- //This function sets the caption for old style dialogs or
- //sets the text in the top banner area of win2k style dialogs
- case OK:
- if (szRootDrive!=szHomeDrive) then
- nId = NEXT;
- bDone = TRUE;
- else
- MessageBox("Home and Root drives cannot be the same",WARNING);
- endif;
-
- case BACK:
- nId = BACK;
- bDone = TRUE;
-
- case DLG_ERR:
- SdError( -1, "DLG_DRIVEPATH" );
- nId = -1;
- bDone = TRUE;
-
- case DLG_CLOSE:
- SdCloseDlg( hwndDlg, nId, bDone );
-
- case IDC_ENABLEROOT:
-
- hwndItem = GetDlgItem( hwndDlg, IDC_ROOTDRIVELIST );//get handle of control in custom dialog box
- hwndItem2 = GetDlgItem( hwndDlg, IDC_ROOTPATH );//get handle of control in custom dialog box
- if (CtrlGetState (szDlg, nId)==BUTTON_CHECKED) then
- EnableWindow( hwndItem2, TRUE);
- EnableWindow( hwndItem, TRUE);
- else
- EnableWindow( hwndItem2, FALSE);
- EnableWindow( hwndItem, FALSE);
- endif;
- case IDC_ENABLEHOME:
- hwndItem = GetDlgItem( hwndDlg, IDC_HOMEDRIVELIST );//get handle of control in custom dialog box
- hwndItem2 = GetDlgItem( hwndDlg, IDC_HOMEPATH );//get handle of control in custom dialog box
- if (CtrlGetState (szDlg, nId)==BUTTON_CHECKED) then
- EnableWindow( hwndItem2, TRUE);
- EnableWindow( hwndItem, TRUE);
- else
- EnableWindow( hwndItem2, FALSE);
- EnableWindow( hwndItem, FALSE);
- endif;
-
- case IDC_HOMEDRIVELIST:
- ;
- case IDC_ROOTDRIVELIST:
- ;
- case IDC_HOMEPATH:
- CtrlGetText (szDlg, nId,szHomePath);
-
- case IDC_ROOTPATH:
- CtrlGetText (szDlg, nId,szRootPath);
-
- default:
- // check standard handling
- if (SdIsStdButton( nId ) && SdDoStdButton( nId )) then
- bDone = TRUE;
- endif;
- endswitch;
-
- endwhile;
-
- CtrlGetCurSel (szDlg, nId, szRootDrive);
- if (CtrlGetState (szDlg, IDC_ENABLEROOT)==BUTTON_UNCHECKED) then
- szRootDrive="None:";
- endif;
- CtrlGetCurSel (szDlg, nId, szHomeDrive);
- if (CtrlGetState (szDlg, IDC_ENABLEHOME)==BUTTON_UNCHECKED) then
- szHomeDrive="None:";
- endif;
- EndDialog( szDlg );
- ReleaseDialog( szDlg );
-
- SdUnInit( );
-
- // record data produced by this dialog
- if (nId==NEXT) then
- SilentSetHomeRoot(szDlg,1,nId,szRootDrive,szRootPath,szHomeDrive,szHomePath );
- endif;
- ListDestroy (AvailableDrives);
- return nId;
-
-end;
-
-
-// ---- script function prototypes -----
-
-
- // your script function prototypes
-
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// MAIN PROGRAM
-//
-// The setup begins here by hiding the visible setup
-// window. This is done to allow all the titles, images, etc. to
-// be established before showing the main window. The setup is
-// then performed in a series of calls to script defined functions,
-// with error checking at each step.
-//
-///////////////////////////////////////////////////////////////////////////////
-program
- Logit("Begin");
- nvSection=0;
- Disable( BACKGROUND );
- if (UseDLL(SUPPORTDIR ^ SETUP_UTILS_DLL_PATH) < 0) then
- ShowError(@SETUPUTILS_NOT_FOUND, SEVERE);
- bInstallAborted = TRUE;
- goto end_install;
- endif;
- Logit("UseDLL1");
- ChangeDirectory (SUPPORTDIR);
- if (UseDLL("GetWebDLL.dll") != 0) then
- MessageBox ("DLL failed.\n\nCouldn't load"+SUPPORTDIR^"GetWebDLL.dll", INFORMATION);
- abort;
- endif;
- Logit("UseDLL2");
-
- SetupInstall();
- Logit("SetupInstall");
-
- CheckRequirements();
- Logit("CheckRequirements");
-
- ParseCommandLine();
- Logit("ParseCommandLine");
-
- SetupAppInfo();
- Logit("SetupAppInfo");
-
- LocalizeComponents();
- Logit("LocalizeComponents");
-
- DetectInstalledComponents();
- Logit("DetectInstalledComponents");
-
- // Can't upgrade, downgrade, or reinstall the light client, so if it is
- // already installed, we must abort. This is because on Win9x, we can't
- // move in-use files, and so we can't silently uninstall the light client,
- // which upgrade, downgrade, and reinstall require.
- if (bLightClientInstalled && !bWinNT) then
- ShowError(@LIGHT_CLIENT_ALREADY_INSTALLED_MSG, SEVERE);
- bInstallAborted = TRUE;
- goto end_install;
- endif;
-
- if (AnyNonUpgradableSoftwareInstalled()) then
- ShowError(@NON_UPGRADABLE_SOFTWARE_INSTALLED_ERROR_MSG, SEVERE);
- bInstallAborted = TRUE;
- goto end_install;
- endif;
-
- GetInstallActions();
-
- if (bWSPPInstall) then
- SetSilentMode(); // Tells the InstallUtils dll to run silently
- PrepareForWSPPInstall();
- else
- // Ask user what to install
- SetupScreen();
- if (ShowDialogs()<0) goto end_install;
- endif;
-
- // The AFS path must not contain spaces. AFS code will break if it does.
- LongPathToShortPath(TARGETDIR);
-
- // Determine which comps to install to get the proper NLS files.
- GetNlsComps(szLangComp, szReadmeComp, szDocsComp, szCodePage);
-
- SetUserVars();
-
- CreateDirs();
-
- // Uninstall current versions before we install
- RemoveAllCurrentVersions();
-
- // Install the Client
- if (bFullClientSel) then
- RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE);
- Enable(LOGGING);
- if RegDBSetKeyValueEx ("SYSTEM\\CurrentControlSet\\Services\\NetBT\\Parameters"
- ,"SmbDeviceEnabled", REGDB_NUMBER, "0", 8) < 0 then
- MessageBox ("RegDBCreateKeyEx failed.", SEVERE);
- abort;
- endif;
- pApp = &appFullClient;
- if (InstallApp(pApp) < 0) goto end_install;
- endif;
- if RegDBSetKeyValueEx("SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\Parameters","Cell", REGDB_STRING, szCellName, -1) < 0 then
- MessageBox ("RegDBCreateKeyEx failed.", SEVERE);
- abort;
- endif;
- // Install the Light Client
- if (bLightClientSel) then
- pApp = &appLightClient;
- if (InstallApp(pApp) < 0) goto end_install;
- if (bWin95) then
- EzBatchAddString(LIGHT95_CLIENT_PROTSEQ, "", AFTER | REPLACE);
- endif;
- endif;
-
- // Install the Server
- if (bServerSel) then
- pApp = &appServer;
- if (InstallApp(pApp) < 0) goto end_install;
- CreateServerDirs();
- endif;
-
- // Install the Control Center
- if (bCcSel) then
- pApp = &appControlCenter;
- if (InstallApp(pApp) < 0) goto end_install;
- endif;
-
- // Install the Docs
- if (bDocsSel) then
- appDocs.szCompName = szDocsComp;
- pApp = &appDocs;
- if (InstallApp(pApp) < 0) goto end_install;
- endif;
-
- // If we installed the server, then configure the bos service
- if (bServerSel) then
- if (ConfigServerService() < 0) goto end_install;
- endif;
-
- // If we installed the full client, then configure the client service
- // and add the NetworkProviderOrder value.
- if (bFullClientSel) then
- if (ConfigClientService() < 0) goto end_install;
- // I'm commenting out the line below. This will result in integrated
- // login being off after an install. If you want it to be on after an
- // install, then uncomment the line.
- // if (SetNetworkProviderOrder() < 0) goto end_install;
- endif;
-
- if (bFullClientSel || bLightClientSel) then
- ConfigAfsCreds();
- endif;
-
- RestorePreviousConfigs();
-
- AddPath(szCommonBinPath);
-
- // If not only installing docs, then set BATCH_INSTALL to true,
- // which will cause setup to want to reboot the computer.
- if (OnlyInstallingDocs() == FALSE) then
- BATCH_INSTALL = TRUE;
- endif;
-
- CreateStartMenuEntries();
-
-// if (bFullClientSel || bLightClientSel || bCcSel) then
-// CheckCopyCellServDB();
-// endif;
-
- end_install:
-
- UnUseDLL(SUPPORTDIR^"GetWebDLL.dll");
- UnUseDLL(SUPPORTDIR ^ SETUP_UTILS_DLL_PATH);
-
- CleanUpInstall();
-
- // If an unrecoverable error occurred, clean up
- // the partial installation. Otherwise, exit normally.
- if (bInstallAborted) then
- abort;
- endif;
-
-endprogram
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: ShowDialogs
-//
-// Purpose: This function manages the display and navigation of
-// the standard dialogs that exist in a setup.
-//
-///////////////////////////////////////////////////////////////////////////////
-function ShowDialogs()
- NUMBER nResult,handle;
- STRING szTargetLicense;
- STRING szSourceLicense;
- STRING sRootDrive,sHomeDrive,userID,rootPath,homePath;
- NUMBER DefaultItem;
- STRING szDefaultWeb,szDefaultBrowse,szDefaultInstall,szPreviousInstall;
- STRING szResult[256],svResult;
-begin
- Dlg_Start:
- // beginning of dialogs label
- Dlg_SdWelcome:
- nResult = DialogShowSdWelcome();
- if (nResult = BACK) goto Dlg_Start;
-
- Dlg_License:
-// szTargetLicense = DOCUMENTATION_LICENSE_PATH;
-// GetLicenseFilename (szSourceLicense);
-// Logit("ShowLicense");
-// Disable( DIALOGCACHE );
-// if (MODE!=SILENTMODE) then
-// nResult = ShowLicense(szTargetLicense,szSourceLicense);
-// if (nResult = 0) then
-// abort;
-// endif;
-// Enable( DIALOGCACHE );
-// endif;
- if (nResult = BACK) goto Dlg_Start;
- Dlg_SdCompDlg:
- nResult = DialogShowSdAskComponentDialog();
- Logit("DialogShowSdAskComponentDialog");
- if (nResult = BACK) goto Dlg_License;
-
- Dlg_SdSelectFolder:
- nResult = DialogShowSdSelectFolder();
- Logit("DialogShowSdSelectFolder");
- if (nResult = BACK) goto Dlg_SdCompDlg;
- if (bFullClientSel || bLightClientSel) then
- szDefaultWeb=@CELLSERVDB_WEB;
- szDefaultBrowse=TARGETDIR^"*";
- szDefaultInstall=@CELLSERVDB_INSTALL;
- szPreviousInstall=WINDIR^@CELLSERVDB_CONFIGNAME;
- if (Is(FILE_EXISTS,szPreviousInstall)) then
- DefaultItem=IDC_CHECK_PREVIOUSFILE;
- else
- DefaultItem=IDC_CHECK_INSTALL;
- endif;
- Dlg_SdSelectCellServDB:
- Logit("SetCellServDB-next");
- nResult =SetCellServDB("Select AFS Cell Data base (afsdcell.ini)"
- ,DefaultItem
- ,szPreviousInstall
- ,szDefaultWeb
- ,szDefaultBrowse
- ,szDefaultInstall);
- Logit("SetCellServDB");
- if (nResult=BACK) goto Dlg_SdSelectFolder;
- Dlg_SdSelectCellName:
- nResult=SdShowDlgEdit1 ("Select AFS Cell Name","A valid cell name should be entered here.\nIf you don't know your cell name, you may enter one after installation using the AFS Control Center.","Enter Cell Name:", szCellName);
- if (nResult = BACK) goto Dlg_SdSelectCellName;
- if (Is(FILE_EXISTS, WINDIR^"afsdsbmt.ini")) then
- Logit("AskYesNo next");
- if (AskYesNo("Previous Drive Mapping Configuration already exist.\n\nPress Yes to keep previous configuration\nPress No to change previous configuration.",YES)=YES) then
- return 0;
- endif;
- endif;
- userID=" ";
- GetUser(userID);
- sRootDrive="Z:";
- sHomeDrive="U:";
- rootPath="/";
- homePath = "/afs/" + szCellName + "/u/" + userID;
- nResult=SetHomeRoot( "Home and Root Drive Assignment\nThese drives will be mapped each time AFS is connected!",sRootDrive,rootPath,sHomeDrive,homePath );
- Logit("SetHomeRoot");
- if (nResult = BACK) goto Dlg_SdSelectCellServDB;
- endif;
- Logit("ShowDialogs-done");
- return 0;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: NotUpgradable
-//
-// Purpose: This function will return TRUE if the passed in version is not
-// upgradable.
-//
-///////////////////////////////////////////////////////////////////////////////
-function NotUpgradable(pApp)
-begin
- // The 3.5 beta is not upgradable
-// if ((pApp->iVer.nMajorVersion = 3) && (pApp->iVer.nMinorVersion = 5) && (pApp->iVer.nPatchLevel = 0) && (pApp->iVer.szReleaseType = RELEASE_TYPE_BETA)) then
-// return TRUE;
-// endif;
-
- return FALSE;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: AnyNonUpgradableSoftwareInstalled
-//
-// Purpose: This function will return TRUE if any non-upgradable software is
-// installed.
-//
-///////////////////////////////////////////////////////////////////////////////
-function AnyNonUpgradableSoftwareInstalled()
-begin
- if (NotUpgradable(&appFullClient) ||
- NotUpgradable(&appServer) ||
- NotUpgradable(&appControlCenter) ||
- NotUpgradable(&appLightClient) ||
- NotUpgradable(&appDocs))
- then
- return TRUE;
- endif;
-
- return FALSE;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: UnselectComps
-//
-// Purpose: This function unselects all of the componenets so that we can
-// completely control what gets installed. We will select each
-// component at the time when we want to install it.
-//
-///////////////////////////////////////////////////////////////////////////////
-function UnselectComps()
-begin
- ComponentSelectItem(MEDIA, SERVER_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, CLIENT_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, LIGHT_CLIENT_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, CC_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, DOCS_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, LANG_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, LANG_ENGLISH_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, LANG_SIMP_CHINESE_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, LANG_TRAD_CHINESE_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, LANG_KOREAN_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, LANG_JAPANESE_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, LANG_GERMAN_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, LANG_SPANISH_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, LANG_PORTUGUESE_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, README_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, README_ENGLISH_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, README_JAPANESE_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, README_KOREAN_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, README_SIMP_CHINESE_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, README_TRAD_CHINESE_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, README_GERMAN_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, README_SPANISH_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, README_PORTUGUESE_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, DOCS_ENGLISH_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, DOCS_JAPANESE_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, DOCS_KOREAN_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, DOCS_SIMP_CHINESE_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, DOCS_TRAD_CHINESE_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, DOCS_GERMAN_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, DOCS_SPANISH_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, DOCS_PORTUGUESE_COMP_NAME, FALSE);
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: DoesConfigInfoExist
-//
-// Purpose: This function determines if config info exists for an app.
-//
-///////////////////////////////////////////////////////////////////////////////
-function DoesConfigInfoExist(pApp)
-begin
- RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
-
- if (RegDBKeyExist(CONFIG_INFO_KEY ^ pApp->szProductName) = 1) then
- return TRUE;
- endif;
-
- return FALSE;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: RestorePreviousConfigs
-//
-// Purpose: This function restores config info for the apps we just installed.
-//
-///////////////////////////////////////////////////////////////////////////////
-function RestorePreviousConfigs()
-begin
- if (appServer.bInstallSucceeded && DoesConfigInfoExist(&appServer)) then
- RestoreConfigInfo(SERVER);
- endif;
-
- if (appFullClient.bInstallSucceeded) then
- if (appFullClient.iVer.szTitle = "3.4a") then
- Upgrade34ClientConfigInfo();
- elseif (DoesConfigInfoExist(&appFullClient) = TRUE) then
- RestoreConfigInfo(CLIENT);
- endif;
- endif;
-
- if (appLightClient.bInstallSucceeded && DoesConfigInfoExist(&appLightClient)) then
- RestoreConfigInfo(LCLIENT);
- endif;
-
- // Only restore control center info if client not installed
- if (appControlCenter.bInstallSucceeded && !bClientInstalled && !appFullClient.bInstallSucceeded
- && DoesConfigInfoExist(&appControlCenter))
- then
- RestoreConfigInfo(CC);
- endif;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: OnlyInstallingDocs
-//
-// Purpose: This function determines if only the doc files are being installed.
-//
-///////////////////////////////////////////////////////////////////////////////
-function OnlyInstallingDocs()
-begin
- if (!bServerSel && !bFullClientSel && !bLightClientSel && !bCcSel && bDocsSel) then
- return TRUE;
- endif;
-
- return FALSE;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: CreateDirs
-//
-// Purpose: This function creates directories that we don't want IS to make.
-//
-///////////////////////////////////////////////////////////////////////////////
-function CreateDirs()
-begin
- // Turn off logging. It shouldn't be on when this func is called, but we
- // turn it off anyway just to make sure. We turn it off so that IS won't
- // try to delete the dirs we are about to make during an uninstall. If
- // we don't do this, then the first app installed that uses one of these
- // dirs will think that it owns that dir and won't know that other apps
- // are sharing it.
- Disable(LOGGING);
-
- // Create the target dir and the shared dirs
- CreateDir(TARGETDIR);
- CreateDir(TARGETDIR ^ "Documentation");
- CreateDir(TARGETDIR ^ "Documentation\\Html");
- CreateDir(TARGETDIR ^ "Documentation\\Html\\InstallGd");
- CreateDir(TARGETDIR ^ "Documentation\\Html\\ReleaseNotes");
-
- // We need to manually create the Server dir so that if we have to leave
- // it behind during an uninstall (so that config info is preserved), IS
- // won't complain that it can't be deleted.
- if (bServerSel) then
- CreateDir(TARGETDIR ^ "Server\\usr\\afs\\bin");
- endif;
-
- // Docs don't use the common dir
- if (OnlyInstallingDocs() = FALSE) then
- CreateDir(TARGETDIR ^ "Common");
- endif;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: PrepareForWSPPInstall
-//
-// Purpose: This function decides what to install when doing a WSPP install.
-//
-///////////////////////////////////////////////////////////////////////////////
-function PrepareForWSPPInstall()
-begin
- SHELL_OBJECT_FOLDER = @WSPP_FOLDER_NAME;
-
- // Never install the Docs during a WSPP install
- appDocs.nInstallAction = ACTION_NONE;
-
- // If we have been told to replace any preinstalled software, then set
- // our reinstall mechanism in motion.
- if (bPreinstallReplace) then
- if (bCcInstalled && bCcSel) then
- appControlCenter.nInstallAction = ACTION_REINSTALL;
- endif;
- if (bClientInstalled && bFullClientSel) then
- appFullClient.nInstallAction = ACTION_REINSTALL;
- endif;
- if (bServerInstalled && bServerSel) then
- appServer.nInstallAction = ACTION_REINSTALL;
- endif;
- if (bLightClientInstalled && bLightClientSel) then
- appLightClient.nInstallAction = ACTION_REINSTALL;
- endif;
- else
- // If we have been told to not install something that is already
- // installed, then do just that.
- if (bCcInstalled && bCcSel) then
- bCcSel = FALSE;
- endif;
- if (bClientInstalled && bFullClientSel) then
- bFullClientSel = FALSE;
- endif;
- if (bServerInstalled && bServerSel) then
- bServerSel = FALSE;
- endif;
- if (bLightClientInstalled && bLightClientSel) then
- bLightClientSel = FALSE;
- endif;
- endif;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: RemoveCurrentVersion
-//
-// Purpose: This function removes the currently installed version of the app.
-// It provides a message to the user so they know what is going on.
-//
-///////////////////////////////////////////////////////////////////////////////
-function RemoveCurrentVersion(pApp)
- string szMsg;
- string szFormat;
-begin
- szFormat = "";
-
- switch(pApp->nInstallAction)
- case ACTION_REINSTALL: szFormat = @REINSTALL_PREP_MSG;
- case ACTION_UPGRADE: szFormat = @UPGRADE_PREP_MSG;
- case ACTION_DOWNGRADE: szFormat = @DOWNGRADE_PREP_MSG;
- endswitch;
-
- if (szFormat == "") then
- return;
- endif;
-
- Sprintf(szMsg, szFormat, pApp->szProductName);
-
- if (!bWSPPInstall) then
- SdShowMsg(szMsg, TRUE);
- endif;
-
- RemoveInstalledBits(pApp->szProductName);
-
- if (!bWSPPInstall) then
- SdShowMsg(szMsg, FALSE);
- endif;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: RemoveAllCurrentVersions
-//
-// Purpose: This function removes the current install of all apps that are
-// begin reinstalled, upgraded, or downgraded.
-//
-///////////////////////////////////////////////////////////////////////////////
-function RemoveAllCurrentVersions()
-begin
- if (bFullClientSel) then
- RemoveCurrentVersion(&appFullClient);
- endif;
-
- if (bServerSel) then
- RemoveCurrentVersion(&appServer);
- endif;
-
- if (bCcSel) then
- RemoveCurrentVersion(&appControlCenter);
- endif;
-
- if (bLightClientSel) then
- RemoveCurrentVersion(&appLightClient);
- endif;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: InstallApp
-//
-// Purpose: This function installs an application that is part of a suite.
-//
-///////////////////////////////////////////////////////////////////////////////
-function InstallApp(pApp)
- NUMBER nResult;
-begin
- if (pApp->nInstallAction = ACTION_NONE) then
- return 0;
- endif;
-
- // Start fresh with nothing selected
- UnselectComps();
-
- // Select the comps we want to install. We will install the passed in app
- // as well as the comps that are shared by all the apps. Because of weird
- // IS stuff, the app comp must be selected last else IS will autoselect
- // things we don't want.
- ComponentSelectItem(MEDIA, szReadmeComp, TRUE);
-
- // Lang comps are shared by all apps except the docs app
- if (pApp != &appDocs) then
- ComponentSelectItem(MEDIA, szLangComp, TRUE);
- endif;
-
- // Select the app's component
- ComponentSelectItem(MEDIA, pApp->szCompName, TRUE);
-
-// MessageBox("Install app: " + pApp->szCompName, INFORMATION);
-
- nResult = ProcessBeforeDataMove(pApp);
- if (nResult < 0) goto error;
-
- nResult = MoveFileData();
- if (nResult < 0) goto error;
-
- nResult = ProcessAfterDataMove();
- if (nResult < 0) goto error;
-
- nResult = CreateRegistrySets(pApp->szRegistrySets);
- if (nResult < 0) goto error;
-
- Disable(LOGGING);
-
- nResult = CreateRegistrySets(pApp->szNoLogRegistrySets);
- if (nResult < 0) goto error;
-
- nResult = ConfigUninstallDLL(pApp);
- if (nResult < 0) goto error;
-
- AddPath(pApp->szBinPath);
-
- // Now unselect it again
- ComponentSelectItem(MEDIA, pApp->szCompName, FALSE);
-
- pApp->bInstallSucceeded = TRUE;
-
- return 0;
-
-error:
- return nResult;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: ProcessBeforeDataMove
-//
-// Purpose: This function performs any necessary operations prior to the
-// actual file transfer.
-//
-///////////////////////////////////////////////////////////////////////////////
-function ProcessBeforeDataMove(pApp)
- STRING svLogFile;
- NUMBER nResult;
-begin
- // Create app information and App Paths registry keys.
- InstallationInfo(pApp->szCompanyName, pApp->szProductName, pApp->Ver.szTitle, pApp->szProductKey);
-
- svLogFile = pApp->szUninstLogfileName;
-
- // Create the uninstall reg key and open the log file
- nResult = DeinstallStart(TARGETDIR, svLogFile, pApp->szUninstKey, 0 );
- if (nResult < 0) then
- ShowError( @ERROR_UNINSTSETUP, WARNING );
- endif;
-
- szAppPath = pApp->szAppPath;
-
- // Fill in reg values for this apps reg key and uninstall reg key
- RegDBSetItem( REGDB_APPPATH, szAppPath );
- RegDBSetItem( REGDB_APPPATH_DEFAULT, szAppPath ^ pApp->szProductKey);
- RegDBSetItem( REGDB_UNINSTALL_NAME, pApp->szUninstDisplayName);
-
- return 0;
-end;
-
-
-/*
-function ShowIsSelected(comp)
- number nSel;
- string str;
-begin
- nSel = ComponentIsItemSelected(MEDIA , comp);
- if (nSel) then
- str = comp + " is selected.";
- MessageBox(str, INFORMATION);
- else
- str = comp + " is not selected.";
- endif;
-end;
-
-
-function ShowSelectedComponents()
-begin
- // Visible components
- ShowIsSelected(CLIENT_COMP_NAME);
- ShowIsSelected(LIGHT_CLIENT_COMP_NAME);
- ShowIsSelected(SERVER_COMP_NAME);
- ShowIsSelected(CC_COMP_NAME);
- ShowIsSelected(DOCS_COMP_NAME);
-
- // Language components
- ShowIsSelected(LANG_COMP_NAME);
- ShowIsSelected(LANG_ENGLISH_COMP_NAME);
- ShowIsSelected(LANG_SIMP_CHINESE_COMP_NAME);
- ShowIsSelected(LANG_TRAD_CHINESE_COMP_NAME);
- ShowIsSelected(LANG_KOREAN_COMP_NAME);
- ShowIsSelected(LANG_JAPANESE_COMP_NAME);
- ShowIsSelected(LANG_GERMAN_COMP_NAME);
- ShowIsSelected(LANG_SPANISH_COMP_NAME);
- ShowIsSelected(LANG_PORTUGUESE_COMP_NAME);
-
- // Documentation components
- ShowIsSelected(DOCS_ENGLISH_COMP_NAME);
- ShowIsSelected(DOCS_JAPANESE_COMP_NAME);
- ShowIsSelected(DOCS_KOREAN_COMP_NAME);
- ShowIsSelected(DOCS_SIMP_CHINESE_COMP_NAME);
- ShowIsSelected(DOCS_TRAD_CHINESE_COMP_NAME);
- ShowIsSelected(DOCS_GERMAN_COMP_NAME);
- ShowIsSelected(DOCS_SPANISH_COMP_NAME);
- ShowIsSelected(DOCS_PORTUGUESE_COMP_NAME);
-
- // Readme files components
- ShowIsSelected(README_COMP_NAME);
- ShowIsSelected(README_ENGLISH_COMP_NAME);
- ShowIsSelected(README_JAPANESE_COMP_NAME);
- ShowIsSelected(README_KOREAN_COMP_NAME);
- ShowIsSelected(README_SIMP_CHINESE_COMP_NAME);
- ShowIsSelected(README_TRAD_CHINESE_COMP_NAME);
- ShowIsSelected(README_GERMAN_COMP_NAME);
- ShowIsSelected(README_SPANISH_COMP_NAME);
- ShowIsSelected(README_PORTUGUESE_COMP_NAME);
-end;
-*/
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: MoveFileData
-//
-// Purpose: This function handles the file transfer for
-// the setup.
-//
-///////////////////////////////////////////////////////////////////////////////
-function MoveFileData()
- NUMBER nResult, nDisk;
-
-begin
- if (!bWSPPInstall) then
- Enable( INDVFILESTATUS );
- SetStatusWindow( 0, "" );
- Disable( DIALOGCACHE );
- Enable( STATUS );
- StatusUpdate( ON, 100 );
- endif;
-
- nResult = ComponentMoveData( MEDIA, nDisk, 0 );
-
- // Reinit this call so the progress indicator resets
- ComponentMoveData("", nDisk, 0);
-
- HandleMoveDataError( nResult );
-
- Disable( STATUS );
-
- return nResult;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: HandleMoveDataError
-//
-// Purpose: This function handles the error (if any) during the file transfer
-// operation.
-//
-///////////////////////////////////////////////////////////////////////////////
-function HandleMoveDataError( nResult )
- STRING szErrMsg, svComponent , svFileGroup , svFile;
- string szMsg;
-begin
- svComponent = "";
- svFileGroup = "";
- svFile = "";
-
- switch (nResult)
- case 0:
- return 0;
- default:
- ComponentError ( MEDIA , svComponent , svFileGroup , svFile , nResult );
- szErrMsg = @ERROR_MOVEDATA + "\n\n" +
- @ERROR_COMPONENT + " " + svComponent + "\n" +
- @ERROR_FILEGROUP + " " + svFileGroup + "\n" +
- @ERROR_FILE + " " + svFile;
- Sprintf(szMsg, szErrMsg, nResult);
- ShowError(szMsg, SEVERE);
- bInstallAborted = TRUE;
- return nResult;
- endswitch;
-
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: ProcessAfterDataMove
-//
-// Purpose: This function performs any necessary operations needed after
-// all files have been transferred.
-//
-///////////////////////////////////////////////////////////////////////////////
-function ProcessAfterDataMove()
- STRING szReferenceFile;
-
-begin
-
- // TO DO : update self-registered files and other processes that
- // should be performed after the files have been transferred.
-
- // DeinstallSetReference specifies a file to be checked before
- // uninstallation. If the file is in use, uninstallation will not proceed.
-
-// szReferenceFile = svDir ^ pApp->szProductKey; // TO DO : If your file is in a
- // subfolder of svDir add that here
-
-// DeinstallSetReference( szReferenceFile );
-
- return 0;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: CleanUpInstall
-//
-// Purpose: This cleans up the setup. Anything that should
-// be released or deleted at the end of the setup should
-// be done here.
-//
-///////////////////////////////////////////////////////////////////////////////
-function CleanUpInstall()
-
-begin
- if (bInstallAborted) then
- return 0;
- endif;
-
- if (!bWSPPInstall) then
- DialogShowSdFinishReboot();
- endif;
-
- if (BATCH_INSTALL) then // ensure locked files are properly transferred
- CommitSharedFiles(0);
- endif;
-
- return 0;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: GetLicenseFilename
-//
-// Purpose: This will determine the full path to the appropriate-language
-// license on the CD. Will default to English if the locale cannot
-// be determined.
-//
-///////////////////////////////////////////////////////////////////////////////
-function GetLicenseFilename(szLicense)
- number MajorLanguage;
-begin
- MajorLanguage = SELECTED_LANGUAGE & 255;
-
- switch(MajorLanguage)
- case ISLANG_CHINESE:
- if (SELECTED_LANGUAGE == ISLANG_CHINESE_TAIWAN) then
- szLicense = SRCDIR ^ LICENSE_TRAD_CHINESE_FILENAME;
- else
- szLicense = SRCDIR ^ LICENSE_SIMP_CHINESE_FILENAME;
- endif;
-
- case ISLANG_KOREAN:
- szLicense = SRCDIR ^ LICENSE_KOREAN_FILENAME;
-
- case ISLANG_JAPANESE:
- szLicense = SRCDIR ^ LICENSE_JAPANESE_FILENAME;
-
- case ISLANG_GERMAN:
- szLicense = SRCDIR ^ LICENSE_GERMAN_FILENAME;
-
- case ISLANG_PORTUGUESE:
- szLicense = SRCDIR ^ LICENSE_PORTUGUESE_FILENAME;
-
- case ISLANG_SPANISH:
- szLicense = SRCDIR ^ LICENSE_SPANISH_FILENAME;
-
- default:
- szLicense = SRCDIR ^ LICENSE_ENGLISH_FILENAME;
-
- endswitch;
-
- return 0;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: GetLanguageComp
-//
-// Purpose: This will determine which language the locale is set to. Uses
-// this info to determine which lang, readme, and doc comps to
-// install. Will default to English if the locale cannot be
-// determined.
-//
-///////////////////////////////////////////////////////////////////////////////
-function GetNlsComps(szLangComp, szReadmeComp, szDocsComp, szCodePage)
- number MajorLanguage;
-begin
- MajorLanguage = SELECTED_LANGUAGE & 255;
-
- switch(MajorLanguage)
- case ISLANG_CHINESE:
- if (SELECTED_LANGUAGE == ISLANG_CHINESE_TAIWAN) then
- szLangComp = LANG_TRAD_CHINESE_COMP_NAME;
- szReadmeComp = README_TRAD_CHINESE_COMP_NAME;
- szDocsComp = DOCS_TRAD_CHINESE_COMP_NAME;
- szCodePage = "1028";
- else
- szLangComp = LANG_SIMP_CHINESE_COMP_NAME;
- szReadmeComp = README_SIMP_CHINESE_COMP_NAME;
- szDocsComp = DOCS_SIMP_CHINESE_COMP_NAME;
- szCodePage = "2052";
- endif;
-
- case ISLANG_KOREAN:
- szLangComp = LANG_KOREAN_COMP_NAME;
- szReadmeComp = README_KOREAN_COMP_NAME;
- szDocsComp = DOCS_KOREAN_COMP_NAME;
- szCodePage = "1042";
-
- case ISLANG_JAPANESE:
- szLangComp = LANG_JAPANESE_COMP_NAME;
- szReadmeComp = README_JAPANESE_COMP_NAME;
- szDocsComp = DOCS_JAPANESE_COMP_NAME;
- szCodePage = "1041";
-
- case ISLANG_GERMAN:
- szLangComp = LANG_GERMAN_COMP_NAME;
- szReadmeComp = README_GERMAN_COMP_NAME;
- szDocsComp = DOCS_GERMAN_COMP_NAME;
- szCodePage = "1032";
-
- case ISLANG_PORTUGUESE:
- szLangComp = LANG_PORTUGUESE_COMP_NAME;
- szReadmeComp = README_PORTUGUESE_COMP_NAME;
- szDocsComp = DOCS_PORTUGUESE_COMP_NAME;
- szCodePage = "1046";
-
- case ISLANG_SPANISH:
- szLangComp = LANG_SPANISH_COMP_NAME;
- szReadmeComp = README_SPANISH_COMP_NAME;
- szDocsComp = DOCS_SPANISH_COMP_NAME;
- szCodePage = "1034";
-
- default:
- szLangComp = LANG_ENGLISH_COMP_NAME;
- szReadmeComp = README_ENGLISH_COMP_NAME;
- szDocsComp = DOCS_ENGLISH_COMP_NAME;
- szCodePage = "1033";
-
- endswitch;
-
- return 0;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: SetupVerInfo
-//
-// Purpose: This will initialize the VERINFO structures for a product.
-//
-///////////////////////////////////////////////////////////////////////////////
-function SetupVerInfo(pApp, szMajor, szMinor, szPatchLevel, szBetaLevel, szReleaseType, szTitle, bInstalledVerInfo)
- int nMajor;
- int nMinor;
- int nPatchLevel;
- int nBetaLevel;
-begin
- StrToNum(nMajor, szMajor);
- StrToNum(nMinor, szMinor);
- StrToNum(nPatchLevel, szPatchLevel);
- StrToNum(nBetaLevel, szBetaLevel);
-
- if (bInstalledVerInfo) then
- pApp->iVer.nMajorVersion = nMajor;
- pApp->iVer.nMinorVersion = nMinor;
- pApp->iVer.nPatchLevel = nPatchLevel;
- pApp->iVer.nBetaLevel = nBetaLevel;
- pApp->iVer.szReleaseType = szReleaseType;
- pApp->iVer.szTitle = szTitle;
- else
- pApp->Ver.nMajorVersion = nMajor;
- pApp->Ver.nMinorVersion = nMinor;
- pApp->Ver.nPatchLevel = nPatchLevel;
- pApp->Ver.nBetaLevel = nBetaLevel;
- pApp->Ver.szReleaseType = szReleaseType;
- pApp->Ver.szTitle = szTitle;
- endif;
-end;
-
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: FixTargetPaths
-//
-// Purpose: This function updates the CommonBinPath and app paths if you
-// choose to install to a different directory
-//
-///////////////////////////////////////////////////////////////////////////////
-function FixTargetPaths()
-begin
- // The AFS path must not contain spaces. AFS code will break if it does.
- LongPathToShortPath(TARGETDIR);
-
- szCommonBinPath = TARGETDIR ^ "Common";
-
- // Full Client
- appFullClient.szAppPath = TARGETDIR ^ "Client";
- appFullClient.szBinPath = TARGETDIR ^ "Client\\Program";
-
- // Light Client
- appLightClient.szAppPath = TARGETDIR ^ "Client";
- appLightClient.szBinPath = TARGETDIR ^ "Client\\Program";
-
- // Server
- appServer.szAppPath = TARGETDIR ^ "Server";
- appServer.szBinPath = TARGETDIR ^ "Server\\usr\\afs\\bin";
-
- // Control Center
- appControlCenter.szAppPath = TARGETDIR ^ "Control Center";
- appControlCenter.szBinPath = TARGETDIR ^ "Control Center";
-
- // Docs
- appDocs.szAppPath = TARGETDIR ^ "Documentation";
- appDocs.szBinPath = TARGETDIR ^ "Documentation";
-end;
-
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: SetupAppInfo
-//
-// Purpose: This will initialize the APPINFO structures for each product
-// that we can install.
-//
-///////////////////////////////////////////////////////////////////////////////
-function SetupAppInfo()
-int n;
-begin
- szCommonBinPath = TARGETDIR ^ "Common";
-
- // Full Client
- appFullClient.szCompName = CLIENT_COMP_NAME; // Component name
- appFullClient.szCompanyName = @COMPANY_NAME;
- appFullClient.szProductName = @PRODUCT_NAME_CLIENT;
- appFullClient.szProductKey = @PRODUCT_KEY_CLIENT;
- appFullClient.bUseUninstDLL = TRUE;
- appFullClient.szUninstDllName = CLIENT_UNINST_DLL_NAME;
- appFullClient.szUninstLogfileName = CLIENT_UNINST_LOGFILE_NAME;
- appFullClient.szUninstKey = @UNINST_KEY_CLIENT;
- appFullClient.szAppPath = TARGETDIR ^ "Client";
- appFullClient.szBinPath = TARGETDIR ^ "Client\\Program";
- appFullClient.bAddToPath = TRUE;
- appFullClient.szUninstDisplayName = @UNINST_DISPLAY_NAME_CLIENT;
- appFullClient.szRegistrySets = "Client,Full_Client";
- appFullClient.szNoLogRegistrySets = "Client_NoUninstall,WinNT_Client_NoUninstall";
- appFullClient.bInstallSucceeded = FALSE;
- SetupVerInfo(&appFullClient, @PRODUCT_VERSION_MAJOR, @PRODUCT_VERSION_MINOR, @PRODUCT_VERSION_PATCH_LEVEL, @PRODUCT_VERSION_BETA_LEVEL, @PRODUCT_VERSION_RELEASE_TYPE, @PRODUCT_VERSION_TITLE, FALSE);
-
- // Light Client
- if (bWin95) then
- appLightClient.szCompName = LIGHT95_CLIENT_COMP_NAME;
- elseif (bWin98) then
- appLightClient.szCompName = LIGHT98_CLIENT_COMP_NAME;
- endif;
- appLightClient.szCompanyName = @COMPANY_NAME;
- appLightClient.szProductName = @PRODUCT_NAME_LIGHT_CLIENT;
- appLightClient.szProductKey = @PRODUCT_KEY_LIGHT_CLIENT;
- appLightClient.bUseUninstDLL = TRUE;
- appLightClient.szUninstDllName = LIGHT_CLIENT_UNINST_DLL_NAME;
- appLightClient.szUninstLogfileName = LIGHT_CLIENT_UNINST_LOGFILE_NAME;
- appLightClient.szUninstKey = @UNINST_KEY_LIGHT_CLIENT;
- appLightClient.szAppPath = TARGETDIR ^ "Client";
- appLightClient.szBinPath = TARGETDIR ^ "Client\\Program";
- appLightClient.bAddToPath = TRUE;
- appLightClient.szUninstDisplayName = @UNINST_DISPLAY_NAME_LIGHT_CLIENT;
- appLightClient.szRegistrySets = "Client,LightClient";
- appLightClient.szNoLogRegistrySets = "Client_NoUninstall";
- appLightClient.bInstallSucceeded = FALSE;
- SetupVerInfo(&appLightClient, @PRODUCT_VERSION_MAJOR, @PRODUCT_VERSION_MINOR, @PRODUCT_VERSION_PATCH_LEVEL, @PRODUCT_VERSION_BETA_LEVEL, @PRODUCT_VERSION_RELEASE_TYPE, @PRODUCT_VERSION_TITLE, FALSE);
-
- // Server
- appServer.szCompName = SERVER_COMP_NAME;
- appServer.szCompanyName = @COMPANY_NAME;
- appServer.szProductName = @PRODUCT_NAME_SERVER;
- appServer.szProductKey = @PRODUCT_KEY_SERVER;
- appServer.bUseUninstDLL = TRUE;
- appServer.szUninstDllName = SERVER_UNINST_DLL_NAME;
- appServer.szUninstLogfileName = SERVER_UNINST_LOGFILE_NAME;
- appServer.szUninstKey = @UNINST_KEY_SERVER;
- appServer.szAppPath = TARGETDIR ^ "Server";
- appServer.szBinPath = TARGETDIR ^ "Server\\usr\\afs\\bin";
- appServer.bAddToPath = TRUE;
- appServer.szUninstDisplayName = @UNINST_DISPLAY_NAME_SERVER;
- appServer.szRegistrySets = "Server";
- appServer.szNoLogRegistrySets = "";
- appServer.bInstallSucceeded = FALSE;
- SetupVerInfo(&appServer, @PRODUCT_VERSION_MAJOR, @PRODUCT_VERSION_MINOR, @PRODUCT_VERSION_PATCH_LEVEL, @PRODUCT_VERSION_BETA_LEVEL, @PRODUCT_VERSION_RELEASE_TYPE, @PRODUCT_VERSION_TITLE, FALSE);
-
- // Control Center
- appControlCenter.szCompName = CC_COMP_NAME;
- appControlCenter.szCompanyName = @COMPANY_NAME;
- appControlCenter.szProductName = @PRODUCT_NAME_CC;
- appControlCenter.szProductKey = @PRODUCT_KEY_CC;
- appControlCenter.bUseUninstDLL = TRUE;
- appControlCenter.szUninstDllName = CC_UNINST_DLL_NAME;
- appControlCenter.szUninstLogfileName = CC_UNINST_LOGFILE_NAME;
- appControlCenter.szUninstKey = @UNINST_KEY_CC;
- appControlCenter.szAppPath = TARGETDIR ^ "Control Center";
- appControlCenter.szBinPath = TARGETDIR ^ "Control Center";
- appControlCenter.bAddToPath = TRUE;
- appControlCenter.szUninstDisplayName = @UNINST_DISPLAY_NAME_CC;
- appControlCenter.szRegistrySets = "Control_Center";
- appControlCenter.szNoLogRegistrySets = "";
- appControlCenter.bInstallSucceeded = FALSE;
- SetupVerInfo(&appControlCenter, @PRODUCT_VERSION_MAJOR, @PRODUCT_VERSION_MINOR, @PRODUCT_VERSION_PATCH_LEVEL, @PRODUCT_VERSION_BETA_LEVEL, @PRODUCT_VERSION_RELEASE_TYPE, @PRODUCT_VERSION_TITLE, FALSE);
-
- // Docs
- appDocs.szCompName = DOCS_COMP_NAME;
- appDocs.szCompanyName = @COMPANY_NAME;
- appDocs.szProductName = @PRODUCT_NAME_DOCS;
- appDocs.szProductKey = @PRODUCT_KEY_DOCS;
- appDocs.bUseUninstDLL = TRUE;
- appDocs.szUninstDllName = DOCS_UNINST_DLL_NAME;
- appDocs.szUninstLogfileName = DOCS_UNINST_LOGFILE_NAME;
- appDocs.szUninstKey = @UNINST_KEY_DOCS;
- appDocs.szAppPath = TARGETDIR ^ "Documentation";
- appDocs.szBinPath = TARGETDIR ^ "Documentation";
- appDocs.bAddToPath = FALSE;
- appDocs.szUninstDisplayName = @UNINST_DISPLAY_NAME_DOCS;
- appDocs.szRegistrySets = "Docs";
- appDocs.szNoLogRegistrySets = "";
- appDocs.bInstallSucceeded = FALSE;
- SetupVerInfo(&appDocs, @PRODUCT_VERSION_MAJOR, @PRODUCT_VERSION_MINOR, @PRODUCT_VERSION_PATCH_LEVEL, @PRODUCT_VERSION_BETA_LEVEL, @PRODUCT_VERSION_RELEASE_TYPE, @PRODUCT_VERSION_TITLE, FALSE);
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: SetupInstall
-//
-// Purpose: This will initialize the setup. Any general initialization
-// needed for the installation should be performed here.
-//
-///////////////////////////////////////////////////////////////////////////////
-function SetupInstall()
-begin
- Enable( CORECOMPONENTHANDLING );
-
- szCellName=@CELLNAME_DEFAULT;
- bInstallAborted = FALSE;
-
- // Create list of end user selections to be displayed by DialogShowSdStartCopy()
-
- svDir = PROGRAMFILES ^ @DEFAULT_INSTALL_DIR;
-
- TARGETDIR = svDir;
-
- SdProductName( @PRODUCT_NAME );
-
- Enable( DIALOGCACHE );
-
- SetDialogTitle(DLG_ASK_YESNO, @TITLE_CAPTIONBAR);
- SetDialogTitle(DLG_MSG_INFORMATION, @TITLE_CAPTIONBAR);
- SetDialogTitle(DLG_MSG_WARNING, @TITLE_CAPTIONBAR);
- SetDialogTitle(DLG_MSG_SEVERE, @TITLE_CAPTIONBAR);
- SetDialogTitle(DLG_USER_CAPTION, @TITLE_CAPTIONBAR);
-end;
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: SetupScreen
-//
-// Purpose: This function establishes the screen look. This includes
-// colors, fonts, and text to be displayed.
-//
-///////////////////////////////////////////////////////////////////////////////
-function SetupScreen()
-begin
- Enable( FULLWINDOWMODE );
- SetTitle( @TITLE_MAIN, 24, WHITE );
-
- SetTitle( @TITLE_CAPTIONBAR, 0, BACKGROUNDCAPTION ); // Caption bar text.
-
- Enable( BACKGROUND );
-
- Delay( 1 );
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: CheckRequirements
-//
-// Purpose: This function checks all minimum requirements for the
-// application being installed. If any fail, then the user
-// is informed and the setup is terminated.
-//
-///////////////////////////////////////////////////////////////////////////////
-function CheckRequirements()
- NUMBER nvDx, nvDy, nvResult;
- STRING svResult;
-begin
- bWinNT = FALSE;
- bWin95 = FALSE;
- bWin98 = FALSE;
- bIsShellExplorer = FALSE;
-
- // Check screen resolution.
- GetExtents( nvDx, nvDy );
-
- if (nvDy < 480) then
- ShowError( @ERROR_VGARESOLUTION, WARNING );
- abort;
- endif;
-
- // set 'setup' operation mode
- bIs32BitSetup = TRUE;
- GetSystemInfo( ISTYPE, nvResult, svResult );
- if (nvResult = 16) then
- bIs32BitSetup = FALSE; // running 16-bit setup
- return 0; // no additional information required
- endif;
-
- // --- 32-bit testing after this point ---
-
- // Determine the target system's operating system.
- GetSystemInfo( OS, nvResult, svResult );
-
- if (nvResult = IS_WINDOWSNT) then
- // Running Windows NT.
- bWinNT = TRUE;
-
- // If the user is not an admin, then abort
- if (CheckIfAdmin() = -1) then
- ShowError(@MUST_BE_AN_ADMIN_MSG, SEVERE);
- abort;
- endif;
-
- // Check to see if the shell being used is EXPLORER shell.
- if (GetSystemInfo( OSMAJOR, nvResult, svResult ) = 0) then
- if (nvResult >= 4) then
- bIsShellExplorer = TRUE;
- endif;
- endif;
-
- elseif (nvResult = IS_WINDOWS95) then
- // IS puts us here even for Win98
- if (IsWin98() = 0) then
- bWin98 = TRUE;
- else
- bWin95 = TRUE;
- endif;
-
- bIsShellExplorer = TRUE;
- endif;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: DialogShowSdWelcome
-//
-// Purpose: This function handles the standard welcome dialog.
-//
-//
-///////////////////////////////////////////////////////////////////////////////
-function DialogShowSdWelcome()
- NUMBER nResult;
- STRING szTitle, szMsg;
-
-begin
-
- szTitle = "";
- szMsg = @WELCOME_MESSAGE;
- nResult = SdWelcome( szTitle, szMsg );
-
- return nResult;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: DialogShowSdAskDestPath
-//
-// Purpose: This function asks the user for the destination folder.
-//
-///////////////////////////////////////////////////////////////////////////////
-function DialogShowSdAskDestPath()
- NUMBER nResult;
- STRING szTitle, szMsg;
-
-begin
-
- szTitle = "";
- szMsg = "";
- nResult = SdAskDestPath( szTitle, szMsg, svDir, 0 );
-
- TARGETDIR = svDir;
- FixTargetPaths();
-
- return nResult;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: GetVersionNumber
-//
-// Purpose: This function converts a version number string into an integer.
-//
-///////////////////////////////////////////////////////////////////////////////
-function GetVersionNumber(szVerion)
- int nVersion;
- int nMajorVersion;
- int nMinorVersion;
- string szVer[64];
-begin
- // This code assumes a majorversion.minorversion format.
- szVer = szVerion;
-
- // This will get everything up to the '.'
- StrToNum(nMajorVersion, szVer);
-
- // Delete the part of the string we just converted
- StrSub(szVer, szVer, StrFind(szVer, ".") + 1, 64);
-
- // Now convert the part after the '.'
- StrToNum(nMinorVersion, szVer);
-
- // Turn in into a single number
- nVersion = (nMajorVersion * 10) + nMinorVersion;
-
- return nVersion;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: CompareVersions
-//
-// Purpose: This function compares an apps two version info structures and
-// determines if one is greater than the other, or if they are equal.
-//
-///////////////////////////////////////////////////////////////////////////////
-function CompareVersions(pApp)
- int nResult;
-begin
- // Compare major versions
- nResult = pApp->Ver.nMajorVersion - pApp->iVer.nMajorVersion;
- if (nResult > 0) then return 1; endif;
- if (nResult < 0) then return -1; endif;
-
- // Major versions are equal, move on to minor versions
- nResult = pApp->Ver.nMinorVersion - pApp->iVer.nMinorVersion;
- if (nResult > 0) then return 1; endif;
- if (nResult < 0) then return -1; endif;
-
- // Minor versions are equal, move on to patch level.
- nResult = pApp->Ver.nPatchLevel - pApp->iVer.nPatchLevel;
- if (nResult > 0) then return 1; endif;
- if (nResult < 0) then return -1; endif;
-
- // Patch levels are equal, move on to release type.
- if ((pApp->Ver.szReleaseType = RELEASE_TYPE_GA) && (pApp->iVer.szReleaseType = RELEASE_TYPE_BETA)) then return 1; endif;
- if ((pApp->Ver.szReleaseType = RELEASE_TYPE_BETA) && (pApp->iVer.szReleaseType = RELEASE_TYPE_GA)) then return -1; endif;
-
- // Release types are equal. Special handling now required:
-
- // If this is a GA release, then there is no more info to look at, and the versions are equal.
- if (pApp->Ver.szReleaseType = RELEASE_TYPE_GA) then return 0; endif;
-
- // We have a Beta release, so we still have some info to check. Compare the beta release levels.
- nResult = pApp->Ver.nBetaLevel - pApp->iVer.nBetaLevel;
- if (nResult > 0) then return 1; endif;
- if (nResult < 0) then return -1; endif;
-
- // Beta versions are equal.
- return 0;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: GetInstallAction
-//
-// Purpose: This function decides what install action to perform for a
-// component and sets the display name accordingly.
-//
-///////////////////////////////////////////////////////////////////////////////
-function GetInstallAction(szCompName, bInstalled, szInstallMsg, szUpgradeMsg, szDowngradeMsg, szReinstallMsg, pApp)
- string szDisplayName;
- string szVerMsg;
- int nResult;
-begin
- szVerMsg = "";
-
- if (bInstalled) then
- nResult = CompareVersions(pApp);
-
- if (nResult = 0) then
- szDisplayName = szReinstallMsg;
- pApp->nInstallAction = ACTION_REINSTALL;
-
- elseif (nResult > 0) then
- szDisplayName = szUpgradeMsg;
- pApp->nInstallAction = ACTION_UPGRADE;
- Sprintf(szVerMsg, " %s", pApp->iVer.szTitle);
-
- else // Trying to install old version on top of new version
- szDisplayName = szDowngradeMsg;
- pApp->nInstallAction = ACTION_DOWNGRADE;
- Sprintf(szVerMsg, " %s", pApp->iVer.szTitle);
- endif;
- else
- szDisplayName = szInstallMsg;
- pApp->nInstallAction = ACTION_INSTALL;
- endif;
-
- szDisplayName = szDisplayName + szVerMsg;
-
- ComponentSetData(MEDIA, szCompName, COMPONENT_FIELD_DISPLAYNAME, 0, szDisplayName);
-
- return TRUE;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: GetInstallActions
-//
-// Purpose: This function decides what install action to perform for each
-// component and sets the display name accordingly.
-//
-///////////////////////////////////////////////////////////////////////////////
-function GetInstallActions()
-begin
- // Decide what to do for each component and then set the display names appropriately
- GetInstallAction(CLIENT_COMP_NAME, bClientInstalled, @INSTALL_CLIENT_MSG, @UPGRADE_CLIENT_MSG, @DOWNGRADE_CLIENT_MSG, @REINSTALL_CLIENT_MSG, &appFullClient);
- GetInstallAction(SERVER_COMP_NAME, bServerInstalled, @INSTALL_SERVER_MSG, @UPGRADE_SERVER_MSG, @DOWNGRADE_SERVER_MSG, @REINSTALL_SERVER_MSG, &appServer);
- GetInstallAction(CC_COMP_NAME, bCcInstalled, @INSTALL_CC_MSG, @UPGRADE_CC_MSG, @DOWNGRADE_CC_MSG, @REINSTALL_CC_MSG, &appControlCenter);
- GetInstallAction(LIGHT_CLIENT_COMP_NAME, bLightClientInstalled, @INSTALL_LIGHT_CLIENT_MSG, @UPGRADE_LIGHT_CLIENT_MSG, @DOWNGRADE_LIGHT_CLIENT_MSG, @REINSTALL_LIGHT_CLIENT_MSG, &appLightClient);
- GetInstallAction(DOCS_COMP_NAME, bDocsInstalled, @INSTALL_DOCS_MSG, @UPGRADE_DOCS_MSG, @DOWNGRADE_DOCS_MSG, @REINSTALL_DOCS_MSG, &appDocs);
-end;
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: ClientSelectedOrInstalled
-//
-// Purpose: This function checks whether or not the client is selected or if
-// it is already installed.
-//
-///////////////////////////////////////////////////////////////////////////////
-function ClientSelectedOrInstalled()
-begin
- if (bFullClientSel || bClientInstalled) then
- return TRUE;
- endif;
-
- return FALSE;
-end;
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: AppVersionOk
-//
-// Purpose: This function determines if a given app will have the correct
-// version after installation.
-//
-///////////////////////////////////////////////////////////////////////////////
-function AppVersionOk(bInstalled, bSel, pApp)
- BOOL bOk;
-begin
- // Here's the logic of this:
- //
- // 1) If the app is not installed and
- // a) it's not being installed, then this app doesn't affect the version
- // restrictions, so return true
- // b) it will be installed, then it will get the version which this
- // installer installs, so the version will be ok
- //
- // 2) If the app is installed and
- // a) the app is selected for reinstall, upgrade, or downgrade, then the
- // newly installed version will be the version this installer installs,
- // and so the version will be ok
- // b) the app is not selected for reinstall, upgrade, or downgrade, then
- // the version is ok only if the app's current version matches the
- // the version of this installer
-
- bOk = !bInstalled || bSel || (CompareVersions(pApp) = 0);
-
- return bOk;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: DialogShowSdAskComponentDialog
-//
-// Purpose: This function asks the user which components to install
-// and what the destination folder should be.
-//
-///////////////////////////////////////////////////////////////////////////////
-function DialogShowSdAskComponentDialog()
- NUMBER nResult;
- STRING szTitle, szMsg, szComponent, szFilename;
- BOOL bClient, bServer, bCc, bDocs, bVersionsOK;
-begin
-
- szTitle = "";
- szMsg = "";
- szComponent = "";
-
- // If running WinNT hide the Light Client component. If the user wants to only
- // allow client installs, then hide all but the Client component as well. If not
- // running on NT, then hide all but the Light Client component.
- if (bWinNT) then
- ComponentSetData(MEDIA, LIGHT_CLIENT_COMP_NAME, COMPONENT_FIELD_VISIBLE, FALSE, "");
- ComponentSelectItem(MEDIA, LIGHT_CLIENT_COMP_NAME, FALSE);
-
- if (FindFile(SRCDIR, ALLOW_ONLY_CLIENT_FLAG_FILENAME, szFilename) = 0) then
- ComponentSetData(MEDIA, SERVER_COMP_NAME, COMPONENT_FIELD_VISIBLE, FALSE, "");
- ComponentSetData(MEDIA, CC_COMP_NAME, COMPONENT_FIELD_VISIBLE, FALSE, "");
- ComponentSetData(MEDIA, DOCS_COMP_NAME, COMPONENT_FIELD_VISIBLE, FALSE, "");
- ComponentSelectItem(MEDIA, DOCS_COMP_NAME, FALSE);
- endif;
- ComponentSelectItem(MEDIA, SERVER_COMP_NAME, FALSE);
- if (@CELLNAME_DEFAULT % ".") then
- ComponentSelectItem(MEDIA, CC_COMP_NAME, FALSE);
- else
- ComponentSelectItem(MEDIA, CC_COMP_NAME, TRUE);
- endif;
-else
- ComponentSetData(MEDIA, CLIENT_COMP_NAME, COMPONENT_FIELD_VISIBLE, FALSE, "");
- ComponentSetData(MEDIA, SERVER_COMP_NAME, COMPONENT_FIELD_VISIBLE, FALSE, "");
- ComponentSetData(MEDIA, CC_COMP_NAME, COMPONENT_FIELD_VISIBLE, FALSE, "");
- ComponentSetData(MEDIA, DOCS_COMP_NAME, COMPONENT_FIELD_VISIBLE, FALSE, "");
-
- ComponentSelectItem(MEDIA, SERVER_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, CLIENT_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, CC_COMP_NAME, FALSE);
- ComponentSelectItem(MEDIA, DOCS_COMP_NAME, FALSE);
- endif;
-
-retry:
- nResult = SdComponentDialog(szTitle, szMsg, svDir, szComponent);
-
- // Enforce selection rules - something must be selected and
- // the client must be selected if the server is. However, take into
- // account if it is already installed.
- bFullClientSel = ComponentIsItemSelected(MEDIA , CLIENT_COMP_NAME);
- bLightClientSel = ComponentIsItemSelected(MEDIA , LIGHT_CLIENT_COMP_NAME);
- bServerSel = ComponentIsItemSelected(MEDIA , SERVER_COMP_NAME);
- bCcSel = ComponentIsItemSelected(MEDIA , CC_COMP_NAME);
- bDocsSel = ComponentIsItemSelected(MEDIA , DOCS_COMP_NAME);
-
- if (!bFullClientSel && !bLightClientSel && !bServerSel && !bCcSel && !bDocsSel) then
- ShowError(@NOTHING_SELECTED_MSG, SEVERE);
- goto retry;
- endif;
-
- if (bServerSel && !ClientSelectedOrInstalled()) then
- ShowError(@SERVER_NEEDS_CLIENT_MSG, SEVERE);
- goto retry;
- endif;
-
- // Also, if upgrading or downgrading, all apps must be at the same version level.
- // We won't upgrade one app to a higer version than another, and we won't downgrade
- // one app to a lowel version than another. All must be at the same level when the
- // install program is done. This is necessary because the apps share some files.
- if (!bWinNT) then
- bVersionsOK = TRUE;
- else
- bClient = AppVersionOk(bClientInstalled, bFullClientSel, &appFullClient);
- bServer = AppVersionOk(bServerInstalled, bServerSel, &appServer);
- bCc = AppVersionOk(bCcInstalled, bCcSel, &appControlCenter);
- bDocs = AppVersionOk(bDocsInstalled, bDocsSel, &appDocs);
- bVersionsOK = bClient && bServer && bCc && bDocs;
- endif;
-
- if (!bVersionsOK) then
- ShowError(@APPS_NOT_SAME_VERSION, SEVERE);
- goto retry;
- endif;
-
- TARGETDIR = svDir;
- FixTargetPaths();
-
- return nResult;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: DialogShowSdSetupType
-//
-// Purpose: This function displays the standard setup type dialog.
-//
-///////////////////////////////////////////////////////////////////////////////
-function DialogShowSdSetupType()
- NUMBER nResult, nType;
- STRING szTitle, szMsg, szReserved;
-
-begin
-
- if (svSetupType == "") then
- svSetupType = "AFS Server";
- endif;
-
- szTitle = "";
- szMsg = @SETUP_TYPE_MSG;
- szReserved = "";
-
- nResult = SdSetupTypeEx(szTitle, szMsg, szReserved, svSetupType, 0);
-
- return nResult;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: DialogShowSdSelectFolder
-//
-// Purpose: This function displays the standard folder selection dialog.
-//
-//
-///////////////////////////////////////////////////////////////////////////////
-function DialogShowSdSelectFolder()
- NUMBER nResult;
- STRING szTitle, szMsg;
-begin
- if (SHELL_OBJECT_FOLDER = "") then
- SHELL_OBJECT_FOLDER = @FOLDER_NAME;
- endif;
-
- // We are going to force the user to use the default folder name. This is
- // because we create the folder unlogged, and must therefore remove it
- // ourselves in our uninstall dll (which we do because IS doesn't handle
- // removing them correctly). Therefore, we must know the name of the
- // folder so we can remove it during uninstall. Also, the user can install
- // the AFS components during several executions of the install program,
- // and we don't want to allow them to pick a different folder each time.
- // We could solve these problems in code but we don't have time, so we
- // are going to force them to use our default folder name.
- return 0;
-
- szTitle = "";
- szMsg = "";
- nResult = SdSelectFolder( szTitle, szMsg, SHELL_OBJECT_FOLDER);
-
- return nResult;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: DialogShowSdFinishReboot
-//
-// Purpose: This function will show the last dialog of the product.
-// It will allow the user to reboot and/or show some readme text.
-//
-///////////////////////////////////////////////////////////////////////////////
-function DialogShowSdFinishReboot()
- NUMBER nResult, nDefOptions;
- STRING szTitle, szMsg1, szMsg2, szOption1, szOption2;
- NUMBER bOpt1, bOpt2;
-begin
- if (!BATCH_INSTALL) then
- bOpt1 = FALSE;
- bOpt2 = FALSE;
- szMsg1 = @SETUP_FINISHED_MSG;
- szMsg2 = "";
- szOption1 = "";
- szOption2 = "";
- szTitle = "";
- nResult = SdFinish(szTitle, szMsg1, szMsg2, szOption1, szOption2, bOpt1, bOpt2 );
- return 0;
- endif;
-
- nDefOptions = SYS_BOOTMACHINE;
- szTitle = "";
- szMsg1 = "";
- szMsg2 = "";
- nResult = SdFinishReboot( szTitle, szMsg1, nDefOptions, szMsg2, 0 );
-
- return nResult;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: ConfigServerService
-//
-// Purpose: This function will configure the AFS Server bos service via the
-// SCM.
-//
-///////////////////////////////////////////////////////////////////////////////
-function ConfigServerService()
- STRING szMsg;
- BOOL bError;
- number nStatus;
-begin
- bError = TRUE;
-
- if (!bWSPPInstall) then
- szMsg = @CONFIGURING_AFS_SERVER_SERVICE;
- SdShowMsg(szMsg, TRUE);
- endif;
-
- nStatus = RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
- if (nStatus < 0) goto error;
-
- nStatus = InstallServerService(TARGETDIR ^ "\\Server\\usr\\afs\\bin\\bosctlsvc.exe");
- if (nStatus < 0) goto error;
-
- bError = FALSE;
-
-error:
- if (!bWSPPInstall) then
- SdShowMsg(szMsg, FALSE);
- endif;
-
- if (bError) then
- Sprintf(szMsg, @AFS_SERVER_SERVICE_INSTALL_ERROR, nStatus);
- ShowError(szMsg, SEVERE);
- bInstallAborted = TRUE;
- return -1;
- endif;
-
- return 0;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: ConfigClientService
-//
-// Purpose: This function will configure the AFS Client service via the SCM.
-//
-///////////////////////////////////////////////////////////////////////////////
-function ConfigClientService()
- STRING szMsg;
- BOOL bError;
- number nStatus;
-begin
- bError = TRUE;
-
- if (!bWSPPInstall) then
- szMsg = @CONFIGURING_AFS_CLIENT_SERVICE;
- SdShowMsg(szMsg, TRUE);
- endif;
-
- nStatus = RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
- if (nStatus < 0) goto error;
-
- nStatus = InstallClientService(TARGETDIR ^ "\\Client\\Program\\afsd_service.exe");
- if (nStatus < 0) goto error;
-
- bError = FALSE;
-
-error:
- if (!bWSPPInstall) then
- SdShowMsg(szMsg, FALSE);
- endif;
-
- if (bError) then
- Sprintf(szMsg, @AFS_CLIENT_SERVICE_INSTALL_ERROR, nStatus);
- ShowError(szMsg, SEVERE);
- bInstallAborted = TRUE;
- return -1;
- endif;
-
- return 0;
-end;
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: AddPath
-//
-// Purpose: This function will add the specified path to the system PATH
-// environment variable.
-//
-///////////////////////////////////////////////////////////////////////////////
-function AddPath(szPath)
-begin
- LongPathToShortPath(szPath);
- if (bWin98 || bWin95) then
- if (EzBatchAddPath ("Path", szPath, "", AFTER) < 0) then
- ShowError(@ADD_PATH_ERROR, WARNING);
- endif;
- else
- if (AddToPath(szPath) < 0) then
- ShowError(@ADD_PATH_ERROR, WARNING);
- endif;
- endif;
- return 0;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: ConfigUninstallDLL
-//
-// Purpose: This function will modify the uninstall entry for these products
-// to use an uninstall dll.
-//
-///////////////////////////////////////////////////////////////////////////////
-function ConfigUninstallDLL(pApp)
- string svValue;
- NUMBER nStatus;
-begin
- if (!pApp->bUseUninstDLL) then
- return 0;
- endif;
-
- nStatus = RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
- if (nStatus < 0) goto error;
-
- svValue = UNINST + " -c\"" + pApp->szBinPath ^ pApp->szUninstDllName + "\" -f\"" + TARGETDIR ^ pApp->szUninstLogfileName + "\"";
-
- nStatus = RegDBSetKeyValueEx(MSUNINSTALL_KEY ^ pApp->szProductName, "UninstallString", REGDB_STRING, svValue, -1);
- if (nStatus < 0) goto error;
-
- return 0;
-
-error:
- return nStatus;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: CreateServerDirs
-//
-// Purpose: This function will create directories that the server programs
-// need. The creation of these is not logged, and so they will be
-// deleted by the uninstall dll.
-//
-///////////////////////////////////////////////////////////////////////////////
-function CreateServerDirs()
-begin
- CreateDir(TARGETDIR ^ "\\Server\\usr\\afs\\logs");
- CreateDir(TARGETDIR ^ "\\Server\\usr\\afs\\etc");
- CreateDir(TARGETDIR ^ "\\Server\\usr\\afs\\local");
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: GetDateTimeString()
-//
-// Purpose: This function will return a string containing the current date
-// and time.
-//
-///////////////////////////////////////////////////////////////////////////////
-function GetDateTimeString(szDateTime)
- STRING szDate, szTime;
- NUMBER nDate, nTime;
-begin
- GetSystemInfo(DATE, nDate, szDate);
- GetSystemInfo(TIME, nTime, szTime);
-
- szDateTime = szDate + " " + szTime;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: SetUserVars()
-//
-// Purpose: This function will set at runtime values for user defined variables
-// we set up in the Registry Entries GUI tool.
-//
-///////////////////////////////////////////////////////////////////////////////
-function SetUserVars()
- number nStatus;
- string szInstallDate;
- string szDesc;
- string szTitle;
- string szReleaseType;
-begin
- // Set the install date variable's value
- GetDateTimeString(szInstallDate);
-
- ComponentSetTarget(MEDIA, "<INSTALL_DATE>", szInstallDate);
-
- // Set the proper client logon dll
- if (bFullClientSel) then
- ComponentSetTarget(MEDIA, "<LOGON_DLL>", TARGETDIR ^ FULL_CLIENT_LOGON_DLL);
- elseif (bLightClientSel) then
- ComponentSetTarget(MEDIA, "<LOGON_DLL>", TARGETDIR ^ LIGHT_CLIENT_LOGON_DLL);
- endif;
-
- // Set the client description and title values
- if (bFullClientSel || bLightClientSel) then
-
- if (bFullClientSel) then
- szDesc = @CLIENT_DESC;
- szTitle = @CLIENT_TITLE;
- else
- szDesc = @LIGHT_CLIENT_DESC;
- szTitle = @LIGHT_CLIENT_TITLE;
- endif;
-
- ComponentSetTarget(MEDIA, "<CLIENT_DESC>", szDesc);
- ComponentSetTarget(MEDIA, "<CLIENT_TITLE>", szTitle);
- endif;
-
- if (bServerSel) then
- ComponentSetTarget(MEDIA, "<EVENT_MSG_DLL>", TARGETDIR ^ "Common\\afseventmsg_" + szCodePage + ".dll");
- endif;
-
- szReleaseType = @PRODUCT_VERSION_RELEASE_TYPE;
- ComponentSetTarget(MEDIA, "<RELEASE_TYPE>", szReleaseType);
-
-done:
- return nStatus;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: SetNetworkProviderOrder()
-//
-// Purpose: This function will add the AFS Client service name to the
-// ProviderOrder value of the
-// HKLM\SYSTEM\CurrentControlSet\ControlNetworkProvider\Order key.
-// It makes a call to the setup dll to do this.
-///////////////////////////////////////////////////////////////////////////////
-function SetNetworkProviderOrder()
- int nStatus;
-begin
- nStatus = AddToNetworkProviderOrder(CLIENT_SERVICE_NAME);
- if (nStatus < 0) then
- ShowError(@SET_NETWORK_PROVIDER_ERROR, SEVERE);
- endif;
-
- return nStatus;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: CreateRegistrySets()
-//
-// Purpose: This function will create the registry entries for each resgistry
-// set in the passed in string. The string must be a comma separated
-// list of registry sets created using the IS Registry Entries GUI.
-//
-///////////////////////////////////////////////////////////////////////////////
-function CreateRegistrySets(szRegistrySets)
- int nRegSetListID;
- int nResult;
- string szRegSet;
-begin
- nRegSetListID = ListCreate(STRINGLIST);
-
- StrGetTokens(nRegSetListID, szRegistrySets, ",");
-
- nResult = ListGetFirstString(nRegSetListID, szRegSet);
- while (nResult != END_OF_LIST)
-// MessageBox(szRegSet, INFORMATION);
- CreateRegistrySet(szRegSet);
- nResult = ListGetNextString(nRegSetListID, szRegSet);
- endwhile;
-
- ListDestroy(nRegSetListID);
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: ConfigAfsCreds()
-//
-// Purpose: This function will config the AFS Client Credentials tool.
-//
-///////////////////////////////////////////////////////////////////////////////
-function ConfigAfsCreds()
-int nResult;
-begin
- nResult = LaunchAppAndWait(TARGETDIR ^ "Client\\Program\\afscreds.exe", "/install", WAIT);
- if (nResult < 0) then
- ShowError(@CONFIGURING_AFS_CREDS_ERROR, INFORMATION);
- endif;
-
- return nResult;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: IsAppInstalled
-//
-// Purpose: This function will determine if an app is installed, and if it is,
-// will set its iVer info.
-//
-///////////////////////////////////////////////////////////////////////////////
-function IsAppInstalled(pApp)
-int nResult;
-int nSize;
-int nType;
-string szKey;
-string szMajorVersion, szMinorVersion, szPatchLevel, szBetaLevel, szReleaseType, szTitle;
-begin
- nResult = RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
- if (nResult < 0) goto error;
-
- szKey = COMPANY_REG_KEY ^ pApp->szProductName ^ "CurrentVersion";
-
- nResult = RegDBGetKeyValueEx(szKey, "MajorVersion", nType, szMajorVersion, nSize);
- if (nResult < 0) goto error;
-
- nResult = RegDBGetKeyValueEx(szKey, "MinorVersion", nType, szMinorVersion, nSize);
- if (nResult < 0) goto error;
-
- nResult = RegDBGetKeyValueEx(szKey, "PatchLevel", nType, szPatchLevel, nSize);
- if (nResult < 0) goto error;
-
- nResult = RegDBGetKeyValueEx(szKey, "BetaLevel", nType, szBetaLevel, nSize);
- // It's ok for this to fail. Pre-3.5 3.32 releases did not use this.
-
- nResult = RegDBGetKeyValueEx(szKey, "VersionString", nType, szTitle, nSize);
- if (nResult < 0) goto error;
-
- nResult = RegDBGetKeyValueEx(szKey, "ReleaseType", nType, szReleaseType, nSize);
- if (nResult < 0) then
- if ((pApp->szProductName = "AFS Client") && (szTitle = "3.4a")) then
- // This value won't exist for 3.4a clients
- szReleaseType = RELEASE_TYPE_GA;
- else
- // This value won't exist for any 3.5 beta versions
- szReleaseType = RELEASE_TYPE_BETA;
- endif;
- endif;
-
- SetupVerInfo(pApp, szMajorVersion, szMinorVersion, szPatchLevel, szBetaLevel, szReleaseType, szTitle, TRUE);
-
- return TRUE;
-
-error:
- return FALSE;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: LocalizeComponents()
-//
-// Purpose: This function updates all components to use localized text
-// in their status fields as appropriate
-//
-///////////////////////////////////////////////////////////////////////////////
-function LocalizeComponents()
-begin
- LocalizeComponentStatusText ("Client\\Client_Common");
- LocalizeComponentStatusText ("Client\\Client_Program\\Client_Headers\\Client_Afs_Headers");
- LocalizeComponentStatusText ("Client\\Client_Program\\Client_Headers\\Client_Main_Headers");
- LocalizeComponentStatusText ("Client\\Client_Program\\Client_Headers\\Client_Rx_Headers");
- LocalizeComponentStatusText ("Client\\Client_Program\\Client_Headers");
- LocalizeComponentStatusText ("Client\\Client_Program\\Client_Sample");
- LocalizeComponentStatusText ("Client\\Client_Program");
- LocalizeComponentStatusText ("Client\\Client_System32");
- LocalizeComponentStatusText ("Client\\Client_WinDir");
- LocalizeComponentStatusText ("Client");
- LocalizeComponentStatusText ("Components");
- LocalizeComponentStatusText ("Control_Center\\Control_Center_Common");
- LocalizeComponentStatusText ("Control_Center\\Control_Center_Program");
- LocalizeComponentStatusText ("Control_Center\\Control_Center_System32");
- LocalizeComponentStatusText ("Control_Center\\Control_Center_WinDir");
- LocalizeComponentStatusText ("Control_Center");
- LocalizeComponentStatusText ("Documentation\\English\\Cmd_Ref");
- LocalizeComponentStatusText ("Documentation\\English\\Doc_Misc");
- LocalizeComponentStatusText ("Documentation\\English\\Sys_Admin_Guide");
- LocalizeComponentStatusText ("Documentation\\English");
- LocalizeComponentStatusText ("Documentation\\German\\Cmd_Ref");
- LocalizeComponentStatusText ("Documentation\\German\\Doc_Misc");
- LocalizeComponentStatusText ("Documentation\\German\\Sys_Admin_Guide");
- LocalizeComponentStatusText ("Documentation\\German");
- LocalizeComponentStatusText ("Documentation\\Japanese\\Cmd_Ref");
- LocalizeComponentStatusText ("Documentation\\Japanese\\Doc_Misc");
- LocalizeComponentStatusText ("Documentation\\Japanese\\Sys_Admin_Guide");
- LocalizeComponentStatusText ("Documentation\\Japanese");
- LocalizeComponentStatusText ("Documentation\\Korean\\Cmd_Ref");
- LocalizeComponentStatusText ("Documentation\\Korean\\Doc_Misc");
- LocalizeComponentStatusText ("Documentation\\Korean\\Sys_Admin_Guide");
- LocalizeComponentStatusText ("Documentation\\Korean");
- LocalizeComponentStatusText ("Documentation\\Portuguese\\Cmd_Ref");
- LocalizeComponentStatusText ("Documentation\\Portuguese\\Doc_Misc");
- LocalizeComponentStatusText ("Documentation\\Portuguese\\Sys_Admin_Guide");
- LocalizeComponentStatusText ("Documentation\\Portuguese");
- LocalizeComponentStatusText ("Documentation\\Simp_Chinese\\Cmd_Ref");
- LocalizeComponentStatusText ("Documentation\\Simp_Chinese\\Doc_Misc");
- LocalizeComponentStatusText ("Documentation\\Simp_Chinese\\Sys_Admin_Guide");
- LocalizeComponentStatusText ("Documentation\\Simp_Chinese");
- LocalizeComponentStatusText ("Documentation\\Spanish\\Cmd_Ref");
- LocalizeComponentStatusText ("Documentation\\Spanish\\Doc_Misc");
- LocalizeComponentStatusText ("Documentation\\Spanish\\Sys_Admin_Guide");
- LocalizeComponentStatusText ("Documentation\\Spanish");
- LocalizeComponentStatusText ("Documentation\\Trad_Chinese\\Cmd_Ref");
- LocalizeComponentStatusText ("Documentation\\Trad_Chinese\\Doc_Misc");
- LocalizeComponentStatusText ("Documentation\\Trad_Chinese\\Sys_Admin_Guide");
- LocalizeComponentStatusText ("Documentation\\Trad_Chinese");
- LocalizeComponentStatusText ("Documentation");
- LocalizeComponentStatusText ("Info");
- LocalizeComponentStatusText ("Languages\\Lang_English");
- LocalizeComponentStatusText ("Languages\\Lang_German");
- LocalizeComponentStatusText ("Languages\\Lang_Japanese");
- LocalizeComponentStatusText ("Languages\\Lang_Korean");
- LocalizeComponentStatusText ("Languages\\Lang_Portuguese");
- LocalizeComponentStatusText ("Languages\\Lang_Simp_Chinese");
- LocalizeComponentStatusText ("Languages\\Lang_Spanish");
- LocalizeComponentStatusText ("Languages\\Lang_Trad_Chinese");
- LocalizeComponentStatusText ("Languages");
- LocalizeComponentStatusText ("Light_Client\\Win95\\Light95_Client_Common");
- LocalizeComponentStatusText ("Light_Client\\Win95\\Light95_Client_Program");
- LocalizeComponentStatusText ("Light_Client\\Win95\\Light95_Client_System32");
- LocalizeComponentStatusText ("Light_Client\\Win95\\Light95_Client_WinDir");
- LocalizeComponentStatusText ("Light_Client\\Win95");
- LocalizeComponentStatusText ("Light_Client\\Win98\\Light_Client_Common");
- LocalizeComponentStatusText ("Light_Client\\Win98\\Light_Client_Program");
- LocalizeComponentStatusText ("Light_Client\\Win98\\Light_Client_System32");
- LocalizeComponentStatusText ("Light_Client\\Win98\\Light_Client_WinDir");
- LocalizeComponentStatusText ("Light_Client\\Win98");
- LocalizeComponentStatusText ("Light_Client");
- LocalizeComponentStatusText ("Readme\\English\\Doc_Misc");
- LocalizeComponentStatusText ("Readme\\English\\Install_Guide");
- LocalizeComponentStatusText ("Readme\\English\\Release_Notes");
- LocalizeComponentStatusText ("Readme\\English");
- LocalizeComponentStatusText ("Readme\\German\\Doc_Misc");
- LocalizeComponentStatusText ("Readme\\German\\Install_Guide");
- LocalizeComponentStatusText ("Readme\\German\\Release_Notes");
- LocalizeComponentStatusText ("Readme\\German");
- LocalizeComponentStatusText ("Readme\\Japanese\\Doc_Misc");
- LocalizeComponentStatusText ("Readme\\Japanese\\Install_Guide");
- LocalizeComponentStatusText ("Readme\\Japanese\\Release_Notes");
- LocalizeComponentStatusText ("Readme\\Japanese");
- LocalizeComponentStatusText ("Readme\\Korean\\Doc_Misc");
- LocalizeComponentStatusText ("Readme\\Korean\\Install_Guide");
- LocalizeComponentStatusText ("Readme\\Korean\\Release_Notes");
- LocalizeComponentStatusText ("Readme\\Korean");
- LocalizeComponentStatusText ("Readme\\Portuguese\\Doc_Misc");
- LocalizeComponentStatusText ("Readme\\Portuguese\\Install_Guide");
- LocalizeComponentStatusText ("Readme\\Portuguese\\Release_Notes");
- LocalizeComponentStatusText ("Readme\\Portuguese");
- LocalizeComponentStatusText ("Readme\\Simp_Chinese\\Doc_Misc");
- LocalizeComponentStatusText ("Readme\\Simp_Chinese\\Install_Guide");
- LocalizeComponentStatusText ("Readme\\Simp_Chinese\\Release_Notes");
- LocalizeComponentStatusText ("Readme\\Simp_Chinese");
- LocalizeComponentStatusText ("Readme\\Spanish\\Doc_Misc");
- LocalizeComponentStatusText ("Readme\\Spanish\\Install_Guide");
- LocalizeComponentStatusText ("Readme\\Spanish\\Release_Notes");
- LocalizeComponentStatusText ("Readme\\Spanish");
- LocalizeComponentStatusText ("Readme\\Trad_Chinese\\Doc_Misc");
- LocalizeComponentStatusText ("Readme\\Trad_Chinese\\Install_Guide");
- LocalizeComponentStatusText ("Readme\\Trad_Chinese\\Release_Notes");
- LocalizeComponentStatusText ("Readme\\Trad_Chinese");
- LocalizeComponentStatusText ("Readme");
- LocalizeComponentStatusText ("Server\\Server_Common");
- LocalizeComponentStatusText ("Server\\Server_Program");
- LocalizeComponentStatusText ("Server\\Server_System32");
- LocalizeComponentStatusText ("Server\\Server_WinDir");
- LocalizeComponentStatusText ("Server");
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: LocalizeComponentStatusText()
-//
-// Purpose: This function updates one component to use localized text
-// in its status fields as appropriate
-//
-///////////////////////////////////////////////////////////////////////////////
-function LocalizeComponentStatusText (svComponent)
- NUMBER dwResult;
- STRING svOriginal;
- STRING svLocalized;
-begin
- ComponentGetData (MEDIA, svComponent, COMPONENT_FIELD_STATUS, dwResult, svOriginal);
-
- if (svOriginal == "CLIENT") then
- svLocalized = @STATUS_INSTALLING_CLIENT;
- elseif (svOriginal == "SERVER") then
- svLocalized = @STATUS_INSTALLING_SERVER;
- elseif (svOriginal == "CCENTER") then
- svLocalized = @STATUS_INSTALLING_CCENTER;
- elseif (svOriginal == "LIGHT") then
- svLocalized = @STATUS_INSTALLING_LIGHT;
- elseif (svOriginal == "HEADERS") then
- svLocalized = @STATUS_INSTALLING_HEADERS;
- elseif (svOriginal == "DOCS") then
- svLocalized = @STATUS_INSTALLING_DOCS;
- elseif (svOriginal == "LANGUAGE") then
- svLocalized = @STATUS_INSTALLING_LANGUAGE;
- else
- svLocalized = "";
- endif;
-
- ComponentSetData(MEDIA, svComponent, COMPONENT_FIELD_STATUS, 0, svLocalized);
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: DetectInstalledComponents()
-//
-// Purpose: This function will detect if any of our components is already
-// installed.
-//
-///////////////////////////////////////////////////////////////////////////////
-function DetectInstalledComponents()
-begin
- if (bWinNT) then
- bClientInstalled = IsAppInstalled(&appFullClient);
- bServerInstalled = IsAppInstalled(&appServer);
- bCcInstalled = IsAppInstalled(&appControlCenter);
- bDocsInstalled = IsAppInstalled(&appDocs);
- else
- // The light client uses the client's registry entries. There is a light
- // client entry, but it contains nothing under it. IS makes it but we
- // don't use it.
- bLightClientInstalled = IsAppInstalled(&appLightClient);
- endif;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: ParseCommandLine
-//
-// Purpose: This function parses the command line to set up a silent install
-//
-///////////////////////////////////////////////////////////////////////////////
-function ParseCommandLine()
- NUMBER nResult;
- STRING szTemp, szResult[MAX_STRING_LEN], szParms;
- LIST listParms;
-begin
- bWSPPInstall = FALSE;
- bPreinstallReplace = FALSE;
-
- szParms = CMDLINE;
-
- // Need a list to hold the parms
- listParms = ListCreate(STRINGLIST);
-
- // Break parms into semicolon separated tokens and put into list
- if (StrGetTokens(listParms, szParms, ";") = 0 ) then
- nResult = ListGetFirstString(listParms, szResult);
-
- // Do until the end of the list
- while (nResult != END_OF_LIST)
- if (StrFind(szResult, "DIR=") > -1 ) then
- nResult = StrSub(szTemp, szResult, 4, MAX_STRING_LEN);
- TARGETDIR = szTemp + "\\AFS";
-
- elseif (StrFind(szResult, "P=") > -1 ) then
- nResult = StrSub(szTemp, szResult, StrFind(szResult, "P=") + 2, 1);
- if (StrFind(szTemp, "Y") > -1 ) then
- bPreinstallReplace = TRUE;
- endif;
-
- elseif (StrFind(szResult, "C=") > -1 ) then
- ProcessCompsOnCmdLn(szResult);
- endif;
-
- nResult = ListGetNextString(listParms, szResult);
- endwhile;
- endif;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: ProcessCompsOnCmdLn
-//
-// Purpose: This function puts the components in a list and
-// checks for setup types on the command line.
-//
-//
-///////////////////////////////////////////////////////////////////////////////
-function ProcessCompsOnCmdLn(szParms)
- NUMBER nResult, nIndex;
- STRING szComp;
-begin
- bWSPPInstall = TRUE;
-
- // Strip c= off cmdln string
- nResult = StrSub(szParms, szParms, StrFind(szParms, "C=") + 2, StrLength(szParms) - 2);
-
- // Get each component from the cmd line
- while (StrLength(szParms))
- nIndex = StrSub(szComp, szParms, 0, StrFind(szParms, ","));
- if (!nIndex) then // if comma not found then last item in list
- szComp = szParms;
- nIndex = StrLength(szComp); // for extracting this string
- endif;
-
- if (StrFind(szComp, "Client") > -1) then
- bFullClientSel = TRUE;
- elseif (StrFind(szComp, "Server") > -1) then
- bServerSel = TRUE;
- elseif (StrFind(szComp, "ControlCtr") > -1) then
- bCcSel = TRUE;
- endif;
-
- // Delete component from the command line string
- StrSub(szParms, szParms, nIndex + 1, StrLength(szParms));
- endwhile;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: RemoveInstalledBits
-//
-// Purpose: This function silently uninstalls a product.
-//
-///////////////////////////////////////////////////////////////////////////////
-function RemoveInstalledBits(szProductName)
- int nStatus;
- int nType;
- string szValue[MAX_STRING_LEN];
- string szProgram[256];
- string szCmdLine[128];
- int nSize;
- int nIndex;
-begin
- // Check for a special case - version 3.4a of the AFS Client
- if ((szProductName = "AFS Client") && (appFullClient.iVer.szTitle = "3.4a")) then
- return Eradicate34Client();
- endif;
-
- nStatus = RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
- if (nStatus < 0) goto error;
-
- nStatus = RegDBGetKeyValueEx(MSUNINSTALL_KEY ^ szProductName, "UninstallString", nType, szValue, nSize);
- if (nStatus < 0) goto error;
-
- nIndex = StrFind(szValue, " ");
- if (nIndex < 0) goto error;
-
- StrSub(szProgram, szValue, 0, nIndex);
- StrSub(szCmdLine, szValue, nIndex + 1, 128);
-
- // Make the uninstall run silently
- szCmdLine = szCmdLine + " -a";
-
- nStatus = LaunchAppAndWait(szProgram, szCmdLine, WAIT);
- if (nStatus < 0) goto error;
-
- return 0;
-
-error:
- return nStatus;
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: AddShortCut
-//
-// Purpose: Adds a short cut to the start menu.
-//
-///////////////////////////////////////////////////////////////////////////////
-function AddShortCut(szFolder, szName, szCmdPath, szArgs)
- int result;
- string szCmd;
-begin
- szCmdPath = TARGETDIR ^ szCmdPath;
- LongPathToQuote(szCmdPath, TRUE);
-
- szCmd = szCmdPath + " " + szArgs;
-
- nResult = AddFolderIcon(SHELL_OBJECT_FOLDER ^ szFolder, szName, szCmd, "", "", 0, "", REPLACE);
-
- return nResult;
-end;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: CreateStartMenuEntries
-//
-// Purpose: This function creates start menu entries for our apps.
-//
-///////////////////////////////////////////////////////////////////////////////
-function CreateStartMenuEntries()
-begin
- if (bServerSel) then
- AddShortCut(@SERVER_GROUP_NAME, @CFG_WIZARD_ITEM_NAME, CFG_WIZARD_CMD_PATH, CFG_WIZARD_ARGS);
- endif;
-
- if (bFullClientSel) then
- AddShortCut(@CLIENT_GROUP_NAME, @CREDS_TOOL_ITEM_NAME, CREDS_TOOL_CMD_PATH, CREDS_TOOL_ARGS);
- AddShortCut(@CLIENT_GROUP_NAME, @CLIENT_HELP_ITEM_NAME, CLIENT_HELP_CMD_PATH, CLIENT_HELP_ARGS);
- endif;
-
- if (bCcSel) then
- AddShortCut(@CCENTER_GROUP_NAME, @SERVER_MANAGER_ITEM_NAME, SERVER_MANAGER_CMD_PATH, SERVER_MANAGER_ARGS);
- AddShortCut(@CCENTER_GROUP_NAME, @ACCT_MANAGER_ITEM_NAME, ACCT_MANAGER_CMD_PATH, ACCT_MANAGER_ARGS);
- endif;
-
- if (bLightClientSel) then
- AddShortCut(@LIGHT_GROUP_NAME, @CREDS_TOOL_ITEM_NAME, CREDS_TOOL_CMD_PATH, CREDS_TOOL_ARGS);
- AddShortCut(@LIGHT_GROUP_NAME, @LIGHT_CLIENT_HELP_ITEM_NAME, LIGHT_CLIENT_HELP_CMD_PATH, LIGHT_CLIENT_HELP_ARGS);
- endif;
-
- AddShortCut("", @DOCUMENTATION_ITEM_NAME, DOCUMENTATION_CMD_PATH, DOCUMENTATION_ARGS);
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: ShowError
-//
-// Purpose: This function shows an error to the user when not in silent mode,
-// and will log an error to a file when in silent mode.
-//
-///////////////////////////////////////////////////////////////////////////////
-function ShowError(szMsg, nType)
- string szType;
- int nFileID;
-begin
- if (!bWSPPInstall) then
- MessageBox(szMsg, nType);
- return;
- endif;
-
- switch (nType)
- case WARNING: szType = "Warning: ";
- case SEVERE: szType = "Error: ";
- case INFORMATION: szType = "Note: ";
- default: szType = "Unknown error type: ";
- endswitch;
-
- WriteToInstallErrorLog(szType + szMsg);
-end;
-
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// Function: CheckCopyCellServDB
-//
-// Purpose: During install the CellServDB file is copied into the Common dir.
-// If the user does not already have this file, we will copy it for
-// them into the windows directory. If they already do have the
-// file, then we will do nothing.
-///////////////////////////////////////////////////////////////////////////////
-function CheckCopyCellServDB()
- int nResult;
- string szResult;
-begin
- nResult = FindFile(WINDIR, CELLSERVDB_FILENAME, szResult);
- if (nResult < 0) then
- VarSave(SRCTARGETDIR);
- SRCDIR = TARGETDIR ^ "Common";
- TARGETDIR = WINDIR;
- CopyFile(CELLSERVDB_FILENAME, CELLSERVDB_FILENAME);
- VarRestore(SRCTARGETDIR);
- endif;
-end;
-
-
-// --- include script file section ---
-#include "sddialog.rul"
+++ /dev/null
->grand.central.org #GCO Public CellServDB 15 Oct 2005
-18.7.14.88 #grand-opening.mit.edu
-128.2.191.224 #penn.central.org
-130.237.48.87 #andrew.e.kth.se
->wu-wien.ac.at #University of Economics, Vienna, Austria
-137.208.3.33 #afsdb1.wu-wien.ac.at
-137.208.8.12 #caesar.wu-wien.ac.at
-137.208.127.33 #buddy.wu-wien.ac.at
->hephy.at #hephy-vienna
-193.170.243.10 #mowgli.oeaw.ac.at
-193.170.243.12 #baloo.oeaw.ac.at
-193.170.243.14 #akela.oeaw.ac.at
->itp.tugraz.at #Institute for Theoretical Physics, TU Graz, Austria
-129.27.157.6 #fubphsv2.tu-graz.ac.at
-129.27.161.7 #faepsv01.tu-graz.ac.at
-129.27.161.15 #faepsv02.tu-graz.ac.at
->cern.ch #European Laboratory for Particle Physics, Geneva
-137.138.128.148 #afsdb1.cern.ch
-137.138.246.50 #afsdb3.cern.ch
-137.138.246.51 #afsdb2.cern.ch
->ams.cern.ch #AMS Experiment
-137.138.206.77 #pcamsf2.cern.ch
-137.138.206.123 #pcamsf4.cern.ch
->epfl.ch #Swiss Federal Institute of Technology at Lausanne
-128.178.2.6 #kd1.epfl.ch
-128.178.2.7 #kd2.epfl.ch
-128.178.2.8 #kd3.epfl.ch
->ethz.ch #Swiss Federal Inst. of Tech. - Zurich, Switzerland
-129.132.97.19 #amalthea.ethz.ch
-129.132.97.27 #nethzafs-001.ethz.ch
-129.132.115.3 #himalia.ethz.ch
-129.132.115.37 #nethzafs-005.ethz.ch
-129.132.115.38 #nethzafs-006.ethz.ch
->psi.ch #Paul Scherrer Institut - Villigen, Switzerland
-129.129.190.140 #afs00.psi.ch
-129.129.190.141 #afs01.psi.ch
-129.129.190.142 #afs02.psi.ch
->extundo.com #Simon Josefsson's cell
-195.42.214.241 #slipsten.extundo.com
->mekinok.com #Mekinok, Inc.
-4.36.43.98 #loggerhead.mekinok.com
->membrain.com #membrain.com
-66.93.118.125 #stormy
-130.85.24.11 #weasel
-130.85.24.13 #straykitten
->midnightlinux.com #Midnight Linux, Pittsburgh PA
-208.10.142.82 #outpost.midnightlinux.com
->setfilepointer.com #SetFilePointer.com
-63.224.10.2 #hamlet.SetFilePointer.com
-63.224.10.4 #troilus.SetFilePointer.com
->sodre.cx #Sodre.cx
-128.8.140.165 #greed.sodre.cx
->desy.de #Deutsches Elektronen-Synchrotron
-131.169.40.62 #vayu.desy.de
-131.169.244.60 #solar00.desy.de
->gppc.de #GPP Chemnitz mbH
-213.187.92.33 #gpp1.gppc.de
-213.187.92.34 #paulchen.gppc.de
-213.187.92.35 #lotus.gppc.de
->ifh.de #DESY Zeuthen
-141.34.22.10 #romulus.ifh.de
-141.34.22.11 #remus.ifh.de
-141.34.22.29 #hekate.ifh.de
->lrz-muenchen.de #Leibniz Computing Centre, Germany
-129.187.10.36 #afs1.lrz-muenchen.de
-129.187.10.56 #afs3.lrz-muenchen.de
-129.187.10.57 #afs2.lrz-muenchen.de
->ipp-garching.mpg.de #Institut fuer Plasmaphysik
-130.183.9.5 #afs-db1.rzg.mpg.de
-130.183.100.10 #afs-db2.aug.ipp-garching.mpg.de
-130.183.100.23 #afs-db3.aug.ipp-garching.mpg.de
->mpe.mpg.de #MPE cell
-130.183.130.7 #irafs1.mpe-garching.mpg.de
-130.183.134.20 #irafs2.mpe-garching.mpg.de
->i1.informatik.rwth-aachen.de #Informatik I, RWTH Aachen
-137.226.244.79 #remus.informatik.rwth-aachen.de
->tu-bs.de #Technical University of Braunschweig, Germany
-134.169.1.1 #rzafs1.rz.tu-bs.de
-134.169.1.5 #rzafs2.rz.tu-bs.de
-134.169.1.6 #rzafs3.rz.tu-bs.de
->tu-chemnitz.de #Technische Universitaet Chemnitz, Germany
-134.109.2.1 #zuse.hrz.tu-chemnitz.de
-134.109.2.15 #phoenix.hrz.tu-chemnitz.de
-134.109.200.7 #aetius.hrz.tu-chemnitz.de
->e18.ph.tum.de #Experimental Physics, TU Munich, Germany
-129.187.154.223 #hamlet.e18.physik.tu-muenchen.de
->uni-bonn.de #University of Bonn, Computing Center
-131.220.14.198 #work15-eth.rhrz.uni-bonn.de
-131.220.14.205 #node05.rhrz.uni-bonn.de
-131.220.15.197 #afs-db1.rhrz.uni-bonn.de
->atlass01.physik.uni-bonn.de #Bonn ATLAS
-131.220.165.43 #atlass01.physik.uni-bonn.de
->uni-freiburg.de #Albert-Ludwigs-Universitat Freiburg
-132.230.6.235 #sv6.ruf.uni-freiburg.de
-132.230.6.236 #sv7.ruf.uni-freiburg.de
-132.230.6.237 #sv8.ruf.uni-freiburg.de
->physik.uni-freiburg.de #institute of physics, university Freiburg, Germany
-132.230.77.16 #hepafs.physik.uni-freiburg.de
->urz.uni-heidelberg.de #Uni Heidelberg (Rechenzentrum)
-129.206.119.10 #afsdb.urz.uni-heidelberg.de
-129.206.119.16 #afsdb1.urz.uni-heidelberg.de
-129.206.119.17 #afsdb2.urz.uni-heidelberg.de
->uni-hohenheim.de #University of Hohenheim
-144.41.2.2 #rs13.serv.uni-hohenheim.de
-144.41.2.3 #rs14.serv.uni-hohenheim.de
-144.41.2.4 #rs15.serv.uni-hohenheim.de
->rz.uni-jena.de #Rechenzentrum University of Jena, Germany
-141.35.2.160 #lc00.rz.uni-jena.de
-141.35.7.9 #fsuj01.rz.uni-jena.de
-141.35.7.10 #zaphod.rz.uni-jena
->meteo.uni-koeln.de #Univ. of Cologne - Inst. for Geophysics & Meteorology
-134.95.144.22 #afs1.meteo.uni-koeln.de
-134.95.144.24 #afs2.meteo.uni-koeln.de
->rrz.uni-koeln.de #University of Cologne - Reg Comp Center
-134.95.19.3 #afsdb1.rrz.uni-koeln.de
-134.95.19.30 #fileserv3.rrz.uni-koeln.de
-134.95.67.97 #afs.thp.uni-koeln.de
-134.95.140.190 #rzkbserv.rrz.uni-koeln.de
->physik.uni-mainz.de #institute of physics, university Mainz, Germany
-134.93.130.93 #hardy.physik.uni-mainz.de
->uni-mannheim.de #Uni Mannheim (Rechenzentrum)
-134.155.97.204 #afsdb1.uni-mannheim.de
-134.155.97.205 #afsdb2.uni-mannheim.de
-134.155.97.206 #afsdb3.uni-mannheim.de
->uni-paderborn.de #University of Paderborn, Germany
-131.234.137.10 #afsdb1.uni-paderborn.de
-131.234.137.11 #afsdb2.uni-paderborn.de
-131.234.137.12 #afsdb3.uni-paderborn.de
->physik.uni-wuppertal.de #Physics department of Bergische Universität Wuppertal
-132.195.104.3 #afs1.physik.uni-wuppertal.de
-132.195.104.230 #afs2.physik.uni-wuppertal.de
->s-et.aau.dk #Aalborg Univ., The Student Society, Denmark
-130.225.196.22 #afs.s-et.aau.dk
->ies.auc.dk #Aalborg Univ., Inst. of Electronic Systems, Denmark
-130.225.51.73 #afsdb1.kom.auc.dk
-130.225.51.74 #afsdb2.kom.auc.dk
-130.225.51.85 #afsdb3.kom.auc.dk
->asu.edu #Arizona State University
-129.219.10.69 #authen2.asu.edu
-129.219.10.70 #authen1.asu.edu
-129.219.10.72 #authen3.asu.edu
-129.219.100.16 #authen4.asu.edu
->hep.caltech.edu #CalTech High Energy Physics
-131.215.126.150 #afs.hep.caltech.edu
->clarkson.edu #Clarkson University, Potsdam, New York USA
-128.153.1.111 #arthur.clarkson.edu
-128.153.9.111 #lancelot.clarkson.edu
-128.153.17.111 #uther.clarkson.edu
->andrew.cmu.edu #Carnegie Mellon University - Computing Services Cell
-128.2.10.2 #vice2.fs.andrew.cmu.edu
-128.2.10.7 #vice7.fs.andrew.cmu.edu
-128.2.10.11 #vice11.fs.andrew.cmu.edu
-128.2.10.28 #vice28.fs.andrew.cmu.edu
-128.2.32.44 #new-vice12.fs.andrew.cmu.edu
->club.cc.cmu.edu #Carnegie Mellon University Computer Club
-128.237.157.11 #sodium.club.cc.cmu.edu
-128.237.157.13 #potassium.club.cc.cmu.edu
->chem.cmu.edu #Carnegie Mellon University - Chemistry Dept.
-128.2.40.134 #afs.chem.cmu.edu
-128.2.40.140 #afs2.chem.cmu.edu
->cs.cmu.edu #Carnegie Mellon University - School of Comp. Sci.
-128.2.194.178 #cherry.srv.cs.cmu.edu
-128.2.194.179 #pumpkin.srv.cs.cmu.edu
-128.2.194.180 #strawberry.srv.cs.cmu.edu
->ece.cmu.edu #Carnegie Mellon University - Elec. Comp. Eng. Dept.
-128.2.129.7 #porok.ece.cmu.edu
-128.2.129.8 #vicio.ece.cmu.edu
-128.2.129.9 #e-xing.ece.cmu.edu
->scotch.ece.cmu.edu #CMU ECE CALCM research group
-128.2.134.82 #lagavulin.ece.cmu.edu
->qatar.cmu.edu #Carnegie Mellon University - Qatar Campus Cell
-204.194.25.7 #afs1.qatar.cmu.edu
-204.194.25.8 #afs2.qatar.cmu.edu
->sbp.ri.cmu.edu #Carnegie Mellon University - Sensor Based Planning Lab
-128.2.56.129 #nihao.sbp.ri.cmu.edu
-128.2.56.136 #youtheman.sbp.ri.cmu.edu
->msc.cornell.edu #Cornell University Materials Science Center
-128.84.231.242 #miranda.ccmr.cornell.edu
-128.84.241.35 #co.ccmr.cornell.edu
-128.84.249.78 #dax.ccmr.cornell.edu
->dbic.dartmouth.edu #Dartmouth Brain Imaging Center
-129.170.30.143 #dbicafs1.dartmouth.edu
-129.170.30.144 #dbicafs2.dartmouth.edu
-129.170.30.145 #dbicafs3.dartmouth.edu
->northstar.dartmouth.edu #Dartmouth College Research Computing
-129.170.16.22 #halley.dartmouth.edu
-129.170.16.42 #oort.dartmouth.edu
-129.170.16.43 #cygnusx1.dartmouth.edu
->eecs.harvard.edu #Harvard - EECS
-140.247.60.61 #zermelo.eecs.harvard.edu
-140.247.60.83 #corfu.eecs.harvard.edu
->iastate.edu #Iowa State University
-129.186.1.243 #afsdb-1.iastate.edu
-129.186.6.243 #afsdb-2.iastate.edu
-129.186.142.243 #afsdb-3.iastate.edu
->athena.mit.edu #MIT/Athena cell
-18.7.1.66 #paris.mit.edu.
-18.7.1.74 #chimera.mit.edu.
-18.158.0.37 #prill.mit.edu.
->dev.mit.edu #MIT/IS Development cell
-18.7.1.70 #wham.mit.edu.
-18.7.15.89 #rattle.mit.edu.
-18.7.15.93 #hum.mit.edu.
->net.mit.edu #MIT/Network Group cell
-18.7.7.73 #gracie.mit.edu
-18.7.21.95 #george.mit.edu
->sipb.mit.edu #MIT/SIPB cell
-18.181.0.19 #reynelda.mit.edu.
-18.181.0.22 #rosebud.mit.edu.
-18.181.0.23 #ronald-ann.mit.edu.
->soap.mit.edu #MIT School Of Architecture & Planning
-18.89.1.204 #crypt.mit.edu
-18.89.1.209 #grotto.mit.edu
-18.89.2.156 #ac.mit.edu
->msu.edu #Michigan State University Main Cell
-35.9.7.10 #afsdb0.cl.msu.edu
->nd.edu #University of Notre Dame
-129.74.223.17 #john.helios.nd.edu
-129.74.223.33 #lizardo.helios.nd.edu
-129.74.223.65 #buckaroo.helios.nd.edu
->pitt.edu #University of Pittsburgh
-136.142.8.15 #afs09.srv.cis.pitt.edu
-136.142.8.20 #afs10.srv.cis.pitt.edu
-136.142.8.21 #afs11.srv.cis.pitt.edu
->cs.pitt.edu #University of Pittsburgh - Computer Science
-130.49.220.11 #afs01.cs.pitt.edu
-130.49.220.12 #afs02.cs.pitt.edu
-130.49.220.13 #afs03.cs.pitt.edu
->psc.edu #PSC (Pittsburgh Supercomputing Center)
-128.182.59.182 #shaggy.psc.edu
-128.182.66.184 #velma.psc.edu
-128.182.66.185 #daphne.psc.edu
->scoobydoo.psc.edu #PSC Test Cell
-128.182.59.181 #scooby.psc.edu
->cede.psu.edu #Penn State - Center for Engr. Design & Entrepeneurship
-146.186.218.10 #greenly.cede.psu.edu
-146.186.218.60 #b50.cede.psu.edu
-146.186.218.246 #stalin.cede.psu.edu
->rose-hulman.edu #Rose-Hulman Institute of Technology
-137.112.7.11 #afs1.rose-hulman.edu
-137.112.7.12 #afs2.rose-hulman.edu
-137.112.7.13 #afs3.rose-hulman.edu
->cs.rose-hulman.edu #Rose-Hulman CS Department
-137.112.40.10 #galaxy.cs.rose-hulman.edu
->rpi.edu #Rensselaer Polytechnic Institute
-128.113.22.11 #saul.server.rpi.edu
-128.113.22.12 #joab.server.rpi.edu
-128.113.22.13 #korah.server.rpi.edu
-128.113.22.14 #achan.server.rpi.edu
->hep.sc.edu #University of South Carolina, Dept. of Physics
-129.252.78.77 #cpeven.physics.sc.edu
->cs.stanford.edu #Stanford University Computer Science Department
-171.64.64.10 #cs-afs-1.Stanford.EDU
-171.64.64.66 #cs-afs-2.stanford.edu
-171.64.64.69 #cs-afs-3.stanford.edu
->ir.stanford.edu #Stanford University
-171.64.7.222 #afsdb1.stanford.edu
-171.64.7.234 #afsdb2.stanford.edu
-171.64.7.246 #afsdb3.stanford.edu
->slac.stanford.edu #Stanford Linear Accelerator Center
-134.79.18.25 #afsdb1.slac.stanford.edu
-134.79.18.26 #afsdb2.slac.stanford.edu
-134.79.18.27 #afsdb3.slac.stanford.edu
->cats.ucsc.edu #UC Santa Cruz, Comm. and Tech. Services, California U.S.A
-128.114.129.14 #elan.ucsc.edu
-128.114.129.15 #ichabod.ucsc.edu
-128.114.129.18 #maneki.ucsc.edu
->acm.uiuc.edu #ACM at the University of Illinois
-128.174.251.8 #alnitak.acm.uiuc.edu
-128.174.251.9 #alnilam.acm.uiuc.edu
-128.174.251.10 #mintaka.acm.uiuc.edu
->ncsa.uiuc.edu #University of Illinois
-141.142.3.5 #congo.ncsa.uiuc.edu
-141.142.3.8 #nile.ncsa.uiuc.edu
-141.142.3.9 #kaskaskia.ncsa.uiuc.edu
->umbc.edu #University of Maryland, Baltimore County
-130.85.24.23 #db2.afs.umbc.edu
-130.85.24.87 #db3.afs.umbc.edu
-130.85.24.101 #db1.afs.umbc.edu
->glue.umd.edu #University of Maryland - Project Glue
-128.8.70.11 #olmec.umd.edu
-128.8.236.4 #egypt.umd.edu
-128.8.236.230 #babylon.umd.edu
->wam.umd.edu #University of Maryland Network WAM Project
-128.8.70.9 #csc-srv.wam.umd.edu
-128.8.236.5 #avw-srv.wam.umd.edu
-128.8.236.231 #ptx-srv.wam.umd.edu
->umich.edu #University of Michigan - Campus
-141.211.1.32 #fear.ifs.umich.edu
-141.211.1.33 #surprise.ifs.umich.edu
-141.211.1.34 #ruthless.ifs.umich.edu
->atlas.umich.edu #ATLAS group cell in physics at University of Michigan
-141.211.43.102 #linat02.grid.umich.edu
-141.211.43.106 #linat06.grid.umich.edu
-141.211.43.109 #atgrid.grid.umich.edu
->citi.umich.edu #Center for Information Technology Integration
-141.211.133.5 #babylon.citi.umich.edu
->lsa.umich.edu #University of Michigan - College of LS&A
-141.211.211.53 #gerow.lsa.umich.edu
-141.211.211.72 #collines.lsa.umich.edu
-141.211.211.153 #hodges.lsa.umich.edu
->umr.edu #University of Missouri - Rolla
-131.151.1.59 #afsdb1.umr.edu
-131.151.1.70 #afsdb3.umr.edu
-131.151.1.146 #afsdb2.umr.edu
->physics.unc.edu #Univ. of NC at Chapel Hill, Dept. of Physics
-152.2.4.1 #who.physics.unc.edu
-152.2.4.3 #what.physics.unc.edu
-152.2.4.5 #when.physics.unc.edu
->uncc.edu #University of NC at Charlotte Mosaic AFS Cell
-152.15.10.70 #as-sm1.uncc.edu
-152.15.13.7 #as-sm2.uncc.edu
-152.15.30.27 #fs-kenn3.uncc.edu
->eng.utah.edu #University of Utah - Engineering
-155.99.222.9 #lenny.eng.utah.edu
-155.99.222.10 #carl.eng.utah.edu
->cs.uwm.edu #University of Wisconsin--Milwaukee
-129.89.38.124 #solomons.cs.uwm.edu
->cs.wisc.edu #Univ. of Wisconsin-Madison, Computer Sciences Dept.
-128.105.132.14 #timon.cs.wisc.edu
-128.105.132.15 #pumbaa.cs.wisc.edu
-128.105.132.16 #zazu.cs.wisc.edu
->engr.wisc.edu #University of Wisconsin-Madison, College of Engineering
-144.92.13.14 #larry.cae.wisc.edu
-144.92.13.15 #curly.cae.wisc.edu
-144.92.13.16 #moe.cae.wisc.edu
->hep.wisc.edu #University of Wisconsin -- High Energy Physics
-128.104.28.219 #anise.hep.wisc.edu
->physics.wisc.edu #Univ. of Wisconsin-Madison, Physics Department
-128.104.160.13 #kendra.physics.wisc.edu
-128.104.160.14 #fray.physics.wisc.edu
-128.104.160.15 #buffy.physics.wisc.edu
->ciemat.es #Ciemat, Madrid, Spain
-130.206.11.42 #afsdb1.ciemat.es
-130.206.11.217 #afsdb2.ciemat.es
-130.206.11.247 #afsdb3.ciemat.es
->ifca.unican.es #Instituto de Fisica de Cantabria (IFCA), Santander, Spain
-193.144.209.20 #gridwall.ifca.unican.es
->ific.uv.es #Instituto de Fisica Corpuscular, Valencia, Spain
-147.156.163.11 #alpha.ific.uv.es
->biocenter.helsinki.fi #University of Helsinki, Institute of Biotechnology
-128.214.58.174 #afsdb1.biocenter.helsinki.fi
-128.214.88.114 #afsdb2.biocenter.helsinki.fi
->dapnia.saclay.cea.fr #CEA DAPNIA
-132.166.32.7 #dphrsg.saclay.cea.fr
-132.166.32.12 #dphrsl.saclay.cea.fr
->in2p3.fr #IN2P3 production cell
-134.158.232.11 #ccafsdb1.in2p3.fr
-134.158.232.12 #ccafsdb2.in2p3.fr
-134.158.232.13 #ccafsdb3.in2p3.fr
->anl.gov #Argonne National Laboratory
-146.137.96.33 #arteus.ctd.anl.gov
-146.137.162.88 #agamemnon.ctd.anl.gov
-146.137.194.80 #antenor.ctd.anl.gov
->rhic.bnl.gov #Relativistic Heavy Ion Collider
-130.199.6.51 #rafs03.rcf.bnl.gov
-130.199.6.52 #rafs02.rcf.bnl.gov
-130.199.6.69 #rafs01.rcf.bnl.gov
->usatlas.bnl.gov #US Atlas Tier 1 Facility at BNL
-130.199.48.32 #aafs01.usatlas.bnl.gov
-130.199.48.33 #aafs02.usatlas.bnl.gov
-130.199.48.34 #aafs03.usatlas.bnl.gov
->fnal.gov #Fermi National Acclerator Laboratory
-131.225.68.1 #fsus01.fnal.gov
-131.225.68.4 #fsus03.fnal.gov
-131.225.68.14 #fsus04.fnal.gov
->ic-afs.arc.nasa.gov #Code IC, Ames Research Center
-128.102.105.62 #udanax.arc.nasa.gov
->jpl.nasa.gov #Jet Propulsion Laboratory
-137.78.160.21 #afsdb08.jpl.nasa.gov
-137.78.160.22 #afsdb09.jpl.nasa.gov
-137.78.160.23 #afsdb10.jpl.nasa.gov
->nersc.gov #National Energy Research Supercomputer Center
-128.55.128.250 #mars.nersc.gov
-128.55.128.252 #alfred.nersc.gov
-128.55.128.254 #lurch.nersc.gov
->bme.hu #Budapest University of Technology and Economics
-152.66.241.6 #afs.iit.bme.hu
->kfki.hu #Research Institute for Nuclear and Particle Physics - Budapest,H
-148.6.8.14 #afs.kfki.hu
->caspur.it #CASPUR Inter-University Computing Consortium, Rome
-193.204.5.45 #pomodoro.caspur.it
-193.204.5.46 #banana.caspur.it
-193.204.5.50 #maslo.caspur.it
->enea.it #ENEA New Tech. Energy & Environment Agency, Italy
-192.107.54.5 #aixfs.frascati.enea.it
-192.107.54.11 #rs2ced.frascati.enea.it
-192.107.54.12 #43p.frascati.enea.it
-192.107.61.235 #serverinfo02.bologna.enea.it
-192.107.71.6 #glauco.casaccia.enea.it
-192.107.96.233 #riscdb.trisaia.enea.it
->fusione.it #Assoz. FUSIONE/Euratom, ENEA, Frascati-Italy
-192.107.90.2 #fusafs1.frascati.enea.it
-192.107.90.3 #fusafs2.frascati.enea.it
-192.107.90.4 #fusafs3.frascati.enea.it
->icemb.it #ICEMB, Universita' La Sapienza - Rome - Italy
-193.204.6.130 #icembfs.caspur.it
->infn.it #Istituto Nazionale di Fisica Nucleare (INFN), Italia
-131.154.1.7 #afscnaf.infn.it
-141.108.26.75 #afsrm1.roma1.infn.it
-192.84.134.75 #afsna.na.infn.it
->ba.infn.it #INFN, Sezione di Bari
-193.206.185.235 #baafsserver.ba.infn.it
->kloe.infn.it #INFN, KLOE experiment at Laboratori di Frascati
-192.135.25.111 #kloeafs1.lnf.infn.it
-192.135.25.112 #kloeafs2.lnf.infn.it
->le.infn.it #INFN, Sezione di Lecce
-192.84.152.40 #afs01.le.infn.it
-192.84.152.148 #afs02.le.infn.it
->lnf.infn.it #INFN, Laboratori Nazionali di Frascati
-193.206.84.121 #afs1.lnf.infn.it
-193.206.84.122 #afs2.lnf.infn.it
-193.206.84.123 #afs3.lnf.infn.it
->lngs.infn.it #INFN, Laboratori Nazionali di Gran Sasso
-192.84.135.21 #rsgs05.lngs.infn.it
->pi.infn.it #INFN, Sezione di Pisa
-131.114.134.26 #unknownhost.pi.infn.it
-192.84.133.50 #aix1.pi.infn.it
->psm.it #Progetto San Marco, Universita' di Roma-1
-151.100.1.65 #atlante.psm.uniroma1.it
->tgrid.it #CASPUR-CILEA-CINECA Grid Cell
-193.204.5.33 #cccgrid.caspur.it
->ictp.trieste.it #The Abdus Salam International Centre for Theoretical Physics (IC
-140.105.16.8 #fs1.ictp.trieste.it
-140.105.16.9 #fs2.ictp.trieste.it
->math.unifi.it #math.unifi.it
-150.217.34.182 #xeno.math.unifi.it
->ing.uniroma1.it #Universita' La Sapienza, Fac. Ingeneria
-151.100.85.253 #alfa.ing.uniroma1.it
->dia.uniroma3.it #University Roma Tre - DIA
-193.204.161.79 #plm.dia.uniroma3.it
-193.204.161.118 #afs.dia.uniroma3.it
->vn.uniroma3.it #University of Rome 3, Area Vasca Navale
-193.204.161.136 #alfa.dia.uniroma3.it
-193.204.161.137 #beta.dia.uniroma3.it
-193.204.161.138 #gamma.dia.uniroma3.it
->italia #Italian public AFS cell
-193.204.5.9 #afs.caspur.it
->cmf.nrl.navy.mil #Naval Research Lab - CCS
-134.207.10.68 #picard.cmf.nrl.navy.mil
-134.207.10.69 #riker.cmf.nrl.navy.mil
-134.207.10.70 #kirk.cmf.nrl.navy.mil
->lcp.nrl.navy.mil #Naval Research Lab - Lab for Computational Physics
-132.250.114.2 #afs1.lcp.nrl.navy.mil
-132.250.114.4 #afs2.lcp.nrl.navy.mil
-132.250.114.6 #afs3.lcp.nrl.navy.mil
->es.net #Energy Sciences Net
-198.128.3.21 #fs1.es.net
-198.128.3.22 #fs2.es.net
-198.128.3.23 #fs3.es.net
->laroia.net #Laroia Networks
-66.66.102.254 #supercore.laroia.net
->sinenomine.net #Sine Nomine Associates
-66.92.236.139 #afs.sinenomine.net
->slackers.net #The Slackers' Network
-63.201.48.27 #alexandria.slackers.net
->tproa.net #The People's Republic of Ames
-209.234.76.70 #service-3.tproa.net
->nikhef.nl #The Dutch National Institute for High Energy Physics
-192.16.185.26 #afs1.nikhef.nl
-192.16.185.27 #afs2.nikhef.nl
->1ts.org #1TS.ORG, Cambridge, MA
-4.36.43.102 #dol-guldur.1ts.org
-69.25.196.51 #pancake.1ts.org
->bazquux.org #Baz Quux Organization
-66.207.142.196 #baxquux.org
->coed.org #Adam Pennington's Cell
-66.93.61.184 #vice1.coed.org
-128.237.157.35 #vice3.coed.org
->dementia.org #Dementia Unlimited
-128.2.12.45 #alycia.dementia.org
-128.2.120.216 #meredith.dementia.org
->hackish.org #Hackish.org
-24.167.65.213 #avatar.sys.hackish.org
-128.2.120.138 #kurma.sys.hackish.org
->idahofuturetruck.org #University of Idaho hybrid vehicle development
-12.18.238.210 #dsle210.fsr.net
->nimlabs.org #Nimlabs, Ink. Cell.
-18.238.1.103 #olfin.nimlabs.org
-18.238.1.105 #caerbanog.nimlabs.org
->nomh.org #nomh.org
-204.29.154.12 #iota.nomh.org
-204.29.154.32 #adversity.xi.nomh.org
->oc7.org #The OC7 Project
-128.2.122.140 #knife.oc7.org
-207.22.77.170 #spoon.oc7.org
->openafs.org #OpenAFS Project
-18.7.14.88 #grand-opening.mit.edu
-128.2.191.224 #penn.central.org
-130.237.48.87 #andrew.e.kth.se
->e.kth.se #Royal Institute of Technology, Elektro
-130.237.32.145 #sonen.e.kth.se
-130.237.48.7 #anden.e.kth.se
-130.237.48.244 #fadern.e.kth.se
->hallf.kth.se #Royal Institute of Technology, HALLF
-130.237.24.141 #rasmus13.hallf.kth.se
-130.237.24.152 #rasmus3.hallf.kth.se
-130.237.24.177 #rasmus29.hallf.kth.se
->isk.kth.se #Royal Institute of Technology, ISK
-130.237.202.12 #afsdb2.isk.kth.se
-130.237.206.13 #afsdb1.isk.kth.se
-130.237.209.141 #afsdb3.isk.kth.se
->it.kth.se #Royal Institute of Technology, IT
-130.237.212.15 #ptah.it.kth.se
-130.237.212.16 #toth.it.kth.se
-130.237.215.7 #isis.it.kth.se
->md.kth.se #Royal Institute of Technology, MMK
-130.237.57.68 #trinity.md.kth.se
-130.237.57.72 #morpheus.md.kth.se
-130.237.67.230 #neo.speech.kth.se
->mech.kth.se #Royal Institute of Technology, MECH
-130.237.233.142 #matterhorn.mech.kth.se
-130.237.233.143 #castor.mech.kth.se
-130.237.233.144 #pollux.mech.kth.se
->nada.kth.se #Royal Institute of Technology, NADA
-130.237.222.20 #kosmos.nada.kth.se
-130.237.223.12 #sputnik.nada.kth.se
-130.237.224.78 #mir.nada.kth.se
-130.237.227.23 #gagarin.nada.kth.se
-130.237.228.28 #laika.nada.kth.se
->pdc.kth.se #Royal Institute of Technology, PDC
-130.237.232.29 #crab.pdc.kth.se
-130.237.232.112 #anna.pdc.kth.se
-130.237.232.114 #hokkigai.pdc.kth.se
->stacken.kth.se #Stacken Computer Club
-130.237.234.3 #milko.stacken.kth.se
-130.237.234.43 #hot.stacken.kth.se
-130.237.237.230 #fishburger.stacken.kth.se
->syd.kth.se #Royal Institute of Technology, KTH-Syd
-130.237.83.23 #afs.haninge.kth.se
->physto.se #Physics department Stockholm University
-130.237.205.36 #sysafs1.physto.se
-130.237.205.72 #sysafs2.physto.se
->sanchin.se #Sanchin Consulting AB, Sweden
-192.195.148.10 #sesan.sanchin.se
->su.se #Stockholm University
-130.237.162.81 #afsdb1.su.se
-130.237.162.82 #afsdb2.su.se
-130.237.162.230 #afsdb3.su.se
->f9.ijs.si #F9, Jozef Stefan Institue
-194.249.156.1 #brenta.ijs.si
->p-ng.si #Nova Gorica Polytechnic
-193.2.120.2 #solkan.p-ng.si
->phy.bris.ac.uk #Bristol University - phyics
-137.222.58.9 #afs1.phy.bris.ac.uk
->hep.man.ac.uk #Manchester HEP
-194.36.2.3 #afs1.hep.man.ac.uk
-194.36.2.4 #afs2.hep.man.ac.uk
-194.36.2.5 #afs3.hep.man.ac.uk
->rl.ac.uk #Rutherford Appleton Lab, England
-130.246.183.164 #wallace.cc.rl.ac.uk
+++ /dev/null
-# Copyright 2000, International Business Machines Corporation and others.
-# All Rights Reserved.
-#
-# This software has been released under the terms of the IBM Public
-# License. For details, see the LICENSE file in the top-level source
-# directory or online at http://www.openafs.org/dl/license10.html
-
-RELDIR=WINNT\install\Win9x
-!INCLUDE ..\..\..\config\NTMakefile.$(SYS_NAME)
-!INCLUDE ..\..\..\config\NTMakefile.version
-OUTDIR = $(DESTDIR)\WinInstall
-
-############################################################################
-
-COMPONENTS = \
- afsd.pif \
- readme.RTF \
- $(DESTDIR)\bin\util_cr.exe \
- $(DESTDIR)\root.client\usr\vice\etc\unlog.exe \
- $(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)\root.client\usr\vice\etc\afs_shl_ext.dll \
- $(DESTDIR)\lib\win95\afspthread.dll \
- $(DESTDIR)\lib\afsrpc.dll
-
-$(COMPONENTS)::
- $(DESTDIR)\bin\util_cr.exe ~ $@
- $(COPY) $@ $(OUTDIR)
-
-$(DLLCOMPONENTS)::
- $(DESTDIR)\bin\util_cr.exe ~ $@
- $(COPY) $@ $(OUTDIR)\Dll\.
-
-!IF (EXIST(ISBUILD.MAK))
-!INCLUDE ISBUILD.MAK
-!ENDIF
-
-build:
-
-install: prep $(COMPONENTS) $(DLLCOMPONENTS) build
-
-install9x: install
-
-clean ::
- $(DEL) $(OUTDIR)\DiskIm~1\Disk1\*
- $(DEL) $(OUTDIR)\DiskIm~1\WebInstall\*
-
-prep :
- $(COPY) "$(OUTDIR)\config\sock.vxd" "$(OUTDIR)"
- $(COPY) "$(OUTDIR)\config\MMAP.vxd" "$(OUTDIR)"
- $(COPY) "$(OUTDIR)\config\AFSD.EXE" "$(OUTDIR)"
- $(DESTDIR)\bin\util_cr.exe ~ "$(OUTDIR)\sock.vxd"
- $(DESTDIR)\bin\util_cr.exe ~ "$(OUTDIR)\MMAP.vxd"
- $(DESTDIR)\bin\util_cr.exe ~ "$(OUTDIR)\AFSD.EXE"
-
-mkdir:
-
+++ /dev/null
-{\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\froman Times New Roman;}{\f3\froman Times New Roman;}}\r
-{\colortbl\red0\green0\blue0;\red0\green0\blue255;}\r
-\deflang1033\pard\qc\plain\f2\fs28\b AFS Client for Windows 95/98 (\plain\f2\fs20\b Version 2.0.0.0 - 04/20/01 12:18 PM\plain\f2\fs28\b )\r
-\par \pard\plain\f2\fs28 \r
-\par \plain\f2\fs20 Welcome to the Open AFS Client for Windows 95/98.\r
-\par \r
-\par This client will allow you to access files on sites stored all over the Internet as though the files were residing on your local machine. You can store your own files on the Internet to share with others, and can limit access to your files to specific users or groups of users. You can browse through the different AFS sites (known as \plain\f2\fs20\i cells\plain\f2\fs20 ) from a single file tree and use standard Windows programs such as Explorer to copy and manipulate files. You can open files stored on the Internet directly from Windows applications.\r
-\par \r
-\par One drive letter will be created on your machine by default - Z:. The Z: drive will be the root of the AFS tree, allowing you to browse all sites that have AFS servers available.\r
-\par \r
-\par This is a native Windows 9x client; a gateway machine is not required.\r
-\par \r
-\par \plain\f2\fs24\b System Requirements\r
-\par \r
-\par \plain\f2\fs20 IBM compatible PC running Windows 95 (see below) or 98\r
-\par 16 MB RAM\r
-\par 20 MB free disk space\r
-\par Client for Microsoft Networks must be installed\r
-\par TCP/IP protocol stack must be installed\r
-\par \r
-\par \plain\f2\fs24\b Getting Started\r
-\par \plain\f2\fs20 \r
-\par To use the client, you will need to perform the following tasks after installation and reboot:\r
-\par \r
-\par 1) Boot up your machine and log in to Windows. (Note: if you bypass the login by hitting "Cancel" at the login screen, Windows networking will not work and you will not be able to mount your drives.)\r
-\par 2) Connect to the Internet or your company's intranet. (Note: If you are using the client in a firewalled intranet environment with private AFS cells, you will probably need a CellServDB file specific to your \r
-\par company's environment. Ask your system administrator.)\r
-\par 3) Check your system time, timezone, and date settings and make sure they are synchronized with the AFS server. \r
-\par 4) Start the AFS Client by double-clicking on the icon on the desktop or Start Menu.\r
-\par 5) A box will appear asking for your userid and password. Type them in and press "Connect". This will\r
-\par authenticate you to the AFS cell you specified at installation. (Note: You cannot use the GUI interface to authenticate to other cells at present. This will be added later. You can still authenticate to other cells using the "klog" command; see "Command Line Tools" below.) Use the "Save Password" checkbox to enable the AFS Client to save your password in the registry for use next time you run the AFS Client. (The password will be saved encrypted in the registry if you are running Windows 98 or have installed Internet Explorer version 4.0 or later. Otherwise, it will be saved in clear text. We recommend you do not use the save password feature if encryption is not available on your system.)\r
-\par 6) Now a Windows Explorer will start to allow you to browse your new Z: drive. Z: will be the root of the AFS tree.\r
-\par 7) By checking "Advanced Options", you can add and change your drive letter assignments. There is one share assigned by default, "all". (Note: the "all" share cannot be removed.) New shares must be assigned a unique share name and an AFS path. You can mount and unmount your AFS drives by checking or unchecking the box next to each drive letter. You can also set whether a drive will be automatically mounted at startup by highlighting the drive and clicking "Change".\r
-\par 8) You can kill or minimize the AFS client dialog window. Double click the icon in the system tray to restore it.\r
-\par 9) When you are ready to shut down the AFS client, bring up the AFS client dialog and click the "Disconnect" button. This will terminate the AFS daemon. Then click "Exit" to quit.\r
-\par \r
-\par Complete documentation for the AFS client is available at: \r
-\par http://www.openafs.org/dl/openafs/1.0.2/afs-3.6-doc.tar.gz\r
-\par \r
-\par \plain\f2\fs24\b Explorer Shell Extension\r
-\par \r
-\par \plain\f2\fs20 You can right click on items within an AFS tree to bring up an "AFS" menu item. Under this menu are various operations you can execute on a file or directory. The most useful item is "Access Control Lists" which allows you to view and edit the permissions of a particular directory. \r
-\par \r
-\par \r
-\par \plain\f2\fs24\b Command Line Tools\r
-\par \r
-\par \plain\f2\fs20 The following command line tools are available in the install directory. See the full documentation at the above URL for complete information on these commands:\r
-\par \r
-\par klog.exe: \tab Authenticate a user to a cell, e.g. "klog joeuser@mycell.com" \tab \r
-\par unlog.exe: \tab Unauthenticate to a cell\tab \r
-\par tokens.exe\tab List which tokens you have (cells you have authenticated to) and their expiration times\tab \r
-\par kpasswd.exe\tab Change your password for the specified cell\tab \r
-\par symlink.exe: \tab Create a symbolic link , e.g. "symlink make dest src" makes a link called "dest" pointing to file "src"\tab \r
-\par fs.exe: \tab This command is used for a number of file server functions. Type "fs help" for a list, and then "fs help function" to get detailed help for that function. See the documentation for more info.\tab \r
-\par fs help\tab list functions\tab \r
-\par fs listacl <directory>\tab show directory access control list\tab \r
-\par fs setacl <diretory> <acl>\tab set directory access control list\tab \r
-\par fs listquota <directory>\tab show directory disk quota\tab \r
-\par fs flushvolume <directory>\tab flush cached data from volume\tab \r
-\par pts.exe\tab This command is used for user administration functions. See the documentation for more info. (Note: this command currently does not work in Windows 95.)\tab \r
-\par \r
-\par \plain\f2\fs24\b Known Issues\r
-\par \r
-\par \pard\li720\fi-360\plain\f2\fs20 1) The Microsoft Visual Studio linker "link.exe" fails when writing to a file stored in AFS. It freezes the system for a minute or so and then times out. This problem may exist in other programs as well.\r
-\par 2) Occasionally the U: and Z: drive letters are not mapped automatically when the client is started. If this happens, you can map them manually by entering the commands:\r
-\par \pard\li1440\fi-360\tx1440\plain\f2\fs20 0net use u: \\\\mymachine-afs\\home\r
-\par 1net use z: \\\\mymachine-afs\\all\r
-\par 2where "mymachine" is the Windows networking name of your machine.\r
-\par \pard\li720\fi-360\plain\f2\fs20 3) The Windows file system does not understand symbolic links, so links to directories just look like normal directories. This can lead to problems when trying to recursively copy a directory, since following cyclical links can lead to infinite regress.\r
-\par 4) The Office 2000 install program seems to take a very long time to install Office 2000 to AFS.\r
-\par 5) You must log in to Windows for Windows networking to work correctly. If you bypass the login, AFS will time out trying to start the AFS client console, with the error "Connect can't continue: Network error adding Z:all."\r
-\par 6) Under certain configurations the AFS Client Console will report a cache error. This will prevent the AFS Client from initializing. \r
-\par 7) Infrequently Windows will incorrectly notify the AFS Control Panel that there are open files. If this prevents AFS from disconnecting, it will require you to reboot.\r
-\par \pard\plain\f2\fs20 \r
-\par \r
-\par \plain\f2\fs24\b Legalities\r
-\par \r
-\par \pard\li720\ri810\plain\f2\fs24\i Copyright 2000, International Business Machines Corporation and others. All Rights Reserved. This software has been released under the terms of the IBM Public License. For details, see the LICENSE file in the top-level source directory or online at \plain\f2\fs24\cf1\i\ul http://www.openafs.org/dl/license10.html\plain\f2\fs24\b \r
-\par \pard\plain\f2\fs24\b \r
-\par \plain\f2\fs20 This program was compiled using the DJGPP compiler and includes object code copyrighted by DJ Delorie. The compiler and libraries are available at http://www.delorie.com.\r
-\par \r
-\par This program includes software developed by the University of California, Berkeley, and its contributors.\r
-\par \r
-\par This program has been distributed with, and uses the services of, the sock.vxd and mmap.vxd drivers written for the Coda project at http://www.coda.cs.cmu.edu and licensed under the GNU General Public License. Source code for these drivers is available at the above web site.\r
-\par \r
-\par \r
-\par }\r
-\0
\ No newline at end of file
+++ /dev/null
-@echo off
-
-if [%2]==[] goto noparm
-if [%2]==[] goto noparm
-if [%3]==[] goto noparm
-if not [%5]==[] goto BEGIN
-:noparm
-ECHO 1 parameter = full source path to .\winstall area e.g. d:\dest\wininstall
-echo 2 & 3 parameters = target drive target folder c: afscli
-echo 4 parameters CellName e.g k56.almaden.ibm.com
-echo 5 parameter cache size e.g. 40000
-goto xit
-
-:begin
-rem Generate Unstall.bat
-echo echo off > %2\%3\uninstall.bat
-echo %2\%3\util_cr * "-[HKEY_CLASSES_ROOT\CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}]" >> %2\%3\uninstall.bat
-echo %2\%3\util_cr * "-[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers] @" >> %2\%3\uninstall.bat
-echo %2\%3\util_cr * "-[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\AFS Client Shell Extension]" >> %2\%3\uninstall.bat
-echo %2\%3\util_cr * "-[HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers\AFS Client Shell Extension]" >> %2\%3\uninstall.bat
-echo %2\%3\util_cr * "-[HKEY_LOCAL_MACHINE\Software\CLASSES\Folder\shellex\ContextMenuHandlers] @" >> %2\%3\uninstall.bat
-echo %2\%3\util_cr * "-[HKEY_LOCAL_MACHINE\Software\IBM\WinAfsLoad]" >> %2\%3\uninstall.bat
-echo %2\%3\util_cr * "-[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\afsd.exe]" >> %2\%3\uninstall.bat
-echo %2\%3\util_cr * "-[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved] {DC515C27-6CAC-11D1-BAE7-00C04FD140D2}" >> %2\%3\uninstall.bat
-echo %2\%3\util_cr * "-[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\AFS Windows 9x Client]" >> %2\%3\uninstall.bat
-echo %2\%3\util_cr * "-[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\mmap]" >> %2\%3\uninstall.bat
-echo %2\%3\util_cr * "+[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce] doit=%2\%3\runonce.bat" >> %2\%3\uninstall.bat
-echo copy %2\%3\unrunonce %2\%3\runonce.bat >> %2\%3\uninstall.bat
-echo if exist c:\autoafs.bat del c:\autoafs.bat >> %2\%3\uninstall.bat
-echo echo Please reboot your system now! >> %2\%3\uninstall.bat
-
-ECHO del %2\%3\*.tmp >%2\%3\unrunonce
-ECHO del %2\%3\*.dll >>%2\%3\unrunonce
-ECHO del %2\%3\*.exe >>%2\%3\unrunonce
-ECHO del %2\%3\*.ini >>%2\%3\unrunonce
-ECHO del %2\%3\*.vxd >>%2\%3\unrunonce
-ECHO del %2\%3\*.hlp >>%2\%3\unrunonce
-ECHO del %2\%3\*.cnt >>%2\%3\unrunonce
-ECHO del %2\%3\*.doc >>%2\%3\unrunonce
-ECHO del %2\%3\*.info >>%2\%3\unrunonce
-ECHO del %2\%3\*.pif >>%2\%3\unrunonce
-ECHO del %2\%3\tmp\*.dll >>%2\%3\unrunonce
-ECHO del %2\%3\tmp\*.exe >>%2\%3\unrunonce
-echo del %2\%3\runonce.bat >>%2\%3\unrunonce
-
-echo /afs;%2\afscache;%5 >Cache.Info
-echo %4> ThisCell
-
-echo set path=%2\%3;%%path%% > C:\autoafs.bat
-echo set afsconf=%2\%3 >> C:\autoafs.bat
-if exist c:\autoexec.bat echo if exist autoafs.bat autoafs>>c:\autoexec.bat
-
-%2
-if not exist %2\%3\nul mkdir \%3
-if not exist %2\%3\tmp\nul mkdir \%3\tmp
-
-rem copy files over
-set fp=runonce.PIF
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\.
-
-set fp=license.txt
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\.
-
-set fp=util_cr.exe
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\.
-
-set fp=ThisCell
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\.
-
-set fp=cache.info
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\.
-
-set fp=AFSD.PIF
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\.
-
-set fp=CellServDB
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\.
-
-set fp=ReadMe.doc
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\.
-
-set fp=WinAfsLoad.exe
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\.
-
-set fp=afswin9x.HLP
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\.
-
-set fp=afswin9x.CNT
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\.
-
-set fp=unlog.exe
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\.
-
-set fp=afs_shl_ext_1033.dll
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\tmp\.
-
-set fp=afsauthent.dll
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\tmp\.
-
-set fp=afsshare.exe
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\.
-
-set fp=fs.exe
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\.
-
-set fp=klog.exe
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\.
-
-set fp=kpasswd.exe
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\.
-
-set fp=libosi.dll
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\tmp\.
-
-set fp=libafsconf.dll
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\tmp\.
-
-set fp=pts.exe
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\.
-
-set fp=tokens.exe
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\.
-
-set fp=afs_shl_ext.dll
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\tmp\.
-
-set fp=pthread.dll
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\tmp\.
-
-set fp=afsrpc.dll
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\tmp\.
-
-set fp=afsd.exe
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\tmp\.
-
-set fp=mmap.vxd
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\.
-
-set fp=sock.vxd
-if not exist %1\%fp% goto nofile
-copy %1\%fp% %2\%3\.
-
-echo Update Registry
-%1\util_cr * "+[HKEY_CLASSES_ROOT\CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}] @=AFS Client Shell Extension"
-%1\util_cr * "+[HKEY_CLASSES_ROOT\CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}\InprocServer32] @=%2\%3\afs_shl_ext.dll"
-%1\util_cr * "+[HKEY_CLASSES_ROOT\CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}\InprocServer32] THREADINGMODEL=Apartment"
-%1\util_cr * "+[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers] @=afs_shl_ext"
-%1\util_cr * "+[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\AFS Client Shell Extension] @={DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"
-%1\util_cr * "+[HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers\AFS Client Shell Extension] @={DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"
-%1\util_cr * "+[HKEY_CURRENT_USER\Software\IBM]"
-%1\util_cr * "+[HKEY_CURRENT_USER\Software\IBM\AFS]"
-%1\util_cr * "+[HKEY_CURRENT_USER\Software\IBM\AFS\Window] PowerResumeDelay=hex:14,00,00,00"
-%1\util_cr * "+[HKEY_CURRENT_USER\Software\IBM\AFS\Window] LoginTime=hex:28,00,00,00"
-%1\util_cr * "+[HKEY_CURRENT_USER\Software\IBM\AFS\Security]"
-%1\util_cr * "+[HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}] @=AFS Client Shell Extension"
-%1\util_cr * "+[HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}\InprocServer32] @=%2\%3\afs_shl_ext.dll"
-%1\util_cr * "+[HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}\InprocServer32] THREADINGMODEL=Apartment"
-%1\util_cr * "+[HKEY_LOCAL_MACHINE\Software\CLASSES\Folder\shellex\ContextMenuHandlers] @="afs_shl_ext"
-%1\util_cr * "+[HKEY_LOCAL_MACHINE\Software\IBM\AFS]"
-%1\util_cr * "+[HKEY_LOCAL_MACHINE\Software\IBM\AFS\1.00.000]"
-%1\util_cr * "+[HKEY_LOCAL_MACHINE\Software\IBM\WinAfsLoad] InstallDir=%2\%3"
-%1\util_cr * "+[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\afsd.exe] Path=%2\%3"
-%1\util_cr * "+[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\afsd.exe] @=%2\%3\afsd.exe"
-%1\util_cr * "+[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved] {DC515C27-6CAC-11D1-BAE7-00C04FD140D2}=AFS Client Shell Extension"
-%1\util_cr * "+[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\mmap] STATICVXD=%2\%3\mmap.vxd"
-%1\util_cr * "+[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce] doit=%2\%3\runonce.bat"
-%1\util_cr * "+[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\AFS Windows 9x Client] UninstallString=%2\%3\uninstall.bat"
-%1\util_cr * "+[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\AFS Windows 9x Client] DisplayName=AFS Windows 9x Client"
-
-echo copy %2\%3\tmp\*.* %2\%3\. > %2\%3\runonce.bat
-ECHO del %2\%3\tmp\*.dll >>%2\%3\runonce.bat
-ECHO del %2\%3\tmp\*.exe >>%2\%3\runonce.bat
-echo del %2\%3\runonce.bat >>%2\%3\runonce.bat
-
-notepad %2\%3\license.txt
-echo You need to reboot the system now
-goto xit
-
-:nofile
-echo Installation incomplete missing file:%1\%fp%
-goto xit
-
-:XIT
-set fp=
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
\ No newline at end of file
+++ /dev/null
-[InstallShield Silent]
-Version=v6.00.000
-File=Response File
-
-[File Transfer]
-OverwrittenReadOnly=NoToAll
-
-[{EA711160-C786-11D3-A374-00105A6BCA4C}-DlgOrder]
-Dlg0={EA711160-C786-11D3-A374-00105A6BCA4C}-SdWelcome-0
-Count=3
-Dlg1={EA711160-C786-11D3-A374-00105A6BCA4C}-SdAskDestPath-0
-Dlg2={EA711160-C786-11D3-A374-00105A6BCA4C}-SprintfBox-0
-
-[{EA711160-C786-11D3-A374-00105A6BCA4C}-SdWelcome-0]
-Result=1
-
-[{EA711160-C786-11D3-A374-00105A6BCA4C}-SdAskDestPath-0]
-szDir=C:\afs cli
-Result=1
-
-[{EA711160-C786-11D3-A374-00105A6BCA4C}-SprintfBox-0]
-Result=6
+++ /dev/null
-REGEDIT4
-[HKEY_CLASSES_ROOT\CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}]
-@="AFS Client Shell Extension"
-[HKEY_CLASSES_ROOT\CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}\InprocServer32]
-@="c:\\afscli\\afs_shl_ext.dll"
-"THREADINGMODEL"="Apartment"
-[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers]
-@="afs_shl_ext"
-[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\AFS Client Shell Extension]
-@="{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"
-[HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers\AFS Client Shell Extension]
-@="{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"
-[HKEY_CURRENT_USER\Software\IBM]
-[HKEY_CURRENT_USER\Software\IBM\AFS]
-[HKEY_CURRENT_USER\Software\IBM\AFS\Window]
-"PowerResumeDelay"=hex:14,00,00,00
-"LoginTime"=hex:28,00,00,00
-[HKEY_LOCAL_MACHINE\Software\CLASSES\*\shellex\ContextMenuHandlers]
-@="afs_shl_ext"
-[HKEY_LOCAL_MACHINE\Software\CLASSES\*\shellex\ContextMenuHandlers\AFS Client Shell Extension]
-@="{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"
-[HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}]
-@="AFS Client Shell Extension"
-[HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}\InprocServer32]
-@="c:\\afscli\\afs_shl_ext.dll"
-"THREADINGMODEL"="Apartment"
-[HKEY_LOCAL_MACHINE\Software\CLASSES\Folder\shellex\ContextMenuHandlers]
-@="afs_shl_ext"
-[HKEY_LOCAL_MACHINE\Software\CLASSES\Folder\shellex\ContextMenuHandlers\AFS Client Shell Extension]
-@="{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"
-[HKEY_LOCAL_MACHINE\Software\IBM\AFS]
-[HKEY_LOCAL_MACHINE\Software\IBM\AFS\1.00.000]
-[HKEY_LOCAL_MACHINE\Software\IBM\WinAfsLoad]
-"InstallDir"="C:\\Program Files\\AfsCli"
-[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\afsd.exe]
-"Path"="c:\\afscli"
-@="c:\\afscli\\afsd.exe"
-[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved]
-"{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"="AFS Client Shell Extension"
-[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\WinAfsLoad]
-"DisplayName"="WinAfsLoad"
-"UninstallString"="c:\\afscli\\unsetup.bat ;;;"
-[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\mmap]
-"STATICVXD"="c:\\afscli\\mmap.vxd"
-[HKEY_USERS\.DEFAULT\Software\IBM]
-[HKEY_USERS\.DEFAULT\Software\IBM\AFS]
-[HKEY_USERS\.DEFAULT\Software\IBM\AFS\Window]
-"PowerResumeDelay"=hex:14,00,00,00
-"LoginTime"=hex:28,00,00,00
-[HKEY_USERS\.DEFAULT\Software\IBM\AFS\Security]
-[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce]
-"doit"="c:\\afscli\\runonce.bat"
+++ /dev/null
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/* Define VERSIONINFO resource */
-
-#define AFS_VERINFO_FILE_DESCRIPTION "AFS Pthread DLL (Windows 95)"
-#define AFS_VERINFO_DLL
-#define AFS_VERINFO_NAME "afspthread95"
-#define AFS_VERINFO_FILENAME "afspthread.dll"
-
-#include "AFS_component_version_number.h"
-#include "..\..\config\NTVersioninfo.rc"
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-
-#include "stdafx.h"
-#ifdef _MFC_VER
-extern "C" {
-#endif
-#include <afs\param.h>
-#include <afs\stds.h>
-#include <afs\kautils.h>
-#include "cm_config.h"
-#include "cmd.h"
-#ifdef _MFC_VER
- }
-#endif
-#include "api95.h"
-#include "cregkey.h"
-#include "cafs.h"
-#include <Svrapi.h>
-#include "afsmsg95.h"
-
-#include "WinAfsLoad.h"
-
-#define AFS_KERBEROS_ENV
-
-#ifndef KABADARGUMENT
-#undef KABADARGUMENT
-#define KABADARGUMENT 1
-#endif
-#define KLOGEXIT(code) exit(code)
-
-#define LENDIR 128
-
-//#define _DEBUG
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-#define HOURSLEFT 24
-
-CProgress::CProgress(CWnd *wnd, UINT mode)
-{
- m_pWnd=wnd;
- // you cannot obtain the handle to the window int these routines so you have enough time to create the window
- PROGRESS(wnd,mode);
-}
-
-CProgress::~CProgress()
-{
- PROGRESS(NULL,ProgFHide);
-}
-
-void CProgress::SetTitle(const char *t1,const char *t2,const char *t3)
-{
- char *msg=new char[strlen(t1)+strlen(t2)+strlen(t3)+3];
- strcpy(msg,t1);
- strcpy(msg+strlen(t1)+1,t2);
- strcpy(msg+strlen(t1)+strlen(t2)+2,t3);
- PROGRESS(msg,ProgFSetTitle);
-}
-
-void CProgress::Next()
-{
- PROGRESS(m_pWnd,ProgFNext);
-}
-
-void CProgress::Finish()
-{
- PROGRESS(NULL,ProgFHide);
-}
-
-
-CAfs::~CAfs()
-{
- // let the OS kill the progress bar thread
-}
-
-void CAfs::FinishProgress()
-{
- PROGRESS(NULL,ProgFHide);
-}
-
-BOOL CALLBACK CAfs::EnumWindowsProcShutdown(HWND hWnd, LPARAM lParam)
-{
- CWnd *wnd=CWnd::FromHandle(hWnd);
- CString msg;
- CString sFinish;
- wnd->GetWindowText(msg);
- if (msg==m_sDosAppName)
- m_hAfsLoad=hWnd;
- sFinish.Format("Finished - %s",m_sDosAppName);
- if (msg==sFinish)
- m_hAfsLoadFinish=hWnd;
- return ((m_hAfsLoad==0) && (m_hAfsLoadFinish==0));
-}
-
-BOOL CAfs::Init(CWnd *wnd,CString &msg)
-{
- ka_Init(0);
- return TRUE;
-}
-
-HWND CAfs::m_hAfsLoad;
-HWND CAfs::m_hAfsLoadFinish;
-CString CAfs::m_sDosAppName;
-
-BOOL CALLBACK CAfs::EnumWindowsProc(HWND hWnd, LPARAM lParam)
-{
- CWnd *wnd=CWnd::FromHandle(hWnd);
- CString msg;
- wnd->GetWindowText(msg);
- DWORD dwProcessID;
- ::GetWindowThreadProcessId (hWnd, &dwProcessID);
- if (dwProcessID == (DWORD) lParam)
- {
- if (msg.IsEmpty()) return TRUE;
- m_hAfsLoad=hWnd;
- return FALSE;
- }
- return TRUE;
-}
-
-BOOL CAfs::Create(CString &msg,CString sCompName,PROCESS_INFORMATION &procInfo)
-{
- DWORD rc;
-// lets make sure there are no other instances of the client
- m_hAfsLoadFinish=m_hAfsLoad=0;
- EnumWindows (EnumWindowsProcShutdown, (LPARAM) 0); //lets prevent multiple instances!
- if (m_hAfsLoad)
- Shutdown(msg);
- else if (m_hAfsLoadFinish) // SOME REASON THE WINDOW WAS NOT SHUT DOWN, SO LETES KILL IT
- {
- ::SendMessage(m_hAfsLoadFinish,WM_CLOSE,0,0);
- LOG("WM_CLOSE");
- }
- CRegkey regkey("AFS\\Window");
- UINT logintime=0;
- DWORD size=sizeof(logintime);
- regkey.GetBinary("LoginTime",(LPBYTE)&logintime,size);
- if (logintime<=0) {
-#ifdef _DEBUG
- logintime=10;
-#else
- logintime=40;
-#endif
- regkey.PutBinary("LoginTime",(LPBYTE)&logintime,size);
- }
- int Pipe = 0;
- GetStartupInfo(&m_startUpInfo);
- m_startUpInfo.lpTitle = DOSTITLE;
- m_startUpInfo.wShowWindow = (CWINAFSLOADAPP->m_bShowAfs) ?SW_SHOW :SW_HIDE;//SW_SHOWMINIMIZED;//SW_HIDE;
- m_startUpInfo.dwFlags|=STARTF_USESHOWWINDOW;
- CWINAFSLOADAPP->SetNotifyEventSuspend(); //this needs to be done before createprocess, incase notification occurs before WaitSuspend
- LOG("Start AFSD Creation");
- rc = CreateProcess(NULL /*appName 16bit apps should be null*/,CMDLINE, NULL, NULL, FALSE,
- /*DETACHED_PROCESS |*/ CREATE_NEW_CONSOLE | HIGH_PRIORITY_CLASS /*NORMAL_PRIORITY_CLASS*/,
- NULL, NULL, &m_startUpInfo, &procInfo);
-
- if (!rc) {
- LPVOID lpMsgBuf;
- FormatMessage(
- FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_IGNORE_INSERTS,
- NULL,
- GetLastError(),
- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
- (LPTSTR) &lpMsgBuf,
- 0,
- NULL
- );
- msg.Format("Error creating AFS Client Console process, Status=%s.",lpMsgBuf);
- return FALSE;
- }
- LOG("AFSD Creation done - wait for notification");
- WPARAM wp;
- CWINAFSLOADAPP->WaitForEvent(logintime*1000,&wp,&msg);
- switch (wp)
-
- {
- case AFS_EXITCODE_NORMAL:
- // extract machine name for logon
- msg=msg.Right(msg.GetLength()-msg.Find('#')-1);
- m_sMountName.Format("\\\\%s",msg.Left(msg.ReverseFind('#')));
- if (m_sMountName=="\\\\")
- {
- m_sMountName.Format("\\\\%s-AFS",sCompName.Left(11));
- }
- break;
- default:
- return FALSE;
- }
- EnumWindows (EnumWindowsProc, (LPARAM) procInfo.dwProcessId);
- CString name;
- int len=0;
- if (m_hAfsLoad)
- {
- len=GetWindowText(m_hAfsLoad,name.GetBuffer(64),63);
- m_sDosAppName=name;
- }
- if (name==DOSTITLE) return TRUE;
- if ((len==0)||(name==DOSTITLEFINISH) || (name==APPTITLEFINISH))
- {
- msg="AFS Client Console did not start properly!";
- CString temp;
- Shutdown(temp);
- return FALSE;
- }
- regkey.PutString("Title",name);
- return TRUE;
-}
-
-BOOL CAfs::CheckNet(CString &msg)
-{
- TCHAR szDrive[] = TEXT("*:");
- TCHAR szMapping[ MAX_PATH ] = TEXT("");
- LPTSTR pszSubmount = szMapping;
-// TCHAR scan[MAX_PATH];
- DWORD dwSize = MAX_PATH;
-// TCHAR pBuffer[MAX_PATH];
-// wsprintf(scan, "\\\\%s", compname);
- for (TCHAR chDrive = 'D'; chDrive <= 'Z'; ++chDrive)
- {
- szDrive[0]=chDrive;
- if (WNetGetConnection (szDrive, szMapping, &dwSize) == NO_ERROR)
- {
- CHAR *p=strstr(szMapping,m_sMountName);
- if (p)
- {
- p=strrchr(szMapping,'\\')+1;
- if (!Dismount(msg,szDrive,FALSE))
- {
- msg.Format("Drive %s has Open Files",szDrive);
- return FALSE;
- }
- Mount(msg,szDrive,p);
- }
- }
- }
- return TRUE;
-}
-
-
-BOOL CAfs::Mount(CString &msg,const char *drvLetter,const char *path)
-{
- char resource[256];
- NETRESOURCE nr;
- int oundHome=0;
- int Pipe = 0;
- CWait wait; //simple way to set cursor busy
- memset(&nr, 0, sizeof(NETRESOURCE));
- ASSERT(strlen(m_sMountName)!=0);
- wsprintf(resource, "%s\\%s", m_sMountName,path);
- nr.dwType = RESOURCETYPE_DISK;
- nr.lpProvider = NULL;
- nr.lpLocalName = (char *)drvLetter;
- nr.lpRemoteName = resource;
- switch (WNetAddConnection2(&nr, 0, 0, 0))
- {
- case ERROR_ACCESS_DENIED:
- msg.Format("Access to the network resource was denied, cannot connect '%s%s'",drvLetter,path);
- return FALSE;
- case ERROR_ALREADY_ASSIGNED:
- msg.Format("Drive %s specified by the path, '%s', is already connected to a network resource",drvLetter,path);
- return FALSE;
- case ERROR_BAD_DEVICE:
- msg.Format("Path '%s' is invalid",path);
- return FALSE;
- case ERROR_BAD_NET_NAME:
- msg.Format("Path '%s' is not acceptable to any network resource provider, either because the resource name is invalid, or because the named resource cannot be located",path);
- return FALSE;
- case ERROR_BAD_PROFILE:
- msg.Format("The user profile is in an incorrect format, cannot add '%s%s'",drvLetter,path);
- return FALSE;
- case ERROR_BUSY:
- msg.Format("The router or provider is busy, possibly initializing. Please retry, cannot add %s%s",drvLetter,path);
- return FALSE;
- case ERROR_INVALID_PASSWORD:
- msg.Format("The specified password is invalid, cannot add '%s%s'",drvLetter,path);
- return FALSE;
- case NO_ERROR:
- return TRUE;
- default:
- msg.Format("Network error adding '%s%s'",drvLetter,path);
- return FALSE;
- }
- return TRUE;
-}
-
-BOOL CAfs::Dismount(CString &msg,const char *drvLetter,BOOL force)
-{
- int Pipe = 0;
- DWORD ret=-1;
- CWait wait; //simple way to set cursor busy
- ret=WNetCancelConnection2(drvLetter,CONNECT_UPDATE_PROFILE,force);
- switch (ret)
- {
- case ERROR_DEVICE_IN_USE:
- msg.Format("A device is in use and '%s' cannot be disconnected",drvLetter);
- return FALSE;
- case ERROR_OPEN_FILES:
- msg.Format("There are open files on '%s' and cannot be disconnected",drvLetter);
- return FALSE;
- case ERROR_NOT_CONNECTED:
- case NO_ERROR:
- default:
- break;
- }
- return TRUE;
-}
-
-BOOL CAfs::Authencate(CString &msg,const char * name,const char * password)
-{
- DWORD rc;
- char instance[8];
- char realm[256];
- int lifetime;
- char *reason;
- int oundHome=0;
- long password_expires;
- int Pipe = 0;
- cm_GetRootCellName(m_cCell);
- strcpy(realm, m_cCell);
- lifetime = 0;
- instance[0] = 0;
- rc = ka_UserAuthenticateGeneral (KA_USERAUTH_VERSION,
- (PCHAR)name, instance, realm, (PCHAR)password, lifetime,
- &password_expires, 0, &reason);
- if (rc) {
- if (strstr(reason,"skewed"))
- {
- char buf[32];
- if (GetEnvironmentVariable("TZ",buf,32))
- {
- msg.Format("Unable to authenticate to AFS because:\n '%s'.\nCheck Enviornment Variable 'TZ=%s', either remove it (See Autoexec.bat) or set it correctly.",reason,buf);
- return FALSE;
- }
- }
- msg.Format("Unable to authenticate to AFS because:\n '%s'.", reason);
- return FALSE;
- }
-
-#ifndef AFS_KERBEROS_ENV
- if (writeTicketFile) {
- code = krb_write_ticket_file (realm);
- if (!Silent) {
- if (code)
- com_err (rn, code, "writing Kerberos ticket file");
- else {
- m_pParent->Log("Wrote ticket file to /tmp");
- }
- }
- }
-#endif
- m_tTotalSpanTime=0; //reset total time to 0 so ScanTokens will reset it
- return ScanTokens(msg);
-}
-
-BOOL CAfs::StartExployer(CString &msg,const char *udrive)
-{
- DWORD rc;
- PROCESS_INFORMATION procInfo;
- STARTUPINFO startUpInfo;
- int Pipe = 0;
- int code;
- WIN32_FIND_DATA FileData;
- CString dir;
- if ((udrive==NULL) || (strlen(udrive)==0)) return TRUE;
- dir.Format("%s\\*",udrive);
- HANDLE hFile= FindFirstFile(
- dir, // file name
- &FileData);
- if (hFile==INVALID_HANDLE_VALUE)
- {
- msg.Format("Unable to open Explorer, Drive '%s' is connected but not accessable.",udrive);
- return FALSE;
- }
- FindClose(hFile);
- char wdir[LENDIR+1];
- code = GetWindowsDirectory(wdir, sizeof(wdir));
-
- if (code == 0 || code > sizeof(wdir))
- strcpy(wdir, "c:\\windows");
- CString cmdLine;
- cmdLine.Format("%s\\explorer.exe /n,/e,%s\\",wdir,udrive);
- GetStartupInfo(&startUpInfo);
- startUpInfo.lpTitle = NULL;
- startUpInfo.wShowWindow = SW_SHOWNORMAL;
- rc = CreateProcess(NULL /*appName*/
- ,cmdLine.GetBuffer(cmdLine.GetLength())
- , NULL, NULL, FALSE
- ,DETACHED_PROCESS | NORMAL_PRIORITY_CLASS
- ,NULL, NULL, &startUpInfo, &procInfo);
- if (rc!=0) return TRUE;
- LPVOID lpMsgBuf;
- FormatMessage(
- FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_IGNORE_INSERTS,
- NULL,
- GetLastError(),
- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
- (LPTSTR) &lpMsgBuf,
- 0,
- NULL
- );
- msg.Format("Unable to open Explorer, %s.",lpMsgBuf);
- LocalFree( lpMsgBuf );
- return FALSE;
-}
-
-BOOL CAfs::Shutdown(CString &msg)
-{
- CWINAFSLOADAPP->ClearNotify();
- ShutdownAfs();
- m_hAfsLoadFinish=0;
- CTime startTime = CTime::GetCurrentTime();
- CTimeSpan elapsedTime;
- do
- {
- m_hAfsLoad=0;
- EnumWindows (EnumWindowsProcShutdown, (LPARAM) 0); //lets prevent multiple instances!
- Sleep(500);
- elapsedTime= CTime::GetCurrentTime() - startTime;
- if (elapsedTime.GetTotalSeconds()>10)
- {
- msg="AFS Client Console was not terminated properly!";
- ::ShowWindow(m_hAfsLoad,SW_SHOWNORMAL);
- return FALSE;
- }
- } while (m_hAfsLoad);
- if (m_hAfsLoadFinish==0)
- {
- Sleep(250); //maybe it takes a little time between process kill and window display??
- EnumWindows (EnumWindowsProcShutdown, (LPARAM) 0); //lets prevent multiple instances!
- }
- if (m_hAfsLoadFinish) // SOME REASON THE WINDOW WAS NOT SHUT DOWN, SO LETES KILL IT
- {
- ::SendMessage(m_hAfsLoadFinish,WM_CLOSE,0,0);
- LOG("WM_CLOSE2");
- }
- return TRUE;
-}
-
-
-/*
- struct afsconf_cell {
- char name[MAXCELLCHARS]; Cell name
- short numServers; Num active servers for the cell
- short flags; useful flags
- struct sockaddr_in hostAddr[MAXHOSTSPERCELL]; IP addresses for cell's servers
- char hostName[MAXHOSTSPERCELL][MAXHOSTCHARS]; Names for cell's servers
- char *linkedCell; Linked cell name, if any
- }
-*/
-
-BOOL CAfs::ScanTokens(CString &msg)
-{
- int cellNum;
- int rc;
- struct ktc_principal serviceName, clientName;
- struct ktc_token token;
- cellNum = 0;
- msg="";
- while (1) {
- rc = ktc_ListTokens(cellNum, &cellNum, &serviceName);
- if (rc == KTC_NOENT) {
- return TRUE;
- break;
- }
- else if (rc == KTC_NOCM) {
- return TRUE;
- }
- else if (rc) {
- msg.Format("AFS Scan token error - Unexpected error, code 0x%0x\n", rc);
- return FALSE;
- }
- else {
- rc = ktc_GetToken(&serviceName, &token, sizeof(token),
- &clientName);
- if (rc) {
- msg.Format("Unexpected error, service %s.%s.%s, code 0x%0x\n",
- serviceName.name, serviceName.instance,
- serviceName.cell, rc);
- return FALSE;
- }
- m_dTokenEndTime=token.endTime;
- if (m_tTotalSpanTime.GetTotalSeconds()==0)
- m_tTotalSpanTime=::CTime(m_dTokenEndTime)-CTime::GetCurrentTime();
- }
- }
- return TRUE;
-}
-
-UINT CAfs::TestTokenTime(CString &msg)
-{
- CTimeSpan timeleft=::CTime(m_dTokenEndTime)-CTime::GetCurrentTime();
-#ifdef _DEBUG
- DWORD dt=timeleft.GetTotalMinutes();
- DWORD dl=m_tTotalSpanTime.GetTotalMinutes();
- if (timeleft.GetTotalMinutes()<=m_tTotalSpanTime.GetTotalMinutes()-2)
- {
- msg="Authenication Expired: No Time left.";
- return 2;
- }
- msg.Format("Authenication will expire in Hours:%d Minutes:%d",timeleft.GetTotalHours()
- ,timeleft.GetTotalMinutes()-timeleft.GetTotalHours()*60);
- return (timeleft.GetTotalMinutes()>(m_tTotalSpanTime.GetTotalMinutes()-1))?0:1;
-#else
- if (timeleft.GetTotalMinutes()<=0)
- {
- msg="Authenication Expired: No Time left.";
- return 2;
- }
- if (
- (timeleft.GetTotalMinutes()>=(m_tTotalSpanTime.GetTotalMinutes()/7)-1)
- && (timeleft.GetTotalMinutes()<=(m_tTotalSpanTime.GetTotalMinutes()/7)+1)
- )
- {
- LOG("TimeLeft %d Total Span time %d",timeleft.GetTotalMinutes()
- ,m_tTotalSpanTime.GetTotalMinutes());
- return (ScanTokens(msg))?0:-1;
- }
- msg.Format("Authenication will expire in Hours:%d Minutes:%d",timeleft.GetTotalHours()
- ,timeleft.GetTotalMinutes()-timeleft.GetTotalHours()*60);
- return (timeleft.GetTotalMinutes()>(m_tTotalSpanTime.GetTotalMinutes()/7))?0:1;
-#endif
-}
-
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-#include "stdafx.h"
-#include "cregkey.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-CRegkey::CRegkey(HKEY hKey,const char *subkey,const char *skey)
-{
- DWORD disposition,result;
- m_kPkey=m_kSkey=0;
- result=(RegCreateKeyEx(hKey //HKEY_LOCAL_MACHINE
- ,subkey //"Software\\IBM"
- ,0,NULL
- ,REG_OPTION_NON_VOLATILE
- ,KEY_ALL_ACCESS,NULL
- ,&m_kPkey
- ,&disposition)==ERROR_SUCCESS);
- if(!result)
- {
- AfxMessageBox("AFS Error - Could Not create a registration key!");
- m_kPkey=0;
- }
- result=(RegCreateKeyEx(m_kPkey
- ,skey
- ,0,NULL
- ,REG_OPTION_NON_VOLATILE
- ,KEY_ALL_ACCESS,NULL
- ,&m_kSkey,&disposition)==ERROR_SUCCESS);
- if(!result)
- {
- RegCloseKey(m_kPkey);
- AfxMessageBox("AFS Error - Could Not create a registration key!");
- m_kPkey=m_kSkey=0;
- }
- m_dwIndex=0;
-}
-
-BOOL CRegkey::Enumerate()
-{
- DWORD result;
- CString lpName;
- DWORD dwLen=128;
- char *p=lpName.GetBuffer(dwLen);
- FILETIME ftLastWriteTime;
- result=RegEnumKeyEx(m_kSkey,// handle to key to enumerate
- m_dwIndex++, // subkey index
- p, // subkey name
- &dwLen, // size of subkey buffer
- NULL, // reserved
- NULL, // class string buffer
- NULL, // size of class string buffer
- &ftLastWriteTime // last write time
- );
- switch (result)
- {
- case ERROR_NO_MORE_ITEMS:
- return TRUE;
- case ERROR_SUCCESS:
- return TRUE;
- default:
- AfxMessageBox("AFS Error - Could Not enumerate a registration key!");
- return FALSE;
- }
- return TRUE;
-}
-
-
-CRegkey::CRegkey(const char *skey)
-{
- DWORD disposition,result;
- m_kPkey=m_kSkey=0;
- result=(RegCreateKeyEx(HKEY_CURRENT_USER
- ,"Software\\IBM"
- ,0,NULL
- ,REG_OPTION_NON_VOLATILE
- ,KEY_ALL_ACCESS,NULL
- ,&m_kPkey
- ,&disposition)==ERROR_SUCCESS);
- if(!result)
- {
- AfxMessageBox("AFS Error - Could Not create a registration key!");
- m_kPkey=0;
- }
- result=(RegCreateKeyEx(m_kPkey
- ,skey
- ,0,NULL
- ,REG_OPTION_NON_VOLATILE
- ,KEY_ALL_ACCESS,NULL
- ,&m_kSkey,&disposition)==ERROR_SUCCESS);
- if(!result)
- {
- RegCloseKey(m_kPkey);
- AfxMessageBox("AFS Error - Could Not create a registration key!");
- m_kPkey=m_kSkey=0;
- }
-}
-
-BOOL CRegkey::GetString(const char *field,CString &buffer,DWORD len)
-{
- if (m_kSkey==0) return FALSE;
- UCHAR *pBuffer=(UCHAR *)buffer.GetBuffer(len);
- DWORD type;
- if (RegQueryValueEx(m_kSkey
- ,field,0,&type
- ,pBuffer
- ,&len)!=ERROR_SUCCESS)
- {
- buffer.ReleaseBuffer();
- return FALSE; //assume never been set
- }
- ASSERT(type==REG_SZ);
- buffer.ReleaseBuffer(len);
- return TRUE;
-}
-
-BOOL CRegkey::PutString(const char *field,const char *pBuffer)
-{
- if (m_kSkey==0)
- return FALSE;
- if ((pBuffer)&&(strlen(pBuffer)))
- return (RegSetValueEx(m_kSkey,field,0,REG_SZ,(CONST BYTE *)pBuffer,strlen(pBuffer))==ERROR_SUCCESS);
- return (RegSetValueEx(m_kSkey,field,0,REG_SZ,(CONST BYTE *)"",0)==ERROR_SUCCESS);
-}
-
-
-BOOL CRegkey::GetBinary(const char *field,LPBYTE msg,DWORD &len)
-{
- if (m_kSkey==0)
- return FALSE;
- DWORD type;
- if (RegQueryValueEx(m_kSkey
- ,field,0,&type
- ,msg
- ,&len)!=ERROR_SUCCESS)
- {
- return FALSE; //assume never been set
- }
- ASSERT(type==REG_BINARY);
- return TRUE;
-}
-
-BOOL CRegkey::PutBinary(const char *field,LPBYTE msg,DWORD len)
-{
- CHAR empty[1];
- empty[0]=0;
- if (m_kSkey==0)
- return FALSE;
- if (msg)
- return (RegSetValueEx(m_kSkey,field,0,REG_BINARY,msg,len)==ERROR_SUCCESS);
- return (RegSetValueEx(m_kSkey,field,0,REG_BINARY,(LPBYTE)&empty,0)==ERROR_SUCCESS);
-}
-
-CRegkey::~CRegkey()
-{
- if (m_kSkey)
- RegCloseKey(m_kSkey);
- if (m_kPkey)
- RegCloseKey(m_kPkey);
-}
-
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-//Cregkey.h
-
-#ifndef __REGKEY__
-#define __REGKEY__
-
-class CRegkey
-{
-public:
- CRegkey(HKEY hKey,const char *subkey,const char *skey);
- CRegkey(const char *);
- ~CRegkey();
- HKEY &Getkey(){return m_kSkey;}
- BOOL GetString(const char *field,CString &buffer,DWORD len);
- BOOL PutString(const char *field,const char *pBuffer);
- BOOL GetBinary(const char *field,LPBYTE msg,DWORD &len);
- BOOL PutBinary(const char *field,LPBYTE msg,DWORD len);
- BOOL Enumerate();
-private:
- HKEY m_kPkey;
- HKEY m_kSkey;
- DWORD m_dwIndex;
-};
-
-#endif
\ No newline at end of file
+++ /dev/null
->grand.central.org #GCO Public CellServDB 15 Oct 2005
-18.7.14.88 #grand-opening.mit.edu
-128.2.191.224 #penn.central.org
-130.237.48.87 #andrew.e.kth.se
->wu-wien.ac.at #University of Economics, Vienna, Austria
-137.208.3.33 #afsdb1.wu-wien.ac.at
-137.208.8.12 #caesar.wu-wien.ac.at
-137.208.127.33 #buddy.wu-wien.ac.at
->hephy.at #hephy-vienna
-193.170.243.10 #mowgli.oeaw.ac.at
-193.170.243.12 #baloo.oeaw.ac.at
-193.170.243.14 #akela.oeaw.ac.at
->itp.tugraz.at #Institute for Theoretical Physics, TU Graz, Austria
-129.27.157.6 #fubphsv2.tu-graz.ac.at
-129.27.161.7 #faepsv01.tu-graz.ac.at
-129.27.161.15 #faepsv02.tu-graz.ac.at
->cern.ch #European Laboratory for Particle Physics, Geneva
-137.138.128.148 #afsdb1.cern.ch
-137.138.246.50 #afsdb3.cern.ch
-137.138.246.51 #afsdb2.cern.ch
->ams.cern.ch #AMS Experiment
-137.138.206.77 #pcamsf2.cern.ch
-137.138.206.123 #pcamsf4.cern.ch
->epfl.ch #Swiss Federal Institute of Technology at Lausanne
-128.178.2.6 #kd1.epfl.ch
-128.178.2.7 #kd2.epfl.ch
-128.178.2.8 #kd3.epfl.ch
->ethz.ch #Swiss Federal Inst. of Tech. - Zurich, Switzerland
-129.132.97.19 #amalthea.ethz.ch
-129.132.97.27 #nethzafs-001.ethz.ch
-129.132.115.3 #himalia.ethz.ch
-129.132.115.37 #nethzafs-005.ethz.ch
-129.132.115.38 #nethzafs-006.ethz.ch
->psi.ch #Paul Scherrer Institut - Villigen, Switzerland
-129.129.190.140 #afs00.psi.ch
-129.129.190.141 #afs01.psi.ch
-129.129.190.142 #afs02.psi.ch
->extundo.com #Simon Josefsson's cell
-195.42.214.241 #slipsten.extundo.com
->mekinok.com #Mekinok, Inc.
-4.36.43.98 #loggerhead.mekinok.com
->membrain.com #membrain.com
-66.93.118.125 #stormy
-130.85.24.11 #weasel
-130.85.24.13 #straykitten
->midnightlinux.com #Midnight Linux, Pittsburgh PA
-208.10.142.82 #outpost.midnightlinux.com
->setfilepointer.com #SetFilePointer.com
-63.224.10.2 #hamlet.SetFilePointer.com
-63.224.10.4 #troilus.SetFilePointer.com
->sodre.cx #Sodre.cx
-128.8.140.165 #greed.sodre.cx
->desy.de #Deutsches Elektronen-Synchrotron
-131.169.40.62 #vayu.desy.de
-131.169.244.60 #solar00.desy.de
->gppc.de #GPP Chemnitz mbH
-213.187.92.33 #gpp1.gppc.de
-213.187.92.34 #paulchen.gppc.de
-213.187.92.35 #lotus.gppc.de
->ifh.de #DESY Zeuthen
-141.34.22.10 #romulus.ifh.de
-141.34.22.11 #remus.ifh.de
-141.34.22.29 #hekate.ifh.de
->lrz-muenchen.de #Leibniz Computing Centre, Germany
-129.187.10.36 #afs1.lrz-muenchen.de
-129.187.10.56 #afs3.lrz-muenchen.de
-129.187.10.57 #afs2.lrz-muenchen.de
->ipp-garching.mpg.de #Institut fuer Plasmaphysik
-130.183.9.5 #afs-db1.rzg.mpg.de
-130.183.100.10 #afs-db2.aug.ipp-garching.mpg.de
-130.183.100.23 #afs-db3.aug.ipp-garching.mpg.de
->mpe.mpg.de #MPE cell
-130.183.130.7 #irafs1.mpe-garching.mpg.de
-130.183.134.20 #irafs2.mpe-garching.mpg.de
->i1.informatik.rwth-aachen.de #Informatik I, RWTH Aachen
-137.226.244.79 #remus.informatik.rwth-aachen.de
->tu-bs.de #Technical University of Braunschweig, Germany
-134.169.1.1 #rzafs1.rz.tu-bs.de
-134.169.1.5 #rzafs2.rz.tu-bs.de
-134.169.1.6 #rzafs3.rz.tu-bs.de
->tu-chemnitz.de #Technische Universitaet Chemnitz, Germany
-134.109.2.1 #zuse.hrz.tu-chemnitz.de
-134.109.2.15 #phoenix.hrz.tu-chemnitz.de
-134.109.200.7 #aetius.hrz.tu-chemnitz.de
->e18.ph.tum.de #Experimental Physics, TU Munich, Germany
-129.187.154.223 #hamlet.e18.physik.tu-muenchen.de
->uni-bonn.de #University of Bonn, Computing Center
-131.220.14.198 #work15-eth.rhrz.uni-bonn.de
-131.220.14.205 #node05.rhrz.uni-bonn.de
-131.220.15.197 #afs-db1.rhrz.uni-bonn.de
->atlass01.physik.uni-bonn.de #Bonn ATLAS
-131.220.165.43 #atlass01.physik.uni-bonn.de
->uni-freiburg.de #Albert-Ludwigs-Universitat Freiburg
-132.230.6.235 #sv6.ruf.uni-freiburg.de
-132.230.6.236 #sv7.ruf.uni-freiburg.de
-132.230.6.237 #sv8.ruf.uni-freiburg.de
->physik.uni-freiburg.de #institute of physics, university Freiburg, Germany
-132.230.77.16 #hepafs.physik.uni-freiburg.de
->urz.uni-heidelberg.de #Uni Heidelberg (Rechenzentrum)
-129.206.119.10 #afsdb.urz.uni-heidelberg.de
-129.206.119.16 #afsdb1.urz.uni-heidelberg.de
-129.206.119.17 #afsdb2.urz.uni-heidelberg.de
->uni-hohenheim.de #University of Hohenheim
-144.41.2.2 #rs13.serv.uni-hohenheim.de
-144.41.2.3 #rs14.serv.uni-hohenheim.de
-144.41.2.4 #rs15.serv.uni-hohenheim.de
->rz.uni-jena.de #Rechenzentrum University of Jena, Germany
-141.35.2.160 #lc00.rz.uni-jena.de
-141.35.7.9 #fsuj01.rz.uni-jena.de
-141.35.7.10 #zaphod.rz.uni-jena
->meteo.uni-koeln.de #Univ. of Cologne - Inst. for Geophysics & Meteorology
-134.95.144.22 #afs1.meteo.uni-koeln.de
-134.95.144.24 #afs2.meteo.uni-koeln.de
->rrz.uni-koeln.de #University of Cologne - Reg Comp Center
-134.95.19.3 #afsdb1.rrz.uni-koeln.de
-134.95.19.30 #fileserv3.rrz.uni-koeln.de
-134.95.67.97 #afs.thp.uni-koeln.de
-134.95.140.190 #rzkbserv.rrz.uni-koeln.de
->physik.uni-mainz.de #institute of physics, university Mainz, Germany
-134.93.130.93 #hardy.physik.uni-mainz.de
->uni-mannheim.de #Uni Mannheim (Rechenzentrum)
-134.155.97.204 #afsdb1.uni-mannheim.de
-134.155.97.205 #afsdb2.uni-mannheim.de
-134.155.97.206 #afsdb3.uni-mannheim.de
->uni-paderborn.de #University of Paderborn, Germany
-131.234.137.10 #afsdb1.uni-paderborn.de
-131.234.137.11 #afsdb2.uni-paderborn.de
-131.234.137.12 #afsdb3.uni-paderborn.de
->physik.uni-wuppertal.de #Physics department of Bergische Universität Wuppertal
-132.195.104.3 #afs1.physik.uni-wuppertal.de
-132.195.104.230 #afs2.physik.uni-wuppertal.de
->s-et.aau.dk #Aalborg Univ., The Student Society, Denmark
-130.225.196.22 #afs.s-et.aau.dk
->ies.auc.dk #Aalborg Univ., Inst. of Electronic Systems, Denmark
-130.225.51.73 #afsdb1.kom.auc.dk
-130.225.51.74 #afsdb2.kom.auc.dk
-130.225.51.85 #afsdb3.kom.auc.dk
->asu.edu #Arizona State University
-129.219.10.69 #authen2.asu.edu
-129.219.10.70 #authen1.asu.edu
-129.219.10.72 #authen3.asu.edu
-129.219.100.16 #authen4.asu.edu
->hep.caltech.edu #CalTech High Energy Physics
-131.215.126.150 #afs.hep.caltech.edu
->clarkson.edu #Clarkson University, Potsdam, New York USA
-128.153.1.111 #arthur.clarkson.edu
-128.153.9.111 #lancelot.clarkson.edu
-128.153.17.111 #uther.clarkson.edu
->andrew.cmu.edu #Carnegie Mellon University - Computing Services Cell
-128.2.10.2 #vice2.fs.andrew.cmu.edu
-128.2.10.7 #vice7.fs.andrew.cmu.edu
-128.2.10.11 #vice11.fs.andrew.cmu.edu
-128.2.10.28 #vice28.fs.andrew.cmu.edu
-128.2.32.44 #new-vice12.fs.andrew.cmu.edu
->club.cc.cmu.edu #Carnegie Mellon University Computer Club
-128.237.157.11 #sodium.club.cc.cmu.edu
-128.237.157.13 #potassium.club.cc.cmu.edu
->chem.cmu.edu #Carnegie Mellon University - Chemistry Dept.
-128.2.40.134 #afs.chem.cmu.edu
-128.2.40.140 #afs2.chem.cmu.edu
->cs.cmu.edu #Carnegie Mellon University - School of Comp. Sci.
-128.2.194.178 #cherry.srv.cs.cmu.edu
-128.2.194.179 #pumpkin.srv.cs.cmu.edu
-128.2.194.180 #strawberry.srv.cs.cmu.edu
->ece.cmu.edu #Carnegie Mellon University - Elec. Comp. Eng. Dept.
-128.2.129.7 #porok.ece.cmu.edu
-128.2.129.8 #vicio.ece.cmu.edu
-128.2.129.9 #e-xing.ece.cmu.edu
->scotch.ece.cmu.edu #CMU ECE CALCM research group
-128.2.134.82 #lagavulin.ece.cmu.edu
->qatar.cmu.edu #Carnegie Mellon University - Qatar Campus Cell
-204.194.25.7 #afs1.qatar.cmu.edu
-204.194.25.8 #afs2.qatar.cmu.edu
->sbp.ri.cmu.edu #Carnegie Mellon University - Sensor Based Planning Lab
-128.2.56.129 #nihao.sbp.ri.cmu.edu
-128.2.56.136 #youtheman.sbp.ri.cmu.edu
->msc.cornell.edu #Cornell University Materials Science Center
-128.84.231.242 #miranda.ccmr.cornell.edu
-128.84.241.35 #co.ccmr.cornell.edu
-128.84.249.78 #dax.ccmr.cornell.edu
->dbic.dartmouth.edu #Dartmouth Brain Imaging Center
-129.170.30.143 #dbicafs1.dartmouth.edu
-129.170.30.144 #dbicafs2.dartmouth.edu
-129.170.30.145 #dbicafs3.dartmouth.edu
->northstar.dartmouth.edu #Dartmouth College Research Computing
-129.170.16.22 #halley.dartmouth.edu
-129.170.16.42 #oort.dartmouth.edu
-129.170.16.43 #cygnusx1.dartmouth.edu
->eecs.harvard.edu #Harvard - EECS
-140.247.60.61 #zermelo.eecs.harvard.edu
-140.247.60.83 #corfu.eecs.harvard.edu
->iastate.edu #Iowa State University
-129.186.1.243 #afsdb-1.iastate.edu
-129.186.6.243 #afsdb-2.iastate.edu
-129.186.142.243 #afsdb-3.iastate.edu
->athena.mit.edu #MIT/Athena cell
-18.7.1.66 #paris.mit.edu.
-18.7.1.74 #chimera.mit.edu.
-18.158.0.37 #prill.mit.edu.
->dev.mit.edu #MIT/IS Development cell
-18.7.1.70 #wham.mit.edu.
-18.7.15.89 #rattle.mit.edu.
-18.7.15.93 #hum.mit.edu.
->net.mit.edu #MIT/Network Group cell
-18.7.7.73 #gracie.mit.edu
-18.7.21.95 #george.mit.edu
->sipb.mit.edu #MIT/SIPB cell
-18.181.0.19 #reynelda.mit.edu.
-18.181.0.22 #rosebud.mit.edu.
-18.181.0.23 #ronald-ann.mit.edu.
->soap.mit.edu #MIT School Of Architecture & Planning
-18.89.1.204 #crypt.mit.edu
-18.89.1.209 #grotto.mit.edu
-18.89.2.156 #ac.mit.edu
->msu.edu #Michigan State University Main Cell
-35.9.7.10 #afsdb0.cl.msu.edu
->nd.edu #University of Notre Dame
-129.74.223.17 #john.helios.nd.edu
-129.74.223.33 #lizardo.helios.nd.edu
-129.74.223.65 #buckaroo.helios.nd.edu
->pitt.edu #University of Pittsburgh
-136.142.8.15 #afs09.srv.cis.pitt.edu
-136.142.8.20 #afs10.srv.cis.pitt.edu
-136.142.8.21 #afs11.srv.cis.pitt.edu
->cs.pitt.edu #University of Pittsburgh - Computer Science
-130.49.220.11 #afs01.cs.pitt.edu
-130.49.220.12 #afs02.cs.pitt.edu
-130.49.220.13 #afs03.cs.pitt.edu
->psc.edu #PSC (Pittsburgh Supercomputing Center)
-128.182.59.182 #shaggy.psc.edu
-128.182.66.184 #velma.psc.edu
-128.182.66.185 #daphne.psc.edu
->scoobydoo.psc.edu #PSC Test Cell
-128.182.59.181 #scooby.psc.edu
->cede.psu.edu #Penn State - Center for Engr. Design & Entrepeneurship
-146.186.218.10 #greenly.cede.psu.edu
-146.186.218.60 #b50.cede.psu.edu
-146.186.218.246 #stalin.cede.psu.edu
->rose-hulman.edu #Rose-Hulman Institute of Technology
-137.112.7.11 #afs1.rose-hulman.edu
-137.112.7.12 #afs2.rose-hulman.edu
-137.112.7.13 #afs3.rose-hulman.edu
->cs.rose-hulman.edu #Rose-Hulman CS Department
-137.112.40.10 #galaxy.cs.rose-hulman.edu
->rpi.edu #Rensselaer Polytechnic Institute
-128.113.22.11 #saul.server.rpi.edu
-128.113.22.12 #joab.server.rpi.edu
-128.113.22.13 #korah.server.rpi.edu
-128.113.22.14 #achan.server.rpi.edu
->hep.sc.edu #University of South Carolina, Dept. of Physics
-129.252.78.77 #cpeven.physics.sc.edu
->cs.stanford.edu #Stanford University Computer Science Department
-171.64.64.10 #cs-afs-1.Stanford.EDU
-171.64.64.66 #cs-afs-2.stanford.edu
-171.64.64.69 #cs-afs-3.stanford.edu
->ir.stanford.edu #Stanford University
-171.64.7.222 #afsdb1.stanford.edu
-171.64.7.234 #afsdb2.stanford.edu
-171.64.7.246 #afsdb3.stanford.edu
->slac.stanford.edu #Stanford Linear Accelerator Center
-134.79.18.25 #afsdb1.slac.stanford.edu
-134.79.18.26 #afsdb2.slac.stanford.edu
-134.79.18.27 #afsdb3.slac.stanford.edu
->cats.ucsc.edu #UC Santa Cruz, Comm. and Tech. Services, California U.S.A
-128.114.129.14 #elan.ucsc.edu
-128.114.129.15 #ichabod.ucsc.edu
-128.114.129.18 #maneki.ucsc.edu
->acm.uiuc.edu #ACM at the University of Illinois
-128.174.251.8 #alnitak.acm.uiuc.edu
-128.174.251.9 #alnilam.acm.uiuc.edu
-128.174.251.10 #mintaka.acm.uiuc.edu
->ncsa.uiuc.edu #University of Illinois
-141.142.3.5 #congo.ncsa.uiuc.edu
-141.142.3.8 #nile.ncsa.uiuc.edu
-141.142.3.9 #kaskaskia.ncsa.uiuc.edu
->umbc.edu #University of Maryland, Baltimore County
-130.85.24.23 #db2.afs.umbc.edu
-130.85.24.87 #db3.afs.umbc.edu
-130.85.24.101 #db1.afs.umbc.edu
->glue.umd.edu #University of Maryland - Project Glue
-128.8.70.11 #olmec.umd.edu
-128.8.236.4 #egypt.umd.edu
-128.8.236.230 #babylon.umd.edu
->wam.umd.edu #University of Maryland Network WAM Project
-128.8.70.9 #csc-srv.wam.umd.edu
-128.8.236.5 #avw-srv.wam.umd.edu
-128.8.236.231 #ptx-srv.wam.umd.edu
->umich.edu #University of Michigan - Campus
-141.211.1.32 #fear.ifs.umich.edu
-141.211.1.33 #surprise.ifs.umich.edu
-141.211.1.34 #ruthless.ifs.umich.edu
->atlas.umich.edu #ATLAS group cell in physics at University of Michigan
-141.211.43.102 #linat02.grid.umich.edu
-141.211.43.106 #linat06.grid.umich.edu
-141.211.43.109 #atgrid.grid.umich.edu
->citi.umich.edu #Center for Information Technology Integration
-141.211.133.5 #babylon.citi.umich.edu
->lsa.umich.edu #University of Michigan - College of LS&A
-141.211.211.53 #gerow.lsa.umich.edu
-141.211.211.72 #collines.lsa.umich.edu
-141.211.211.153 #hodges.lsa.umich.edu
->umr.edu #University of Missouri - Rolla
-131.151.1.59 #afsdb1.umr.edu
-131.151.1.70 #afsdb3.umr.edu
-131.151.1.146 #afsdb2.umr.edu
->physics.unc.edu #Univ. of NC at Chapel Hill, Dept. of Physics
-152.2.4.1 #who.physics.unc.edu
-152.2.4.3 #what.physics.unc.edu
-152.2.4.5 #when.physics.unc.edu
->uncc.edu #University of NC at Charlotte Mosaic AFS Cell
-152.15.10.70 #as-sm1.uncc.edu
-152.15.13.7 #as-sm2.uncc.edu
-152.15.30.27 #fs-kenn3.uncc.edu
->eng.utah.edu #University of Utah - Engineering
-155.99.222.9 #lenny.eng.utah.edu
-155.99.222.10 #carl.eng.utah.edu
->cs.uwm.edu #University of Wisconsin--Milwaukee
-129.89.38.124 #solomons.cs.uwm.edu
->cs.wisc.edu #Univ. of Wisconsin-Madison, Computer Sciences Dept.
-128.105.132.14 #timon.cs.wisc.edu
-128.105.132.15 #pumbaa.cs.wisc.edu
-128.105.132.16 #zazu.cs.wisc.edu
->engr.wisc.edu #University of Wisconsin-Madison, College of Engineering
-144.92.13.14 #larry.cae.wisc.edu
-144.92.13.15 #curly.cae.wisc.edu
-144.92.13.16 #moe.cae.wisc.edu
->hep.wisc.edu #University of Wisconsin -- High Energy Physics
-128.104.28.219 #anise.hep.wisc.edu
->physics.wisc.edu #Univ. of Wisconsin-Madison, Physics Department
-128.104.160.13 #kendra.physics.wisc.edu
-128.104.160.14 #fray.physics.wisc.edu
-128.104.160.15 #buffy.physics.wisc.edu
->ciemat.es #Ciemat, Madrid, Spain
-130.206.11.42 #afsdb1.ciemat.es
-130.206.11.217 #afsdb2.ciemat.es
-130.206.11.247 #afsdb3.ciemat.es
->ifca.unican.es #Instituto de Fisica de Cantabria (IFCA), Santander, Spain
-193.144.209.20 #gridwall.ifca.unican.es
->ific.uv.es #Instituto de Fisica Corpuscular, Valencia, Spain
-147.156.163.11 #alpha.ific.uv.es
->biocenter.helsinki.fi #University of Helsinki, Institute of Biotechnology
-128.214.58.174 #afsdb1.biocenter.helsinki.fi
-128.214.88.114 #afsdb2.biocenter.helsinki.fi
->dapnia.saclay.cea.fr #CEA DAPNIA
-132.166.32.7 #dphrsg.saclay.cea.fr
-132.166.32.12 #dphrsl.saclay.cea.fr
->in2p3.fr #IN2P3 production cell
-134.158.232.11 #ccafsdb1.in2p3.fr
-134.158.232.12 #ccafsdb2.in2p3.fr
-134.158.232.13 #ccafsdb3.in2p3.fr
->anl.gov #Argonne National Laboratory
-146.137.96.33 #arteus.ctd.anl.gov
-146.137.162.88 #agamemnon.ctd.anl.gov
-146.137.194.80 #antenor.ctd.anl.gov
->rhic.bnl.gov #Relativistic Heavy Ion Collider
-130.199.6.51 #rafs03.rcf.bnl.gov
-130.199.6.52 #rafs02.rcf.bnl.gov
-130.199.6.69 #rafs01.rcf.bnl.gov
->usatlas.bnl.gov #US Atlas Tier 1 Facility at BNL
-130.199.48.32 #aafs01.usatlas.bnl.gov
-130.199.48.33 #aafs02.usatlas.bnl.gov
-130.199.48.34 #aafs03.usatlas.bnl.gov
->fnal.gov #Fermi National Acclerator Laboratory
-131.225.68.1 #fsus01.fnal.gov
-131.225.68.4 #fsus03.fnal.gov
-131.225.68.14 #fsus04.fnal.gov
->ic-afs.arc.nasa.gov #Code IC, Ames Research Center
-128.102.105.62 #udanax.arc.nasa.gov
->jpl.nasa.gov #Jet Propulsion Laboratory
-137.78.160.21 #afsdb08.jpl.nasa.gov
-137.78.160.22 #afsdb09.jpl.nasa.gov
-137.78.160.23 #afsdb10.jpl.nasa.gov
->nersc.gov #National Energy Research Supercomputer Center
-128.55.128.250 #mars.nersc.gov
-128.55.128.252 #alfred.nersc.gov
-128.55.128.254 #lurch.nersc.gov
->bme.hu #Budapest University of Technology and Economics
-152.66.241.6 #afs.iit.bme.hu
->kfki.hu #Research Institute for Nuclear and Particle Physics - Budapest,H
-148.6.8.14 #afs.kfki.hu
->caspur.it #CASPUR Inter-University Computing Consortium, Rome
-193.204.5.45 #pomodoro.caspur.it
-193.204.5.46 #banana.caspur.it
-193.204.5.50 #maslo.caspur.it
->enea.it #ENEA New Tech. Energy & Environment Agency, Italy
-192.107.54.5 #aixfs.frascati.enea.it
-192.107.54.11 #rs2ced.frascati.enea.it
-192.107.54.12 #43p.frascati.enea.it
-192.107.61.235 #serverinfo02.bologna.enea.it
-192.107.71.6 #glauco.casaccia.enea.it
-192.107.96.233 #riscdb.trisaia.enea.it
->fusione.it #Assoz. FUSIONE/Euratom, ENEA, Frascati-Italy
-192.107.90.2 #fusafs1.frascati.enea.it
-192.107.90.3 #fusafs2.frascati.enea.it
-192.107.90.4 #fusafs3.frascati.enea.it
->icemb.it #ICEMB, Universita' La Sapienza - Rome - Italy
-193.204.6.130 #icembfs.caspur.it
->infn.it #Istituto Nazionale di Fisica Nucleare (INFN), Italia
-131.154.1.7 #afscnaf.infn.it
-141.108.26.75 #afsrm1.roma1.infn.it
-192.84.134.75 #afsna.na.infn.it
->ba.infn.it #INFN, Sezione di Bari
-193.206.185.235 #baafsserver.ba.infn.it
->kloe.infn.it #INFN, KLOE experiment at Laboratori di Frascati
-192.135.25.111 #kloeafs1.lnf.infn.it
-192.135.25.112 #kloeafs2.lnf.infn.it
->le.infn.it #INFN, Sezione di Lecce
-192.84.152.40 #afs01.le.infn.it
-192.84.152.148 #afs02.le.infn.it
->lnf.infn.it #INFN, Laboratori Nazionali di Frascati
-193.206.84.121 #afs1.lnf.infn.it
-193.206.84.122 #afs2.lnf.infn.it
-193.206.84.123 #afs3.lnf.infn.it
->lngs.infn.it #INFN, Laboratori Nazionali di Gran Sasso
-192.84.135.21 #rsgs05.lngs.infn.it
->pi.infn.it #INFN, Sezione di Pisa
-131.114.134.26 #unknownhost.pi.infn.it
-192.84.133.50 #aix1.pi.infn.it
->psm.it #Progetto San Marco, Universita' di Roma-1
-151.100.1.65 #atlante.psm.uniroma1.it
->tgrid.it #CASPUR-CILEA-CINECA Grid Cell
-193.204.5.33 #cccgrid.caspur.it
->ictp.trieste.it #The Abdus Salam International Centre for Theoretical Physics (IC
-140.105.16.8 #fs1.ictp.trieste.it
-140.105.16.9 #fs2.ictp.trieste.it
->math.unifi.it #math.unifi.it
-150.217.34.182 #xeno.math.unifi.it
->ing.uniroma1.it #Universita' La Sapienza, Fac. Ingeneria
-151.100.85.253 #alfa.ing.uniroma1.it
->dia.uniroma3.it #University Roma Tre - DIA
-193.204.161.79 #plm.dia.uniroma3.it
-193.204.161.118 #afs.dia.uniroma3.it
->vn.uniroma3.it #University of Rome 3, Area Vasca Navale
-193.204.161.136 #alfa.dia.uniroma3.it
-193.204.161.137 #beta.dia.uniroma3.it
-193.204.161.138 #gamma.dia.uniroma3.it
->italia #Italian public AFS cell
-193.204.5.9 #afs.caspur.it
->cmf.nrl.navy.mil #Naval Research Lab - CCS
-134.207.10.68 #picard.cmf.nrl.navy.mil
-134.207.10.69 #riker.cmf.nrl.navy.mil
-134.207.10.70 #kirk.cmf.nrl.navy.mil
->lcp.nrl.navy.mil #Naval Research Lab - Lab for Computational Physics
-132.250.114.2 #afs1.lcp.nrl.navy.mil
-132.250.114.4 #afs2.lcp.nrl.navy.mil
-132.250.114.6 #afs3.lcp.nrl.navy.mil
->es.net #Energy Sciences Net
-198.128.3.21 #fs1.es.net
-198.128.3.22 #fs2.es.net
-198.128.3.23 #fs3.es.net
->laroia.net #Laroia Networks
-66.66.102.254 #supercore.laroia.net
->sinenomine.net #Sine Nomine Associates
-66.92.236.139 #afs.sinenomine.net
->slackers.net #The Slackers' Network
-63.201.48.27 #alexandria.slackers.net
->tproa.net #The People's Republic of Ames
-209.234.76.70 #service-3.tproa.net
->nikhef.nl #The Dutch National Institute for High Energy Physics
-192.16.185.26 #afs1.nikhef.nl
-192.16.185.27 #afs2.nikhef.nl
->1ts.org #1TS.ORG, Cambridge, MA
-4.36.43.102 #dol-guldur.1ts.org
-69.25.196.51 #pancake.1ts.org
->bazquux.org #Baz Quux Organization
-66.207.142.196 #baxquux.org
->coed.org #Adam Pennington's Cell
-66.93.61.184 #vice1.coed.org
-128.237.157.35 #vice3.coed.org
->dementia.org #Dementia Unlimited
-128.2.12.45 #alycia.dementia.org
-128.2.120.216 #meredith.dementia.org
->hackish.org #Hackish.org
-24.167.65.213 #avatar.sys.hackish.org
-128.2.120.138 #kurma.sys.hackish.org
->idahofuturetruck.org #University of Idaho hybrid vehicle development
-12.18.238.210 #dsle210.fsr.net
->nimlabs.org #Nimlabs, Ink. Cell.
-18.238.1.103 #olfin.nimlabs.org
-18.238.1.105 #caerbanog.nimlabs.org
->nomh.org #nomh.org
-204.29.154.12 #iota.nomh.org
-204.29.154.32 #adversity.xi.nomh.org
->oc7.org #The OC7 Project
-128.2.122.140 #knife.oc7.org
-207.22.77.170 #spoon.oc7.org
->openafs.org #OpenAFS Project
-18.7.14.88 #grand-opening.mit.edu
-128.2.191.224 #penn.central.org
-130.237.48.87 #andrew.e.kth.se
->e.kth.se #Royal Institute of Technology, Elektro
-130.237.32.145 #sonen.e.kth.se
-130.237.48.7 #anden.e.kth.se
-130.237.48.244 #fadern.e.kth.se
->hallf.kth.se #Royal Institute of Technology, HALLF
-130.237.24.141 #rasmus13.hallf.kth.se
-130.237.24.152 #rasmus3.hallf.kth.se
-130.237.24.177 #rasmus29.hallf.kth.se
->isk.kth.se #Royal Institute of Technology, ISK
-130.237.202.12 #afsdb2.isk.kth.se
-130.237.206.13 #afsdb1.isk.kth.se
-130.237.209.141 #afsdb3.isk.kth.se
->it.kth.se #Royal Institute of Technology, IT
-130.237.212.15 #ptah.it.kth.se
-130.237.212.16 #toth.it.kth.se
-130.237.215.7 #isis.it.kth.se
->md.kth.se #Royal Institute of Technology, MMK
-130.237.57.68 #trinity.md.kth.se
-130.237.57.72 #morpheus.md.kth.se
-130.237.67.230 #neo.speech.kth.se
->mech.kth.se #Royal Institute of Technology, MECH
-130.237.233.142 #matterhorn.mech.kth.se
-130.237.233.143 #castor.mech.kth.se
-130.237.233.144 #pollux.mech.kth.se
->nada.kth.se #Royal Institute of Technology, NADA
-130.237.222.20 #kosmos.nada.kth.se
-130.237.223.12 #sputnik.nada.kth.se
-130.237.224.78 #mir.nada.kth.se
-130.237.227.23 #gagarin.nada.kth.se
-130.237.228.28 #laika.nada.kth.se
->pdc.kth.se #Royal Institute of Technology, PDC
-130.237.232.29 #crab.pdc.kth.se
-130.237.232.112 #anna.pdc.kth.se
-130.237.232.114 #hokkigai.pdc.kth.se
->stacken.kth.se #Stacken Computer Club
-130.237.234.3 #milko.stacken.kth.se
-130.237.234.43 #hot.stacken.kth.se
-130.237.237.230 #fishburger.stacken.kth.se
->syd.kth.se #Royal Institute of Technology, KTH-Syd
-130.237.83.23 #afs.haninge.kth.se
->physto.se #Physics department Stockholm University
-130.237.205.36 #sysafs1.physto.se
-130.237.205.72 #sysafs2.physto.se
->sanchin.se #Sanchin Consulting AB, Sweden
-192.195.148.10 #sesan.sanchin.se
->su.se #Stockholm University
-130.237.162.81 #afsdb1.su.se
-130.237.162.82 #afsdb2.su.se
-130.237.162.230 #afsdb3.su.se
->f9.ijs.si #F9, Jozef Stefan Institue
-194.249.156.1 #brenta.ijs.si
->p-ng.si #Nova Gorica Polytechnic
-193.2.120.2 #solkan.p-ng.si
->phy.bris.ac.uk #Bristol University - phyics
-137.222.58.9 #afs1.phy.bris.ac.uk
->hep.man.ac.uk #Manchester HEP
-194.36.2.3 #afs1.hep.man.ac.uk
-194.36.2.4 #afs2.hep.man.ac.uk
-194.36.2.5 #afs3.hep.man.ac.uk
->rl.ac.uk #Rutherford Appleton Lab, England
-130.246.183.164 #wallace.cc.rl.ac.uk
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-// Change.cpp : implementation file
-//
-
-#include "stdafx.h"
-#include "WinAfsLoad.h"
-#include "WinAfsLoadDlg.h"
-#include "Change.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-// CChange dialog
-
-
-CChange::CChange(BOOL change,CWnd* pParent /*=NULL*/)
- : CDialog(CChange::IDD, pParent)
-{
- //{{AFX_DATA_INIT(CChange)
- m_sPath = _T("");
- m_sDescription = _T("");
- m_bAuto = FALSE;
- //}}AFX_DATA_INIT
- m_bChange=change;
- m_pParent=(CWinAfsLoadDlg *)pParent;
-}
-
-
-void CChange::DoDataExchange(CDataExchange* pDX)
-{
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CChange)
- DDX_Control(pDX, IDC_DESCRIPTION, m_cShare);
- DDX_Control(pDX, IDC_PERSISTENT, m_cAuto);
- DDX_Control(pDX, IDC_PATH, m_cPath);
- DDX_Control(pDX, IDC_DRIVE, m_cDrive);
- DDX_Text(pDX, IDC_PATH, m_sPath);
- DDV_MaxChars(pDX, m_sPath, 512);
- DDX_Text(pDX, IDC_DESCRIPTION, m_sDescription);
- DDV_MaxChars(pDX, m_sDescription, 12);
- DDX_Check(pDX, IDC_PERSISTENT, m_bAuto);
- //}}AFX_DATA_MAP
-}
-
-
-BEGIN_MESSAGE_MAP(CChange, CDialog)
- //{{AFX_MSG_MAP(CChange)
- ON_WM_HELPINFO()
- ON_BN_CLICKED(IDC_HELPMAIN, OnHelpmain)
- //}}AFX_MSG_MAP
-END_MESSAGE_MAP()
-
-/////////////////////////////////////////////////////////////////////////////
-// CChange message handlers
-
-void CChange::OnOK()
-{
- // TODO: Add extra validation here
- m_cDrive.GetLBText(m_cDrive.GetCurSel(),m_sDrive);
- m_sDrive=m_sDrive.Left(2);
- UpdateData(TRUE);
- if (IsValidSubmountName(m_sPath))
- {
-
- if (IsValidShareName(m_sDescription))
- {
- CDialog::OnOK();
- return;
- }
- MessageBox("Incorrect Share name","AFS Warning",MB_OK|MB_ICONWARNING);
- m_cShare.SetFocus();
- return;
- }
- MessageBox("Incorrect Path name","AFS Warning",MB_OK|MB_ICONWARNING);
- m_cPath.SetFocus();
-}
-
-void CChange::OnCancel()
-{
- // TODO: Add extra cleanup here
- m_sDrive=m_sPath=m_sDescription="";
- CDialog::OnCancel();
-}
-
-BOOL CChange::OnInitDialog()
-{
- CDialog::OnInitDialog();
-
- // TODO: Add extra initialization here
- CWnd *win=GetDlgItem(IDOK);
- if (m_bChange)
- {
- if (win)
- win->SetWindowText("Accept Change");
- SetWindowText("AFS Change Item");
- } else {
- if (win)
- win->SetWindowText("Add Item");
- SetWindowText("AFS Add Item");
- }
- ListDrive();
- UpdateData(FALSE);
- TCHAR szDrive[] = TEXT("*: ");
- wsprintf(szDrive,"%2s ",m_sDrive);
- if (m_cDrive.FindString(0,szDrive)!=CB_ERR)
- m_cDrive.SetCurSel(m_cDrive.FindString(0,szDrive));
- else {
- szDrive[3]='*';
- m_cDrive.SetCurSel(m_cDrive.FindString(0,szDrive));
- }
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
-}
-
-VOID CChange::ListDrive()
-{
- m_pParent->BuildDriveList();
- POSITION pos=m_pParent->m_Drivelist.GetHeadPosition();
- while (pos)
- {
- m_cDrive.InsertString(-1,m_pParent->m_Drivelist.GetNext(pos));
- }
-}
-
-BOOL CChange::IsValidShareName(LPCTSTR pszShare)
-{
- if (!*pszShare)
- return FALSE;
- if (stricmp(pszShare,"")==0)
- return FALSE; //disallow adding a share name of ""
- for ( ; *pszShare; ++pszShare)
- {
- if (!isprint(*pszShare))
- return FALSE;
- if (*pszShare == TEXT(' '))
- return FALSE;
- if (*pszShare == TEXT('\t'))
- return FALSE;
- }
-
- return TRUE;
-}
-
-BOOL CChange::IsValidSubmountName (LPCTSTR pszSubmount)
-{
- if (!*pszSubmount)
- return FALSE;
- for ( ; *pszSubmount; ++pszSubmount)
- {
- if (!isprint(*pszSubmount))
- return FALSE;
- if (*pszSubmount == TEXT(' '))
- return FALSE;
- if (*pszSubmount == TEXT('\t'))
- return FALSE;
- }
-
- return TRUE;
-}
-
-
-BOOL CChange::OnHelpInfo(HELPINFO* pHelpInfo)
-{
- // TODO: Add your message handler code here and/or call default
-
- ::WinHelp(m_hWnd,CWINAFSLOADAPP->m_pszHelpFilePath,HELP_CONTEXT,(m_bChange)?IDH_CHANGE:IDH_ADD);
- return TRUE;
-// return CDialog::OnHelpInfo(pHelpInfo);
-}
-
-void CChange::OnHelpmain()
-{
- // TODO: Add your control notification handler code here
- ::WinHelp(m_hWnd,CWINAFSLOADAPP->m_pszHelpFilePath,HELP_CONTEXT,(m_bChange)?IDH_CHANGE:IDH_ADD);
-
-}
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-#if !defined(AFX_CHANGE_H__CF7462A3_F999_11D3_A374_00105A6BCA62__INCLUDED_)
-#define AFX_CHANGE_H__CF7462A3_F999_11D3_A374_00105A6BCA62__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-// Change.h : header file
-//
-
-/////////////////////////////////////////////////////////////////////////////
-// CChange dialog
-
-class CChange : public CDialog
-{
-// Construction
-public:
- CChange(BOOL change,CWnd* pParent = NULL); // standard constructor
- CString m_sDrive;
-
-// Dialog Data
- //{{AFX_DATA(CChange)
- enum { IDD = IDD_AFSCHANGE };
- CEdit m_cShare;
- CButton m_cAuto;
- CEdit m_cPath;
- CComboBox m_cDrive;
- CString m_sPath;
- CString m_sDescription;
- BOOL m_bAuto;
- //}}AFX_DATA
-
-
-// Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CChange)
- protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
- //}}AFX_VIRTUAL
-
-// Implementation
-protected:
- BOOL m_bChange;
- void ListDrive();
- BOOL IsValidSubmountName (LPCTSTR pszSubmount);
- BOOL IsValidShareName (LPCTSTR pszSubmount);
- CWinAfsLoadDlg *m_pParent;
- // Generated message map functions
- //{{AFX_MSG(CChange)
- virtual void OnOK();
- virtual void OnCancel();
- virtual BOOL OnInitDialog();
- afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
- afx_msg void OnHelpmain();
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
-};
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_CHANGE_H__CF7462A3_F999_11D3_A374_00105A6BCA62__INCLUDED_)
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-// CommandSettings.cpp : implementation file
-//
-
-#include "stdafx.h"
-#include "winafsload.h"
-#include "CommandSettings.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-// CCommandSettings dialog
-
-
-CCommandSettings::CCommandSettings(CWnd* pParent /*=NULL*/)
- : CDialog(CCommandSettings::IDD, pParent)
-{
- //{{AFX_DATA_INIT(CCommandSettings)
- m_ConnectOnStart = FALSE;
- m_LogToFile = FALSE;
- m_LogToWindow = FALSE;
- m_UserName = _T("");
- m_uMaxLoginTime = 0;
- m_uMaxPowerRestartDelay = 0;
- //}}AFX_DATA_INIT
-}
-
-
-void CCommandSettings::DoDataExchange(CDataExchange* pDX)
-{
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CCommandSettings)
- DDX_Control(pDX, IDC_OPTIONLINE, m_cOptionLine);
- DDX_Control(pDX, IDC_CHECKADVANCED, m_cCheckAdvanceDisplay);
- DDX_Check(pDX, IDC_CONNECTONSTART, m_ConnectOnStart);
- DDX_Check(pDX, IDC_LOGTOFILE, m_LogToFile);
- DDX_Check(pDX, IDC_LOGTOWINDOW, m_LogToWindow);
- DDX_Text(pDX, IDC_USERNAME, m_UserName);
- DDX_Text(pDX, IDC_MAXLOGINTIME, m_uMaxLoginTime);
- DDV_MinMaxUInt(pDX, m_uMaxLoginTime, 1, 300);
- DDX_Text(pDX, IDC_POWERRESTARTDELAY, m_uMaxPowerRestartDelay);
- DDV_MinMaxUInt(pDX, m_uMaxPowerRestartDelay, 0, 120);
- //}}AFX_DATA_MAP
-}
-
-
-BEGIN_MESSAGE_MAP(CCommandSettings, CDialog)
- //{{AFX_MSG_MAP(CCommandSettings)
- ON_BN_CLICKED(IDH_SETTINGS, OnSettings)
- ON_BN_CLICKED(IDC_CHECKADVANCED, OnCheckadvanced)
- //}}AFX_MSG_MAP
-END_MESSAGE_MAP()
-
-/////////////////////////////////////////////////////////////////////////////
-// CCommandSettings message handlers
-
-void CCommandSettings::OnSettings()
-{
- // TODO: Add your control notification handler code here
- ::WinHelp(m_hWnd,CWINAFSLOADAPP->m_pszHelpFilePath,HELP_CONTEXT,IDH_SETTINGS);
-
-}
-
-void CCommandSettings::OnCheckadvanced()
-{
- // TODO: Add your control notification handler code here
- if (m_cCheckAdvanceDisplay.GetCheck())
- {
- SetWindowPos(&wndTop,0,0,m_OriginalRect.right-m_OriginalRect.left,m_OriginalRect.bottom-m_OriginalRect.top,SWP_NOMOVE|SWP_NOZORDER);
- } else {
- SetWindowPos(&wndTop,0,0,m_OriginalRect.right-m_OriginalRect.left,m_DialogShrink,SWP_NOMOVE|SWP_NOZORDER);
- }
-
-}
-
-BOOL CCommandSettings::OnInitDialog()
-{
- CDialog::OnInitDialog();
-
- // TODO: Add extra initialization here
-
- CRect rect;
- GetWindowRect(&m_OriginalRect);
- m_cOptionLine.GetWindowRect(&rect);
- m_DialogShrink=rect.top-m_OriginalRect.top+5; //make it above the edit box
- SetWindowPos(&wndTop,0,0,m_OriginalRect.right-m_OriginalRect.left,m_DialogShrink,SWP_NOMOVE|SWP_NOZORDER);
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
-}
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-#if !defined(AFX_COMMANDSETTINGS_H__3CDB0E81_7A6D_11D4_A374_00105A6BCA62__INCLUDED_)
-#define AFX_COMMANDSETTINGS_H__3CDB0E81_7A6D_11D4_A374_00105A6BCA62__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-// CommandSettings.h : header file
-//
-
-/////////////////////////////////////////////////////////////////////////////
-// CCommandSettings dialog
-
-class CCommandSettings : public CDialog
-{
-// Construction
-public:
- CCommandSettings(CWnd* pParent = NULL); // standard constructor
-
-// Dialog Data
- //{{AFX_DATA(CCommandSettings)
- enum { IDD = IDD_SETTINGS };
- CButton m_cOptionLine;
- CButton m_cCheckAdvanceDisplay;
- BOOL m_ConnectOnStart;
- BOOL m_LogToFile;
- BOOL m_LogToWindow;
- CString m_UserName;
- UINT m_uMaxLoginTime;
- UINT m_uMaxPowerRestartDelay;
- //}}AFX_DATA
-
-
-// Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CCommandSettings)
- protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
- //}}AFX_VIRTUAL
-
-// Implementation
-protected:
- CRect m_OriginalRect;
- UINT m_DialogShrink;
- // Generated message map functions
- //{{AFX_MSG(CCommandSettings)
- afx_msg void OnSettings();
- afx_msg void OnCheckadvanced();
- virtual BOOL OnInitDialog();
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
-};
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_COMMANDSETTINGS_H__3CDB0E81_7A6D_11D4_A374_00105A6BCA62__INCLUDED_)
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-// Datalog.cpp : implementation file
-//
-
-#include "stdafx.h"
-#include "WinAfsLoad.h"
-#include "WinAfsLoadDlg.h"
-#include "Datalog.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-// CDatalog dialog
-
-
-CDatalog::CDatalog(CWnd* pParent /*=NULL*/)
- : CDialog(CDatalog::IDD, pParent)
-{
- //{{AFX_DATA_INIT(CDatalog)
- m_sEdit = _T("");
- //}}AFX_DATA_INIT
- m_pParent=pParent;
-}
-
-
-void CDatalog::DoDataExchange(CDataExchange* pDX)
-{
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CDatalog)
- DDX_Control(pDX, IDC_EDIT, m_cEdit);
- DDX_Text(pDX, IDC_EDIT, m_sEdit);
- //}}AFX_DATA_MAP
-}
-
-
-BEGIN_MESSAGE_MAP(CDatalog, CDialog)
- //{{AFX_MSG_MAP(CDatalog)
- ON_WM_SYSCOMMAND()
- //}}AFX_MSG_MAP
-END_MESSAGE_MAP()
-
-/////////////////////////////////////////////////////////////////////////////
-// CDatalog message handlers
-
-void CDatalog::PostNcDestroy()
-{
- // TODO: Add your specialized code here and/or call the base class
-
- delete this;
-}
-
-BOOL CDatalog::Create()
-{
- return CDialog::Create(IDD, m_pParent);
-}
-
-void CDatalog::OnCancel()
-{
- ShowWindow(SW_HIDE);
-}
-
-
-BOOL CDatalog::OnInitDialog()
-{
- CDialog::OnInitDialog();
-
- // TODO: Add extra initialization here
-
- CMenu* pSysMenu = GetSystemMenu(FALSE);
- if (pSysMenu != NULL)
- {
- CString strAboutMenu;
- strAboutMenu.LoadString(IDM_CLEAR);
- if (!strAboutMenu.IsEmpty())
- {
- pSysMenu->AppendMenu(MF_SEPARATOR);
- pSysMenu->AppendMenu(MF_STRING, IDM_CLEAR, strAboutMenu);
- }
- }
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
-}
-
-
-
-// Responds to system menu calls (best make menu mod 16 value because lower 4 bits are used by os
-// Select Menu item on system menu (title bar) will end up here
-void CDatalog::OnSysCommand(UINT nID, LPARAM lParam)
-{
- switch (nID & 0xFFF0)
- {
- case IDM_VISIBLE: // make current application visible
- AfxGetApp()->m_pMainWnd->PostMessage(WM_COMMAND,IDM_APP_OPEN,0);
- return;
-/*
- CWnd *PrevCWnd, *ChildCWnd;
- PrevCWnd=CWnd::FromHandle(m_hAfsDialog);
- DWORD s=PrevCWnd->GetStyle();
- if (!(WS_VISIBLE & s) )
- PrevCWnd->ShowWindow(SW_RESTORE); // If iconic, restore the main window
- ChildCWnd=PrevCWnd->GetLastActivePopup(); // if so, does it have any popups?
- PrevCWnd->BringWindowToTop(); // Bring the main window to the top
- if (PrevCWnd != ChildCWnd)
- ChildCWnd->BringWindowToTop(); // If there are popups, bring them along too!
-*/
- case IDM_CLEAR:
- {
- m_sEdit.Empty();
- m_sEdit="";
- UpdateData(FALSE);
- SendMessage(WM_PAINT);
- }
- break;
- default:
- CDialog::OnSysCommand(nID, lParam);
- break;
- }
-}
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-#if !defined(AFX_DATALOG_H__C973E961_F990_11D3_A374_00105A6BCA62__INCLUDED_)
-#define AFX_DATALOG_H__C973E961_F990_11D3_A374_00105A6BCA62__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-// Datalog.h : header file
-//
-
-/////////////////////////////////////////////////////////////////////////////
-// CDatalog dialog
-
-class CDatalog : public CDialog
-{
-// Construction
-public:
- CDatalog(CWnd* pParent = NULL); // standard constructor
- BOOL Create();
- void OnCancel();
-
-// Dialog Data
- //{{AFX_DATA(CDatalog)
- enum { IDD = IDD_ACTIVITYLOG };
- CEdit m_cEdit;
- CString m_sEdit;
- //}}AFX_DATA
-
-
-// Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CDatalog)
- protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
- virtual void PostNcDestroy();
- virtual void OnSysCommand(UINT nID, LPARAM lParam);
- //}}AFX_VIRTUAL
-
-// Implementation
-protected:
- CWnd* m_pParent;
-
- // Generated message map functions
- //{{AFX_MSG(CDatalog)
- virtual BOOL OnInitDialog();
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
-};
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_DATALOG_H__C973E961_F990_11D3_A374_00105A6BCA62__INCLUDED_)
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-// Encription Module
-#include "stdafx.h"
-#include "WinAfsLoad.h"
-#include "WinAfsLoadDlg.h"
-#include "encript.h"
-
-
-CEncript::CEncript(CWinAfsLoadDlg *pParent)
-{
- m_pParent=pParent;
- m_hLibrary=LoadLibrary("ADVAPI32.dll");
- if (m_hLibrary)
- {
- m_pCryptAcquireContext=(PCRYPTACQUIRECONTEXT)GetProcAddress(m_hLibrary,"CryptAcquireContextA");
- m_pCryptCreateHash=(PCRYPTCREATEHASH)GetProcAddress(m_hLibrary,"CryptCreateHash");
- m_pCryptHashData=(PCRYPTHASHDATA)GetProcAddress(m_hLibrary,"CryptHashData");
- m_pCryptDeriveKey=(PCRYPTDERIVEKEY)GetProcAddress(m_hLibrary,"CryptDeriveKey");
- m_pCryptEncrypt=(PCRYPTENCRYPT)GetProcAddress(m_hLibrary,"CryptEncrypt");
- m_pCryptDecrypt=(PCRYPTDECRYPT)GetProcAddress(m_hLibrary,"CryptDecrypt");
- m_pCryptDestroyHash=(PCRYPTDESTROYHASH)GetProcAddress(m_hLibrary,"CryptDestroyHash");
- m_pCryptDestroyKey=(PCRYPTDESTROYKEY)GetProcAddress(m_hLibrary,"CryptDestroyKey");
- m_pCryptReleaseContext=(PCRYPTRELEASECONTEXT)GetProcAddress(m_hLibrary,"CryptReleaseContext");
-
- if ((m_pCryptAcquireContext==NULL)
- ||(m_pCryptCreateHash==NULL)
- ||(m_pCryptHashData==NULL)
- ||(m_pCryptDeriveKey==NULL)
- ||(m_pCryptEncrypt==NULL)
- ||(m_pCryptDecrypt==NULL)
- ||(m_pCryptDestroyHash==NULL)
- ||(m_pCryptDestroyKey==NULL)
- ||(m_pCryptReleaseContext==NULL)
- )
- {
- LOG("Incorrect ADVAPI32.DLL, Load failure");
- FreeLibrary(m_hLibrary);
- m_hLibrary=NULL;
- }
- }
-}
-
-CEncript::~CEncript()
-{
- if (m_hLibrary)
- FreeLibrary(m_hLibrary);
- m_hLibrary=NULL;
-}
-
-
-// Encript pPassword
-// if doEncript then encript else de encript
-// on doEncript (true) dwSize sets maxmium size of encription output and pPassword is string to encript
-// and output of encripted string with dwSize set to output size
-// on not doEncript(false) dwSize sets size of pPassword input and pPassword is returned string
-
-BOOL CEncript::Encript(LPCSTR pMachinename,LPCSTR pLoginName,LPCSTR pUsername,PBYTE pPassword,DWORD &dwSize,BOOL doEncript)
-{
-#define MY_ENCODING_TYPE (PKCS_7_ASN_ENCODING | X509_ASN_ENCODING)
-
- BOOL bResult;
- HCRYPTPROV hProv;
- HCRYPTHASH hHash;
- HCRYPTKEY hKey;
- CString sKey;
- if (m_hLibrary==NULL)
- {
- if (doEncript)
- dwSize=strlen((char *)pPassword);
- return TRUE;
- }
- if(! (*m_pCryptAcquireContext)(
- &hProv, // Handle to the CSP
- pLoginName, // Container name
- MS_DEF_PROV, // Provider name
- PROV_RSA_FULL, // Provider type
- 0)) // Flag values
- {
- //--------------------------------------------------------------------
- // Some sort of error occurred in acquiring the context.
- // Create a new default key container.
-
- if(!(*m_pCryptAcquireContext) (
- &hProv,
- pLoginName,
- MS_DEF_PROV,
- PROV_RSA_FULL,
- CRYPT_NEWKEYSET))
- {
- m_pParent->HandleError("Could not create a new key container.\n");
- }
- }
-
- // Obtain handle to hash object.
- bResult = (*m_pCryptCreateHash)(
- hProv, // Handle to CSP obtained earlier
- CALG_MD5, // Hashing algorithm
- 0, // Non-keyed hash
- 0, // Should be zero
- &hHash); // Variable to hold hash object handle
-
- if (!bResult) { m_pParent->HandleError("Password Encription Error!");return FALSE;}
- // Hash data.
- sKey.Format("AFS%s%s%s",pLoginName,pUsername,pMachinename);
- bResult = (*m_pCryptHashData)(
- hHash, // Handle to hash object
- (PBYTE)(const char *)sKey, // Pointer to password
- dwSize, // Length of data
- 0); // No special flags
-
- if (!bResult) { m_pParent->HandleError("Password Encription Error!");return FALSE;}
-
- // Create key from specified password.
- bResult = (*m_pCryptDeriveKey)(
- hProv, // Handle to CSP obtained earlier.
- CALG_RC4, // Use a stream cipher.
- hHash, // Handle to hashed password.
- CRYPT_EXPORTABLE, // Make key exportable.
- &hKey); // Variable to hold handle of key.
- if (!bResult) { m_pParent->HandleError("Password Encription Error!");return FALSE;}
-
-// Now encrypt data.
- if (doEncript)
- {
- bResult = (*m_pCryptEncrypt)(
- hKey, // Key obtained earlier
- 0, // No hashing of data
- TRUE, // Final or only buffer of data
- 0, // Must be zero
- pPassword, // Data buffer
- &dwSize, // Size of data
- dwSize); // Size of block
- if (!bResult) { m_pParent->HandleError("Password Encription Error!");return FALSE;}
-
- // save password in encription area
- } else {
- bResult = (*m_pCryptDecrypt)(
- hKey, // Key obtained earlier
- 0, // No hashing of data
- TRUE, // Final or only buffer of data
- 0, // Must be zero
- pPassword, // Data buffer
- &dwSize); // Size of data
- if (!bResult) { m_pParent->HandleError("Password Encription Error!");return FALSE;}
- }
-// Release hash object.
- (*m_pCryptDestroyHash)(hHash);
- (*m_pCryptDestroyKey)(hKey);
- (*m_pCryptReleaseContext)(hProv,0);
- return TRUE;
-}
-
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-// Force.cpp : implementation file
-//
-
-#include "stdafx.h"
-#include "winafsload.h"
-#include "Force.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-// CForce dialog
-
-
-CForce::CForce(CWnd* pParent /*=NULL*/)
- : CDialog(CForce::IDD, pParent)
-{
- //{{AFX_DATA_INIT(CForce)
- m_sMsg = _T("");
- //}}AFX_DATA_INIT
-}
-
-
-void CForce::DoDataExchange(CDataExchange* pDX)
-{
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CForce)
- DDX_Text(pDX, IDC_STATICMSG, m_sMsg);
- //}}AFX_DATA_MAP
-}
-
-
-BEGIN_MESSAGE_MAP(CForce, CDialog)
- //{{AFX_MSG_MAP(CForce)
- // NOTE: the ClassWizard will add message map macros here
- //}}AFX_MSG_MAP
-END_MESSAGE_MAP()
-
-/////////////////////////////////////////////////////////////////////////////
-// CForce message handlers
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-#if !defined(AFX_FORCE_H__EBCBE049_03C3_11D4_A374_00105A6BCA62__INCLUDED_)
-#define AFX_FORCE_H__EBCBE049_03C3_11D4_A374_00105A6BCA62__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-// Force.h : header file
-//
-
-/////////////////////////////////////////////////////////////////////////////
-// CForce dialog
-
-class CForce : public CDialog
-{
-// Construction
-public:
- CForce(CWnd* pParent = NULL); // standard constructor
-
-// Dialog Data
- //{{AFX_DATA(CForce)
- enum { IDD = IDD_DIALOGFORCE };
- CString m_sMsg;
- //}}AFX_DATA
-
-
-// Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CForce)
- protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
- //}}AFX_VIRTUAL
-
-// Implementation
-protected:
-
- // Generated message map functions
- //{{AFX_MSG(CForce)
- // NOTE: the ClassWizard will add member functions here
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
-};
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_FORCE_H__EBCBE049_03C3_11D4_A374_00105A6BCA62__INCLUDED_)
+++ /dev/null
-:Base afswin9x
-:Title Access Control
-1 Information
-2 AFS Client Overview=IDH_MAIN@afswin9x.hlp
-2 AFS File Space=Terms@afswin9x.hlp
-2 AFS File System Properties=Properties@afswin9x.hlp
-1 AFS Client Operation
-2 How To Use=HowToUse@afswin9x.hlp
-2 AFS Client - Connect / Disconnect=HowToUse@afswin9x.hlp
-2 Miminize (Iconize)=Iconize@afswin9x.hlp
-2 Drive Letter Map Point - Connect/Disconnect=AdvancedOptions@afswin9x.hlp
-2 Advanced Options=AdvancedOptions@afswin9x.hlp
-2 Change Drive Letter Map Point=IDH_CHANGE@afswin9x.hlp
-2 Add Drive Letter Map Point=IDH_ADD@afswin9x.hlp
-2 Setting=IDH_SETTINGS@afswin9x.hlp
-1 AFS File System Properties
-2 AFS File Properties=Properties@afswin9x.hlp
-2 Access Control Lists..=SET_AFS_ACL_ENTRY_HELP_ID@afswin9x.hlp
-2 Volumn/Partition Information=VOLUME_INFO_HELP_ID@afswin9x.hlp
-2 Mount Point=MountPoints@afswin9x.hlp
-2 Flush Volume=FlushVolume@afswin9x.hlp
-2 Flush File/Dir=FlushFileDir@afswin9x.hlp
-2 Show File Servers=SHOW_FILE_SERVERS_HELP_ID@afswin9x.hlp
-2 Show Cell=SHOW_CELL_HELP_ID@afswin9x.hlp
-2 Show Server Status=SERVER_STATUS_HELP_ID@afswin9x.hlp
-2 Mount Point
-3 Show=MOUNT_POINTS_HELP_ID@afswin9x.hlp
-3 Remove=REMOVE_MOUNT_POINTS_HELP_ID@afswin9x.hlp
-3 Make=MAKE_MOUNT_POINT_HELP_ID@afswin9x.hlp
-1 Miscellaneous
-2 Trouble Shooting=TroubleShooting@afswin9x.hlp
-2 Miscellaneous Commands=Miscellaneous@afswin9x.hlp
-2 Contact Information=ContactInfo@afswin9x.hlp
+++ /dev/null
-; This file is maintained by HCW. Do not modify this file directly.
-
-[OPTIONS]
-COMPRESS=12 Hall Zeck
-LCID=0x409 0x0 0x0 ; English (United States)
-REPORT=Yes
-CONTENTS=IDH_MAIN
-TITLE=AFS Windows' Client
-CNT=afswin9x.cnt
-COPYRIGHT=Version 1.17.0
-HLP=afswin9x.hlp
-
-[FILES]
-afswin9x.rtf
-
-[MAP]
-ADD_ACL_ENTRY_HELP_ID=20
-ADD_SUBMOUNTS_HELP_ID=45
-AUTEHTICATION_HELP_ID=16
-COPY_ACL_HELP_ID=21
-DISCARD_TOKENS_HELP_ID=18
-EDIT_PATH_NAME_HELP_ID=46
-GET_TOKENS_HELP_ID=17
-IDH_ADD=1137
-IDH_CHANGE=1138
-IDH_MAIN=1140
-IDH_SETTINGS=1293
-MAKE_MOUNT_POINT_HELP_ID=35
-MOUNT_POINTS_HELP_ID=33
-PARTITION_INFO_HELP_ID=28
-REMOVE_MOUNT_POINTS_HELP_ID=34
-SERVER_STATUS_HELP_ID=40
-SET_AFS_ACL_ENTRY_HELP_ID=19
-SHOW_CELL_HELP_ID=39
-SHOW_FILE_SERVERS_HELP_ID=38
-SUBMOUNTS_HELP_ID=44
-VOLUME_INFO_HELP_ID=27
-
-[WINDOWS]
-Main="AFS File System (Ufilier)",(652,101,360,599),27904,(r14876671),(r12632256),f3
-
-[CONFIG]
-BrowseButtons()
+++ /dev/null
-{\rtf1\ansi\ansicpg1252\uc1 \deff1\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
-{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f14\fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;}
-{\f149\froman\fcharset238\fprq2 Times New Roman CE;}{\f150\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f152\froman\fcharset161\fprq2 Times New Roman Greek;}{\f153\froman\fcharset162\fprq2 Times New Roman Tur;}
-{\f154\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f155\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f156\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f157\fswiss\fcharset238\fprq2 Arial CE;}
-{\f158\fswiss\fcharset204\fprq2 Arial Cyr;}{\f160\fswiss\fcharset161\fprq2 Arial Greek;}{\f161\fswiss\fcharset162\fprq2 Arial Tur;}{\f162\fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f163\fswiss\fcharset178\fprq2 Arial (Arabic);}
-{\f164\fswiss\fcharset186\fprq2 Arial Baltic;}{\f165\fmodern\fcharset238\fprq1 Courier New CE;}{\f166\fmodern\fcharset204\fprq1 Courier New Cyr;}{\f168\fmodern\fcharset161\fprq1 Courier New Greek;}{\f169\fmodern\fcharset162\fprq1 Courier New Tur;}
-{\f170\fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f171\fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f172\fmodern\fcharset186\fprq1 Courier New Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;
-\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;
-\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 Normal;}{
-\s1\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\uldb\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 1;}{
-\s2\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 2;}{
-\s3\qc \li0\ri2340\keepn\widctlpar\aspalpha\aspnum\faauto\adjustright\rin2340\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 3;}{
-\s4\qc \li0\ri5580\keepn\widctlpar\aspalpha\aspnum\faauto\adjustright\rin5580\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 4;}{
-\s5\qc \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 5;}{\*\cs10 \additive Default Paragraph Font;}{
-\s15\qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext15 Title;}{\s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
-\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext16 footnote text;}{\*\cs17 \additive \super \sbasedon10 footnote reference;}{\*\cs18 \additive \ul\cf12 \sbasedon10 FollowedHyperlink;}{
-\s19\ql \li720\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext19 Body Text 2;}{\s20\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
-\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext20 Body Text;}{\*\cs21 \additive \ul\cf2 \sbasedon10 Hyperlink;}{\s22\ql \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
-\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext22 header;}}{\*\listtable{\list\listtemplateid929089378\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
-{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2160\jclisttab\tx2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2880\jclisttab\tx2880 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4320\jclisttab\tx4320 }
-{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5040
-\jclisttab\tx5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
-\fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1
-\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6480\jclisttab\tx6480 }{\listname ;}\listid205610547}{\list\listtemplateid1710930326\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
-{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2160\jclisttab\tx2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2880\jclisttab\tx2880 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4320\jclisttab\tx4320 }
-{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5040
-\jclisttab\tx5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
-\fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1
-\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6480\jclisttab\tx6480 }{\listname ;}\listid244219890}{\list\listtemplateid-773692958\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
-{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2160\jclisttab\tx2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2880\jclisttab\tx2880 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4320\jclisttab\tx4320 }
-{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5040
-\jclisttab\tx5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
-\fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1
-\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6480\jclisttab\tx6480 }{\listname ;}\listid266545100}{\list\listtemplateid61766012\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
-{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2160\jclisttab\tx2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2880\jclisttab\tx2880 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4320\jclisttab\tx4320 }
-{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5040
-\jclisttab\tx5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
-\fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1
-\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6480\jclisttab\tx6480 }{\listname ;}\listid459223963}{\list\listtemplateid23375172\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
-{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1080\jclisttab\tx1080 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1800\jclisttab\tx1800 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2520\jclisttab\tx2520 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3240\jclisttab\tx3240 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3960\jclisttab\tx3960 }
-{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4680
-\jclisttab\tx4680 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
-\fi-360\li5400\jclisttab\tx5400 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1
-\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6120\jclisttab\tx6120 }{\listname ;}\listid521865045}{\list\listtemplateid1910423284\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
-{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2160\jclisttab\tx2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2880\jclisttab\tx2880 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4320\jclisttab\tx4320 }
-{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5040
-\jclisttab\tx5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
-\fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1
-\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6480\jclisttab\tx6480 }{\listname ;}\listid548762669}{\list\listtemplateid1766887180\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
-{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2160\jclisttab\tx2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2880\jclisttab\tx2880 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4320\jclisttab\tx4320 }
-{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5040
-\jclisttab\tx5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
-\fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1
-\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6480\jclisttab\tx6480 }{\listname ;}\listid636036162}{\list\listtemplateid110555416\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
-{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2160\jclisttab\tx2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2880\jclisttab\tx2880 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4320\jclisttab\tx4320 }
-{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5040
-\jclisttab\tx5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
-\fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1
-\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6480\jclisttab\tx6480 }{\listname ;}\listid681200174}{\list\listtemplateid664591418\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
-{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2160\jclisttab\tx2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2880\jclisttab\tx2880 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4320\jclisttab\tx4320 }
-{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5040
-\jclisttab\tx5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
-\fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1
-\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6480\jclisttab\tx6480 }{\listname ;}\listid782305106}{\list\listtemplateid-2066942012\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
-{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2160\jclisttab\tx2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2880\jclisttab\tx2880 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4320\jclisttab\tx4320 }
-{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5040
-\jclisttab\tx5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
-\fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1
-\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6480\jclisttab\tx6480 }{\listname ;}\listid1070153243}{\list\listtemplateid-1453146342\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
-{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698703\'02\'01.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2160\jclisttab\tx2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2880\jclisttab\tx2880 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4320\jclisttab\tx4320 }
-{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5040
-\jclisttab\tx5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
-\fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1
-\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6480\jclisttab\tx6480 }{\listname ;}\listid1149201680}{\list\listtemplateid-409596436\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
-{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1080\jclisttab\tx1080 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1800\jclisttab\tx1800 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2520\jclisttab\tx2520 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3240\jclisttab\tx3240 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3960\jclisttab\tx3960 }
-{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4680
-\jclisttab\tx4680 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
-\fi-360\li5400\jclisttab\tx5400 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1
-\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6120\jclisttab\tx6120 }{\listname ;}\listid1328248258}{\list\listtemplateid-235912772\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
-{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2160\jclisttab\tx2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2880\jclisttab\tx2880 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4320\jclisttab\tx4320 }
-{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5040
-\jclisttab\tx5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
-\fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1
-\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6480\jclisttab\tx6480 }{\listname ;}\listid1388066525}{\list\listtemplateid-848244788\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
-{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2160\jclisttab\tx2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2880\jclisttab\tx2880 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4320\jclisttab\tx4320 }
-{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5040
-\jclisttab\tx5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
-\fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1
-\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6480\jclisttab\tx6480 }{\listname ;}\listid1403986594}{\list\listtemplateid-1489762306\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
-{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2160\jclisttab\tx2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2880\jclisttab\tx2880 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4320\jclisttab\tx4320 }
-{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5040
-\jclisttab\tx5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
-\fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1
-\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6480\jclisttab\tx6480 }{\listname ;}\listid1434478203}{\list\listtemplateid-1713185060\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
-{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2160\jclisttab\tx2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2880\jclisttab\tx2880 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4320\jclisttab\tx4320 }
-{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5040
-\jclisttab\tx5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
-\fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1
-\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6480\jclisttab\tx6480 }{\listname ;}\listid1446118011}{\list\listtemplateid877529172\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
-{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2160\jclisttab\tx2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2880\jclisttab\tx2880 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4320\jclisttab\tx4320 }
-{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5040
-\jclisttab\tx5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0
-\fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1
-\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6480\jclisttab\tx6480 }{\listname ;}\listid1547526921}{\list\listtemplateid-1137307152\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
-{\leveltext\leveltemplateid67698703\'02\'00.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0
-{\leveltext\leveltemplateid67698713\'02\'01.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698715\'02\'02.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-180\li2160\jclisttab\tx2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698703\'02\'03.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-360\li2880\jclisttab\tx2880 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0
-\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698713\'02\'04.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698715\'02\'05.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-180\li4320\jclisttab\tx4320 }{\listlevel\levelnfc0\levelnfcn0\leveljc0
-\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698703\'02\'06.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-360\li5040\jclisttab\tx5040 }{\listlevel\levelnfc4\levelnfcn4
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698713\'02\'07.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc2
-\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698715\'02\'08.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-180\li6480\jclisttab\tx6480 }{\listname
-;}\listid1647008142}{\list\listtemplateid-2124356362\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr
-\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2
-\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693
-\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2160\jclisttab\tx2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext
-\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2880\jclisttab\tx2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4320\jclisttab\tx4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5040\jclisttab\tx5040 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6480\jclisttab\tx6480 }
-{\listname ;}\listid1656912505}{\list\listtemplateid388774866\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr
-\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2
-\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693
-\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2160\jclisttab\tx2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext
-\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2880\jclisttab\tx2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4320\jclisttab\tx4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5040\jclisttab\tx5040 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6480\jclisttab\tx6480 }
-{\listname ;}\listid1703745684}{\list\listtemplateid-1569400874\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3
-\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers
-;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693
-\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2160\jclisttab\tx2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext
-\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2880\jclisttab\tx2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4320\jclisttab\tx4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5040\jclisttab\tx5040 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6480\jclisttab\tx6480 }
-{\listname ;}\listid1764640180}{\list\listtemplateid-2060914188\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3
-\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li720\jclisttab\tx720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers
-;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li1440\jclisttab\tx1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693
-\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2160\jclisttab\tx2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext
-\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li2880\jclisttab\tx2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360
-\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li3600\jclisttab\tx3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1
-\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li4320\jclisttab\tx4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0
-\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5040\jclisttab\tx5040 }{\listlevel\levelnfc23\levelnfcn23
-\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li5760\jclisttab\tx5760 }{\listlevel\levelnfc23
-\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f14\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li6480\jclisttab\tx6480 }
-{\listname ;}\listid1797527050}}{\*\listoverridetable{\listoverride\listid244219890\listoverridecount0\ls1}{\listoverride\listid782305106\listoverridecount0\ls2}{\listoverride\listid205610547\listoverridecount0\ls3}{\listoverride\listid1434478203
-\listoverridecount0\ls4}{\listoverride\listid1797527050\listoverridecount0\ls5}{\listoverride\listid1446118011\listoverridecount0\ls6}{\listoverride\listid1070153243\listoverridecount0\ls7}{\listoverride\listid1403986594\listoverridecount0\ls8}
-{\listoverride\listid521865045\listoverridecount0\ls9}{\listoverride\listid1328248258\listoverridecount0\ls10}{\listoverride\listid1703745684\listoverridecount0\ls11}{\listoverride\listid1149201680\listoverridecount0\ls12}{\listoverride\listid1547526921
-\listoverridecount0\ls13}{\listoverride\listid1764640180\listoverridecount0\ls14}{\listoverride\listid1647008142\listoverridecount0\ls15}{\listoverride\listid1388066525\listoverridecount0\ls16}{\listoverride\listid636036162\listoverridecount0\ls17}
-{\listoverride\listid548762669\listoverridecount0\ls18}{\listoverride\listid681200174\listoverridecount0\ls19}{\listoverride\listid1656912505\listoverridecount0\ls20}{\listoverride\listid459223963\listoverridecount0\ls21}{\listoverride\listid266545100
-\listoverridecount0\ls22}}{\info{\title Afs Properities Page}{\author Shyh-Wei Luan}{\operator Shyh-Wei Luan}{\creatim\yr2000\mo8\dy16\hr17\min2}{\revtim\yr2001\mo4\dy25\hr14\min21}{\version167}{\edmins5896}{\nofpages19}{\nofwords4208}{\nofchars23990}
-{\*\company IBM}{\nofcharsws0}{\vern8247}}\widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1800\dgvorigin1440\dghshow1\dgvshow1
-\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule \fet0\sectd \linex0\endnhere\sectlinegrid360\sectdefaultcl {\*\pnseclvl1
-\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5
-\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang
-{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \s1\qc \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0
-\f1\fs20\uldb\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{
- IDH_MAIN}}${\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super $}{ }{\fs24 WhatisUfiler}}#{\footnote \pard\plain
-\s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{ }{\fs24 WhatisUfiler}}}{\b\ulnone Overview}{\ulnone
-\par }\pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par }\pard\plain \s5\qc \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel4\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Welcome to the Open AFS Client for Windows 95/98}{\b0
-\par }\pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par \{bmlt icon.bmp\} }{\b AFS File System
-\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par AFS}{{\field{\*\fldinst SYMBOL 226 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{
- is a distributed file system that provides secure, reliable access to information across an enterprise. By seamlessly uniting the directories and files on individual file server machines into one file system accessible from any desktop, AFS presents user
-s with a single file space independent of machine boundaries.
-\par
-\par AFS offers several advantages. It improves the availability of files by employing client-side caching and replication of frequently accessed data across multiple file servers. AFS provides powe
-rful security to protect the information stored in the file space. In addition, AFS is highly scalable. Virtually unlimited additional server and client machines can be added as needed to an AFS configuration with little impact on existing server and clie
-nt machines. This enables the file system to grow with the enterprise.
-\par
-\par }{\b AFS Client for Windows 95/98}{
-\par
-\par This client allows you to access files on sites stored all over the Internet as though the files were residing on your local machine. You can store your o
-wn files on the Internet to share with others, and can limit access to your files to specific users or groups of users. You can browse through the different AFS sites (known as cells) from a single file tree and use standard Windows programs such as Expl
-orer to copy and manipulate files. You can open files stored on the Internet directly from Windows applications.
-\par
-\par By default, one drive letter will be assigned on your machine, Z. The Z: drive will be the root of the AFS tree, allowing you to browse all sites that have AFS servers available. (Note: driver letters are configurable.)
-\par
-\par Drive Letter Map Points are locations in the AFS file system that a user chooses to assign a drive letter. Any AFS directory can serve as a Drive Letter Map Point.
-\par
-\par This client is based on AFS version 3.5.
-\par
-\par }\pard\plain \s2\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {System Requirements}{\b0
-\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par IBM compatible PC running Windows 95 or 98
-\par 16 MB RAM
-\par 20 MB free disk space
-\par Client for Microsoft Networks must be installed
-\par TCP/IP protocol stack must be installed
-\par
-\par The AFS Client has a Windows GUI application, AFS Control Panel (}{\i WinAFSLoad.exe}{) and a hidden AFS Client Console (}{\i AFSD.EXE}{).
-\par
-\par }\pard\plain \s2\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #{\footnote \pard\plain
-\s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{ Terms}}}{AFS File Space}{\b0
-\par }\pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {AFS, just like any Window\rquote s file system, uses a hierarchical file structure \endash
- a tree. By convention, /}{\i afs}{ is the root. The next level of directories consists of cells. Cells are sub-trees of the AFS file space, consisting of related directories and files. The directories and files under /afs make up the AFS file space.
-
-\par
-\par }\pard\plain \s2\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Cells
-\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par A cell in the AFS file space acts as an administrative domain. A cell\rquote
-s domain can consist of a company, a university department, or any defined group of users. Each cell is autonomously administered; its administrators determine how workstations are configured and how much storage
- space is available to each user. Each Cell can also connect with the file space of the other cells running AFS. The cell controlling the workstation you are using is called your local cell.
-\par
-\par }\pard\plain \s2\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Volumes
-\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par AFS divides disks partitions into subsections called volumes. A volume houses a sub-tree of related files and directories. Most AFS cells use one volume for each user\rquote s home directory \endash all files and subdirectories in a user\rquote
-s home directory are typically stored together on one file server machine, in one volume on one of the server\rquote s disk partitions.
-\par
-\par You do not have to know which file server machine houses your volume, because AFS finds yours files for you automatically. If you are interested, you can find your volume location (See }{\uldb Volume/Partition}{\v VOLUME_INFO_HELP_ID}{
-). Volumes have a size limit assigned by the system administrator.
-\par
-\par }\pard\plain \s2\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Drive Letter Map Points
-\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par }\pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-Access to AFS directories are provided through Drive Letter Map Points. Default map point Z is mapped to the AFS tree. This drive letter can be used to access all AFS directories. For the users\rquote
- convenience, additional Drive Letter Map Points can be specified to any directory within the AFS tree.
-\par
-\par }{\b Mount Points
-\par }{
-\par }{\cf1 An AFS volume can be mounted to an AFS directory and mounted volume will appear as a sub-directory to the AFS directory.
-\par }{
-\par For example, a user named terry in cell comp.com has a volume named user.terry. A Mount Point exists in the /}{\i afs/comp.com/usr}{ directory named terry and it points to the volume user.terry. When you use any of the subdi
-rectories of terry, you are still using the volume user.terry, and you are accessing files on the file server where user.terry volume is stored.
-\par
-\par }{\b File Space Extension}{
-\par
-\par The AFS file space is an extension of a local machine\rquote
-s file space; that is, AFS directories appear as local directories under a drive Letter. AFS allows many users to share common files; that is, their drive letters are assigned to the same Drive Letter Map Point.
-\par
-\par }{\b Access Control Lists (ACLs\rquote )
-\par }{
-\par AFS uses access control lists (ACLs\rquote
-) to determine who can access the information in the AFS file space. An ACL exists for each directory in the AFS file system; specifying what actions different users can perform on that directory and its files. The owner of the di
-rectory can determine who appears on the access control list and what privileges they have. Individual users own their home directories and their subdirectories.
-\par
-\par }{\b Access Protection Groups
-\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par An access control list group is a defined as a list of individual users that you can place in the access control lists (ACLs\rquote ) of your directories. ACLs\rquote
- allow you to grand the same access rights to a number of people all at once, making user maintenance much easier. Instead of adding (and removing) individuals separately, users can be added and removed from ACLs\rquote
-, updating all the directories at once. When you create a group you automatically become its owner. A group\rquote s owner is the only one allowed to administer the group: add or remove members, rename it, change its owner, or delete it.
-\par \page }{\cs17\super ${\footnote \pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super $}{ HowToUse}}+{\footnote \pard\plain
-\s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super +}{ AdvancedOption:0}}#{\footnote \pard\plain
-\s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{ HowToUse}}}{\b How to use}{
-\par
-\par }\pard\plain \s2\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Startup}{\b0
-\par }\pard\plain \ql \li720\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-After you have completed installation you can use the AFS Client to connect to an AFS file system. Start up the }{\i WinAFSload}{ application (double click).
-\par }\pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par }\pard\plain \s2\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Connect}{\b0
-\par }\pard\plain \ql \li720\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Once the AFS Control Panel dialog box appears, fill in your User Name and Password then choose }{\b\i
-<Connect>}{. (NOTE: your AFS system administrator assigns valid usernames and passwords; however, you can change your }{\i password}{ in }{\uldb Miscellaneous}{\v Miscellaneous}{)
-\par
-\par The }{\b\i <Connect}{\b >}{ button will initiate connection to the AFS server, assign a drive letter to the family of AFS volumes (default Z).
-\par
-\par After connection the }{\b\i <Connect>}{ button will turn into }{\b\i <Disconnect>}{, the }{\b\i <Exit>}{\i }{button will turn into }{\b\i <Cancel>}{\i }{and the }{\b\i <ReAuthenicate>}{ button will become active.
-\par
-\par }{\cs17\super #{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{ Iconize}}}{When connection is active }{\b\i <Disconnect>}{
- will reverse the process. }{\b\i <Cancel>}{ will iconize the application. }{\b\i <ReAuthenicate>}{ with reset the security timer.
-\par
-\par }\pard\plain \s2\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {ReAuthenicate}{\b0
-\par }\pard\plain \ql \li720\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\b\i <ReAuthenicate>}{ will estab
-lish a new security token. Each authenticated user is assigned a security token that contains security information and expiration dates. When this token expires, the drive associated with the Drive Letter Map Point is no longer connected, you cannot rea
-d or write any files associated with this drive letter; that is, any attempts to access the assigned drive letter will result in \lquote access errors\rquote .
-\par
-\par You can reset the security timer, }{\b\i <ReAuthenicate>}{, as many times you like, even if the timer has expired.
-\par
-\par }\pard\plain \s2\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Cancel (Minimization)}{\b0
-\par }\pard\plain \ql \li720\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {While The AFS File System is connected you may iconize the AFS Control Panel by selecting the }{\b\i
-<Cancel>}{ button or by selecting the Window close, the }{\b X}{ at the top right of the dialog box. The application will shrink to an icon on the Task bar. You can still operate the AFS Control Panel from the task bar by \lquote right clicking\rquote
- on the icon that is located on the taskbar (usually located on the lower right of the desktop).
-\par \{bmlt icon.bmp\}
-\par }\pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par
-\par }\pard\plain \s2\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Username and Password}{\b0
-\par }\pard\plain \s19\ql \li720\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {The User Name and Password can be saved as a default setting by selecting the }{\b\i Save Password}{
- check box. If this box is checked the Username and Password will be saved on your hard drive (encrypted) when you exit the AFS Control Panel. The Username and Password will be restored to th
-e saved values each time you restart your AFS Control Panel application. HINT: You can remove your Username and Password from the hard drive by clearing the two fields, checking the }{\b\i Save Password}{ check box and then selecting }{\b\i <Exit>}{.
-
-\par }\pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\b Drive Assignments (Drive Letter Map Points)}{
-\par }\pard \ql \li720\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 {From the }{\b\i Advanced Options}{
- form you can map any AFS directory to a drive letter, connect and disconnect a Drive Letter Map Point. From the main dialog box, Advanced Options can be viewed by clicking the }{\b Advanced Option}{ check box. See }{\uldb Advanced Options}{\v
-AdvancedOptions}{.
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par }\pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\b Settings}{
-\par }\pard\plain \ql \li720\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Select }{\b\i <Settings>}{ to set connection and various data logging options. See }{\uldb Settings}{
-\v IDH_SETTINGS}{
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par }\pard\plain \s2\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Advanced Options}{\b0
-\par }\pard\plain \ql \li720\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {With }{\b Advanced Options}{ checked you can connect or disconnect various drive letters to the AFS fi
-le system. You can also edit Drive Letter Map Point. See }{\uldb Advanced Options}{\v AdvancedOptions}{.
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par }\pard\plain \s2\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Property Menus}{\b0
-\par }\pard\plain \ql \li720\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {See }{\uldb AFS File Properties
-\par
-\par }\pard\plain \s2\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Power Suspend/Resume
-\par }\pard\plain \ql \li720\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Before power suspend is completed the AFS Control Panel will suspend the }{\v Propertiessuspendsu}{
-AFS connection. When Windows resumes power the AFS Control Panel will establish the AFS connection and re-authenticate the user. You may notice an extra step in connection process while AFS Control Panel waits for the Window\rquote s OS to stabilize.
-
-\par
-\par The power suspend/resume cycle does not require operator intervention, the AFS connection will return to the same state it was before power suspension.
-\par
-\par HINT: Windows 98 will prevent power suspend if there are any open AFS files.
-\par }\pard \qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\page }{\cs17\super +{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
-\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super +}{ AdvancedOption:1}}#{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033
-{\cs17\super #}{ AdvancedOptions}}${\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super $}{ Advanced Options}}}{\b Advanced Options}{
-
-\par }\pard \ql \li0\ri2700\widctlpar\aspalpha\aspnum\faauto\adjustright\rin2700\lin0\itap0 {
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {From the AFS Control Panel dialog box checking the }{\b\i Advanced Options}{ will display an extension to the AFS Control Panel dialog box. See }{\i Advanced Options}{
- figure below.
-\par
-\par
-\par }\pard\plain \s3\qc \li0\ri2340\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin2340\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Advanced Options Table
-\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\{bml advanced.mrb\}
-\par
-\par There are 4 columns:
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls13\adjustright\rin0\lin720\itap0 {\b Drive}{
-: This shows which drives are connected. Checking a box will connect a new drive and unchecking it will disconnect. In this example there are two drives connected: Z & U.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b AFS Path}{: This is the Drive Letter Map Point that is associated with the drive letter.
-\par {\listtext\pard\plain\f3\fs28 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b\fs28 *}{
-: All drives with an asterisk will be automatically connected when AFS Client is connected. In this example both Z and U drives will be connected during the connection process.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls14\adjustright\rin0\lin720\itap0 {\b Share Name}{
-: the share name is used by Windows to identify a particular row in the Advanced Options table. The description must be unique for entry.
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par From this dialog you may highlight a particular drive assignment by clicking on its row. Once it\rquote s highlighted, you may choose to }{\b\i <Remove>}{ or }{\b\i <Change>}{ the highlighted entry. See }{\uldb Change Drive Letter Map Point}{\v
-IDH_CHANGE}{. In this example the T drive is highlighted.
-\par
-\par Clicking on the }{\b\fs24 {\field{\*\fldinst SYMBOL 240 \\f "Symbol" \\s 12}{\fldrslt\f3\fs24}}}{ with a }{\b {\field{\*\fldinst SYMBOL 214 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\b }{will disconnect
-the Drive Letter Map Point. Clicking on an empty box will connect it (and display a }{\b {\field{\*\fldinst SYMBOL 214 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\b }{
-in the box). In this example clicking on the check box next to U: will cause U to be connected. HINT: you can disconnect using the tools
-associated with the Explorer and that activity will be reflected in this table, if the operation involves a connected Drive Letter Map Point.
-\par }\pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {To add a new Drive Letter Map Point, select the }{\b\i <Add>}{\b }{button, see }{\uldb
-Add Drive Letter Map Point.}{\v IDH_ADD}{
-\par }\pard \qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\page }{\cs17\super +{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
-\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super +}{ AdvancedOption:3}}${\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033
-{\cs17\super $}{ Add Mount Point}}#{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{ IDH_ADD}}}{\b Add Drive Letter Map Point}{
-
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par The }{\i AFS Add Item}{ dialog box allows the user to add new Drive Letter Map Points.
-\par
-\par Using the AFS Control Panel to define a map point is different than using AFS file properties menu with Window\rquote s Explorer(See }{\uldb Properties}{\v Properties}{
-). AFS Control Panel can connect a Drive Letter Map Point to a drive letter; whereas, using the AFS file properties menu with Window\rquote s Explorer to specify a Mount Point that will make an AFS volume appear a
-s a sub-directory within your AFS directory.
-\par
-\par In this form you will enter the following information:
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls8\adjustright\rin0\lin720\itap0 {\b Drive}{
-: Choose a drive letter from the list. If the drive is already assigned you are notified by an * next to the drive letter. The only restriction is you can\rquote t use a drive letter assigned to a hard drive.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b AFS Path}{: Enter AFS directory location.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b Share name}{: the share name is used by Windows to identify a particular connection. This value must be unique for each entry in the table.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b Restore Drive Letter Map Point}{ check box: With this box checked, when the AFS Client is connected the any entries checked will be automatically connected!
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par After you have completed filling out the form, select }{\b\i <Add Item>}{; the new entry will be appended to the Advanced Options table. This will only change the table; it does not connect or disconnect any Drive Letter Map Points.
-\par
-\par HINT: you cannot change a drive assignment while it is connected.
-\par
-\par }\pard \qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\page }{\cs17\super +{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
-\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super +}{ AdvancedOption:4}}${\footnote \pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\cs17\super $}{ Change Mount Point}}#{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{ IDH_CHANGE}}}{\b Change Drive Letter M
-ap Point}{
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par From the AFS Change Item form you can edit the following information:
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls8\adjustright\rin0\lin720\itap0 {\b Drive}{
-: Choose a drive letter from the list. Drives with an asterisk (*) are already in use. The only restriction is that you can\rquote t use drive letters that are assigned to ha
-rd drives. HINT: while connected to the AFS File System, you cannot connect the same drive letter twice.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b AFS Path}{: Enter your AFS directory location. For example: the previous example N: drive had two entries one the AFS Path: }{\b /AFS/k56/proj/idrive/test/u578}{.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b Share name}{
-: Enter a unique share name. This name is used to identify the mapping instructions. It needs to be unique. The value is NOT verified to be unique; it is your responsibility!
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b Connect Drive Letter Map Point when AFS Connected}{
- check box: With this box checked, when the AFS Client is connected all checked Drive Letter Map Points will be automatically connected!
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par
-\par After you have completed the form, select }{\b\i <Accept Change>}{ to change this entry in the Advanced Options Table. This will only change the table; it does not imply the drive will be immediately connected.
-\par }\pard \qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\page }{\cs17\super #{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
-\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{ Miscellaneous}}}{\b Miscellaneous}{
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\b
-\par }{You can use command line options control the AFS Control Panel operation. During client loading the client will respond to these options.
-\par }\pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-For example, if you wish to place a short cut on your Desktop that automatically connects to a particular username password you could define the program shortcut with the following:
-\par }\pard\plain \s20\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\b\fs24
-\par }{\b\fs16 C:\\AFSCLI\\WinAFSload.EXE \endash connect \endash userid:your_user_name \endash password:your_password
-\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\b
-\par List of Command Line Options for WinAFSload:
-\par
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-1440\li1620\ri0\widctlpar\jclisttab\tx360\aspalpha\aspnum\faauto\ls6\adjustright\rin0\lin1620\itap0 {\b -show\tab }{
-Show AFS Client Console (background activity). It is not recommended that you use this option; it can cause system instabilities if it is used improperly.}{\b
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}-connect:\tab }{After the client is loaded, automatically connect using the default }{\i userid}{ and }{\i password}{ (Also see }{\uldb Settings}{\v IDH_SETTINGS}{). }{\b
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}-userid:\tab }{Change default }{\i userid.}{ (This does not change the stored username on the hard Drive.)}{\b
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}-password:\tab }{Change default }{\i password.}{ (This does not change the stored }{\i password}{ on the hard Drive.)}{\b
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\b
-\par }{HINT: If you choose to automatically connect and do not specify }{\i userid}{ or }{\i password}{ then the default }{\i userid}{ and }{\i password}{ saved on the hard drive will be used.
-\par }{\b
-\par
-\par }{\cs17\b\super #{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{ CommandLineTools}}}{\b Command Line Tools
-\par
-\par }{Command Line Tools are used to manually control AFS Control Panel assignments. These are used to authenticate multiple cells and other advanced operations. These commands are entered from a DOS window or Run from the Windows Start menu.
-\par
-\par For full documentation see }{\uldb Contact Information}{\v ContactInfo}{.}{\f0
-\par
-\par }{These tools are located in the AFS installed directory (default C:\\AFSCLI\\).
-\par
-\par {\listtext\pard\plain\s22 \f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \s22\ql \fi-1620\li1620\ri0\widctlpar\jclisttab\tx360\aspalpha\aspnum\faauto\ls9\adjustright\rin0\lin1620\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033
-{\b klog.exe:\tab }{Authenticate a user to a cell, e.g. "klog joeuser@mycell.com"
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \ql \fi-1620\li1620\ri0\widctlpar\jclisttab\tx360\tx1980\aspalpha\aspnum\faauto\ls9\adjustright\rin0\lin1620\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\b unlog.exe:\tab }{Unauthenticate a cell.
-\par {\listtext\pard\plain\s20 \f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \s20\ql \fi-1620\li1620\ri0\widctlpar\jclisttab\tx360\tx1980\aspalpha\aspnum\faauto\ls9\adjustright\rin0\lin1620\itap0
-\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\b tokens.exe}{:\tab List which tokens you have (cells that have authenticated) and their expiration times.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \ql \fi-1620\li1620\ri0\widctlpar\jclisttab\tx360\tx1980\aspalpha\aspnum\faauto\ls9\adjustright\rin0\lin1620\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\b kpasswd.exe}{:Change your password for the specified cell.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b symlink.exe}{:\tab Create a symbolic link , e.g. "symlink make dest src" makes a link called "dest" pointing to file "src".
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b fs.exe:\tab }{
-This command is used for a number of file server functions. Type "fs help" for a list, and then "fs help function" to get detailed help for that function. See the documentation for more info.
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par }\pard\plain \s20\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {The most commonly used functions are:
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \ql \fi-360\li360\ri0\widctlpar\jclisttab\tx360\tx3060\aspalpha\aspnum\faauto\ls10\adjustright\rin0\lin360\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\b
-fs help}{:\tab list functions
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\widctlpar\jclisttab\tx360\tx2340\tx3060\aspalpha\aspnum\faauto\ls10\adjustright\rin0\lin360\itap0 {\b fs listacl}{ <directory> :\tab \tab
-show directory access control list
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\widctlpar\jclisttab\tx360\tx1980\tx3060\aspalpha\aspnum\faauto\ls10\adjustright\rin0\lin360\itap0 {\b fs setacl}{ <diretory> <acl> :\tab
-set directory access control list
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-3240\li3240\ri0\widctlpar\jclisttab\tx360\aspalpha\aspnum\faauto\ls10\adjustright\rin0\lin3240\itap0 {\b fs listquota}{ <directory> :\tab show directory disk quota.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-3240\li3240\ri0\widctlpar\jclisttab\tx360\jclisttab\tx540\aspalpha\aspnum\faauto\ls10\adjustright\rin0\lin3240\itap0 {\b fs flushvolume}{ <directory> :\tab
-flush cached data from volume.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-3240\li3240\ri0\widctlpar\jclisttab\tx360\aspalpha\aspnum\faauto\ls10\adjustright\rin0\lin3240\itap0 {\b pts.exe}{:\tab
-manage Protection Groups. See documentation for more information
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par }{\b
-\par }\pard \qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\page }{\cs17\super #{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
-\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{ IDH_SETTINGS}}}{\b\fs24 Settings}{
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par Within the Settings dialog you can choose to automatically con
-nect the AFS Client. When the AFS Control Panel first starts running it checks this option; if selected, then the AFS Control Panel will automatically connect to the AFS file system and connect your checked Drive Letter Map Points.
-\par
-\par Hint: you could configure the AFS Control Panel to run when Windows first starts up. With the }{\i automatic connect}{ option, each time windows is started your AFS drives would be available, just like a local drive.
-\par
-\par The following options are available:
-\par
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls11\adjustright\rin0\lin720\itap0 {\b\i Log To File}{ \endash AFS Contro
-l Panel activity is recorded on a disk file (AFSCLI.LOG) in the AFS Control Panel directory (default C:\\AFSCLI\\). This file is useful when reporting bugs to the AFS support team. (NOTE: by toggling this option OFF then }{\b\i <Accept>}{ and ON then }{
-\b\i <Accept>}{), the client will clear its disk based log file. If the option doesn\rquote t change (left ON or Off) choosing }{\b\i <Accept>}{ will not affect the log file.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b\i Log To Window}{ \endash AFS Control Panel activity is displayed in a log window.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b\i Connect on Start}{ \endash Automatically connects to the AFS file system when the client is started.
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par Different usernames and passwords can be used during }{\b\i Connect on Start}{. See }{\uldb Miscellaneous}{\v Miscellaneous}{ for command line options.
-\par
-\par
-\par }\pard \qc \li360\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0 {\page }{\cs17\super ${\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
-\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super $}{ Trouble Shooting?}}#{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
-\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{ TroubleShooting}}}{\b Trouble Shooting?}{
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\b
-\par }{Guidelines for contacting the Open Afs team:
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls12\adjustright\rin0\lin720\itap0 {
-Where in the process did the error occur: connection, disconnection, file access, program initialization, or a particular operation sequence?
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}How did the AFS Control Panel respond?
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Send the activity log file, AFSCLI.LOG. (See }{\uldb Settings}{\v IDH_SETTINGS}{ to activate the log.)
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Can the problem be reproduced?
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Computer and server configuration.
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par HINT, during Connection the progress bar goes through 3 stages:
-\par {\listtext\pard\plain\f1\fs20 \hich\af1\dbch\af0\loch\f1 1.\tab}}\pard \ql \fi-360\li1440\ri0\widctlpar\jclisttab\tx1440\aspalpha\aspnum\faauto\ls12\ilvl1\adjustright\rin0\lin1440\itap0 {Enable AFS Client Console
-\par {\listtext\pard\plain\f1\fs20 \hich\af1\dbch\af0\loch\f1 2.\tab}Authentication
-\par {\listtext\pard\plain\f1\fs20 \hich\af1\dbch\af0\loch\f1 3.\tab}Connect Drive Letter Map Points
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par }\pard\plain \s4\qc \li0\ri5580\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin5580\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {AFS Control Panel Progress
-\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\{bml progress.mrb\}
-\par }\pard \ql \li0\ri5580\widctlpar\aspalpha\aspnum\faauto\adjustright\rin5580\lin0\itap0 {
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-Under certain unfavorable conditions the connection process will time out during one of these cycles. When that happens you will get a message dialog box identifying the problem. The
-exact wording from the message box is important and should be recorded when contacting your AFS support team.
-\par
-\par See }{\uldb Contact Information}{\v ContactInfo}{ for email addresses.
-\par
-\par }{\b Useful hints:
-\par
-\par {\listtext\pard\plain\f1\fs20 \hich\af1\dbch\af0\loch\f1 1.\tab}}\pard \ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls15\adjustright\rin0\lin720\itap0 {Connect to the Internet or your company's intranet. (Note: If you are
- using the AFS Control Panel in a fire walled intranet environment with private AFS cells, you will probably need a CellServDB file specific to your company's environment. Ask your system administrator.)
-\par {\listtext\pard\plain\f1\fs20 \hich\af1\dbch\af0\loch\f1 2.\tab}Check your system time, timezone, and date settings and make sure they are synchronized with the AFS server.
-\par {\listtext\pard\plain\f1\fs20 \hich\af1\dbch\af0\loch\f1 3.\tab}Start the AFS Control Panel by double-clicking on the icon on the desktop or Start Menu.
-\par {\listtext\pard\plain\f1\fs20 \hich\af1\dbch\af0\loch\f1 4.\tab}A box will appear asking for your }{\i userid}{ and password. Type them in and press }{\b\i <Connect>}{
-. This will authenticate you to the AFS cell you specified at installation. (Note: You cannot use the GUI interface to authenticate to other cells at present. Th
-is will be added later. You can still authenticate to other cells using the "klog" command; see }{\uldb Miscellaneous}{.) Use the }{\b\i Save Password}{
- checkbox to enable the AFS Control Panel to save your password (encrypted) in the registry for use next time you run the AFS Control Panel.
-\par {\listtext\pard\plain\f1\fs20 \hich\af1\dbch\af0\loch\f1 5.\tab}Now a Windows Explorer will start to allow you to browse Z: drives. Z: will be the root of the AFS tree.
-\par {\listtext\pard\plain\f1\fs20 \hich\af1\dbch\af0\loch\f1 6.\tab}By checking }{\b\i Advanced Options}{, you can add and change your drive letter assignments. There is one share assigned by default,
- named "all". (Note: the "all" share cannot be removed.) New shares must be assigned a unique share name and an AFS path. You can connect or disconnect your AFS drives by checking or unchecking the box next to each drive letter. You can also set wheth
-er a drive will be automatically connected at startup (}{\b\fs28 *}{).
-\par {\listtext\pard\plain\f1\fs20 \hich\af1\dbch\af0\loch\f1 7.\tab}You can minimize the AFS Control Panel dialog window. Double click the icon in the system tray or right click to view the properties menu.
-\par {\listtext\pard\plain\f1\fs20 \hich\af1\dbch\af0\loch\f1 8.\tab}When you are ready to shut down the AFS Control Panel, bring up the AFS Control Panel dialog and click the }{\b\i <Disconnect>}{
- button. This will terminate the AFS Control Panel service. Then click }{\b\i <Exit>}{ to quit.
-\par }\pard \qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\page }{\cs17\super ${\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
-\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super $}{ Contact Information.}}#{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
-\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{ ContactInfo}}}{\b Contact Information}{
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par This client was developed within the context of providing a large-scale Internet storage service. We welcome comments, questions, and bug reports from users of this program. Please contact the Open Source Development Site at
-\par }\pard \qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\uldb http://www.openafs.org}{\v !ExecFile( http://www.openafs.org/)}{:
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par }{\uldb MailTo: openafs-devel@openafs.org}{\v !ExecFile(mailto:}{\v\cf1 openafs-devel@openafs.org}{\v )}{
-\par
-\par Additional documentation is available at the following URL: }{\uldb http://www.transarc.com/Library/documentation/afs/3.5/windows}{\v !ExecFile(http://www.transarc.com/Library/documentation/afs/3.5/windows/index.htm)}{\uldb
-\par }{\f0
-\par }{The help file contains information from various sources, including }{\ul TRANSARC AFS User\rquote s Guide}{.
-\par
-\par }\pard \qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par }\pard\plain \s2\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Legalities
-\par }\pard\plain \ql \li720\ri720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\b\i }{\i
-Copyright 2000, International Business Machines Corporation and others. All Rights Reserved. This software has been released under the terms of the IBM Public \tab
-License. For details, see the LICENSE file in the top-level source directory or online at http://www.openafs.org/dl/license10.html
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\b\fs24
-\par }{\page }{\cs17\super +{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super +}{ PROP:0}}}{\cs17\f0\uldb #{\footnote \pard\plain
-\s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{ Properties}}}{\b AFS File Properties}{
-\par
-\par Addition information about AFS cells can be viewed by using the properties menu associated with any AFS file or AFS volume (assigned drive letter).
-\par }\pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Once AFS file system is connected, from the Explorer, right click an AFS file or AFS assigned drive letter
-. You will see the }{\b\i AFS}{ option added to the properties dialog box. These options include: setting new connection points, changing file access rights and other administrative activities.
-\par
-\par }\pard\plain \s4\qc \li0\ri5580\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin5580\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {File Properties
-\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\{bml proper.mrb\}
-\par
-\par
-\par
-\par }{\f0\uldb Access Control Lists\'85}{\v\f0 SET_AFS_ACL_ENTRY_HELP_ID}{
-\par }{\f0\uldb Volume/Partition}{\v\f0 VOLUME_INFO_HELP_ID}{
-\par }{\f0\uldb Mount Point}{\v\f0\fs24 MountPoints}{
-\par }{\f0\uldb Flush File/Dir}{\v\f0 FlushFileDir}{
-\par }{\f0\uldb Flush Volume}{\v\f0 FlushVolume}{
-\par }{\f0\uldb Show File Servers}{\v\f0 SHOW_FILE_SERVERS_HELP_ID}{
-\par }{\f0\uldb Show Cell}{\v\f0 SHOW_CELL_HELP_ID}{
-\par }{\f0\uldb Show Server Status}{\v\f0 SERVER_STATUS_HELP_ID}{
-\par }\pard \qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\page }{\cs17\super +{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
-\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super +}{ PROP:1}}#{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\cs17\super #}{ SET_AFS_ACL_ENTRY_HELP_ID}}}{\b\fs24 Access Control Lists\'85}{\b
-\par }\pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par AFS implements per-directory Access Control Lists (ACL). These improve the ability to specify which set of users has access to the files within the directory, and operations they may perform. ACL\rquote s are us
-ed in addition to the standard UNIX mode bits. There are seven expressible rights, as listed below:
-\par
-\par {\listtext\pard\plain\s16 \f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \s16\ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls1\adjustright\rin0\lin720\itap0 {\b Read (r)}{:\tab
-The ability to read the contents of the files in a directory.}{\b
-\par {\listtext\pard\plain\s16 \f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Lookup (l):}{\tab The ability to look up names in a directory.}{\b
-\par {\listtext\pard\plain\s16 \f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Write (w):\tab }{The ability to create new files and overwrite the content of existing files in a directory.}{\b
-\par {\listtext\pard\plain\s16 \f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Insert (i):}{\tab The ability to insert new files in a directory, but not overwrite existing files.}{\b
-\par {\listtext\pard\plain\s16 \f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Delete (d):}{\tab The ability to delete files in a directory.}{\b
-\par {\listtext\pard\plain\s16 \f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Lock (k):}{\tab The ability to acquire and release advisory locks on a given directory.}{\b
-\par {\listtext\pard\plain\s16 \f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Administer (a):}{\tab The Ability to change a directory\rquote
-s ACL. Hint: this not the same as Administrative privileges (e.g. Administrative privileges are required to change cell quotas).}{\b
-\par }\pard \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\b
-\par }{From this dialog box you can do the following:}{\f0\fs24
-\par {\listtext\pard\plain\s16 \f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \s16\ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls3\adjustright\rin0\lin720\itap0 {Add \endash See }{\uldb Add Access Control Information}{\v
-ADD_ACL_ENTRY_HELP_ID}{
-\par {\listtext\pard\plain\s16 \f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Remove - Remove entry for the ACL list
-\par {\listtext\pard\plain\s16 \f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Clean \endash Clean obsolete entries from the ACL list.
-\par {\listtext\pard\plain\s16 \f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Copy - See }{\uldb Copy Access Control List}{\v COPY_ACL_HELP_ID}{
-\par }\pard \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par AFS defines three special system groups that you can put on your access control lists:
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls22\adjustright\rin0\lin720\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-system:anyuser: Any individual who accesses AFS files.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}system:authuser: Any individual in possession of a valid Kerberos ticket (has authorization).
-\par {\listtext\pard\plain\s16 \f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \s16\ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls19\adjustright\rin0\lin720\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-system:administrators \endash group includes those in your cell authorized to operate and administer AFS.
-\par }\pard\plain \qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par }{\cs17\super #{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{ ADD_ACL_ENTRY_HELP_ID}}}{\b\fs24 Add Access Control Information
-
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\fs24
-\par }{From this dialog box you can add new Access Control Information to a directory. You must have ACL privileges to change ACL information. There are two types:
-\par
-\par {\listtext\pard\plain\s16 \f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \s16\ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls18\adjustright\rin0\lin720\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-Normal Entry:\tab Adding a control list. E.g. option }{\b r}{ gives the permission to read.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls18\adjustright\rin0\lin720\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-Negative Entry: Remove a particular right. E.g. option }{\b r}{
- would remove permission to read from a group that has permission to read. (Hint: There are two ways to restrict access, remove them from the Normal Entry or to include them in the Negative Entry.)
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par }\pard\plain \s2\ql \li0\ri0\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \b\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Using Protection Groups
-\par }\pard\plain \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par An access control list group is a defined as a list of individual users that you can place in the access control lists (ACLs\rquote ) of your directories. ACLs\rquote
- grant the same access rights to a number of people all at once, making user maintenance much easier. Instead of adding (and removing) individuals separately, users can be added and removed from ACLs\rquote
-, updating all the directories at once. When you create a group you automatically become its owner. A group\rquote s owner is the only one allowed to administer the group: add or remove members, rename it, change its owner, or delete it.
-\par
-\par Groups can only be created, deleted, or changed using the command line options. See }{\uldb Command Line Tools}{\v CommandLineTools}{
-\par
-\par The name field is used to denote properties to a specific group or user name. E.g. erz may create a group erz:friends.
-\par
-\par There 3 special, built-in groups, as described below:
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls22\adjustright\rin0\lin720\itap0 {system:anyuser: Any individual who accesses AFS files.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}system:authuser: Any individual in possession of a valid Kerberos ticket (has authorization).
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}system:administrators \endash group includes those in your cell authorized to operate and administer AFS.
-\par }\pard \ql \li360\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin360\itap0 {
-\par }\pard \qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\cs17\super #{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033
-{\cs17\super #}{ COPY_ACL_HELP_ID}}}{\b\fs24 Copy Access Control List
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par You can copy an ACL from a directory or volume to another directory or volume.
-\par
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls20\adjustright\rin0\lin720\itap0 {Highlight th
-e source AFS directory. The source will provide the ACL you wish to copy.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Bring up the Properties menu by right clicking and selecting AFS option.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Select Action Control Lists\'85
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Highlight the ACL item you wish to copy
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Select }{\b\i <Copy>}{ button.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Enter in the destination AFS directory.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Select }{\b\i <OK>}{\b .}{
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par }\pard \qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {Hint: If open up the AFS properties of the destination volume or subdirectory, you will find the results of your copy. \page }{\cs17\super +{\footnote \pard\plain
-\s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super +}{ PROP:2}}}{\cs17 #{\footnote \pard\plain
-\s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17 #}{ VOLUME_INFO_HELP_ID}}}{\cs17\super #{\footnote \pard\plain
-\s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{ PARTITION_INFO_HELP_ID}}}{\b\fs24 Volume/Partition}{
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par AFS divides disks partitions into subsections called volumes. A volume houses a sub-tree of related files and directories. Most AFS cells use one volume for each user\rquote s home directory \endash all files and subdirectories in a user\rquote
-s home directory are typically stored together on one file server machine, in one volume on one of the server\rquote s disk partitions.
-\par
-\par You do not have to know which file server machine houses your volume, because AFS finds yours files for you automatically.
-\par }\pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par You have two menu options:
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls4\adjustright\rin0\lin720\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\b\i <P
-roperties>}{ \endash View Volume Information. File directory drive letter, user name, ID number, Quota size, Bytes used, % Used. You may also set new Quotas and view Partition Information.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b\i <Refresh name/ID map>}{ - validate volume ID and name mappings.
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par Volumes have a size limit, or quota, assigned by the system administrator. A volume\rquote s quota, measured in 1 kilobyte units, determines the storage space allowed in the volume.
-\par }\pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par }\pard\plain \qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #{\footnote \pard\plain
-\s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{ MOUNT_POINTS_HELP_ID}}#{\footnote \pard\plain
-\s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{ REMOVE_MOUNT_POINTS_HELP_ID}}#{\footnote \pard\plain
-\s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{ MAKE_MOUNT_POINT_HELP_ID}}}{\cs17 #{\footnote \pard\plain
-\s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\fs24 #}{\fs24 }{MountPoints}}}{\b\fs24 Mount Point}{\fs24
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\fs24
-\par }\pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-Mount Points can be assigned as sub-directories inside your AFS directory. They are assigned to volumes in your own cell or different cell.
-\par
-\par Using the AFS Control Panel (See }{\uldb Advanced Options}{\v AdvancedOptions}{) to define a map point is different than using AFS file properties menu with Window\rquote
-s Explorer. AFS Control Panel can connect a Drive Letter Map Point to a drive letter; whereas, using the AFS file properties menu with Window\rquote s Explorer to specify a Mount Point that will make an
-AFS volume appear as a sub-directory within your AFS directory.
-\par
-\par You may choose one of the following operations:
-\par {\listtext\pard\plain\s16 \f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \s16\ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls5\adjustright\rin0\lin720\itap0 {\b\i <Show>}{\b :}{ View File, Volume, Cell and Type
-\par {\listtext\pard\plain\s16 \f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b\i <Remove>}{: Remove Mount Point from the list
-\par {\listtext\pard\plain\s16 \f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b\i <Make>}{: Make a new Mount Point
-\par }\pard\plain \qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {There are three fields for each Mount Point:
-\par
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls16\adjustright\rin0\lin720\itap0 {Directory \endash
- Directory location where the AFS volume is to appear as a sub-directory
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Volume \endash a sub-tree of related files and directories
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Cell \endash An AFS administrative domain.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Options
-\par {\listtext\pard\plain\f2\fs20 \hich\af2\dbch\af0\loch\f2 o\tab}}\pard \ql \fi-360\li1440\ri0\widctlpar\jclisttab\tx1440\aspalpha\aspnum\faauto\ls16\ilvl1\adjustright\rin0\lin1440\itap0 {Regular \endash default privileges
-\par {\listtext\pard\plain\f2\fs20 \hich\af2\dbch\af0\loch\f2 o\tab}Read/Write \endash Read & Write privileges only
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\b\fs24
-\par }{For example:
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls17\adjustright\rin0\lin720\itap0 {Directory: u:\\YourFolder
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Volume: user:yourname
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Cell: youdomain.com
-\par }\pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par
-\par }\pard\plain \qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #{\footnote \pard\plain
-\s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{ FlushVolume}}#{\footnote \pard\plain
-\s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{ }{\fs24 FlushFileDir}}}{\b\fs24 Flush Volume File/Dir
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\b\fs24
-\par }{As a user, you work on an AFS Control Panel machine. A process called a Cache Manager on that machine is your \'93agent\'94
- in accessing information stored in the AFS file space. When you access a file, the Cache Manager on your client machine requests the file from the file server machines. The Cache Manager stores a copy of the requested file on your client workstation
-\rquote s local disk.
-\par
-\par Selecting to }{\b\i <Flush}{\b File/Dir}{\b\i >}{ will send file changes to the file server and clear out its cache. It is not necessary to do this operation as the file system does it automatically, including during the shut down process.
-\par
-\par Selecting to }{\b <Flush Volume>}{ will send all changes to all files and flush the complete volume.
-\par
-\par }\pard \qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\cs17\super #{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033
-{\cs17\super #}{ }{\fs24 SHOW_FILE_SERVERS_HELP_ID}}}{\b\fs24 Show File Servers
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par The AFS file space is not necessarily stored on the same machine \endash directory trees are stored in volumes that can be stored on different machines.
-\par
-\par }\pard \qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\cs17\super #{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033
-{\cs17\super #}{ }{\uldb SHOW_CELL_HEL}{\v P_ID}}}{\b\fs24 Show Cell
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par A cell in the AFS file space acts as an administrative domain. A cell\rquote s domain can consist of a company, a university department, or any defined group of users.
-\par
-\par The AFS file space is not necessarily stored on the same machine \endash directory trees are stored in volumes that can be stored on different machines.
-\par
-\par This option will show which cell is assigned to a mapping point.
-\par
-\par }\pard \qc \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\cs17\b\fs24\super #{\footnote \pard\plain \s16\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
-\f1\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs17\super #}{ SERVER_STATUS_HELP_ID}}}{\b\fs24 Show Server Status
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par Sometimes one or more file server machines in your cell will become unavailable due to problems or maintenance. In these case, you will be unable to access files stored on those machines until the machines come back into service.
-As mentioned before, your Cache Manager may have copies of your files store locally that you can still work on.
-\par
-\par This options allows you to check the status of the following:
-\par
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li720\ri0\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls21\adjustright\rin0\lin720\itap0 {Local Cell
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}Specific Cell \endash enter the name of a specific cell
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}All Cells
-\par }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {
-\par }}
\ No newline at end of file
+++ /dev/null
-// MyFrame.cpp : implementation file
-// frame class used to demonstrate UI-threads
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-
-#include "stdafx.h"
-#include "MyFrame.h"
-#include "ProgBarDlg.h"
-#include "share.h"
-#include "datalog.h"
-#include "WinAfsLoad.h"
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-// CMyThread Stuff //
-
-HANDLE CMyUIThread::m_hEventThreadKilled=NULL;
-
-IMPLEMENT_DYNCREATE(CMyUIThread, CWinThread)
-
-CMyUIThread::CMyUIThread()
-{
- m_pLog=NULL;
-}
-
-CMyUIThread::~CMyUIThread()
-{
-}
-
-void CMyUIThread::operator delete(void* p)
-{
- // The exiting main application thread waits for this event before completely
- // terminating in order to avoid a false memory leak detection. See also
- // CMyUIThread::OnNcDestroy in bounce.cpp.
-
- SetEvent(m_hEventThreadKilled);
- CWinThread::operator delete(p);
-}
-
-BOOL CMyUIThread::InitInstance()
-{
-#ifdef _AFXDLL
-// Enable3dControls(); // Call this when using MFC in a shared DLL
-#else
-// Enable3dControlsStatic(); // Call this when linking to MFC statically
-#endif
- // we use the modeless dialog box so we can create it invisable
-
- m_pMainWnd = new CProgBarDlg; //we use the window pointer so MFC will delete the thread when Main window is destroyed
-
- if (m_pMainWnd==NULL)
- {
- AfxMessageBox("AFS - Memory allocation error",MB_OK);
- return FALSE;
- }
- if (!((CProgBarDlg *)m_pMainWnd)->Create())
- {
- AfxMessageBox("AFS - Thread Memory allocation error",MB_OK);
- return FALSE;
- }
- // Initialize sockets
- CString msg;
- if (!((CProgBarDlg *)m_pMainWnd)->Connect(msg))
- {
- AfxMessageBox(msg,MB_OK);
- return FALSE;
- }
- m_pLog = new CDatalog();
- if (m_pLog->Create() != TRUE)
- {
- delete m_pLog;
- m_pLog=NULL;
- }
- return TRUE;
-}
-
-int CMyUIThread::ExitInstance()
-{
- // TODO: perform any per-thread cleanup here
- if (m_cPrint.m_hFile!=CFile::hFileNull)
- m_cPrint.Close();
- return CWinThread::ExitInstance();
-}
-
-BEGIN_MESSAGE_MAP(CMyUIThread, CWinThread)
- //{{AFX_MSG_MAP(CMyUIThread)
- // NOTE - the ClassWizard will add and remove mapping macros here.
- //}}AFX_MSG_MAP
- ON_THREAD_MESSAGE(WM_UIONPARM,OnParm)
- ON_THREAD_MESSAGE(WM_UICONNECT,OnConnect)
- ON_THREAD_MESSAGE(WM_LOG,OnLog)
-END_MESSAGE_MAP()
-
-
-void CMyUIThread::OnParm( UINT wp, LONG lp)
-{
- switch (wp)
- {
- case ONPARMCLOSE:
- m_pMainWnd->DestroyWindow(); // this will also destroy the datalog window
- m_pLog=NULL;
- if (m_cPrint.m_hFile!=CFile::hFileNull)
- m_cPrint.Close();
- break;
- case ONPARMDISCONNECT:
- ((CProgBarDlg *)m_pMainWnd)->DisConnect();
- CWINAFSLOADAPP->WSANotifyFromUI(AFS_EXITCODE_NORMAL,NULL);
- break;
- default:
- ASSERT(0);
- break;
- }
-
-}
-
-// these routines must either return null or point to a message
-void CMyUIThread::OnConnect( UINT wParam, LONG lp)
-{
- CString sStatus;
- if (((CProgBarDlg *)m_pMainWnd)->Connect(sStatus))
- {
- CWINAFSLOADAPP->NotifyFromUI(wParam,NULL);
- return;
- }
- CWINAFSLOADAPP->NotifyFromUI(wParam,sStatus);
-}
-
-void CMyUIThread::OnLog( UINT wp, LONG lp)
-{
-TRY
-{
- switch (wp)
- {
- case 0:
- if ((lp) && (m_cPrint.m_hFile!=CFile::hFileNull))
- {
- CString *pMsg=(CString *)lp;
- m_cPrint.Write((const char *)*pMsg, lstrlen((const char *)*pMsg));
- m_cPrint.Flush();
- }
- if (m_pLog==NULL) break;
- if (lp)
- {
- CString *pMsg=(CString *)lp;
- m_pLog->m_sEdit+=*pMsg;
- delete pMsg; //FREE up date
- } else
- m_pLog->m_sEdit="";
- m_pLog->UpdateData(FALSE);
- m_pLog->m_cEdit.LineScroll(10000);
- if ( (m_pLog->GetStyle() & (WS_VISIBLE|WS_MINIMIZE))==WS_VISIBLE)
- m_pLog->SendMessage(WM_PAINT);
- break;
- case LOGSHOWWINDOW:
- if (m_pLog==NULL) break;
- m_pLog->ShowWindow((lp)?SW_SHOWNORMAL:SW_HIDE);
- break;
- case LOGSHOWPRINT:
- if (lp==NULL)
- {
- if (m_cPrint.m_hFile!=CFile::hFileNull)
- m_cPrint.Close();
- } else {
- CString *mp=(CString *)lp;
- if (m_cPrint.Open((const char *)*mp
- ,CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite,&m_cPrintException)==NULL)
- {
- TCHAR szError[1024];
- m_cPrintException.GetErrorMessage(szError, 1024);
- LOG("Log file(%s) open error %s",(const char *)lp,szError);
- break;
- }
- m_cPrint.SeekToEnd();
- delete mp; //this was passed as a pointer to a created CString;
- CString mt;
- SYSTEMTIME timeDest;
- GetSystemTime(&timeDest);
- mt.Format("\nNew Session:(%02d:%02d:%2d-%03d)\n",
- timeDest.wHour,
- timeDest.wMinute,
- timeDest.wSecond,
- timeDest.wMilliseconds);
- m_cPrint.Write((const char *)mt, lstrlen(mt));
- }
- break;
- default:
- break;
- }
-}
-CATCH(CFileException, e)
-{
- if (m_cPrint.m_hFile!=CFile::hFileNull)
- m_cPrint.Close();
- TCHAR szError[1024];
- e->GetErrorMessage(szError, 1024);
- LOG("Open Log file error %s",szError);
-}
-END_CATCH
-}
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-// MyFrame.h : header file
-//
-
-/////////////////////////////////////////////////////////////////////////////
-// CMyFrame frame
-#ifndef _MYFRAME_H_
-#define _MYFRAME_H_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#ifndef __AFXWIN_H__
- #error include 'stdafx.h' before including this file for PCH
-#endif
-
-#include "resource.h" // main symbols
-#define LOGSHOWWINDOW 1
-#define LOGSHOWPRINT 2
-#define ONPARMCLOSE 0
-#define ONPARMDISCONNECT 1
-#define ONPARMCONNECT 2
-
-class CProgBarDlg;
-class CDatalog;
-
-///////////////////// CMyThread stuff //////////////////////////
-
-class CMyUIThread: public CWinThread {
- DECLARE_DYNCREATE(CMyUIThread)
- CMyUIThread(); // protected constructor used by dynamic creation
-protected:
- CDatalog *m_pLog;
- CFile m_cPrint;
- CFileException m_cPrintException;
-// Attributes
-public:
- static HANDLE m_hEventThreadKilled;
-
- void operator delete(void* p);
-
-// Operations
-public:
-
-// Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CMyUIThread)
- public:
- virtual BOOL InitInstance();
- virtual int ExitInstance();
- //}}AFX_VIRTUAL
-
-// Implementation
-protected:
- virtual ~CMyUIThread();
-
- // Generated message map functions
- //{{AFX_MSG(CMyUIThread)
- // NOTE - the ClassWizard will add and remove member functions here.
- //}}AFX_MSG
- afx_msg void OnParm( UINT, LONG );
- afx_msg void OnConnect( UINT, LONG );
- afx_msg void OnLog( UINT, LONG );
- DECLARE_MESSAGE_MAP()
-};
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
-
-#endif
+++ /dev/null
-# Copyright 2000, International Business Machines Corporation and others.
-# All Rights Reserved.
-#
-# This software has been released under the terms of the IBM Public
-# License. For details, see the LICENSE file in the top-level source
-# directory or online at http://www.openafs.org/dl/license10.html
-
-# Required Include paths
-#AFSDEV_BUILDTYPE=FREE
-#OUTDIR=.\Release
-#AFSD_INC_SDK9X = /I $(HOMEDRIVE)\tol\sdk95\Include
-#AFSD_INC_MFC9X = /I $(HOMEDRIVE)\PROGRA~1\MICROS~2\VC98\INCLUDE /I $(HOMEDRIVE)\PROGRA~1\MICROS~2\VC98\MFC\INCLUDE /I $(HOMEDRIVE)\PROGRA~1\MICROS~2\VC98\ATL\INCLUDE
-
-RELDIR=WINNT\win9xpanel
-!INCLUDE ..\..\config\NTMakefile.$(SYS_NAME)
-OUTDIR = $(DESTDIR)\WinInstall
-OUTDIRHLP = $(OUTDIR)
-
-!IF "$(AFSDEV_BUILDTYPE)" == ""
-AFSDEV_BUILDTYPE=FREE
-!MESSAGE No configuration specified. Defaulting to FREE.
-!ENDIF
-
-!IF "$(AFSDEV_BUILDTYPE)" != "FREE" && "$(AFSDEV_BUILDTYPE)" != "CHECKED"
-!MESSAGE Invalid configuration "$(AFSDEV_BUILDTYPE)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro AFSDEV_BUILDTYPE on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "WinAfsLoad.mak" AFSDEV_BUILDTYPE="FREE"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "FREE" (based on "Win32 (x86) Application")
-!MESSAGE "CHECKED" (based on "Win32 (x86) Application")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OUTDIR)" == ""
-!MESSAGE You must specify OUTDIR to point to a local hardrive linkage area
-!MESSAGE Microsoft Link may not complete correctly over AFS drives
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-HLPDIR= .\HELP
-
-prep :
- $(DESTDIR)\bin\util_cr.exe ~ "$(MSSDK)\Include\windows.h" "Enviornment variable MSSDK must point to SDK"
-
-
-!IF "$(AFSDEV_BUILDTYPE)" == "FREE"
-
-INTDIR=$(OUT)\
-HLP=hcrtf.exe
-HLP_PROJ = /x
-# Begin Custom Macros
-# End Custom Macros
-
-INSTALL : prep "$(OUTDIR)\WinAfsLoad.exe" "$(OUTDIRHLP)\afswin9x.HLP" "$(OUTDIR)\afswin9x.CNT"
-
-CLEAN ::
- -@erase "$(INTDIR)\vc60.idb"
- -@erase "$(INTDIR)\vc60.pdb"
- -@erase "$(HLPDIR)\afswin9x.hlp
- -@erase "$(OUTDIRHLP)\afswin9x.hlp
- -@erase "$(OUTDIRHLP)\afswin9x.cnt
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-CPP_PROJ=/nologo /MD /W3 /GX /O2 \
- $(CPP_INCLUDE) /P \
- /I "$(DESTDIR)\include\\" /I "$(DESTDIR)\include\rx" /I "$(DESTDIR)\include\afs" \
- /D "NDEBUG" /D "_MFC" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_WINNT" /D "_AFXDLL" /D "ENCRIPT" /Fo"$(OUT)\\\" /Fd"$(INTDIR)\\" /FD /c
-
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
-RSC_PROJ=/l 0x409 /fo"$(INTDIR)\WinAfsLoad.res" $(AFSD_INC_MFC) /d "AFSPRODUCT_VERSION=\"$(AFSPRODUCT_VERSION)\"" /d "NDEBUG" /d "_AFXDLL"
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(INTDIR)\WinAfsLoad.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=mpr.lib afsauth.lib afskauth.lib afsprot.lib afspioctl.lib afsaudit.lib afsutil.lib afscom_err.lib afsreg.lib afscmd.lib afsubik.lib afsrxkad.lib afsdes.lib afsrx.lib afslwp.lib libosi.lib libafsconf.lib Svrapi.lib /nologo /subsystem:windows /machine:I386 /out:"$(OUTDIR)\WinAfsLoad.exe" /libpath:"$(DESTDIR)\lib\afs" /libpath:"$(DESTDIR)\lib"
-LINK32_OBJS= \
- "$(INTDIR)\api95.obj" \
- "$(INTDIR)\CAfs.obj" \
- "$(INTDIR)\Encript.obj" \
- "$(INTDIR)\Change.obj" \
- "$(INTDIR)\CommandSettings.obj" \
- "$(INTDIR)\CRegkey.obj" \
- "$(INTDIR)\Datalog.obj" \
- "$(INTDIR)\Force.obj" \
- "$(INTDIR)\modver.obj" \
- "$(INTDIR)\MyFrame.obj" \
- "$(INTDIR)\ProgBarDlg.obj" \
- "$(INTDIR)\Retry.obj" \
- "$(INTDIR)\Settings.obj" \
- "$(INTDIR)\TermWarn.obj" \
- "$(INTDIR)\Transbmp.obj" \
- "$(INTDIR)\TrayIcon.obj" \
- "$(INTDIR)\Wait.obj" \
- "$(INTDIR)\WinAfsLoad.obj" \
- "$(INTDIR)\WinAfsLoadDlg.obj" \
- "$(INTDIR)\WinAfsLoad.res"
-
-"$(OUTDIR)\WinAfsLoad.exe" : "$(INTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) \
- $(LINK32_FLAGS) $(LINK32_OBJS)
-
-!ELSEIF "$(AFSDEV_BUILDTYPE)" == "CHECKED"
-
-INTDIR=$(OUT)\
-HLP=hcrtf.exe
-HLP_PROJ = /x
-# Begin Custom Macros
-# End Custom Macros
-
-INSTALL : prep "$(OUTDIR)\WinAfsLoad.exe" "$(OUTDIRHLP)\afswin9x.HLP" "$(OUTDIR)\afswin9x.CNT"
-
-CLEAN ::
- -@erase "$(INTDIR)\vc60.idb"
- -@erase "$(INTDIR)\vc60.pdb"
- -@erase "$(INTDIR)\WinAfsLoad.res"
- -@erase "$(OUTDIR)\WinAfsLoad.pdb"
- -@erase "$(HLPDIR)\afswin9x.hlp
- -@erase "$(OUTDIRHLP)\afswin9x.hlp
- -@erase "$(OUTDIRHLP)\afswin9x.cnt
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /ZI /Od \
- $(CPP_INCLUDE) \
- /I "$(DESTDIR)\include\\" /I "$(DESTDIR)\include\rx" /I "$(DESTDIR)\include\afs" \
- /D "_DEBUG" /D "WIN32_LEAN_AND_MEAN" /D _WIN32_IE=0x0400 /D "TESTBUTTONS" /D "_MFC" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_WINNT" /D "_AFXDLL" /D "ENCRIPT" /D "NOKNOK" /Yu"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
-
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
-RSC_PROJ=/l 0x409 /fo"$(INTDIR)\WinAfsLoad.res" $(AFSD_INC_MFC) /d "AFSPRODUCT_VERSION=\"$(AFSPRODUCT_VERSION)\"" /d "_DEBUG" /d "_AFXDLL"
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(INTDIR)\WinAfsLoad.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=Svrapi.lib Ws2_32.lib mpr.lib afsauth.lib afskauth.lib afsprot.lib afspioctl.lib afsaudit.lib afsutil.lib afscom_err.lib afsreg.lib afscmd.lib afsubik.lib afsrxkad.lib afsdes.lib afsrx.lib afslwp.lib libosi.lib libafsconf.lib /nologo /subsystem:windows /pdb:"$(OUTDIR)\WinAfsLoad.pdb" /debug /machine:I386 /out:"$(OUTDIR)\WinAfsLoad.exe" /pdbtype:sept /libpath:"$(DESTDIR)\lib\afs" /libpath:"$(DESTDIR)\lib"
-LINK32_OBJS= \
- "$(INTDIR)\api95.obj" \
- "$(INTDIR)\CAfs.obj" \
- "$(INTDIR)\Encript.obj" \
- "$(INTDIR)\Change.obj" \
- "$(INTDIR)\CommandSettings.obj" \
- "$(INTDIR)\CRegkey.obj" \
- "$(INTDIR)\Datalog.obj" \
- "$(INTDIR)\Force.obj" \
- "$(INTDIR)\modver.obj" \
- "$(INTDIR)\MyFrame.obj" \
- "$(INTDIR)\ProgBarDlg.obj" \
- "$(INTDIR)\Retry.obj" \
- "$(INTDIR)\Settings.obj" \
- "$(INTDIR)\TermWarn.obj" \
- "$(INTDIR)\Transbmp.obj" \
- "$(INTDIR)\TrayIcon.obj" \
- "$(INTDIR)\Wait.obj" \
- "$(INTDIR)\WinAfsLoad.obj" \
- "$(INTDIR)\WinAfsLoadDlg.obj" \
- "$(INTDIR)\WinAfsLoad.res"
-
-"$(OUTDIR)\WinAfsLoad.exe" : "$(INTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-SOURCE="$(InputPath)"
-PostBuild_Desc=Copy to Debugger
-DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
-
-ALL : $(DS_POSTBUILD_DEP)
-
-# Begin Custom Macros
-# End Custom Macros
-
-$(DS_POSTBUILD_DEP) : "$(OUTDIR)\WinAfsLoad.exe"
- echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
-
-!ENDIF
-
-.c.${$(OUT)\}obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c.$(OUT)\sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp$.$(OUT)\sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx.$(OUT)\sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("WinAfsLoad.dep")
-!INCLUDE "WinAfsLoad.dep"
-!ELSE
-!MESSAGE Warning: cannot find "WinAfsLoad.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(AFSDEV_BUILDTYPE)" == "FREE" || "$(AFSDEV_BUILDTYPE)" == "CHECKED"
-SOURCE=.\api95.cpp
-
-"$(INTDIR)\api95.obj" : $(SOURCE)
-
-
-SOURCE=.\CAfs.cpp
-
-"$(INTDIR)\CAfs.obj" : $(SOURCE)
-
-SOURCE=.\Change.cpp
-
-"$(INTDIR)\Change.obj" : $(SOURCE)
-
-
-SOURCE=.\CommandSettings.cpp
-
-"$(INTDIR)\CommandSettings.obj" : $(SOURCE)
-
-
-SOURCE=.\CRegkey.cpp
-
-"$(INTDIR)\CRegkey.obj" : $(SOURCE)
-
-
-SOURCE=.\Datalog.cpp
-
-"$(INTDIR)\Datalog.obj" : $(SOURCE)
-
-
-SOURCE=.\Encript.cpp
-
-"$(INTDIR)\Encript.obj" : $(SOURCE)
-
-
-SOURCE=.\Force.cpp
-
-"$(INTDIR)\Force.obj" : $(SOURCE)
-
-
-SOURCE=.\modver.cpp
-
-"$(INTDIR)\modver.obj" : $(SOURCE)
-
-
-SOURCE=.\MyFrame.cpp
-
-"$(INTDIR)\MyFrame.obj" : $(SOURCE)
-
-
-SOURCE=.\ProgBarDlg.cpp
-
-"$(INTDIR)\ProgBarDlg.obj" : $(SOURCE)
-
-
-SOURCE=.\Retry.cpp
-
-"$(INTDIR)\Retry.obj" : $(SOURCE)
-
-
-SOURCE=.\Settings.cpp
-
-"$(INTDIR)\Settings.obj" : $(SOURCE)
-
-SOURCE=.\TermWarn.cpp
-
-"$(INTDIR)\TermWarn.obj" : $(SOURCE)
-
-
-SOURCE=.\Transbmp.cpp
-
-"$(INTDIR)\Transbmp.obj" : $(SOURCE)
-
-
-SOURCE=.\TrayIcon.cpp
-
-
-"$(INTDIR)\TrayIcon.obj" : $(SOURCE)
-
-SOURCE=.\Wait.cpp
-
-"$(INTDIR)\Wait.obj" : $(SOURCE)
-
-
-SOURCE=.\WinAfsLoad.cpp
-
-"$(INTDIR)\WinAfsLoad.obj" : $(SOURCE)
-
-
-SOURCE=.\WinAfsLoad.rc
-
-"$(INTDIR)\WinAfsLoad.res" : $(SOURCE)
- $(RSC) $(RSC_PROJ) $(SOURCE)
-
-
-SOURCE=.\WinAfsLoadDlg.cpp
-
-"$(INTDIR)\WinAfsLoadDlg.obj" : $(SOURCE)
-
-"$(OUTDIR)\afswin9x.HLP" : "$(HLPDIR)\afswin9x.HPJ"
-
-"$(HLPDIR)\afswin9x.HLP" : "$(HLPDIR)\afswin9x.RTF"
- $(HLP) $(HLP_PROJ) $(HLPDIR)\afswin9x.HPJ
-
-"$(OUTDIRHLP)\afswin9x.HLP" : $(HLPDIR)\afswin9x.HLP
- COPY $(HLPDIR)\afswin9x.HLP $(OUTDIRHLP)\.
-
-"$(OUTDIRHLP)\afswin9x.CNT" : $(HLPDIR)\afswin9x.CNT
- COPY $(HLPDIR)\afswin9x.CNT $(OUTDIRHLP)\.
-
-!ENDIF
-
-install9x: install
-
-mkdir:
-
-
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-// ProgBarDlg.cpp : implementation file
-//
-
-#include "stdafx.h"
-#include "MyFrame.h"
-#include "WinAfsLoad.h"
-#include "ProgBarDlg.h"
-#include "share.h"
-//#include <process.h>
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-// CProgBarDlg dialog
-
-
-CProgBarDlg::CProgBarDlg(CWnd* pParent /*=NULL*/)
- : CDialog(CProgBarDlg::IDD, pParent)
-{
- //{{AFX_DATA_INIT(CProgBarDlg)
- m_sAuthenicateTime = _T("");
- m_sBackgroundTime = _T("");
- m_sMountTime = _T("");
- //}}AFX_DATA_INIT
- m_pParent=pParent;
-}
-
-CProgBarDlg::~CProgBarDlg()
-{
- // nitwit do not expect any local variables to hang around
-}
-
-void CProgBarDlg::DoDataExchange(CDataExchange* pDX)
-{
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CProgBarDlg)
- DDX_Control(pDX, IDC_CHECKAUTHENICATION, m_cAuthenicate);
- DDX_Control(pDX, IDC_CHECKMOUNT, m_cMount);
- DDX_Control(pDX, IDC_CHECKBACKGROUND, m_cBackground);
- DDX_Control(pDX, IDC_STATUSREGION, m_cStatusRegion);
- DDX_Control(pDX, IDC_COMPLETE_MOUNT, m_cCompleteMount);
- DDX_Control(pDX, IDC_COMPLETE_ENABLE, m_cCompleteEnable);
- DDX_Control(pDX, IDC_COMPLETE_AUTH, m_cCompleteAuth);
- DDX_Text(pDX, IDC_TIMEAUTHENICATION, m_sAuthenicateTime);
- DDX_Text(pDX, IDC_TIMEBACKGROUND, m_sBackgroundTime);
- DDX_Text(pDX, IDC_TIMEMOUNT, m_sMountTime);
- //}}AFX_DATA_MAP
-}
-
-
-BEGIN_MESSAGE_MAP(CProgBarDlg, CDialog)
- //{{AFX_MSG_MAP(CProgBarDlg)
- ON_WM_QUERYDRAGICON()
- ON_WM_TIMER()
- ON_MESSAGE( WM_PROGRESSPARM,OnParm)
- ON_WM_DESTROY()
- ON_WM_PAINT()
- //}}AFX_MSG_MAP
- ON_MESSAGE(WSA_EVENT, OnWSAEvent)
-END_MESSAGE_MAP()
-
-/////////////////////////////////////////////////////////////////////////////
-// CProgBarDlg message handlers
-
-BOOL CProgBarDlg::OnInitDialog()
-{
- CDialog::OnInitDialog();
-
- // Set the icon for this dialog. The framework does this automatically
- // when the application's main window is not a dialog
- SetIcon(m_hIcon, TRUE); // Set big icon
- SetIcon(m_hIcon, FALSE); // Set small icon
-
- // TODO: Add extra initialization here
-
- m_Option=0;
- SetFocus();
- m_uStatus=0;
- m_Socket = INVALID_SOCKET;
-// m_sLog="";
- m_cBackground.GetWindowText(m_sDefaultBackground.GetBuffer(32),31);
- m_cAuthenicate.GetWindowText(m_sDefaultAuthenicate.GetBuffer(32),32);
- m_cMount.GetWindowText(m_sDefaultMount.GetBuffer(32),32);
- return TRUE; // return TRUE unless you set the focus to a control
-}
-
-// If you add a minimize button to your dialog, you will need the code below
-// to draw the icon. For MFC applications using the document/view model,
-// this is automatically done for you by the framework.
-
-
-HCURSOR CProgBarDlg::OnQueryDragIcon()
-{
- return (HCURSOR) m_hIcon;
-}
-
-void CProgBarDlg::OnTimer(UINT nIDEvent)
-{
- // TODO: Add your message handler code here and/or call default
-
- CString msg;
- m_iOrientation=++m_iOrientation % 2;
- CRect s1;
- m_cStatusRegion.GetWindowRect(&s1);
- ScreenToClient(&s1);
- InvalidateRect(&s1,TRUE);
- switch (nIDEvent)
- {
- case WM_PROGRESSTIMER:
- {
- CTimeSpan elapsed=::CTime::GetCurrentTime()-m_StartTime;
- switch (m_Current)
- {
- case 1:
- m_sBackgroundTime.Format("%02d:%02d",elapsed.GetTotalMinutes()
- ,elapsed.GetTotalSeconds()-60*elapsed.GetTotalMinutes());
- UpdateData(FALSE);
- break;
- case 2:
- m_sAuthenicateTime.Format("%02d:%02d",elapsed.GetTotalMinutes()
- ,elapsed.GetTotalSeconds()-60*elapsed.GetTotalMinutes());
- UpdateData(FALSE);
- break;
- case 4:
- m_sMountTime.Format("%02d:%02d",elapsed.GetTotalMinutes()
- ,elapsed.GetTotalSeconds()-60*elapsed.GetTotalMinutes());
- UpdateData(FALSE);
- break;
- default:
- break;
- }
- }
- break;
- default:
- break;
- }
- CDialog::OnTimer(nIDEvent);
-}
-
-LRESULT CProgBarDlg::OnParm(WPARAM wp, LPARAM lp)
-{
- switch (wp)
- {
- case ProgFSetTitle:
- if (lp==0) break;
- {
- char *msg=(char *)lp;
- if (strlen(msg))
- m_cBackground.SetWindowText(msg);
- msg+=strlen(msg)+1;
- if (strlen(msg))
- m_cAuthenicate.SetWindowText(msg);
- msg+=strlen(msg)+1;
- if (strlen(msg))
- m_cMount.SetWindowText(msg);
- free((char *)lp);
- }
- break;
- case ProgFShow:
- ShowWindow(SW_SHOW);
- m_nTimer=SetTimer(WM_PROGRESSTIMER,1000,0);
- break;
- case ProgFHide:
- ShowWindow(SW_HIDE);
- KillTimer(m_nTimer);
- m_cBackground.SetWindowText(m_sDefaultBackground);
- m_cAuthenicate.SetWindowText(m_sDefaultAuthenicate);
- m_cMount.SetWindowText(m_sDefaultMount);
- break;
- case ProgFOpt:
- ShowWindow(SW_SHOW);
- m_Option=(UINT) lp;
- m_sBackgroundTime="";
- m_sAuthenicateTime="";
- m_sMountTime="";
- UpdateData(FALSE);
- m_iOrientation=0;
- if (m_Option & 1)
- {
- m_cBackground.ModifyStyle(WS_DISABLED,0,0);
- } else {
- m_cBackground.ModifyStyle(0,WS_DISABLED,0);
- }
- if (m_Option & 2)
- m_cAuthenicate.ModifyStyle(WS_DISABLED,0,0);
- else
- m_cAuthenicate.ModifyStyle(0,WS_DISABLED,0);
- if (m_Option & 4)
- m_cMount.ModifyStyle(WS_DISABLED,0,0);
- else
- m_cMount.ModifyStyle(0,WS_DISABLED,0);
- m_Current=0;
- m_nTimer=SetTimer(WM_PROGRESSTIMER,1000,0);
- ShowWindow(SW_SHOW);
- break;
- case ProgFNext:
- m_iOrientation=0;
- switch(m_Current)
- {
- case 0:
- m_Current=1;
- if (m_Option & m_Current)
- {
- CWnd* pWnd=GetDlgItem(IDC_TIMEBACKGROUND);
- if (pWnd)
- pWnd->SetFocus();
- m_StartTime=CTime::GetCurrentTime();
- OnTimer(WM_PROGRESSTIMER);
- break;
- }
- case 1:
- m_Current=2;
- if (m_Option & m_Current)
- {
- OnTimer(WM_PROGRESSTIMER);
- CWnd* pWnd=GetDlgItem(IDC_TIMEAUTHENICATION);
- if (pWnd)
- pWnd->SetFocus();
- m_StartTime=CTime::GetCurrentTime();
- break;
- }
- case 2:
- m_Current=4;
- if (m_Option & m_Current)
- {
- OnTimer(WM_PROGRESSTIMER);
- CWnd* pWnd=GetDlgItem(IDC_TIMEMOUNT);
- if (pWnd)
- pWnd->SetFocus();
- m_StartTime=CTime::GetCurrentTime();
- break;
- }
- default:
- m_Current=0;
- break;
- }
- break;
- default:
- break;
- }
- CRect s1;
- m_cStatusRegion.GetWindowRect(&s1);
- ScreenToClient(&s1);
- InvalidateRect(&s1,TRUE);
- return 0;
-}
-
-BOOL CProgBarDlg::Create()
-{
- return CDialog::Create(IDD, m_pParent);
-}
-
-void CProgBarDlg::PostNcDestroy()
-{
- // TODO: Add your specialized code here and/or call the base class
- if (m_Socket != INVALID_SOCKET)
- WSAAsyncSelect(m_Socket, m_hWnd, 0, 0); //cancel out messages
- if (m_Socket != INVALID_SOCKET)
- closesocket(m_Socket);
- delete this;
-}
-
-void CProgBarDlg::OnDestroy()
-{
- KillTimer(m_nTimer);
- Sleep(50);
- CDialog::OnDestroy();
- // TODO: Add your message handler code here
-}
-
-VOID CProgBarDlg::DisConnect()
-{
- if (m_Socket != INVALID_SOCKET)
- {
- shutdown(m_Socket,3);
- char cBuffer[AFS_MAX_MSG_LEN];
- DWORD uStatus=1;
- int loop=SOCKETIO/250;
- while ((uStatus !=SOCKET_ERROR)&&(uStatus!=0) &&(loop-- >0))
- {
- Sleep(250);
- uStatus = recv(m_Socket, (char FAR *)&cBuffer, AFS_MAX_MSG_LEN, 0 );
- }
- closesocket(m_Socket);
- m_Socket = INVALID_SOCKET;
- }
- WSAAsyncSelect(m_Socket, m_hWnd, 0, 0); //cancel out messages
- LOG("Socket Disconnect");
-}
-
-typedef struct SoCkErR {
- int soc_err;
- LPSTR szSockErr;
-} SOC_ERR;
-
-SOC_ERR socket_error[] = {
- { WSANOTINITIALISED , "A successful WSAStartup must occur before using this function."},
- { WSAENETDOWN , "The Windows Sockets implementation has detected that the network "\
- "subsystem has failed."},
- { WSAENOTCONN , "The socket is not connected."},
- { WSAEINTR , "The (blocking) call was canceled using WSACancelBlockingCall."},
- { WSAEINPROGRESS , "A blocking Windows Sockets operation is in progress."},
- { WSAENOTSOCK , "The descriptor is not a socket."},
- { WSAEOPNOTSUPP , "MSG_OOB was specified, but the socket is not of type SOCK_STREAM."},
- { WSAESHUTDOWN , "The socket has been shut down; it is not possible to recv on a socket "\
- "after shutdown has been invoked with how set to 0 or 2."},
- { WSAEWOULDBLOCK , "The socket is marked as nonblocking and the receive operation would block."},
- { WSAEMSGSIZE , "The datagram was too large to fit into the specified buffer and was truncated."},
- { WSAEINVAL , "The socket has not been bound with bind."},
- { WSAECONNABORTED , "The virtual circuit was aborted due to timeout or other failure."},
- { WSAECONNRESET , "The virtual circuit was reset by the remote side."},
- { WSAEACCES , "The requested address is a broadcast address, but the appropriate flag was not set."},
- { WSAEFAULT , "The buf argument is not in a valid part of the user address space."},
- { WSAENETRESET , "The connection must be reset because the Windows Sockets implementation dropped it."},
- { WSAENOBUFS , "The Windows Sockets implementation reports a buffer deadlock."},
- { WSAENOTCONN , "The socket is not connected."},
- { WSAEWOULDBLOCK , " The socket is marked as nonblocking and the requested operation would block."},
- { -1 , "Unknown Socket Error"}
-};
-
-LPCSTR show_socket_error()
-{
- INT soc_err=WSAGetLastError();
- SOC_ERR *lperr = &socket_error[0];
- while (1 && lperr->soc_err != -1)
- {
- if (lperr->soc_err == soc_err)
- {
- return lperr->szSockErr;
- }
- lperr++;
- }
- return "Unknown Socket Error";
-}
-
-
-BOOL CProgBarDlg::Connect(CString &sStatus)
-{
- CHAR szBuff[80];
- UINT dwSize = sizeof(szBuff);
- SOCKADDR_IN socketAddress;
- m_Socket = socket( AF_INET, SOCK_DGRAM, 0);
- if (m_Socket == INVALID_SOCKET) {
- sStatus="Socket() failed";
- return FALSE;
- }
- if (gethostname(szBuff, dwSize)!=0)
- {
- sStatus.Format("Get Host Name - %s", show_socket_error());
- return FALSE;
- }
- socketAddress.sin_family = AF_INET;
- socketAddress.sin_addr.s_addr = INADDR_ANY;
- socketAddress.sin_port = htons(AFS_MSG_PORT); /* Convert to network ordering */
- if (bind(m_Socket, (struct sockaddr FAR *) &socketAddress, sizeof(socketAddress)) == SOCKET_ERROR) {
- sStatus.Format("Bind :%s", show_socket_error());
- return FALSE;
- }
- if ((m_uStatus = WSAAsyncSelect( m_Socket,GetSafeHwnd(), WSA_EVENT, FD_READ | FD_CLOSE )) > 0) {
- WSAAsyncSelect( m_Socket, GetSafeHwnd(), 0, 0);
- sStatus.Format("Get Host Name: ", show_socket_error());
- return FALSE;
- }
- m_bReadyToSend=TRUE;
- sStatus="Success Connect";
- LOG("Socket Connect");
- return TRUE;
-}
-
-LRESULT CProgBarDlg::OnWSAEvent(WPARAM wParam, LPARAM lParam)
-{
- CString sLog;
- if (WSAGETSELECTERROR( lParam ) != 0) {
-// m_sLog.Format("Read Failure status=%d\r\n", WSAGETSELECTERROR(lParam));
- WSAAsyncSelect( m_Socket,GetSafeHwnd(), 0, 0);
- m_uStatus=WSAGETSELECTERROR( lParam );
- LOG("WSA Select error");
- return 0;
- }
- switch (WSAGETSELECTEVENT(lParam))
- {
- case FD_READ:
- wParam=Decode(wParam,sLog);
- LOG("OnWSAEvent FD_READ(%d)",wParam);
- CWINAFSLOADAPP->WSANotifyFromUI(wParam,(const char *)sLog);
- break;
- case FD_CLOSE:
- LOG("OnWSAEvent FD_CLOSE(%d)",wParam);
- break;
- case FD_WRITE:
- LOG("OnWSAEvent FD_WRITE(%d)",wParam);
- break;
- default:
- LOG("OnWSAEvent Unknown Response");
- break;
- }
- return 0;
-}
-
-// this routine will set the notfication return (wParam) for WinAfsLoadDlg to receive
-// if problem with decoding result return AFS_EXITCODE_GENERAL_FAILURE
-// Other returns are:
-// AFS_EXITCODE_NORMAL(0) ,AFS_EXITCODE_PANIC(2) ,AFS_EXITCODE_NETWORK_FAILURE(3)
-UINT CProgBarDlg::Decode(WPARAM wParam,CString &sLog)
-{
- m_bReadyToSend=FALSE;
- m_uStatus = recv((SOCKET)wParam, (char FAR *)&m_buffer, AFS_MAX_MSG_LEN, 0 );
- if (m_uStatus==0){
- sLog.Format("Receive Error: %s", show_socket_error());
- return AFS_EXITCODE_GENERAL_FAILURE;
- }
- SOCKETTYPE *p=(SOCKETTYPE *)m_buffer;
- switch (p->header.msgtype)
- {
- case AFS_MSG_STATUS_CHANGE:
- {
- _afsMsg_statChange *sp=(_afsMsg_statChange *)p;
- switch (sp->exitCode)
- {
- case AFS_EXITCODE_NORMAL:
- {
- if ((m_uStatus = WSAAsyncSelect( m_Socket,GetSafeHwnd(),WSA_EVENT, FD_READ | FD_CLOSE )) > 0) {
- WSAAsyncSelect( m_Socket, GetSafeHwnd(), 0, 0);
- sLog.Format("WSAAsyncSelect: %s", show_socket_error());
- return AFS_EXITCODE_GENERAL_FAILURE;
- }
- int len=sp->hdr.length-sizeof(*sp);
- if (len>0)
- {
- char *x=new char[len+1];
- strncpy(x,&(sp->message),len);
- *(x+len)=0;
- sLog.Format("AFSD operation normal Message#%s#",x);
- delete x;
- } else {
- sLog="AFSD operation normal";
- }
- }
- break;
- case AFS_EXITCODE_PANIC:
- sLog="AFS Client Console Panic Exit";
- break;
- case AFS_EXITCODE_NETWORK_FAILURE:
- sLog="AFS Client Network Failure Exit";
- break;
- default:
- sLog.Format("Receive Error: Messsage format(exit code)=%0x",p->change.exitCode);
- p->change.exitCode=AFS_EXITCODE_GENERAL_FAILURE;
- break;
- }
- return (p->change.exitCode);
- }
- case AFS_MSG_PRINT:
- if ((m_uStatus = WSAAsyncSelect( m_Socket, GetSafeHwnd(),WSA_EVENT, FD_READ | FD_CLOSE )) > 0) {
- WSAAsyncSelect( m_Socket, GetSafeHwnd(), 0, 0);
- sLog.Format("WSAAsyncSelect: %s", show_socket_error());
- return AFS_EXITCODE_GENERAL_FAILURE;
- }
- return AFS_EXITCODE_GENERAL_FAILURE;
- default:
- sLog.Format("Receive Error: Messsage format=%0x",p->header.msgtype);
- return AFS_EXITCODE_GENERAL_FAILURE;
- }
-}
-
-
-
-void CProgBarDlg::OnPaint()
-{
- CPaintDC dc(this); // device context for painting
-
- // TODO: Add your message handler code here
- //m_iCurrent is the Current item (1,2,4)
- //m_iOption is which are active
-
- CBrush brBack,brGreen,brYellow;
- brBack.CreateSolidBrush(GetSysColor(COLOR_MENU));
- brGreen.CreateSolidBrush(RGB(0,255,0));
- brYellow.CreateSolidBrush(RGB(255,255,0));
- CRect shape;
- switch (m_Current)
- {
- case 1: //progress
- SetShape(shape,m_Current,m_iOrientation);
- dc.SelectObject(&brYellow);
- dc.Ellipse(shape);
- SetShape(shape,m_Option & 2,0);
- if (shape.Width())
- {
- dc.SelectObject(&brBack);
- dc.Ellipse(shape);
- }
- SetShape(shape,m_Option & 4,0);
- if (shape.Width())
- {
- dc.SelectObject(&brBack);
- dc.Ellipse(shape);
- }
- break;
- case 2:
- SetShape(shape,m_Option & 1,0);
- if (shape.Width())
- {
- dc.SelectObject(&brGreen);
- dc.Ellipse(shape);
- }
- SetShape(shape,m_Current,m_iOrientation);
- if (shape.Width())
- {
- dc.SelectObject(&brYellow);
- dc.Ellipse(shape);
- }
- SetShape(shape,m_Option & 4,0);
- if (shape.Width())
- {
- dc.SelectObject(&brBack);
- dc.Ellipse(shape);
- }
- break;
- case 4:
- SetShape(shape,m_Option & 1,0);
- if (shape.Width())
- {
- dc.SelectObject(&brGreen);
- dc.Ellipse(shape);
- }
- SetShape(shape,m_Option & 2,0);
- if (shape.Width())
- {
- dc.SelectObject(&brGreen);
- dc.Ellipse(shape);
- }
- SetShape(shape,m_Current,m_iOrientation);
- if (shape.Width())
- {
- dc.SelectObject(&brYellow);
- dc.Ellipse(shape);
- }
- break;
- default:
- break;
- }
- // Do not call CDialog::OnPaint() for painting messages
-}
-
-void CProgBarDlg::SetShape(CRect &shape,int option,int orientation)
-{
- CRect s1,s2,rect;
- switch(option)
- {
- case 1:
- m_cCompleteEnable.GetWindowRect(&s1);
- break;
- case 2:
- m_cCompleteAuth.GetWindowRect(&s1);
- break;
- case 4:
- m_cCompleteMount.GetWindowRect(&s1);
- break;
- default:
- s1=CRect(0,0,0,0);
- break;
- }
- ScreenToClient(&s1);
- int delta=(s1.Width()-s1.Height())/2;
- s2.top=s1.top-delta;
- s2.bottom=s1.bottom+delta;
- s2.left=s1.left+delta;
- s2.right=s1.right-delta;
- rect.top=s2.top;
- rect.bottom=s2.bottom;
- rect.left=s1.left;
- rect.right=s1.right;
- switch (orientation)
- {
- case 1:
- shape=s2;
- break;
- default:
- shape=s1;
- break;
- }
-}
-
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-#if !defined(AFX_PROGBARDLG_H__FD4CD3C1_0EBF_11D4_A374_00105A6BCA62__INCLUDED_)
-#define AFX_PROGBARDLG_H__FD4CD3C1_0EBF_11D4_A374_00105A6BCA62__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-#include "afsmsg95.h"
-
-#define MAX_PENDING_CONNECTS 4 /* The backlog allowed for listen() */
-
-union SOCKETTYPE {
- afsMsg_hdr_t header;
- afsMsg_statChange_t change;
- afsMsg_print_t print;
-};
-
-// ProgBarDlg.h : header file
-//
-
-/////////////////////////////////////////////////////////////////////////////
-// CProgBarDlg dialog
-
-class CProgBarDlg : public CDialog
-{
-// Construction
-public:
- CProgBarDlg(CWnd* pParent = NULL); // standard constructor
- ~CProgBarDlg();
- BOOL Create();
- BOOL Connect(CString &);
- VOID DisConnect();
-// BOOL InitSocket(CString &);
- UINT m_uEvent;
-// Dialog Data
- //{{AFX_DATA(CProgBarDlg)
- enum { IDD = IDD_PROGBAR_DIALOG };
- CStatic m_cAuthenicate;
- CStatic m_cMount;
- CStatic m_cBackground;
- CButton m_cStatusRegion;
- CStatic m_cCompleteMount;
- CStatic m_cCompleteEnable;
- CStatic m_cCompleteAuth;
- CString m_sAuthenicateTime;
- CString m_sBackgroundTime;
- CString m_sMountTime;
- //}}AFX_DATA
-
-
-// Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CProgBarDlg)
- protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
- virtual void PostNcDestroy();
- //}}AFX_VIRTUAL
-
-// Implementation
-protected:
- HICON m_hIcon;
- UINT m_nTimer;
- INT m_Current;
- UINT m_Option;
- CTime m_StartTime;
- CWnd * m_pParent;
- CString m_sDefaultAuthenicate;
- CString m_sDefaultMount;
- CString m_sDefaultBackground;
- // Generated message map functions
- //{{AFX_MSG(CProgBarDlg)
- virtual BOOL OnInitDialog();
- afx_msg HCURSOR OnQueryDragIcon();
- afx_msg void OnTimer(UINT nIDEvent);
- afx_msg LRESULT OnParm(WPARAM, LPARAM);
- afx_msg void OnDestroy();
- afx_msg void OnPaint();
- //}}AFX_MSG
- afx_msg LRESULT OnWSAEvent(WPARAM wParam, LPARAM lParam);
- DECLARE_MESSAGE_MAP()
-
- SOCKET m_Socket;
- BOOL m_bReadyToSend;
- UINT m_uStatus;
-// CString m_sLog;
- UINT Decode(WPARAM wParam,CString &);
- char m_buffer[AFS_MAX_MSG_LEN+1];
- INT m_iOrientation; //timer based orientation of timer progress object
- void SetShape(CRect &,int,int); //set shape for progress bar
-};
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_PROGBARDLG_H__FD4CD3C1_0EBF_11D4_A374_00105A6BCA62__INCLUDED_)
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-// Retry.cpp : implementation file
-//
-
-#include "stdafx.h"
-#include "winafsload.h"
-#include "Retry.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-// CRetry dialog
-
-
-CRetry::CRetry(BOOL force,CWnd* pParent /*=NULL*/)
- : CDialog(CRetry::IDD, pParent)
-{
- //{{AFX_DATA_INIT(CRetry)
- m_sMsg = _T("");
- //}}AFX_DATA_INIT
- m_force=force;
-}
-
-
-void CRetry::DoDataExchange(CDataExchange* pDX)
-{
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CRetry)
- DDX_Control(pDX, IDC_STATICOPTIONS, m_cOptions);
- DDX_Control(pDX, IDC_FORCE, m_cForce);
- DDX_Text(pDX, IDC_STATICMSG, m_sMsg);
- //}}AFX_DATA_MAP
-}
-
-
-BEGIN_MESSAGE_MAP(CRetry, CDialog)
- //{{AFX_MSG_MAP(CRetry)
- ON_BN_CLICKED(IDC_FORCE, OnForceDismont)
- //}}AFX_MSG_MAP
-END_MESSAGE_MAP()
-
-/////////////////////////////////////////////////////////////////////////////
-// CRetry message handlers
-
-void CRetry::OnForceDismont()
-{
- // TODO: Add your control notification handler code here
- EndDialog(IDC_FORCE);
-}
-
-BOOL CRetry::OnInitDialog()
-{
- CDialog::OnInitDialog();
-
- // TODO: Add extra initialization here
-
- if (m_force)
- {
- m_cForce.ModifyStyle(WS_DISABLED,0,0);
- m_cOptions.SetWindowText("You map shut down any applications that are using the drive letter and then press Retry. Or press Cancel to the bypass the disconnect.\nYou may over-ride the file protection (possible loss of 'opened' file data) and slect Force to disconnect.");
- }else {
- m_cForce.ModifyStyle(0,WS_DISABLED,0);
- m_cOptions.SetWindowText("You may shut down any applications that are using the drive letter and then press Retry. Or press Cancel to the bypass the disconnect.\n('Force' is not premitted.)");
- }
-
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
-}
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-#if !defined(AFX_RETRY_H__E69A224D_0AE0_11D4_A374_00105A6BCA62__INCLUDED_)
-#define AFX_RETRY_H__E69A224D_0AE0_11D4_A374_00105A6BCA62__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-// Retry.h : header file
-//
-
-/////////////////////////////////////////////////////////////////////////////
-// CRetry dialog
-
-class CRetry : public CDialog
-{
-// Construction
-public:
- CRetry(BOOL force,CWnd* pParent = NULL); // standard constructor
-
-// Dialog Data
- //{{AFX_DATA(CRetry)
- enum { IDD = IDD_DIALOGRETRY };
- CStatic m_cOptions;
- CButton m_cForce;
- CString m_sMsg;
- //}}AFX_DATA
-
-
-// Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CRetry)
- protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
- //}}AFX_VIRTUAL
-
-// Implementation
-protected:
- BOOL m_force;
-
- // Generated message map functions
- //{{AFX_MSG(CRetry)
- afx_msg void OnForceDismont();
- virtual BOOL OnInitDialog();
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
-};
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_RETRY_H__E69A224D_0AE0_11D4_A374_00105A6BCA62__INCLUDED_)
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-// Settings.cpp : implementation file
-//
-
-#include "stdafx.h"
-#include "winafsload.h"
-#include "WinAfsLoadDlg.h"
-#include "Settings.h"
-#include "datalog.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-// CSettings dialog
-
-
-CSettings::CSettings(CWinAfsLoadDlg* pParent /*=NULL*/)
- : CDialog(CSettings::IDD, pParent)
-{
- //{{AFX_DATA_INIT(CSettings)
- //}}AFX_DATA_INIT
- m_pParent=pParent;
-
-}
-
-
-BEGIN_MESSAGE_MAP(CSettings, CDialog)
- //{{AFX_MSG_MAP(CSettings)
- //}}AFX_MSG_MAP
-END_MESSAGE_MAP()
-
-/////////////////////////////////////////////////////////////////////////////
-// CSettings message handlers
-
-
-BOOL CSettings::OnInitDialog()
-{
- CDialog::OnInitDialog();
- //set check mark if background window is visable
- // TODO: Add extra initialization here
-
- EnableToolTips(TRUE);
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
-}
-
-void CSettings::OnOK()
-{
- // TODO: Add extra validation here
- CDialog::OnOK();
-}
-
-
-
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-#if !defined(AFX_SETTINGS_H__01979F21_0FB8_11D4_A374_00105A6BCA62__INCLUDED_)
-#define AFX_SETTINGS_H__01979F21_0FB8_11D4_A374_00105A6BCA62__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-// Settings.h : header file
-//
-
-class CDatalog;
-class CWinAfsLoadDlg;
-
-/////////////////////////////////////////////////////////////////////////////
-// CSettings dialog
-
-class CSettings : public CDialog
-{
-// Construction
-public:
- CSettings(CWinAfsLoadDlg* pParent); // standard constructor
-
-// Dialog Data
- //{{AFX_DATA(CSettings)
- enum { IDD = IDD_MENUSETTINGS };
- //}}AFX_DATA
-
-
-// Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CSettings)
- //}}AFX_VIRTUAL
-
-// Implementation
-protected:
- CWinAfsLoadDlg *m_pParent;
- // Generated message map functions
- //{{AFX_MSG(CSettings)
- virtual BOOL OnInitDialog();
- virtual void OnOK();
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
-};
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_SETTINGS_H__01979F21_0FB8_11D4_A374_00105A6BCA62__INCLUDED_)
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-// stdafx.cpp : source file that includes just the standard includes
-// WinAfsLoad.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
-#include "stdafx.h"
-
-
-
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
-#if !defined(AFX_STDAFX_H__75E145B7_F5C0_11D3_A374_00105A6BCA62__INCLUDED_)
-#define AFX_STDAFX_H__75E145B7_F5C0_11D3_A374_00105A6BCA62__INCLUDED_
-
-#ifdef _WIN32_WINDOWS
-#undef _WIN32_WINDOWS //required when you do a make because it includes win32.mak
-#endif
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
-
-#include <afxwin.h> // MFC core and standard components
-#include <afxext.h> // MFC extensions
-#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
-#ifndef _AFX_NO_AFXCMN_SUPPORT
-#include <afxcmn.h> // MFC support for Windows Common Controls
-#endif // _AFX_NO_AFXCMN_SUPPORT
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
-#include <afxtempl.h> // add this for templets CList
-#ifdef WINSOCK2
-#include "winsock2.h"
-#endif
-#include <afxsock.h> // MFC socket extensions
-#include "wait.h"
-
-#endif // !defined(AFX_STDAFX_H__75E145B7_F5C0_11D3_A374_00105A6BCA62__INCLUDED_)
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-// TermWarn.cpp : implementation file
-//
-
-#include "stdafx.h"
-#include "winafsload.h"
-#include "TermWarn.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-// CTermWarn dialog
-
-
-CTermWarn::CTermWarn(CWnd* pParent /*=NULL*/)
- : CDialog(CTermWarn::IDD, pParent)
-{
- //{{AFX_DATA_INIT(CTermWarn)
- // NOTE: the ClassWizard will add member initialization here
- //}}AFX_DATA_INIT
-}
-
-
-void CTermWarn::DoDataExchange(CDataExchange* pDX)
-{
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CTermWarn)
- // NOTE: the ClassWizard will add DDX and DDV calls here
- //}}AFX_DATA_MAP
-}
-
-
-BEGIN_MESSAGE_MAP(CTermWarn, CDialog)
- //{{AFX_MSG_MAP(CTermWarn)
- // NOTE: the ClassWizard will add message map macros here
- //}}AFX_MSG_MAP
-END_MESSAGE_MAP()
-
-/////////////////////////////////////////////////////////////////////////////
-// CTermWarn message handlers
-
-void CTermWarn::PostNcDestroy()
-{
- // TODO: Add your specialized code here and/or call the base class
- delete this;
-}
-
-BOOL CTermWarn::Create()
-{
- return CDialog::Create(IDD, NULL);
-}
-
-void CTermWarn::OnCancel()
-{
- DestroyWindow();
-}
-
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-#if !defined(AFX_TERMWARN_H__EBCBE030_03C3_11D4_A374_00105A6BCA62__INCLUDED_)
-#define AFX_TERMWARN_H__EBCBE030_03C3_11D4_A374_00105A6BCA62__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-// TermWarn.h : header file
-//
-
-/////////////////////////////////////////////////////////////////////////////
-// CTermWarn dialog
-
-class CTermWarn : public CDialog
-{
-// Construction
-public:
- CTermWarn(CWnd* pParent = NULL); // standard constructor
- BOOL Create();
- void OnCancel();
-
-// Dialog Data
- //{{AFX_DATA(CTermWarn)
- enum { IDD = IDD_DIALOGTERM };
- // NOTE: the ClassWizard will add data members here
- //}}AFX_DATA
-
-
-// Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CTermWarn)
- protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
- virtual void PostNcDestroy();
- //}}AFX_VIRTUAL
-
-// Implementation
-protected:
-
- // Generated message map functions
- //{{AFX_MSG(CTermWarn)
- // NOTE: the ClassWizard will add member functions here
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
-};
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_TERMWARN_H__EBCBE030_03C3_11D4_A374_00105A6BCA62__INCLUDED_)
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-#include "stdafx.h"
-#include "transbmp.h"
-
-#ifdef _DEBUG
-#undef THIS_FILE
-static char BASED_CODE THIS_FILE[] = __FILE__;
-#endif
-
-// Colors
-#define rgbWhite RGB(255,255,255)
-// Raster op codes
-#define DSa 0x008800C6L
-#define DSx 0x00660046L
-
-
-CTransBmp::CTransBmp()
-{
- m_iWidth = 0;
- m_iHeight = 0;
- m_hbmMask = NULL;
-}
-
-CTransBmp::~CTransBmp()
-{
-}
-
-void CTransBmp::GetMetrics()
-{
- // Get the width and height
- BITMAP bm;
- GetObject(sizeof(bm), &bm);
- m_iWidth = bm.bmWidth;
- m_iHeight = bm.bmHeight;
-}
-
-
-int CTransBmp::GetWidth()
-{
- if ((m_iWidth == 0) || (m_iHeight == 0)){
- GetMetrics();
- }
- return m_iWidth;
-}
-
-int CTransBmp::GetHeight()
-{
- if ((m_iWidth == 0) || (m_iHeight == 0)){
- GetMetrics();
- }
- return m_iHeight;
-}
-
-void CTransBmp::Draw(HDC hDC, int x, int y)
-{
- ASSERT(hDC);
- HDC hdcMem = ::CreateCompatibleDC(hDC);
- HBITMAP hbmold =
- (HBITMAP)::SelectObject(hdcMem,
- (HBITMAP)(m_hObject));
- // Blt the bits
- ::BitBlt(hDC,
- x, y,
- GetWidth(), GetHeight(),
- hdcMem,
- 0, 0,
- SRCCOPY);
- ::SelectObject(hdcMem, hbmold);
- ::DeleteDC(hdcMem);
-}
-
-void CTransBmp::Draw(CDC* pDC, int x, int y)
-{
- ASSERT(pDC);
- HDC hDC = pDC->GetSafeHdc();
- Draw(hDC, x, y);
-}
-
-void CTransBmp::UpdateMask(CWnd *wnd,CRect &rect)
-{
- if (m_hbmMask)
- ::DeleteObject(m_hbmMask);
- m_hbmMask=NULL;
- wnd->InvalidateRect(rect,TRUE);
-}
-
-void CTransBmp::CreateMask(HDC hDC,CRect &rect,int xoff)
-{
- if (m_hbmMask) {
- ::DeleteObject(m_hbmMask);
- }
- // Create memory DCs to work with
- HDC hdcMask = ::CreateCompatibleDC(hDC);
- HDC hdcImage = ::CreateCompatibleDC(hDC);
- // Create a monochrome bitmap for the mask
- m_hbmMask = ::CreateBitmap(rect.Width(),
- rect.Height(),
- 1,
- 1,
- NULL);
- // Select the mono bitmap into its DC
- HBITMAP hbmOldMask = (HBITMAP)::SelectObject(hdcMask, m_hbmMask);
- // Select the image bitmap into its DC
- HBITMAP hbmOldImage = (HBITMAP)::SelectObject(hdcImage, m_hObject);
- // Set the transparency color to be the top-left pixel
- ::SetBkColor(hdcImage, ::GetPixel(hdcImage, 0, 0));
- // Make the mask
- ::BitBlt(hdcMask,
- 0, 0,
- rect.Width(), rect.Height(),
- hdcImage,
- xoff, 0,
- SRCCOPY);
- ::SelectObject(hdcMask, hbmOldMask);
- ::SelectObject(hdcImage, hbmOldImage);
- ::DeleteDC(hdcMask);
- ::DeleteDC(hdcImage);
-}
-
-/*
- X,Y Destaination location
- w, destination width
- xoff source offset
-*/
-void CTransBmp::DrawTrans(HDC hDC, CRect &rect, int xoff)
-{
- ASSERT(hDC);
- if (!m_hbmMask) CreateMask(hDC,rect,xoff);
- ASSERT(m_hbmMask);
- int dx = rect.Width();
- int dy = rect.Height();
-
- // Create a memory DC to do the drawing to
- HDC hdcOffScr = ::CreateCompatibleDC(hDC);
- // Create a bitmap for the off-screen DC that is really
- // color compatible with the destination DC.
- HBITMAP hbmOffScr = ::CreateBitmap(dx, dy,
- (BYTE)GetDeviceCaps(hDC, PLANES),
- (BYTE)GetDeviceCaps(hDC, BITSPIXEL),
- NULL);
- // Select the buffer bitmap into the off-screen DC
- HBITMAP hbmOldOffScr = (HBITMAP)::SelectObject(hdcOffScr, hbmOffScr);
-
- // Copy the image of the destination rectangle to the
- // off-screen buffer DC so we can play with it
- ::BitBlt(hdcOffScr, 0, 0, dx, dy, hDC, 0, 0, SRCCOPY);
-
- // Create a memory DC for the source image
- HDC hdcImage = ::CreateCompatibleDC(hDC);
- HBITMAP hbmOldImage = (HBITMAP)::SelectObject(hdcImage, m_hObject);
-
- // Create a memory DC for the mask
- HDC hdcMask = ::CreateCompatibleDC(hDC);
- HBITMAP hbmOldMask = (HBITMAP)::SelectObject(hdcMask, m_hbmMask);
-
- // XOR the image with the destination
- ::SetBkColor(hdcOffScr,rgbWhite);
- ::BitBlt(hdcOffScr, 0, 0, dx, dy ,hdcImage, xoff, 0, DSx);
- // AND the destination with the mask
- ::BitBlt(hdcOffScr, 0, 0, dx, dy, hdcMask, 0,0, DSa);
- // XOR the destination with the image again
- ::BitBlt(hdcOffScr, 0, 0, dx, dy, hdcImage, xoff, 0, DSx);
-
- // Copy the resultant image back to the screen DC
- ::BitBlt(hDC, rect.left, rect.top, dx, dy, hdcOffScr, 0, 0, SRCCOPY);
-
- // Tidy up
- ::SelectObject(hdcOffScr, hbmOldOffScr);
- ::SelectObject(hdcImage, hbmOldImage);
- ::SelectObject(hdcMask, hbmOldMask);
- ::DeleteObject(hbmOffScr);
- ::DeleteDC(hdcOffScr);
- ::DeleteDC(hdcImage);
- ::DeleteDC(hdcMask);
-}
-
-void CTransBmp::DrawTrans(CDC* pDC,CRect &rect, int xoff)
-{
- ASSERT(pDC);
- HDC hDC = pDC->GetSafeHdc();
- DrawTrans(hDC, rect,xoff);
-}
-
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-// transbmp.h : interface of the CTransBitmap class
-//
-/////////////////////////////////////////////////////////////////////////////
-
-class CTransBmp : public CBitmap
-{
-public:
- CTransBmp();
- ~CTransBmp();
- void Draw(HDC hDC, int x, int y);
- void Draw(CDC* pDC, int x, int y);
- void DrawTrans(HDC hDC, CRect &rect,int xoff=0);
- void DrawTrans(CDC* pDC, CRect &rect,int xoff=0);
- int GetWidth();
- int GetHeight();
- void UpdateMask(CWnd *wnd,CRect &rect);
-private:
- int m_iWidth;
- int m_iHeight;
- HBITMAP m_hbmMask; // handle to mask bitmap
-
- void GetMetrics();
- void CreateMask(HDC hDC, CRect &rect,int xoff);
-};
-
-/////////////////////////////////////////////////////////////////////////////
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-// TrayIcon.cpp : implementation file
-//
-
-#include "stdafx.h"
-#include "TrayIcon.h"
-#include "share.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-IMPLEMENT_DYNAMIC(CTrayIcon, CWnd)
-
-// this is part of MENUBLOCK routine
-//need this type of overload for FIND to work, requires CONST on both sides
-// CList::Find requires a == compare between const MEMBLOCK, by reference defined
-BOOL operator==(const MENUBLOCK &first,const MENUBLOCK &second )
-{
-return (first.mID==second.mID );
-};
-/////////////////////////////////////////////////////////////////////////////
-// CTrayIcon
-
-const UINT CTrayIcon::m_uMsgTaskbarCreated = ::RegisterWindowMessage(_T("TaskbarCreated"));
-const int CTrayIcon::m_uMaxTooltipLength = 64;
-CWnd CTrayIcon::m_wndInvisible;
-
-
-CTrayIcon::CTrayIcon(UINT uCallbackMessage, UINT uIcon, UINT uID)
-{
- memset(&m_Notify,0,sizeof(m_Notify));
- ASSERT(uCallbackMessage >= WM_APP);
- CString sTooltip;
- sTooltip.LoadString(uID);
- ASSERT(sTooltip.GetLength()<= m_uMaxTooltipLength);
- CWnd::CreateEx(0, AfxRegisterWndClass(0), _T(""), WS_POPUP, 0,0,0,0, NULL, 0); /* create an invisable window for this Class*/
- m_Notify.cbSize = sizeof(NOTIFYICONDATA);
- m_Notify.uCallbackMessage=uCallbackMessage;
- m_Notify.hIcon=AfxGetApp()->LoadIcon(uIcon);
- m_Notify.uID=uID;
- m_Notify.hWnd = m_hWnd;
- m_Notify.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
- _tcsncpy(m_Notify.szTip, sTooltip.GetBuffer(sTooltip.GetLength()), m_uMaxTooltipLength-1);
- m_iConnectState=1; //set current menu option to Connect
- m_hParent=NULL;
-}
-
-
-
-CTrayIcon::~CTrayIcon()
-{
- RemoveIcon();
- DestroyWindow();
-}
-
-
-BEGIN_MESSAGE_MAP(CTrayIcon, CWnd)
- //{{AFX_MSG_MAP(CTrayIcon)
- // NOTE - the ClassWizard will add and remove mapping macros here.
- //}}AFX_MSG_MAP
- ON_REGISTERED_MESSAGE(CTrayIcon::m_uMsgTaskbarCreated, OnTaskbarCreated)
-END_MESSAGE_MAP()
-
-
-/////////////////////////////////////////////////////////////////////////////
-// CTrayIcon message handlers
-
-/*
-typedef struct _NOTIFYICONDATA {
- DWORD cbSize; // sizeofstruct,youmustset
- HWND hWnd; // HWND sending notification
- UINT uID; // IDoficon(callbackWPARAM)
- UINT uFlags; // see below
- UINT uCallbackMessage; // sent to your wndproc
- HICON hIcon; // handle of icon C
- CHAR szTip[64]; // tip text
-} NOTIFYICONDATA;
-*/
-
-BOOL CTrayIcon::AddIcon(CWnd *pParent)
-{
- if (m_hParent==NULL)
- RemoveIcon();
- m_hParent=pParent->m_hWnd;
- ASSERT(m_hParent);
- m_Notify.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
- if (!Shell_NotifyIcon(NIM_ADD, &m_Notify))
- m_hParent=NULL;
- return (m_hParent!=NULL);
-}
-
-BOOL CTrayIcon::RemoveIcon()
-{
- if (m_hParent==NULL)
- return TRUE;
- m_Notify.uFlags = 0;
- if (Shell_NotifyIcon(NIM_DELETE, &m_Notify))
- m_hWnd=NULL;
- return (m_hWnd==NULL);
-}
-
-void CTrayIcon::SetConnectState(int istate)
-{
- m_iConnectState=istate;
-}
-
-void CTrayIcon::AddDrive(MENUBLOCK &menu)
-{
- m_MountList.AddTail(menu);
-}
-
-void CTrayIcon::RemoveDrive(MENUBLOCK &menu)
-{
- POSITION pos=m_MountList.Find(menu);
- if (pos)
- m_MountList.RemoveAt(pos);
-}
-
-LRESULT CTrayIcon::OnTrayNotification(UINT wParam, LONG lParam)
-{
- //Return quickly if its not for this tray icon
- if (wParam != m_Notify.uID)
- return 0L;
- CWnd *pTargetWnd = AfxGetMainWnd();
- if (!pTargetWnd)
- return 0L;
-
- if ((ULONG)wParam!=m_Notify.uID ||
- (lParam!=WM_RBUTTONUP && lParam!=WM_LBUTTONDBLCLK))
- return 0;
-
- // If there's a resource menu with the same ID as the icon, use it as
- // the right-button popup menu. CTrayIcon will interprets the first
- // item in the menu as the default command for WM_LBUTTONDBLCLK
- //
- CMenu menu;
- if (!menu.LoadMenu(m_Notify.uID))
- return 0;
- CMenu* pSubMenu = menu.GetSubMenu(0);
- if (!pSubMenu)
- return 0;
-
- CString msg;
- switch (m_iConnectState)
- {
- default:
- msg="&DisConnect";
- pSubMenu->EnableMenuItem(3,MF_BYPOSITION|MF_GRAYED|MF_DISABLED);
- break;
- case 1:
- msg="&Connect";
- pSubMenu->EnableMenuItem(3,MF_BYPOSITION|MF_ENABLED);
- break;
- case 2: //error state
- pSubMenu->EnableMenuItem(1,MF_BYPOSITION|MF_GRAYED|MF_DISABLED);
- pSubMenu->EnableMenuItem(3,MF_BYPOSITION|MF_ENABLED);
- break;
- }
- pSubMenu->ModifyMenu(1,MF_BYPOSITION|MF_STRING,pSubMenu->GetMenuItemID(1),msg);
- if (m_MountList.GetCount())
- {
- pSubMenu->InsertMenu(4,MF_BYPOSITION,MF_SEPARATOR);
- POSITION pos=m_MountList.GetHeadPosition();
- LPMENUBLOCK pmenu;//=&m_MountList.GetAt(pos);
- while (pos)
- {
- pmenu=&m_MountList.GetNext(pos);
- pSubMenu->InsertMenu(5,MF_BYPOSITION,pmenu->mID,pmenu->title);
- }
- }
-
- if (lParam==WM_RBUTTONUP) {
-
- // Make first menu item the default (bold font)
- ::SetMenuDefaultItem(pSubMenu->m_hMenu, 0, TRUE);
-
- // SetForegroundWindow. see Q135788 in MSDN.
- CPoint mouse;
- GetCursorPos(&mouse);
- ::SetForegroundWindow(m_Notify.hWnd);
- ::TrackPopupMenu(pSubMenu->m_hMenu, 0, mouse.x, mouse.y, 0,
- pTargetWnd->GetSafeHwnd(), NULL);
- pTargetWnd->PostMessage(WM_NULL, 0, 0);
- menu.DestroyMenu();
-
- } else // double click: execute first menu item
- ::SendMessage(m_hParent, WM_COMMAND, pSubMenu->GetMenuItemID(0), 0);
-
- return 1; // handled
-}
-
-LRESULT CTrayIcon::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
-{
- if (message == m_Notify.uCallbackMessage)
- return OnTrayNotification(wParam, lParam);
-
- return CWnd::WindowProc(message, wParam, lParam);
-}
-
-BOOL CTrayIcon::RemoveTaskbarIcon(CWnd* pWnd)
-{
- LPCTSTR pstrOwnerClass = AfxRegisterWndClass(0);
-
- // Create static invisible window
- if (!::IsWindow(m_wndInvisible.m_hWnd))
- {
- if (!m_wndInvisible.CreateEx(0, pstrOwnerClass, _T(""), WS_POPUP,
- CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
- NULL, 0))
- return FALSE;
- }
-
- pWnd->SetParent(&m_wndInvisible);
-
- return TRUE;
-}
-
-void CTrayIcon::MinimiseToTray(CWnd* pWnd)
-{
-
- RemoveTaskbarIcon(pWnd);
- pWnd->ModifyStyle(WS_VISIBLE, 0);
-}
-
-void CTrayIcon::MaximiseFromTray(CWnd* pWnd)
-{
- pWnd->SetParent(NULL);
-
- pWnd->ModifyStyle(0, WS_VISIBLE);
- pWnd->RedrawWindow(NULL, NULL, RDW_UPDATENOW | RDW_ALLCHILDREN | RDW_FRAME |
- RDW_INVALIDATE | RDW_ERASE);
-
- // Move focus away and back again to ensure taskbar icon is recreated
- if (::IsWindow(m_wndInvisible.m_hWnd))
- m_wndInvisible.SetActiveWindow();
- pWnd->SetActiveWindow();
- pWnd->SetForegroundWindow();
-}
-
-void CTrayIcon::OnTaskbarCreated(WPARAM , LPARAM )
-{
- if (m_hParent==NULL)
- return;
- m_Notify.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
- Shell_NotifyIcon(NIM_ADD, &m_Notify);
-}
-
-CWnd * CTrayIcon::m_pwTrayIcon=NULL;
-
-BOOL CALLBACK EnumChildProc(
- HWND hWnd, // handle to child window
- LPARAM lParam // application-defined value
- )
-{
- CWnd *wnd=CWnd::FromHandle(hWnd);
- CString msg;
- wnd->GetWindowText(msg);
- CTrayIcon::m_pwTrayIcon=wnd;
- HICON ic=wnd->GetIcon(FALSE);
- return TRUE;
-}
-
-BOOL CALLBACK EFindTrayWnd(HWND hwnd, LPARAM lParam)
-{
- TCHAR szClassName[256];
- GetClassName(hwnd, szClassName, 255);
-
- // Did we find the Main System Tray? If so, then get its size and keep going
- if (_tcscmp(szClassName, _T("TrayNotifyWnd")) == 0)
- {
- CTrayIcon::m_pwTrayIcon=CWnd::FromHandle(hwnd);
- return FALSE;
- }
- return TRUE;
-
-}
-
-CWnd * CTrayIcon::FindTrayWnd()
-{
- HWND hShellTrayWnd = ::FindWindow(_T("Shell_TrayWnd"), NULL);
- if (!hShellTrayWnd) return NULL;
- EnumChildWindows(hShellTrayWnd, EFindTrayWnd, (LPARAM)0);
-
- if (!EnumChildWindows(
- m_pwTrayIcon->m_hWnd, // handle to parent window
- EnumChildProc, // callback function
- 0))
- return NULL;
- return m_pwTrayIcon;
-}
-
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-#if !defined(AFX_TRAYICON_H__60C86242_1890_11D5_A375_00105A6BCA62__INCLUDED_)
-#define AFX_TRAYICON_H__60C86242_1890_11D5_A375_00105A6BCA62__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-
-// TrayIcon.h : header file
-//
-class MENUBLOCK
-{ //used to pass info to the Tray icon
-public:
- MENUBLOCK(){mID=-1;}
- MENUBLOCK(UINT id,const char *msg){
- mID=id;
- title=msg;
- }
- ~MENUBLOCK(){};
- MENUBLOCK& operator=(MENUBLOCK &other){
- mID=other.mID;
- title=other.title;
- return *this;
- }
- friend BOOL operator==(const MENUBLOCK &first, const MENUBLOCK &second );
- int mID;
- CString title;
-};
-
-typedef MENUBLOCK * LPMENUBLOCK;
-
-/////////////////////////////////////////////////////////////////////////////
-// CTrayIcon window
-
-class CTrayIcon : public CWnd
-{
-// Construction
-public:
- CTrayIcon(UINT uCallbackMessage, UINT uIcon, UINT uID);
-
-// Attributes
-public:
- static const UINT m_uMsgTaskbarCreated; /*RegisterWindowMessage(_T("TaskbarCreated"))*/
- static CWnd m_wndInvisible;
- static CWnd * m_pwTrayIcon;
-
-// Operations
-public:
- static CWnd * FindTrayWnd();
- void SetConnectState(int istate);
- void AddDrive(MENUBLOCK &menu);
- void RemoveDrive(MENUBLOCK &menu);
- BOOL SetIcon(HICON hIcon);
- BOOL SetIcon(LPCTSTR lpszIconName);
- BOOL SetIcon(UINT nIDResource);
- BOOL SetStandardIcon(LPCTSTR lpIconName);
- BOOL SetStandardIcon(UINT nIDResource);
- HICON GetIcon() const;
-
- void SetFocus();
- BOOL HideIcon();
- BOOL ShowIcon();
- BOOL AddIcon(CWnd *pParent);
- BOOL RemoveIcon();
- BOOL IsIconOnTray(){return (m_hParent!=NULL);}
-
- void MinimiseToTray(CWnd* pWnd);
- void MaximiseFromTray(CWnd* pWnd);
- BOOL RemoveTaskbarIcon(CWnd* pWnd);
-
- // Default handler for tray notification message
- virtual LRESULT OnTrayNotification(WPARAM uID, LPARAM lEvent);
-
-// Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CTrayIcon)
- protected:
- virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
- //}}AFX_VIRTUAL
-
-// Implementation
-public:
- virtual ~CTrayIcon();
-
- DECLARE_DYNAMIC(CTrayIcon)
-
- // Generated message map functions
-protected:
- void OnTaskbarCreated(WPARAM, LPARAM);
- HWND m_hParent; /* Parent window to send messages too e.g. WinAFsLoadDlg*/
- CList<MENUBLOCK,MENUBLOCK&> m_MountList;
- int m_iConnectState;
- NOTIFYICONDATA m_Notify;
- static const int m_uMaxTooltipLength;
- UINT m_DefaultMenuItemID;
- BOOL m_DefaultMenuItemByPos;
-
- //{{AFX_MSG(CTrayIcon)
- // NOTE - the ClassWizard will add and remove member functions here.
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
-};
-
-/////////////////////////////////////////////////////////////////////////////
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_TRAYICON_H__60C86242_1890_11D5_A375_00105A6BCA62__INCLUDED_)
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-// Wait.cpp : implementation file
-//
-
-#include "stdafx.h"
-#include "winafsload.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-// CWait
-
-int CWait::m_RefCount=0;
-
-CWait::CWait(LPCTSTR cursor)
-{
- m_RefCount++;
- m_Cursor=SetCursor(LoadCursor(NULL,cursor));
-}
-
-BOOL CWait::IsBusy()
-{
- return (m_RefCount!=0);
-}
-
-CWait::~CWait()
-{
- SetCursor(m_Cursor);
- m_RefCount--;
-}
-
-
-BEGIN_MESSAGE_MAP(CWait, CWnd)
- //{{AFX_MSG_MAP(CWait)
- // NOTE - the ClassWizard will add and remove mapping macros here.
- //}}AFX_MSG_MAP
-END_MESSAGE_MAP()
-
-
-/////////////////////////////////////////////////////////////////////////////
-// CWait message handlers
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-
-#if !defined(AFX_WAIT_H__F7E2A603_FBFD_11D3_A374_00105A6BCA62__INCLUDED_)
-#define AFX_WAIT_H__F7E2A603_FBFD_11D3_A374_00105A6BCA62__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-// Wait.h : header file
-//
-
-/////////////////////////////////////////////////////////////////////////////
-// CWait window
-
-class CWait : public CWnd
-{
-// Construction
-public:
- CWait(LPCTSTR cursor=IDC_WAIT);
-
-// Attributes
-public:
-
-// Operations
-public:
-
-// Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CWait)
- //}}AFX_VIRTUAL
-
-// Implementation
-public:
- virtual ~CWait();
- static BOOL IsBusy();
-
- // Generated message map functions
-protected:
- static int m_RefCount;
- HCURSOR m_Cursor;
- //{{AFX_MSG(CWait)
- // NOTE - the ClassWizard will add and remove member functions here.
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
-};
-
-/////////////////////////////////////////////////////////////////////////////
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_WAIT_H__F7E2A603_FBFD_11D3_A374_00105A6BCA62__INCLUDED_)
+++ /dev/null
-// WinAfsLoad.cpp : Defines the class behaviors for the application.
-//
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-
-#include "stdafx.h"
-#include "WinAfsLoad.h"
-#include "WinAfsLoadDlg.h"
-#include "cregkey.h"
-#include "api95.h"
-#include "termwarn.h"
-#include "myframe.h"
-#include "afsmsg95.h"
-#include "Tlhelp32.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-// CWinAfsLoadApp
-
-BEGIN_MESSAGE_MAP(CWinAfsLoadApp, CWinApp)
- //{{AFX_MSG_MAP(CWinAfsLoadApp)
- //}}AFX_MSG_MAP
- ON_COMMAND(ID_HELP, CWinApp::OnHelp)
- ON_THREAD_MESSAGE(WM_UIONPARM,OnNotifyReturn)
- ON_THREAD_MESSAGE(WSA_EVENT, OnAfsEvent)
-END_MESSAGE_MAP()
-
-/////////////////////////////////////////////////////////////////////////////
-// CWinAfsLoadApp construction
-
-CWinAfsLoadApp::CWinAfsLoadApp()
-{
- // TODO: add construction code here,
- // Place all significant initialization in InitInstance
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// The one and only CWinAfsLoadApp object
-
-CWinAfsLoadApp theApp;
-
-/////////////////////////////////////////////////////////////////////////////
-// CWinAfsLoadApp initialization
-
-HWND CWinAfsLoadApp::m_hAfsLoadFinish=0;
-HWND CWinAfsLoadApp::m_hAfsLoad=0;
-CString CWinAfsLoadApp::m_sDosAppName;
-/*
- DWORD dwProcessID;
- ::GetWindowThreadProcessId (hWnd, &dwProcessID);
-*/
-BOOL CALLBACK CWinAfsLoadApp::EnumWindowsProc(HWND hWnd, LPARAM lParam)
-{
- CWnd *wnd=CWnd::FromHandle(hWnd);
- CString msg;
- CString sFinish;
- wnd->GetWindowText(msg);
- if ( (!m_sDosAppName.IsEmpty())
- && (m_sDosAppName!=""))
- {
- if (msg==m_sDosAppName)
- m_hAfsLoad=hWnd;
- sFinish.Format("Finished - %s",m_sDosAppName);
- if (msg==sFinish)
- m_hAfsLoadFinish=hWnd;
- }
- if (msg==DOSTITLE)
- m_hAfsLoad=hWnd;
- if ((msg==DOSTITLEFINISH)||(msg==APPTITLEFINISH))
- m_hAfsLoadFinish=hWnd;
- return ((m_hAfsLoad==0) && (m_hAfsLoadFinish==0));
-}
-
-int CWinAfsLoadApp::ExitInstance()
-{
- // TODO: Add your specialized code here and/or call the base class
- if (m_pCMyUIThread)
- {
- SetNotifyEventSuspend();
- m_pCMyUIThread->PostThreadMessage(WM_UIONPARM,ONPARMCLOSE,0);
- WaitForSingleObject(CMyUIThread::m_hEventThreadKilled, INFINITE);
- CloseHandle(CMyUIThread::m_hEventThreadKilled);
- m_pCMyUIThread=NULL;
- }
- return CWinApp::ExitInstance();
-}
-
-BOOL CWinAfsLoadApp::InitInstance()
-{
- HWND hwnd=FindWindow(NULL,"AFS Activity Log");
- CString msg;
- msg.LoadString(IDD_ACTIVITYLOG);
- if (hwnd)
- {
- ::PostMessage(hwnd,WM_SYSCOMMAND,IDM_VISIBLE,0);
- return FALSE;
- }
- EnumWindows (CWinAfsLoadApp::EnumWindowsProc, (LPARAM) 0); //lets grab other open windows and close them down
- if (!AfxSocketInit())
- {
- AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
- return FALSE;
- }
-
- // Standard initialization
- // If you are not using these features and wish to reduce the size
- // of your final executable, you should remove from the following
- // the specific initialization routines you do not need.
-
-#ifdef _AFXDLL
- Enable3dControls(); // Call this when using MFC in a shared DLL
-#else
- Enable3dControlsStatic(); // Call this when linking to MFC statically
-#endif
-
- PCHAR pPath=getenv("AFSCONF");
- m_sTargetDir.Empty();
- if (!pPath)
- AfxMessageBox("AFS Error - Improper installation, Enviornemnt variable AFSCONF missing",MB_ICONWARNING | MB_OK);
- else
- m_sTargetDir.Format("%s\\",pPath);
-
-// CString t(m_sTargetDir);
-// t+="afs-light.hlp";
-
- m_pszHelpFilePath=_tcsdup(_T("afswin9x.hlp"));
-// initialize variables
- CRegkey regkey("AFS\\Window");
- if (regkey.Getkey()!=0)
- {
- DWORD len=64;
- regkey.GetString("Title",m_sDosAppName,len);
- }
- RegOptions(TRUE);
-
- if ((m_pCMyUIThread=(CMyUIThread *)AfxBeginThread(RUNTIME_CLASS(CMyUIThread)),THREAD_PRIORITY_IDLE)==NULL)
- {// need to create a very low priority else it will interfere with other windows
- AfxMessageBox("Error creating background thread for progress bar! /nApplicaton still operational.");
- m_pCMyUIThread=NULL;
- } else
- m_pCMyUIThread->m_hEventThreadKilled //used to test when thread is done
- = CreateEvent(NULL, FALSE, FALSE, NULL); // auto reset, initially reset
- // scan for command line options
- // show userid: password: connect
- CharLower(m_lpCmdLine);
- m_bShowAfs=(strstr(m_lpCmdLine,"show")!=NULL);
- m_bConnect=(strstr(m_lpCmdLine,"connect")!=NULL);
- if (m_bLogWindow)
- ShowLog(TRUE);
- if (m_bLog)
- ShowPrint(TRUE);
- char *str=NULL;
- CString cUserName;
- strlwr(m_lpCmdLine); //convert to lower case
- if ((str=strstr(m_lpCmdLine,"userid:"))!=NULL) //
- {
- cUserName=(strstr(str,":"));
- }
- CString cPassWord;
- if ((str=strstr(m_lpCmdLine,"password:"))!=NULL)
- {
- cPassWord=(strstr(str,":"));
- }
- m_bNoID=(strstr(m_lpCmdLine,"noid")!=NULL);
-
- if (m_hAfsLoadFinish) // SOME REASON THE WINDOW WAS NOT SHUT DOWN, SO LETES KILL IT
- {
- ::SendMessage(m_hAfsLoadFinish,WM_CLOSE,0,0);
- LOG("WM_CLOSE");
- }
- if (m_hAfsLoad) // Something wrong, BACKGROUND is running without dialog
- {
- CTermWarn *pModeless = new CTermWarn(NULL);
- pModeless->Create();
- pModeless->SetActiveWindow();
- ShutdownAfs();
- CTime startTime = CTime::GetCurrentTime();
- CTimeSpan elapsedTime;
- do
- {
- Sleep(500);
- m_hAfsLoad=0;
- EnumWindows (EnumWindowsProc, (LPARAM) 0); //lets prevent multiple instances!
- elapsedTime= CTime::GetCurrentTime() - startTime;
- if (elapsedTime.GetTotalSeconds()>10)
- {
- if (pModeless)
- pModeless->OnCancel();
- ::ShowWindow(m_hAfsLoad,SW_SHOWNORMAL);
- ::AfxMessageBox("AFS Error - Warning AFS Client Console still running.\n Locate the console and use Control C to manually terminate it!");
- return FALSE;
- }
- } while (m_hAfsLoad);
- if (m_hAfsLoadFinish) // SOME REASON THE WINDOW WAS NOT SHUT DOWN, SO LETES KILL IT
- {
- ::SendMessage(m_hAfsLoadFinish,WM_CLOSE,0,0);
- LOG("WM_CLOSE");
- }
- if (pModeless)
- pModeless->OnCancel();
- }
- CWinAfsLoadDlg dlg(cUserName,cPassWord);
- m_pMainWnd = &dlg;
- int nResponse = dlg.DoModal();
- if (nResponse == IDOK)
- {
- // TODO: Place code here to handle when the dialog is
- // dismissed with OK
- }
- else if (nResponse == IDCANCEL)
- {
- // TODO: Place code here to handle when the dialog is
- // dismissed with Cancel
- }
-
- // Since the dialog has been closed, return FALSE so that we exit the
- // application, rather than start the application's message pump.
- return TRUE;
-}
-
-BOOL CWinAfsLoadApp::RegOptions(BOOL fetch)
-{
- CRegkey regkey("AFS\\Window");
- if (regkey.Getkey()==0) return FALSE;
- DWORD w=0;
- DWORD len=sizeof(w);
- if (fetch)
- {
- regkey.GetBinary("CommandSettings",(LPBYTE)(&w),len);
- m_bLogWindow=((w & 2)!=0);
- m_bLog=((w & 4)!=0);
- m_bConnect=((w & 1)!=0);
- } else
- {
- w=((m_bLogWindow)?2:0) | ((m_bLog)?4:0) | ((m_bConnect)?1:0);
- regkey.PutBinary("CommandSettings",(LPBYTE)(&w),sizeof(DWORD));
- }
- return TRUE;
-}
-
-void CWinAfsLoadApp::Log(const char *s)
-{
- TRACE("%s\n",s);
- if ((!m_bLogWindow) && (!m_bLog)) return;
- if (s)
- {
- SYSTEMTIME timeDest;
- GetSystemTime(&timeDest);
- CString *mt=new CString; //release is handled by CMyUIThread
- mt->Format("(%02d:%02d:%2d-%03d)%s\r\n",
- timeDest.wHour,
- timeDest.wMinute,
- timeDest.wSecond,
- timeDest.wMilliseconds,s);
- m_pCMyUIThread->PostThreadMessage(WM_LOG,0,(LPARAM)mt);
- }
- else
- m_pCMyUIThread->PostThreadMessage(WM_LOG,0,0);
-}
-
-void CWinAfsLoadApp::Log(const char *f,const DWORD d)
-{
- CString msg;
- msg.Format(f,d);
- Log(msg);
-}
-
-void CWinAfsLoadApp::Log(const char *f,const DWORD d,const DWORD d2)
-{
- CString msg;
- msg.Format(f,d,d2);
- Log(msg);
-}
-
-void CWinAfsLoadApp::Log(const char *f,const char*s)
-{
- CString msg;
- msg.Format(f,s);
- Log(msg);
-}
-
-void CWinAfsLoadApp::Log(const char *f,const char*s,const char*s2)
-{
- CString msg;
- msg.Format(f,s,s2);
- Log(msg);
-}
-
-void CWinAfsLoadApp::Log(const char *f,const char*s,const char*s2,const char*s3)
-{
- CString msg;
- msg.Format(f,s,s2,s3);
- Log(msg);
-}
-
-void CWinAfsLoadApp::ShowLog(BOOL yes)
-{
- m_pCMyUIThread->PostThreadMessage(WM_LOG,LOGSHOWWINDOW,yes);
-}
-
-void CWinAfsLoadApp::ShowPrint(BOOL yes)
-{
- CString *mp=new CString();
- mp->Format("%s\\afscli.log",getenv("AFSCONF"));
- m_pCMyUIThread->PostThreadMessage(WM_LOG,LOGSHOWPRINT,(yes)?(LPARAM)mp:NULL);
-}
-
-void CWinAfsLoadApp::Progress(VOID *ptr, UINT mode)
-{
- // you cannot obtain the handle to the window int these routines so you have enough time to create the window
- // It is ok to postmessage to a window in a different thread!
- if (m_pCMyUIThread==NULL) return;
- switch (mode)
- {
- case ProgFSetTitle:
- ::PostMessage(((CDialog *)m_pCMyUIThread->GetMainWnd())->GetSafeHwnd()
- ,WM_PROGRESSPARM,ProgFSetTitle,(LPARAM)ptr);
- break;
- case ProgFHide:
- ::PostMessage(((CDialog *)m_pCMyUIThread->GetMainWnd())->GetSafeHwnd()
- ,WM_PROGRESSPARM,ProgFHide,0);
- break;
- case ProgFNext:
- ::PostMessage(((CDialog *)m_pCMyUIThread->GetMainWnd())->GetSafeHwnd(),WM_PROGRESSPARM,ProgFNext,0);
- BringWindowToTop(((CDialog *)m_pCMyUIThread->GetMainWnd())->GetSafeHwnd());
- break;
- default:
- ::PostMessage(((CDialog *)m_pCMyUIThread->GetMainWnd())->GetSafeHwnd(),WM_PROGRESSPARM,ProgFOpt,mode);
- BringWindowToTop(((CDialog *)m_pCMyUIThread->GetMainWnd())->GetSafeHwnd());
- ((CDialog *)m_pCMyUIThread->GetMainWnd())->CenterWindow((CWnd *)ptr);
- case 0:
- break;
- }
-}
-
-void CWinAfsLoadApp::RequestUISuspendEvent(UINT mode)
-{
- SetNotifyEventSuspend();
- m_pCMyUIThread->PostThreadMessage(WM_UIONPARM,mode,0);
-}
-
-void CWinAfsLoadApp::RequestUIPostEvent(UINT mode,WPARAM wp,LPARAM lp)
-{
- SetNotifyEventPostMessage();
- m_pCMyUIThread->PostThreadMessage(mode,wp,lp);
-}
-
-
-/*
-There is no queue for messages (only one event) therefore messages passed to us
-are not queued and stored in m_sMsg & m_wParam;
-*/
-
-void CWinAfsLoadApp::SetNotifyEventSuspend()
-{
- ResetEvent(CMyUIThread::m_hEventThreadKilled);
- m_uNotifyMessage=1;
-}
-
-void CWinAfsLoadApp::WaitForEvent(UINT logintime,WPARAM *wp,CString *msg)
-{
- switch (WaitForSingleObject(CMyUIThread::m_hEventThreadKilled, logintime))
- {
- case WAIT_OBJECT_0:
- LOG("OnAfsEvent - Receive Good Status ");
- *msg=m_sMsg;
- break;
- default:
- *wp=AFS_EXITCODE_GENERAL_FAILURE;
- *msg="AFS Client timed out, failure to respond\r\nCheck Network Connection.";
- LOG("OnAfsEvent %s",(const char *)*msg);
- return;
- }
- *wp=m_wParam;
-}
-
-/*
-Tthis funciton is called from UIThread (different thread)
- and should not contain and Windows stuff assocaited with CWinAFSLoad.
-It is used to display messages from a backgound process or during PowerSuspend denial
-NOTICE: PostThreadMessage leaves deletion of message up to caller
- WaitEvent does not have to delete message because Wait is not queued like PostMessage
-*/
-void CWinAfsLoadApp::WSANotifyFromUI(WPARAM wp,const char *msg)
-{
- TRACE("CWinAfsLoadApp::Notify wp=%d,msg=[%s]\n",wp,msg);
- switch (m_uNotifyMessage)
- {
- case 2:
- {// for post message use allocated memory to hold results and pass back to main thread
- CString *mp=new CString; //memory is released by destination routine!
- *mp=msg;
- PostThreadMessage(WSA_EVENT,wp,(LPARAM)mp); //this goes to WSA_EVENT
- }
- break;
- case 1:
- // For setting the Event completion, pass information back to calling thread
- m_wParam=wp;
- m_sMsg=msg;
- SetEvent(CMyUIThread::m_hEventThreadKilled);
- m_uNotifyMessage=0;
- break;
- default:
- break;
- }
-}
-
-void CWinAfsLoadApp::NotifyFromUI(WPARAM wp,const char *msg)
-{// called from UIThread to notify return status
- CString *mp=NULL;
- if (msg)
- {
- mp=new CString; //memory is released by destination routine!
- *mp=msg;
- TRACE("CWinAfsLoadApp::Notify wp=%d,msg=[%s]\n",wp,msg);
- } else
- TRACE("CWinAfsLoadApp::Notify wp=%d,msg=NULL\n",wp);
- if (wp)
- PostThreadMessage(WM_UIONPARM,wp,(LPARAM)mp);
-}
-
-LRESULT CWinAfsLoadApp::OnNotifyReturn(WPARAM wParam, LPARAM lParam)
-{
- if (m_pMainWnd)
- return ((CWinAfsLoadDlg *)m_pMainWnd)->OnNotifyReturn(wParam,lParam);
- return TRUE;
-}
-
-LRESULT CWinAfsLoadApp::OnAfsEvent(WPARAM wParam, LPARAM lParam)
-{
- if (m_pMainWnd)
- return ((CWinAfsLoadDlg *)m_pMainWnd)->OnAfsEvent(wParam,lParam);
- return TRUE;
-}
-
+++ /dev/null
-# Dependency File, included by WinAfsLoad.mak
-
-.\Encript.cpp : \
- ".\cafs.h"\
- ".\Datalog.h"\
- ".\encript.h"\
- ".\share.h"\
- ".\StdAfx.h"\
- ".\Transbmp.h"\
- ".\TrayIcon.h"\
- ".\Wait.h"\
- ".\WinAfsLoad.h"\
- ".\WinAfsLoadDlg.h"\
-
-
-.\api95.cpp : \
- ".\StdAfx.h"\
- ".\Wait.h"\
-
-
-.\CAfs.cpp : \
- ".\api95.h"\
- ".\cafs.h"\
- ".\CRegkey.h"\
- ".\share.h"\
- ".\StdAfx.h"\
- ".\Wait.h"\
- ".\WinAfsLoad.h"\
-
-.\Change.cpp : \
- ".\cafs.h"\
- ".\Change.h"\
- ".\Datalog.h"\
- ".\share.h"\
- ".\StdAfx.h"\
- ".\Transbmp.h"\
- ".\TrayIcon.h"\
- ".\Wait.h"\
- ".\WinAfsLoad.h"\
- ".\WinAfsLoadDlg.h"\
-
-
-.\CommandSettings.cpp : \
- ".\CommandSettings.h"\
- ".\StdAfx.h"\
- ".\Wait.h"\
- ".\WinAfsLoad.h"\
-
-
-.\CRegkey.cpp : \
- ".\CRegkey.h"\
- ".\StdAfx.h"\
- ".\Wait.h"\
-
-
-.\Datalog.cpp : \
- ".\cafs.h"\
- ".\Datalog.h"\
- ".\share.h"\
- ".\StdAfx.h"\
- ".\Transbmp.h"\
- ".\TrayIcon.h"\
- ".\Wait.h"\
- ".\WinAfsLoad.h"\
- ".\WinAfsLoadDlg.h"\
-
-
-.\Force.cpp : \
- ".\Force.h"\
- ".\StdAfx.h"\
- ".\Wait.h"\
- ".\WinAfsLoad.h"\
-
-
-.\modver.cpp : \
- ".\modver.h"\
- ".\StdAfx.h"\
- ".\Wait.h"\
-
-
-.\MyFrame.cpp : \
- ".\Datalog.h"\
- ".\MyFrame.h"\
- ".\ProgBarDlg.h"\
- ".\share.h"\
- ".\StdAfx.h"\
- ".\Wait.h"\
- ".\WinAfsLoad.h"\
-
-
-.\ProgBarDlg.cpp : \
- ".\MyFrame.h"\
- ".\ProgBarDlg.h"\
- ".\share.h"\
- ".\StdAfx.h"\
- ".\Wait.h"\
- ".\WinAfsLoad.h"\
-
-
-.\Retry.cpp : \
- ".\Retry.h"\
- ".\StdAfx.h"\
- ".\Wait.h"\
- ".\WinAfsLoad.h"\
-
-
-.\Settings.cpp : \
- ".\cafs.h"\
- ".\Datalog.h"\
- ".\Settings.h"\
- ".\share.h"\
- ".\StdAfx.h"\
- ".\Transbmp.h"\
- ".\TrayIcon.h"\
- ".\Wait.h"\
- ".\WinAfsLoad.h"\
- ".\WinAfsLoadDlg.h"\
-
-
-.\StdAfx.cpp : \
- ".\StdAfx.h"\
- ".\Wait.h"\
-
-
-.\TermWarn.cpp : \
- ".\StdAfx.h"\
- ".\TermWarn.h"\
- ".\Wait.h"\
- ".\WinAfsLoad.h"\
-
-
-.\Transbmp.cpp : \
- ".\StdAfx.h"\
- ".\Transbmp.h"\
- ".\Wait.h"\
-
-
-.\TrayIcon.cpp : \
- ".\share.h"\
- ".\StdAfx.h"\
- ".\TrayIcon.h"\
- ".\Wait.h"\
-
-
-.\Wait.cpp : \
- ".\StdAfx.h"\
- ".\Wait.h"\
- ".\WinAfsLoad.h"\
-
-
-.\WinAfsLoad.cpp : \
- ".\api95.h"\
- ".\cafs.h"\
- ".\CRegkey.h"\
- ".\Datalog.h"\
- ".\MyFrame.h"\
- ".\share.h"\
- ".\StdAfx.h"\
- ".\TermWarn.h"\
- ".\Transbmp.h"\
- ".\TrayIcon.h"\
- ".\Wait.h"\
- ".\WinAfsLoad.h"\
- ".\WinAfsLoadDlg.h"\
-
-
-.\WinAfsLoad.rc : \
- ".\res\WinAfsLoad.ico"\
- ".\res\world.bmp"\
-
-
-.\WinAfsLoadDlg.cpp : \
- ".\cafs.h"\
- ".\Change.h"\
- ".\CommandSettings.h"\
- ".\CRegkey.h"\
- ".\Datalog.h"\
- ".\encript.h"\
- ".\Force.h"\
- ".\modver.h"\
- ".\MyFrame.h"\
- ".\ProgBarDlg.h"\
- ".\Retry.h"\
- ".\Settings.h"\
- ".\share.h"\
- ".\StdAfx.h"\
- ".\Transbmp.h"\
- ".\TrayIcon.h"\
- ".\Wait.h"\
- ".\WinAfsLoad.h"\
- ".\WinAfsLoadDlg.h"\
-
+++ /dev/null
-// WinAfsLoad.h : main header file for the WINAFSLOAD application
-//
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-#define AFSTITLE "AFS Control Panel"
-
-#if !defined(AFX_WINAFSLOAD_H__75E145B3_F5C0_11D3_A374_00105A6BCA62__INCLUDED_)
-#define AFX_WINAFSLOAD_H__75E145B3_F5C0_11D3_A374_00105A6BCA62__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#ifndef __AFXWIN_H__
- #error include 'stdafx.h' before including this file for PCH
-#endif
-
-#include "resource.h" // main symbols
-
-#define LOG ((CWinAfsLoadApp *)AfxGetApp())->Log
-//#define LOG1(p) ((CWinAfsLoadApp *)AfxGetApp())->Log(p)
-//#define LOG2(p1,p2) ((CWinAfsLoadApp *)AfxGetApp())->Log(p1,p2)
-//#define LOG3(p1,p2,p3) ((CWinAfsLoadApp *)AfxGetApp())->Log(p1,p2,p3)
-#define SHOWLOG(p1) ((CWinAfsLoadApp *)AfxGetApp())->ShowLog(p1)
-#define PROGRESS(p1,p2) ((CWinAfsLoadApp *)AfxGetApp())->Progress(p1,p2)
-#define REQUESTUIPOSTEVENT ((CWinAfsLoadApp *)AfxGetApp())->RequestUIPostEvent
-#define REQUESTUISUSPENDEVENT ((CWinAfsLoadApp *)AfxGetApp())->RequestUISuspendEvent
-
-/////////////////////////////////////////////////////////////////////////////
-// CWinAfsLoadApp:
-// See WinAfsLoad.cpp for the implementation of this class
-//
-class CDatalog;
-class CMyUIThread;
-
-class CWinAfsLoadApp : public CWinApp
-{
- friend class CProgBarDlg;
- friend class CMyUIThread;
- void WSANotifyFromUI(WPARAM, const char *);
- void NotifyFromUI(WPARAM, const char *);
-public:
- CString m_sMsg; //used to pass error messages to calling thread
- CMyUIThread* m_pCMyUIThread;
- BOOL m_bShowAfs,m_bLog,m_bLogWindow,m_bConnect;
- static CString m_sDosAppName;
- CWinAfsLoadApp();
- void Log(const char *);
- void Log(const char *,const char*);
- void Log(const char *,const DWORD);
- void Log(const char *,const DWORD,const DWORD);
- void Log(const char *,const char*,const char*);
- void Log(const char *f,const char*,const char*,const char*);
- void ShowLog(BOOL);
- void ShowPrint(BOOL);
- void Progress(VOID *wnd, UINT mode);
- void WaitForEvent(UINT sec,WPARAM *wp,CString *msg);
- void GetNotifyState(WPARAM *wp,LPARAM *lp);
- void RequestUISuspendEvent(UINT mode);
- void RequestUIPostEvent(UINT mode,WPARAM wp,LPARAM lp);
- void SetNotifyEventSuspend();
- void SetNotifyEventPostMessage(){m_uNotifyMessage=2;}
- void ClearNotify(){m_uNotifyMessage=0;}
- BOOL RegOptions(BOOL fetch);
-
-// Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CWinAfsLoadApp)
- public:
- virtual BOOL InitInstance();
- virtual int ExitInstance();
- //}}AFX_VIRTUAL
-
-// Implementation
- BOOL static CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam);
- HWND static m_hAfsLoad,m_hAfsLoadFinish;
- CString m_sTargetDir; //location of afsd.exe
- UINT m_uEvent;
- UINT m_uNotifyMessage;
- WPARAM m_wParam;
- BOOL m_bNoID;
-
- //{{AFX_MSG(CWinAfsLoadApp)
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
- afx_msg LRESULT OnNotifyReturn(WPARAM wParam, LPARAM lParam);
- afx_msg LRESULT OnAfsEvent(WPARAM wParam, LPARAM lParam);
-};
-
-#define CWINAFSLOADAPP ((CWinAfsLoadApp *)AfxGetApp())
-/////////////////////////////////////////////////////////////////////////////
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_WINAFSLOAD_H__75E145B3_F5C0_11D3_A374_00105A6BCA62__INCLUDED_)
+++ /dev/null
-//Microsoft Developer Studio generated resource script.
-//
-#include "resource.h"
-
-// Generated Help ID header file
-#define APSTUDIO_HIDDEN_SYMBOLS
-//#include "resource.hm"
-#undef APSTUDIO_HIDDEN_SYMBOLS
-
-#define APSTUDIO_READONLY_SYMBOLS
-// Microsoft Developer Studio generated Help ID include file.
-// Used by WinAfsLoad.rc
-//
-#define HIDC_STATIC 0x80fcffff // IDD_SETTINGS
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE DISCARDABLE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE DISCARDABLE
-BEGIN
- "#include ""afxres.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE DISCARDABLE
-BEGIN
- "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
- "#define _AFX_NO_OLE_RESOURCES\r\n"
- "#define _AFX_NO_TRACKER_RESOURCES\r\n"
- "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
- "\r\n"
- "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
- "#ifdef _WIN32\r\n"
- "LANGUAGE 9, 1\r\n"
- "#pragma code_page(1252)\r\n"
- "#endif //_WIN32\r\n"
- "#include ""res\\WinAfsLoad.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
- "#include ""afxres.rc"" // Standard components\r\n"
- "#endif\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 55
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "About WinAfsLoad"
-FONT 8, "MS Sans Serif"
-BEGIN
- ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
- LTEXT "WinAfsLoad Version ",IDC_STATICABOUT,40,10,119,8,
- SS_NOPREFIX
- LTEXT "Copyright (C) 2000",IDC_STATIC,40,25,119,8
- DEFPUSHBUTTON "OK",IDOK,178,7,50,14,WS_GROUP
-END
-
-IDD_WINAFSLOAD_DIALOG DIALOGEX 0, 0, 280, 215
-STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
- WS_SYSMENU
-EXSTYLE WS_EX_APPWINDOW
-CAPTION "AFS Control Panel"
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- EDITTEXT IDC_USERNAME,81,14,73,13,ES_AUTOHSCROLL
- EDITTEXT IDC_PASSWORD,81,32,73,12,ES_PASSWORD | ES_AUTOHSCROLL
- PUSHBUTTON "&Connect",IDC_CONNECT,223,7,50,14
- PUSHBUTTON "Exit",IDC_CANCEL,223,47,50,14
- CONTROL "Save Password",IDC_SAVEUSERNAME,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,82,49,78,10
- CONTROL "Advanced Options",IDC_CHECKADVANCED,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,198,69,75,10
- CONTROL "List1",IDC_DRIVEMOUNTLIST,"SysListView32",LVS_REPORT |
- LVS_NOLABELWRAP | WS_BORDER | WS_TABSTOP,17,99,246,85
- PUSHBUTTON "Add",IDC_ADD,17,188,42,14
- PUSHBUTTON "Change",IDC_CHANGE,67,188,42,14,WS_DISABLED
- PUSHBUTTON "Remove",IDC_REMOVE,117,188,42,14,WS_DISABLED
- PUSHBUTTON "ReAuthenicate",IDC_AUTH,163,7,55,14,WS_DISABLED
- PUSHBUTTON "S&ettings",IDC_SETTINGS,223,27,50,14
- LTEXT "&UserName:",IDC_STATIC,37,15,36,8
- LTEXT "&Password:",IDC_STATIC,39,34,33,8
- GROUPBOX "",IDC_OPTIONLINE,7,78,266,9,NOT WS_VISIBLE
- LTEXT "Static",IDC_MOUNTDISPLAY,50,89,142,8
- LTEXT "* Connect Drive Letter Map Point when AFS connected.",
- IDC_STATIC,169,187,104,21
- CTEXT "",IDC_AUTHWARN,31,65,162,13,SS_CENTERIMAGE | NOT
- WS_VISIBLE | NOT WS_GROUP,WS_EX_TRANSPARENT
- PUSHBUTTON "Help",IDC_HELPMAIN,166,46,50,14
- GROUPBOX "",IDC_WORLD,7,7,15,17,NOT WS_VISIBLE
-END
-
-IDD_ACTIVITYLOG DIALOG DISCARDABLE 0, 0, 256, 133
-STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "AFS Activity Log"
-FONT 8, "MS Sans Serif"
-BEGIN
- EDITTEXT IDC_EDIT,7,7,242,119,ES_MULTILINE | ES_AUTOVSCROLL |
- ES_READONLY | ES_WANTRETURN | WS_VSCROLL | NOT
- WS_TABSTOP
-END
-
-IDD_AFSCHANGE DIALOG DISCARDABLE 0, 0, 302, 147
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "AFS - Add/Change"
-FONT 8, "MS Sans Serif"
-BEGIN
- LTEXT "Drive",IDC_STATIC,21,49,22,8
- LTEXT "You can map drive letters on your computer to directory paths in AFS.",
- IDC_STATIC,12,7,283,8
- LTEXT "For instance, if you map drive Q as /afs/acme.com/usr/bob, then the files available in AFS as /afs/acme.com/usr/bob/* will be visible in your computer's Q:\\ directory.",
- IDC_STATIC,12,19,283,16
- LTEXT "AFS &Path:",IDC_STATIC,22,67,33,8
- EDITTEXT IDC_PATH,70,65,168,13,ES_AUTOHSCROLL
- LTEXT "Share Name",IDC_STATIC,22,86,38,8
- EDITTEXT IDC_DESCRIPTION,70,84,72,13,ES_AUTOHSCROLL
- CONTROL "&Connect Drive Letter Map Point when AFS is Connected.",
- IDC_PERSISTENT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,49,
- 102,185,10
- PUSHBUTTON "Cancel",IDCANCEL,245,122,50,14
- PUSHBUTTON "OK",IDOK,179,123,58,14
- COMBOBOX IDC_DRIVE,70,47,35,58,CBS_DROPDOWNLIST | CBS_SORT |
- CBS_UPPERCASE | WS_VSCROLL | WS_TABSTOP
- LTEXT "* Drive is currently active",IDC_STATIC,114,50,91,8
- PUSHBUTTON "Help",IDC_HELPMAIN,245,102,50,14
-END
-
-IDD_DIALOGTERM DIALOG DISCARDABLE 0, 0, 189, 62
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION
-CAPTION "AFS File Service - Warning"
-FONT 8, "MS Sans Serif"
-BEGIN
- CTEXT "Previous AFS service was not properly terminated.\nClean up in progress\nPlease Wait.",
- IDC_STATIC,7,17,175,36
-END
-
-IDD_DIALOGFORCE DIALOG DISCARDABLE 0, 0, 216, 110
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "AFS File Service"
-FONT 8, "MS Sans Serif"
-BEGIN
- DEFPUSHBUTTON "Force",IDOK,7,89,50,14
- PUSHBUTTON "Cancel",IDCANCEL,159,89,50,14
- CTEXT "Static",IDC_STATICMSG,7,13,202,23,SS_CENTERIMAGE
- LTEXT "You may select 'Force' to disconnect the drive or select 'Cancel' to bypass the operation.\n\n If you select 'Force', you risk loosing data on any open file located on the connected Drive Letter.",
- IDC_STATIC,7,42,202,44
-END
-
-IDD_DIALOGRETRY DIALOG DISCARDABLE 0, 0, 198, 116
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "Dialog"
-FONT 8, "MS Sans Serif"
-BEGIN
- DEFPUSHBUTTON "Retry",IDOK,7,95,50,14
- PUSHBUTTON "Cancel",IDCANCEL,73,95,50,14
- CTEXT "Static",IDC_STATICMSG,7,13,181,23,SS_CENTERIMAGE
- LTEXT "You should shut down any applications that are using the Mapped Drive Letter and then press Retry. Or press Cancel to the skip the disconnect.\n\nYou can Force disconnect; however, you may risk losing file data on any open file.",
- IDC_STATICOPTIONS,7,37,181,52
- PUSHBUTTON "Force",IDC_FORCE,141,95,50,14
-END
-
-IDD_PROGBAR_DIALOG DIALOG DISCARDABLE 0, 0, 179, 70
-STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP
-FONT 8, "MS Sans Serif"
-BEGIN
- RTEXT "backgroung time",IDC_TIMEBACKGROUND,6,14,36,8,NOT
- WS_GROUP
- RTEXT "Authtime",IDC_TIMEAUTHENICATION,6,28,36,8,NOT WS_GROUP
- RTEXT "mounttime",IDC_TIMEMOUNT,6,44,36,8,NOT WS_GROUP
- CTEXT "",IDC_COMPLETE_AUTH,45,29,12,8,NOT WS_VISIBLE |
- WS_BORDER
- CTEXT "",IDC_COMPLETE_ENABLE,45,15,12,8,NOT WS_VISIBLE |
- WS_BORDER
- CTEXT "",IDC_COMPLETE_MOUNT,45,44,12,8,NOT WS_VISIBLE |
- WS_BORDER
- GROUPBOX "",IDC_STATUSREGION,44,7,16,51,NOT WS_VISIBLE
- LTEXT "Enable AFS Client Console",IDC_CHECKBACKGROUND,61,15,
- 111,8
- LTEXT "Authenication",IDC_CHECKAUTHENICATION,61,29,111,8
- LTEXT "Connect Drive Letter Map Points",IDC_CHECKMOUNT,61,43,
- 111,12
-END
-
-IDD_MENUSETTINGS DIALOG DISCARDABLE 0, 0, 269, 104
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION
-CAPTION "AFS Settings"
-FONT 8, "MS Sans Serif"
-BEGIN
- DEFPUSHBUTTON "OK",IDOK,212,83,50,14
- LTEXT "Advanced System Menus are enabled.\nRight click System Menu located on the Title bar of the main dialog box.\n\nFrom this menu you capture AFS events to a window or to a file (AFSCLI.LOG).\nYou can also choose to view the (DOS based) AFS Client Console.",
- IDC_STATIC,7,14,255,40
- LTEXT "Do not attempt to log off windows (or reboot) while the AFS Client Console visable!",
- IDC_STATIC,7,61,255,22
-END
-
-IDD_SETTINGS DIALOGEX 0, 0, 187, 161
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "AFS Option Settings"
-FONT 8, "MS Sans Serif", 0, 0, 0x1
-BEGIN
- DEFPUSHBUTTON "Accept",IDOK,130,7,50,14
- PUSHBUTTON "Cancel",IDCANCEL,130,24,50,14
- CONTROL "Log to File",IDC_LOGTOFILE,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,17,24,47,10
- CTEXT "Command Line Loading Options",IDC_STATIC,7,7,116,14,
- SS_CENTERIMAGE
- CONTROL "Log to Window",IDC_LOGTOWINDOW,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,17,36,60,10
- CONTROL "Connect on Start",IDC_CONNECTONSTART,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,17,48,65,10
- EDITTEXT IDC_USERNAME,47,65,51,14,ES_READONLY | NOT WS_BORDER |
- NOT WS_TABSTOP,WS_EX_STATICEDGE
- RTEXT "Username:",IDC_STATIC,7,65,39,8
- PUSHBUTTON "Help",IDH_SETTINGS,130,43,50,14
- EDITTEXT IDC_MAXLOGINTIME,148,98,31,14,ES_AUTOHSCROLL | ES_NUMBER
- RTEXT "Max Time - Enable Client Console (Sec.)",IDC_STATIC,19,
- 99,127,11,0,0,HIDC_STATIC
- EDITTEXT IDC_POWERRESTARTDELAY,149,116,31,14,ES_AUTOHSCROLL |
- ES_NUMBER
- RTEXT "Power Restart Delay (Sec.)",IDC_STATIC,62,118,84,8,0,0,
- HIDC_STATIC
- GROUPBOX "",IDC_OPTIONLINE,7,81,173,9,NOT WS_VISIBLE
- CONTROL "Advanced Settings",IDC_CHECKADVANCED,"Button",
- BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,107,66,73,10
-END
-
-
-#ifndef _MAC
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,0,0,1
- PRODUCTVERSION 1,0,4,0
- FILEFLAGSMASK 0x3fL
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x1L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904b0"
- BEGIN
- VALUE "Comments", "\0"
- VALUE "CompanyName", "\0"
- VALUE "FileDescription", "WinAfsLoad MFC Application\0"
- VALUE "FileVersion", "1, 0, 0, 1\0"
- VALUE "InternalName", "WinAfsLoad\0"
- VALUE "LegalCopyright", "Copyright (C) 2000\0"
- VALUE "LegalTrademarks", "\0"
- VALUE "OriginalFilename", "WinAfsLoad.EXE\0"
- VALUE "PrivateBuild", "\0"
- VALUE "ProductName", "WinAfsLoad Application\0"
- VALUE "ProductVersion", AFSPRODUCT_VERSION,"\0"
- VALUE "SpecialBuild", "\0"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1200
- END
-END
-
-#endif // !_MAC
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO DISCARDABLE
-BEGIN
- IDD_ABOUTBOX, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 228
- TOPMARGIN, 7
- BOTTOMMARGIN, 48
- END
-
- IDD_WINAFSLOAD_DIALOG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 273
- TOPMARGIN, 7
- BOTTOMMARGIN, 208
- END
-
- IDD_ACTIVITYLOG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 249
- TOPMARGIN, 7
- BOTTOMMARGIN, 126
- END
-
- IDD_AFSCHANGE, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 295
- TOPMARGIN, 7
- BOTTOMMARGIN, 140
- END
-
- IDD_DIALOGTERM, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 182
- TOPMARGIN, 7
- BOTTOMMARGIN, 55
- END
-
- IDD_DIALOGFORCE, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 209
- TOPMARGIN, 7
- BOTTOMMARGIN, 103
- END
-
- IDD_DIALOGRETRY, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 191
- TOPMARGIN, 7
- BOTTOMMARGIN, 109
- END
-
- IDD_PROGBAR_DIALOG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 172
- TOPMARGIN, 7
- BOTTOMMARGIN, 63
- END
-
- IDD_MENUSETTINGS, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 262
- TOPMARGIN, 7
- BOTTOMMARGIN, 97
- END
-
- IDD_SETTINGS, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 180
- TOPMARGIN, 7
- BOTTOMMARGIN, 154
- END
-END
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Menu
-//
-
-IDR_TRAYICON MENU DISCARDABLE
-BEGIN
- POPUP "&Tray"
- BEGIN
- MENUITEM "&Open", IDM_APP_OPEN
- MENUITEM "&Connect", IDC_CONNECT
- MENUITEM "Settings", IDC_SETTINGS
- MENUITEM "Exit", IDC_CANCEL
- END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Accelerator
-//
-
-IDR_ACCELERATOR1 ACCELERATORS DISCARDABLE
-BEGIN
- "S", IDC_SHOWBACK, VIRTKEY, ALT, NOINVERT
- VK_RETURN, IDC_CONNECT, VIRTKEY, NOINVERT
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-IDR_MAINFRAME ICON DISCARDABLE "res\\WinAfsLoad.ico"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Bitmap
-//
-
-IDB_WORLD BITMAP DISCARDABLE "res\\world.bmp"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE DISCARDABLE
-BEGIN
- IDS_ABOUTBOX "&About WinAFSLoad..."
- IDP_SOCKETS_INIT_FAILED "Windows sockets initialization failed."
-END
-
-STRINGTABLE DISCARDABLE
-BEGIN
- IDR_MAINFRAME "AFS Control Panel"
- IDR_TRAYICON "AFS Control Panel"
-END
-
-STRINGTABLE DISCARDABLE
-BEGIN
- IDC_CONNECT "Click to Connect/Disconnect AFS Client"
- IDC_CANCEL "Click to exit (terminate) application."
- IDS_HIDE "Click to shrink view into a System Tray Icon. Hint right click icon to view."
-END
-
-STRINGTABLE DISCARDABLE
-BEGIN
- IDC_DRIVEMOUNTLIST "Click Check box to Connect or Disconnect. Highlight to Change or Remove."
- IDC_SETTINGS "Click to change load and log options."
- IDC_CHECKADVANCED "Click to show AFS Drive Letter Map Points."
- IDC_USERNAME "Enter Username"
- IDC_PASSWORD "Enter Password"
- IDC_SAVEUSERNAME "Click to remember password on connect or when you choose exit."
- IDC_SHOWLOG "Click to show the AFS Client Console."
- IDC_ADD "Click to add a new AFS Drive Letter Map Point."
- IDC_CHANGE "Click to change a highlighted Drive Letter Cell Map Point"
- IDC_REMOVE "Click to remove all highlighted Drive Letter Map Points"
- IDS_DISCONNECT "Click to Disconnect AFS Client (Disconnect all AFS Drive Letter Maps)"
- IDS_HIDEADVANCE "Click to hide AFS Drive Letter Map Points."
-END
-
-STRINGTABLE DISCARDABLE
-BEGIN
- IDS_HIDELOG "Click to hide the AFS Client Console."
- IDS_FORGETUSERNAME "Click to forget password on connect or when you choose exit."
- IDC_AUTH "Click to re-authenicate (reset expiratoin token)."
- IDC_SHOWBACK "Use Alt+S to show background"
-END
-
-STRINGTABLE DISCARDABLE
-BEGIN
- IDM_VIEWAFS "View AFS Client (toggle)"
- IDH_ADD "HELP ADD"
- IDH_CHANGE "Help Change"
- IDH_MAIN "Help Main"
-END
-
-STRINGTABLE DISCARDABLE
-BEGIN
- IDM_CLEAR "Clear Window"
-END
-
-STRINGTABLE DISCARDABLE
-BEGIN
- IDM_CAPTUREWINDOW "Capture Events to windows"
-END
-
-STRINGTABLE DISCARDABLE
-BEGIN
- IDM_CAPTUREFILE "Capture Events to file (AFSCLI.LOG)"
-END
-
-STRINGTABLE DISCARDABLE
-BEGIN
- IDM_EXPLORERAFS "Explorer AFS Menu."
-END
-
-#endif // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-#define _AFX_NO_SPLITTER_RESOURCES
-#define _AFX_NO_OLE_RESOURCES
-#define _AFX_NO_TRACKER_RESOURCES
-#define _AFX_NO_PROPERTY_RESOURCES
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE 9, 1
-#pragma code_page(1252)
-#endif //_WIN32
-#include "afxres.rc" // Standard components
-//#include "res\WinAfsLoad.rc2" // non-Microsoft Visual C++ edited resources
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
+++ /dev/null
-// WinAfsLoadDlg.cpp : implementation file
-//
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-
-#include "stdafx.h"
-#include "WinAfsLoad.h"
-#include "WinAfsLoadDlg.h"
-#include "modver.h"
-#include "encript.h"
-#include <winreg.h>
-#include "change.h"
-#include "cregkey.h"
-#include "force.h"
-#include "retry.h"
-#include <Lmcons.h>
-#include "settings.h"
-#include "afsmsg95.h"
-#include "ProgBarDlg.h"
-#include "MyFrame.h"
-#include "commandsettings.h"
-//#include <process.h>
-
-#define PASSWORDSIZE 32
-#define USERNAMESIZE 32
-#define SHARENAMESIZE 12
-#define MAXSHARES 10
-#define DRIVESIZE 3
-#define AUTOSIZE 1
-#define ITEMCHECKED 0x2000 //CONTROL List defined for checked and not checked condition
-#define ITEMNOTCHECKED 0x1000
-#define TIMEINTERVAL 200
-#define CHECKDIR 2500 //NUMBER CYCLE before checking directory for changes (2.5 seconds)
-#define MAXWORLDINDEX 25 //Number of frames (-1) in the whirling world
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-
-/////////////////////////////////////////////////////////////////////////////
-// CAboutDlg dialog used for App About
-
-class CAboutDlg : public CDialog
-{
-public:
- CAboutDlg();
-
-// Dialog Data
- //{{AFX_DATA(CAboutDlg)
- enum { IDD = IDD_ABOUTBOX };
- CString m_sVersion;
- //}}AFX_DATA
-
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CAboutDlg)
- protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
- //}}AFX_VIRTUAL
-
-// Implementation
-protected:
- //{{AFX_MSG(CAboutDlg)
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
-};
-
-CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
-{
- //{{AFX_DATA_INIT(CAboutDlg)
- m_sVersion = _T("");
- //}}AFX_DATA_INIT
-}
-
-void CAboutDlg::DoDataExchange(CDataExchange* pDX)
-{
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CAboutDlg)
- DDX_Text(pDX, IDC_STATICABOUT, m_sVersion);
- //}}AFX_DATA_MAP
-}
-
-BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
- //{{AFX_MSG_MAP(CAboutDlg)
- // No message handlers
- //}}AFX_MSG_MAP
-END_MESSAGE_MAP()
-
-
-class CCancel
-{
- BOOL *m_pPtr;
- BOOL m_bVal;
-public:
- CCancel(BOOL &sav,BOOL val){m_pPtr=&sav;m_bVal=val;}
- ~CCancel(){
- *m_pPtr=m_bVal;
- }
-};
-
-/////////////////////////////////////////////////////////////////////////////
-// CWinAfsLoadDlg dialog
-
-CWinAfsLoadDlg::CWinAfsLoadDlg(const char *user,const char *pass,CWnd* pParent /*=NULL*/)
- : CDialog(CWinAfsLoadDlg::IDD, pParent), m_trayIcon(WM_MY_TRAY_NOTIFICATION,IDR_MAINFRAME,IDR_TRAYICON)
-{
- //{{AFX_DATA_INIT(CWinAfsLoadDlg)
- m_sPassword = _T("");
- m_sUsername = _T("");
- m_sMountDisplay = _T("");
- //}}AFX_DATA_INIT
- // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
- if (user)
- m_sUsername=user;
- if (pass)
- m_sPassword=pass;
- m_bConnect=CWINAFSLOADAPP->m_bConnect;
- m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
- m_pImagelist=NULL;
- m_iActiveItem=-1; //used in MountList to indicate which item is clicked on
- m_nAutTimer=m_nDirTimer=0;
- m_pEncript=NULL;
- m_PowerResumeDelay=-1;
-// m_PowerDelay=0;
-}
-
-void CWinAfsLoadDlg::DoDataExchange(CDataExchange* pDX)
-{
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CWinAfsLoadDlg)
- DDX_Control(pDX, IDC_WORLD, m_cWorld);
- DDX_Control(pDX, IDC_AUTHWARN, m_cAuthWarn);
- DDX_Control(pDX, IDC_AUTH, m_cAuthenicate);
- DDX_Control(pDX, IDC_SAVEUSERNAME, m_cSaveUsername);
- DDX_Control(pDX, IDC_DRIVEMOUNTLIST, m_cMountlist);
- DDX_Control(pDX, IDC_CHANGE, m_cChange);
- DDX_Control(pDX, IDC_REMOVE, m_cRemove);
- DDX_Control(pDX, IDC_OPTIONLINE, m_cOptionLine);
- DDX_Control(pDX, IDC_CHECKADVANCED, m_cCheckAdvanceDisplay);
- DDX_Control(pDX, IDC_CONNECT, m_cConnect);
- DDX_Control(pDX, IDC_CANCEL, m_cCancel);
- DDX_Control(pDX, IDC_PASSWORD, m_cPassword);
- DDX_Control(pDX, IDC_USERNAME, m_cUsername);
- DDX_Text(pDX, IDC_PASSWORD, m_sPassword);
- DDV_MaxChars(pDX, m_sPassword, 32);
- DDX_Text(pDX, IDC_USERNAME, m_sUsername);
- DDV_MaxChars(pDX, m_sUsername, 32);
- DDX_Text(pDX, IDC_MOUNTDISPLAY, m_sMountDisplay);
- //}}AFX_DATA_MAP
-}
-
-BEGIN_MESSAGE_MAP(CWinAfsLoadDlg, CDialog)
- //{{AFX_MSG_MAP(CWinAfsLoadDlg)
- ON_WM_SYSCOMMAND()
- ON_WM_PAINT()
- ON_BN_CLICKED(IDC_CONNECT, OnConnect)
- ON_BN_CLICKED(IDC_CHECKADVANCED, OnCheckadvanced)
- ON_COMMAND(IDM_APP_OPEN, OnAppOpen)
- ON_BN_CLICKED(IDC_CHANGE, OnChange)
- ON_BN_CLICKED(IDC_ADD, OnAdd)
- ON_BN_CLICKED(IDC_REMOVE, OnRemove)
- ON_NOTIFY(NM_CLICK, IDC_DRIVEMOUNTLIST, OnClickDrivemountlist)
- ON_NOTIFY(LVN_ITEMCHANGED, IDC_DRIVEMOUNTLIST, OnItemchangedDrivemountlist)
- ON_WM_QUERYENDSESSION()
- ON_WM_TIMER()
- ON_BN_CLICKED(IDC_AUTH, OnAuthenicate)
- ON_WM_DESTROY()
- ON_WM_CTLCOLOR()
- ON_COMMAND(IDC_SHOWBACK, OnShow)
- ON_WM_HELPINFO()
- ON_BN_CLICKED(IDC_HELPMAIN, OnHelpmain)
- ON_BN_CLICKED(IDC_SETTINGS, OnSettings)
- ON_BN_CLICKED(IDC_CANCEL, OnCancel)
- ON_WM_SYSCOMMAND()
- //}}AFX_MSG_MAP
- ON_BN_CLICKED(IDM_EXPLORERAFS, OnTrayButton0)
- ON_BN_CLICKED(IDM_EXPLORERAFS+16, OnTrayButton1)
- ON_BN_CLICKED(IDM_EXPLORERAFS+32, OnTrayButton2)
- ON_BN_CLICKED(IDM_EXPLORERAFS+48, OnTrayButton3)
- ON_BN_CLICKED(IDM_EXPLORERAFS+64, OnTrayButton4)
- ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipNotify )
- ON_MESSAGE(WM_POWERBROADCAST,OnPowerBroadcast)
- ON_MESSAGE(WM_ERRORMSG,OnErrorMessage)
-END_MESSAGE_MAP()
-
-/////////////////////////////////////////////////////////////////////////////
-// CWinAfsLoadDlg message handlers
-
-
-BOOL CWinAfsLoadDlg::OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult )
-{
- TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
- UINT nID =pNMHDR->idFrom;
- if (pTTT->uFlags & TTF_IDISHWND)
- {
- // idFrom is actually the HWND of the tool
- nID = ::GetDlgCtrlID((HWND)nID);
- switch (nID)
- {
- case IDC_CHECKADVANCED:
- if (m_cCheckAdvanceDisplay.GetCheck())
- pTTT->lpszText = MAKEINTRESOURCE(IDS_HIDEADVANCE);
- else
- pTTT->lpszText = MAKEINTRESOURCE(nID);
- pTTT->hinst = AfxGetResourceHandle();
- return(TRUE);
-
- case IDC_SAVEUSERNAME:
- if (m_cSaveUsername.GetCheck())
- pTTT->lpszText = MAKEINTRESOURCE(IDS_FORGETUSERNAME);
- else
- pTTT->lpszText = MAKEINTRESOURCE(nID);
- pTTT->hinst = AfxGetResourceHandle();
- return(TRUE);
- case IDC_CANCEL:
- if (m_bServiceIsActive)
- pTTT->lpszText = MAKEINTRESOURCE(IDS_HIDE);
- else
- pTTT->lpszText = MAKEINTRESOURCE(nID);
- pTTT->hinst = AfxGetResourceHandle();
- return(TRUE);
- case IDC_CONNECT:
- if (m_bServiceIsActive)
- pTTT->lpszText = MAKEINTRESOURCE(IDS_DISCONNECT);
- else
- pTTT->lpszText = MAKEINTRESOURCE(nID);
- pTTT->hinst = AfxGetResourceHandle();
- return(TRUE);
- default:
- pTTT->lpszText = MAKEINTRESOURCE(nID);
- pTTT->hinst = AfxGetResourceHandle();
- return(TRUE);
- case 0:
- break;
- }
- }
- return(FALSE);
-}
-
-BOOL CWinAfsLoadDlg::PreTranslateMessage(MSG* pMsg)
-{
- // TODO: Add your specialized code here and/or call the base class
- // get the accelerator table to work, i.e. press <enter> is same as IDC_CONNECT
- if (m_hAccelTable)
- {
- if (::TranslateAccelerator(m_hWnd, m_hAccelTable, pMsg))
- return(TRUE);
- }
- return CDialog::PreTranslateMessage(pMsg);
-}
-
-BOOL CWinAfsLoadDlg::OnInitDialog()
-{
- DWORD rc;
- char compName[129];
- CString msg;
- CDialog::OnInitDialog();
- // Add "About..." menu item to system menu.
-
- // IDM_ABOUTBOX must be in the system command range.
- ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
- ASSERT(IDM_ABOUTBOX < 0xF000);
-
- CMenu* pSysMenu = GetSystemMenu(FALSE);
- if (pSysMenu != NULL)
- {
- CString strMenu;
- strMenu.LoadString(IDS_ABOUTBOX);
- ASSERT(!strMenu.IsEmpty());
- pSysMenu->AppendMenu(MF_SEPARATOR);
- pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strMenu);
- }
- if (CWINAFSLOADAPP->m_bShowAfs)
- OnShowAddMenus();
- // Set the icon for this dialog. The framework does this automatically
- // when the application's main window is not a dialog
- SetIcon(m_hIcon, TRUE); // Set big icon
- SetIcon(m_hIcon, FALSE); // Set small icon
- // TODO: Add extra initialization here
-
- m_hAccelTable = LoadAccelerators(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_ACCELERATOR1));
-
-// bind to socket's DLL
-
- DWORD uStatus;
- WSADATA WSAData;
- if ((uStatus = WSAStartup(MAKEWORD(1,1), &WSAData)) == 0) {
- LOG("AFS:Startup%s",WSAData.szDescription);
- } else {
- msg.Format("AFS Error - Cannot find socket.dll status=0x%0x", uStatus);
- AfxMessageBox(msg,MB_OK);
- SendMessage(WM_CLOSE,0,0);
- LOG("WM_CLOSE3");
- return FALSE;
- }
-
- // We need to make sure the DLL's support the features provided by the CListCtrl common control
- // That is they must be later than 4.71
-
-// ver.GetFileVersionInfo("comctl32.dll",vernum); //use this form if Win95???
-
- DWORD vernum;
- DLLVERSIONINFO dvi;
- CModuleVersion ver;
- if (!ver.DllGetVersion("comctl32.dll", dvi,vernum))
- ver.GetFileVersionInfo("comctl32.dll",vernum);
- LOG("comctl32 %d.%d",(vernum>>16) & 0xff,vernum & 0xff);
- if(vernum< PACKVERSION(4,70))
- {
- msg.Format("Current Version %d.%d, Recommend at least version 4.70 for COMCTL32.dll, (Install, 401COMUPD.EXE or Internet Explorer 4.01 SP2 or better)",HIWORD(vernum),LOWORD(vernum));
- MessageBox(msg, "AFS DLL Version Warning", MB_OK);
- m_cCheckAdvanceDisplay.ModifyStyle(0,WS_DISABLED);
- } else {
- if (!ver.DllGetVersion("Shell32.dll", dvi,vernum))
- ver.GetFileVersionInfo("Shell32.dll",vernum);
- LOG("Shell32 %d.%d",(vernum>>16) & 0xff,vernum & 0xff);
- if(vernum< PACKVERSION(4,00))
- {
- msg.Format("Current Version %d.%d, Recommend at least version 4.00 for SHELL32.dll, (Install Internet Explorer 4.01 SP2 or better)",HIWORD(vernum),LOWORD(vernum));
- MessageBox(msg, "AFS DLL Version Warning", MB_OK);
- m_cCheckAdvanceDisplay.ModifyStyle(0,WS_DISABLED);
- }
- }
- if (!ver.DllGetVersion("ADVAPI32.dll", dvi,vernum))
- ver.GetFileVersionInfo("ADVAPI32.dll",vernum);
- LOG("ADVAPI32 %d.%d",(vernum>>16) & 0xff,vernum & 0xff);
- m_pEncript = (CEncript *)new CEncript(this);
-
-
- // initiallze AFS and setup Progress display
- if (!m_cAfs.Init(this,msg))
- HandleError(msg);
-
- m_trayIcon.AddIcon(this);
- EnableToolTips(TRUE);
-
- m_bServiceIsActive=FALSE;
- // Obtain Version String
- CRegkey key(HKEY_LOCAL_MACHINE,"Software\\Open AFS\\AFS Control Center","CurrentVersion");
- key.GetString("VersionString",m_VersionString,128);
- msg.Format("%s %s",AFSTITLE,m_VersionString);
- SetWindowText(msg);
-
- UpdateData(TRUE);
-
- rc = 128; GetComputerName(compName, &rc);
- m_sComputername=compName;
- m_sMountDisplay.Format("Connected Drives on Computer:%s",compName);
- m_sUsername="";
- CRect rect;
- GetWindowRect(&m_OriginalRect);
- m_cOptionLine.GetWindowRect(&rect);
- m_DialogShrink=rect.top-m_OriginalRect.top+5; //make it above the edit box
- SetWindowPos(&wndTop,0,0,m_OriginalRect.right-m_OriginalRect.left,m_DialogShrink,SWP_NOMOVE|SWP_NOZORDER);
- // Pull registration information out
- CRegkey regkey("AFS\\Window");
- UINT logintime=0;
- DWORD size=sizeof(m_PowerResumeDelay);
- regkey.GetBinary("PowerResumeDelay",(LPBYTE)&m_PowerResumeDelay,size);
- if (m_PowerResumeDelay<=0) {
- m_PowerResumeDelay=20; //seconds
- regkey.PutBinary("PowerResumeDelay",(LPBYTE)&m_PowerResumeDelay,size);
- }
- CHAR pLoginName[UNLEN + 1];
- size=UNLEN;
- if (CWINAFSLOADAPP->m_bNoID)
- {
- CWnd *w=GetDlgItem(IDC_USERNAME);
- w->EnableWindow(FALSE);
- w=GetDlgItem(IDC_PASSWORD);
- w->EnableWindow(FALSE);
- w=GetDlgItem(IDC_SAVEUSERNAME);
- w->EnableWindow(FALSE);
- } else {
- if (GetUserName(pLoginName,&size))
- {
- m_sLoginName=pLoginName;
- } else
- m_sLoginName="Bozo";
- CString sUser,sPass;
- RegPassword(sUser,sPass,TRUE);
- if (m_sUsername=="")
- {
- m_sUsername=sUser;
- }
- if ((m_sUsername=="") && (m_sLoginName!="Bozo"))
- {
- m_sUsername=m_sLoginName;
- }
- if ((m_sPassword=="") || (m_sPassword.IsEmpty()))
- {
- m_sPassword=sPass;
- }
- if (m_sPassword.IsEmpty())
- {
- m_cSaveUsername.SetCheck(FALSE);
- RegLastUser(m_sUsername,TRUE);
- } else
- m_cSaveUsername.SetCheck(TRUE);
- }
- // Initialize mount control list
-
- m_pImagelist = new CImageList();
- ASSERT(m_pImagelist != NULL); // serious allocation failure checking
- m_pImagelist->Create(16, 16, 0, 2, 2);
- m_cMountlist.SetImageList(m_pImagelist, LVSIL_SMALL);
-
- m_cMountlist.GetWindowRect(&rect);
- {// don't particullary want to keep the DC around
- CClientDC dc(this);
- CSize cSize=dc.GetTextExtent("*",1);
- CSize dSize=dc.GetTextExtent("XXXXXXXXXXX",12);
- cSize.cx+=10;
- int r=rect.Width()-cSize.cx-dSize.cx;
-#define COLDRIVE 0
- m_cMountlist.InsertColumn(COLDRIVE, "Drive", LVCFMT_LEFT,
- r * 1/5, 0);
-#define COLPATH 1
- m_cMountlist.InsertColumn(COLPATH, "Afs Path", LVCFMT_LEFT,
- r * 4/5, 1);
-#define COLAUTO 2
- m_cMountlist.InsertColumn(COLAUTO, "*", LVCFMT_CENTER,
- cSize.cx, 1);
-#define COLSHARE 3
-#define NUMCOL 4
- m_cMountlist.InsertColumn(COLSHARE, "Share Name", LVCFMT_LEFT,
- dSize.cx, 1);
- m_cMountlist.SetExtendedStyle(m_cMountlist.GetExtendedStyle() | LVS_EX_FULLROWSELECT|LVS_EX_CHECKBOXES );
- }
- ProfileData(FALSE);
- UpdateData(FALSE);
- DismountAll(msg,3);
- BuildDriveList(TRUE);
- m_seqIndex=0;
- m_seqCount=0; //set up sequence timer for moving world
- m_nShown=0;
- m_cAuthWarn.ShowWindow(SW_HIDE);
- m_bkBrush.CreateSolidBrush(RGB(255,255,0));
-
-// WHIRLING world display
- m_cWorld.SetWindowPos(NULL,0,0,42,42,SWP_NOMOVE|SWP_NOZORDER);
- m_cWorld.GetWindowRect(&m_WorldRect);
- ScreenToClient(&m_WorldRect);
- VERIFY( m_bmpWorld.LoadBitmap( IDB_WORLD ) );
-
- m_seqCount=0;
- m_seqIndex=0;
- m_dirCount=0;
- m_nDirTimer=SetTimer(WM_DIRTIMER,TIMEINTERVAL,0);
-#ifdef _DEBUG
- m_nAutTimer=SetTimer(WM_AUTTIMER,10000,0);
-#else
- m_nAutTimer=SetTimer(WM_AUTTIMER,60000,0);
-#endif
- m_bRestartAFSD=FALSE;
- m_OSVersion.dwOSVersionInfoSize=sizeof(m_OSVersion);
- GetVersionEx(&m_OSVersion); //get OS type & version
- if (m_bConnect)
- PostMessage(WM_COMMAND,IDC_CONNECT,0);
- else
- GotoDlgCtrl(&m_cConnect);
- return FALSE;
- // return TRUE unless you set the focus to a control
-} // end OnInitDialog
-
-BOOL CWinAfsLoadDlg::RegPassword(CString &user,CString &pass,BOOL fetch)
-{
- DWORD len;
- char *pBuffer;
- CString sKey;
- sKey.Format("AFS\\Security\\%s",m_sLoginName);
- CRegkey regkey(sKey);
- if (regkey.Getkey()==0) return FALSE;
- if (fetch)
- {
- regkey.GetString("UserName",user,USERNAMESIZE);
- if (user.IsEmpty()||(user==""))
- {
- return TRUE;
- }
- len=PASSWORDSIZE;
- pBuffer=new char[(int)len+1];
- regkey.GetBinary("Password",(LPBYTE)pBuffer,len);
- if (len==0)
- return TRUE;
- if (m_pEncript)
- m_pEncript->Encript(m_sComputername,m_sLoginName,user
- ,(UCHAR *)pBuffer,len,FALSE);
- pBuffer[(int)len]=0;
- pass=pBuffer;
- delete(pBuffer);
- } else {
- if (user.IsEmpty()||pass.IsEmpty()) {
- regkey.PutString("UserName",user);
- regkey.PutBinary("Password",NULL,0);
- return TRUE;
- }
- if (regkey.PutString("UserName",user))
- {
- len=pass.GetLength();
- pBuffer=new char[(int)len+1];
- strcpy(pBuffer,pass);
- if (m_pEncript)
- m_pEncript->Encript(m_sComputername,m_sLoginName,user
- ,(UCHAR *)pBuffer,len,TRUE);
- else
- len=strlen(pBuffer);
- regkey.PutBinary("Password",(LPBYTE)pBuffer,len);
- delete(pBuffer);
- }
- }
- return TRUE;
-}
-
-BOOL CWinAfsLoadDlg::RegLastUser(CString &user,BOOL fetch)
-{
- CString sKey;
- sKey.Format("AFS\\Security\\%s",m_sLoginName);
- CRegkey regkey(sKey);
- if (regkey.Getkey()==0) return FALSE;
- if (fetch)
- {
- regkey.GetString("LastUser",user,USERNAMESIZE);
- return TRUE;
- }
- return (regkey.PutString("LastUser",user));
-}
-
-// MOdify the system menu
-/// need to add items to Icon Menu also
-/// check out sc_close for close postion rather than depend on fixed position
-/// Need to add Menu Item aphbetical to drive letter
-
-#define NUMOFMENUDRIVES 5
-#define INSERTPOSITION 6
-
-void CWinAfsLoadDlg::AddMenu(const char *sDrive,const char *share)
-{
- CMenu* pSysMenu = GetSystemMenu(FALSE);
- if (pSysMenu == NULL) return;
- CString msg;
- msg.Format("%s %s",sDrive,share);
- UINT id=pSysMenu->GetMenuItemID(INSERTPOSITION); //insert before About Menu Item
- if (id==IDM_EXPLORERAFS)
- {
- char lpString[3];
-// limit number of drives added to is NUMOFDRIVES
- int i=INSERTPOSITION;
- do {
- int len=pSysMenu->GetMenuString(i,lpString,2,MF_BYPOSITION);
- if (*sDrive==*lpString) return;
- UINT nID=pSysMenu->GetMenuItemID(++i);
- if ((nID<IDM_EXPLORERAFS) || (nID>IDM_EXPLORERAFS+16*(NUMOFMENUDRIVES-1)))//NOT a Drive ITEM
- {
- pSysMenu->InsertMenu(i,MF_BYPOSITION,IDM_EXPLORERAFS+16*(i-INSERTPOSITION),msg);
- MENUBLOCK blk(IDM_EXPLORERAFS+16*(i-INSERTPOSITION),msg);
- m_trayIcon.AddDrive(blk);
- return;
- }
- } while (i<INSERTPOSITION+NUMOFMENUDRIVES-1);
- } else {
- id=IDM_ABOUTBOX;
- MENUBLOCK blk(IDM_EXPLORERAFS,msg);
- m_trayIcon.AddDrive(blk);
- if (!pSysMenu->InsertMenu(INSERTPOSITION,MF_BYPOSITION,MF_SEPARATOR)) return;
- if (!pSysMenu->InsertMenu(INSERTPOSITION,MF_BYPOSITION,IDM_EXPLORERAFS,msg)) return;
- }
- return;
-}
-
-void CWinAfsLoadDlg::RemoveMenu(const char *sDrive)
-{
- CMenu* pSysMenu = GetSystemMenu(FALSE);
- if (pSysMenu == NULL) return;
- UINT nID=pSysMenu->GetMenuItemID(INSERTPOSITION);
- if ((nID<IDM_EXPLORERAFS)||(nID>IDM_EXPLORERAFS+16*NUMOFMENUDRIVES)) return;
- char lpString[3];
- for (int i=INSERTPOSITION;i<=INSERTPOSITION+NUMOFMENUDRIVES-1;i++)
- {
- int len=pSysMenu->GetMenuString(i,lpString,2,MF_BYPOSITION);
- if (*sDrive==*lpString)
- {
- MENUBLOCK blk;
- blk.title=sDrive;
- blk.mID=pSysMenu->GetMenuItemID(i);
- m_trayIcon.RemoveDrive(blk);
- if (!pSysMenu->RemoveMenu(i,MF_BYPOSITION )) return;
- if ((i==INSERTPOSITION)&& (pSysMenu->GetMenuItemID(i)==MF_SEPARATOR))
- pSysMenu->RemoveMenu(i,MF_BYPOSITION);
- return;
- }
- }
-/// scan rest of list to see if you need to add a drive
- return;
-}
-void CWinAfsLoadDlg::OnSysCommand(UINT nID, LPARAM lParam)
-{
- switch (nID & 0xFFF0)
- {
- case IDM_VIEWAFS:
- {
- HWND hwnd=m_cAfs.GetLoadWindowHandle();
- if (hwnd==NULL) break;
- UINT show=(::IsWindowVisible(hwnd))?SW_HIDE:SW_SHOWNORMAL;
- ::ShowWindow(m_cAfs.GetLoadWindowHandle(),show);
- }
- break;
- case IDM_CAPTUREWINDOW:
- CWINAFSLOADAPP->m_bLogWindow=TRUE;
- CWINAFSLOADAPP->ShowLog(TRUE);
- break;
- case IDM_CAPTUREFILE:
- CWINAFSLOADAPP->m_bLog=TRUE;
- CWINAFSLOADAPP->ShowPrint(TRUE);
- break;
- case IDM_ABOUTBOX:
- {
- CAboutDlg dlgAbout;
- // Lets update About box to include version information
- char wdir[MAX_PATH];
-#ifdef _DEBUG
- wsprintf(wdir,"%s.exe",((CWinAfsLoadApp *)AfxGetApp())->m_pszExeName);
-#else
- wsprintf(wdir,"%s.exe",CWINAFSLOADAPP->m_pszExeName);
-#endif
- DWORD wHandle;
- DWORD rc;
- rc =GetFileVersionInfoSize(wdir,&wHandle);
- if (rc>0)
- {
- BYTE *lpData=(BYTE *)new BYTE[rc];
- if (GetFileVersionInfo(wdir,wHandle,rc,lpData))
- {
- UINT len;
- struct TRANSLATION {
- WORD langID; // language ID
- WORD charset; // character set (code page)
- };
- CString msg;
- TRANSLATION mTrans,* pTrans;
- if (VerQueryValue(lpData,
- "\\VarFileInfo\\Translation", (PVOID *)&pTrans, &len) && len >= 4) {
- mTrans = *pTrans;
- TRACE("code page = %d\n", mTrans.charset);
- }
- LPCTSTR pVal;
- UINT iLenVal;
- CString query;
- query.Format(_T("\\StringFileInfo\\%04x%04x\\%s"),
- mTrans.langID,
- mTrans.charset,
- _T("ProductVersion"));
- if (VerQueryValue(lpData, (LPTSTR)(LPCTSTR)query,
- (LPVOID*)&pVal, &iLenVal)) {
-// dlgAbout.m_sVersion.Format("WinAFSload Version %s",pVal);
- }
- }
- delete lpData;
- }
- dlgAbout.DoModal();
- }
- case SC_ICON:
- if (GetFocus())
- m_trayIcon.MinimiseToTray(this); //only if click on miminization botton i
- else
- CDialog::OnSysCommand(nID, lParam); //do this to mimic the normal windows behavor
- break;
-
- default:
- if ((nID>=IDM_EXPLORERAFS)&&(nID<=IDM_EXPLORERAFS+16*NUMOFMENUDRIVES))
- {
- CMenu* pSysMenu = GetSystemMenu(FALSE);
- if (pSysMenu == NULL) return;
- CString msg;
- char sDrive[3];
- pSysMenu->GetMenuString(nID,sDrive,3,MF_BYCOMMAND);
- if (!m_cAfs.StartExployer(msg,sDrive))
- HandleError(msg);
- break;
- }
- CDialog::OnSysCommand(nID, lParam);
- break;
- }
-}
-
-// If you add a minimize button to your dialog, you will need the code below
-// to draw the icon. For MFC applications using the document/view model,
-// this is automatically done for you by the framework.
-
-void CWinAfsLoadDlg::OnPaint()
-{
- CPaintDC dc(this); // device context for painting
- if (IsIconic())
- {
- SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
-
- // Center icon in client rectangle
- int cxIcon = GetSystemMetrics(SM_CXICON);
- int cyIcon = GetSystemMetrics(SM_CYICON);
- CRect rect;
- GetClientRect(&rect);
- int x = (rect.Width() - cxIcon + 1) / 2;
- int y = (rect.Height() - cyIcon + 1) / 2;
-
- // Draw the icon
- dc.DrawIcon(x, y, m_hIcon);
- }
- else
- {
- m_bmpWorld.DrawTrans(dc,m_WorldRect,(m_WorldRect.Width()-1)*m_seqIndex);
- }
-}
-
-
-void CWinAfsLoadDlg::HandleError(const char *s,BOOL display)
-{
- LOG(s);
- UpdateData(FALSE);
- if (display)
- {
- m_cAfs.FinishProgress();
- CWait wait(IDC_ARROW);
- MessageBox(s,"AFS Client Warning",MB_ICONWARNING | MB_OK);
- }
-}
-
-
-void CWinAfsLoadDlg::OnConnect()
-{
-// This is required to keep a process from getting inbehind the error display dialog box and hitting the Connect Button again.
-// the best way to avoid this would have been to separate GUI task from processes; that way
-// the Connect button would have bee disabled while the process is busy or if waiting for an error response! It is possible
-// to send a ClickMessage to the Connect button even with the a modal dialog box overlaying the main dialog!
-
- if (CWait::IsBusy()) return;
- CString msg;
- CWait wait;
- m_iActiveItem=-1; //necessary to indicate to MountList that items being changed are done by program not by mouse input
- UpdateData(TRUE);
- if (m_bServiceIsActive) // DOS is active so lets terminate
- {
- // disconnect any connected AFS mounts, unless there are files open!
- if (!DismountAll(msg,0))
- return;
- TerminateBackground();
- m_nShown=0;
- m_cAuthWarn.ShowWindow(SW_HIDE);
- return;
- }
- CCancel cancel(m_bConnect,FALSE); //clear m_bConnect when connection done
- if ( // if username is present then must have password
- IsGetTokens()
- && (m_sPassword=="")
- )
- {
- HandleError("You must enter a password!");
- m_cPassword.SetFocus();
- return;
- }
- CProgress progress(this,7);
- progress.Next();
- if (!m_cAfs.Create(msg,m_sComputername,m_procInfo))
- {
- progress.Finish();
- HandleError(msg);
- m_procInfo.hThread=0;
- return;
- }
- // CWINAFSLOADAPP->m_sMsg contains the host name used for login
- LOG("AFS Client Console started successfully [%s].",(const char *)m_sComputername);
- CString sDrive;
-
- CString sKey;
- int iMounted=-1;
- for (int iItem=0;iItem<m_cMountlist.GetItemCount();iItem++)
- {
- sKey = m_cMountlist.GetItemText(iItem,COLSHARE);
- if (stricmp(sKey,"all")!=0) continue; // lets find the All first
- CString sAuto(m_cMountlist.GetItemText(iItem,COLAUTO));
- if (sAuto!="*")
- continue;
- sDrive=m_cMountlist.GetItemText(iItem,COLDRIVE);
- LOG("Connect %s %s",sDrive,sKey);
- if (m_cAfs.Mount(msg,sDrive,sKey))
- {
- m_cMountlist.SetCheck(iItem,TRUE);
- AddMenu(sDrive,sKey);
- iMounted=iItem;
- } else {
- CString msg2;
- m_cAfs.Shutdown(msg2);
- m_procInfo.hThread=0;
- msg2.Format("Connect can't continue: %s",msg);
- progress.Finish();
- HandleError(msg2);
- return;
- }
- break;
- }
- if (iMounted<0){
- // Scan for any other connection
- for (int iItem=0;iItem<m_cMountlist.GetItemCount();iItem++)
- {
- CString sAuto(m_cMountlist.GetItemText(iItem,COLAUTO));
- if (sAuto!="*")
- continue;
- sDrive=m_cMountlist.GetItemText(iItem,COLDRIVE);
- LOG("Connect %s %s",sDrive,sKey);
- if (m_cAfs.Mount(msg,sDrive,sKey))
- {
- m_cMountlist.SetCheck(iItem,TRUE);
- AddMenu(sDrive,sKey);
- iMounted=iItem;
- } else {
- CString msg2;
- m_cAfs.Shutdown(msg2);
- m_procInfo.hThread=0;
- msg2.Format("Connect can't continue: %s",msg);
- progress.Finish();
- HandleError(msg2);
- return;
- }
- break;
- }
- }
- progress.Next();
- if (IsGetTokens())
- {
-#if 0
- if (iMounted<0) //have we mounted at least one drive
- {
- m_cAfs.Shutdown(msg);
- m_procInfo.hThread=0;
- msg="Connect can't continue, mountable drive not defined";
- progress.Finish();
- HandleError(msg);
- return;
- }
-#endif
- if (!m_cAfs.Authencate(msg,m_sUsername,m_sPassword))
- {
- CString msg2;
- m_cAfs.Dismount(msg2,sDrive,TRUE);
- m_cMountlist.SetCheck(iItem,FALSE);
- RemoveMenu(sDrive);
- m_cAfs.Shutdown(msg2);
- m_procInfo.hThread=0;
- progress.Finish();
- HandleError(msg);
- return;
- }
- }
- progress.Next();
- // scan through the list for any additional items to connect
- BuildDriveList();
- for (iItem=0;iItem<m_cMountlist.GetItemCount();iItem++)
- {
- CString sKey(m_cMountlist.GetItemText(iItem,COLSHARE));
- if (iItem==iMounted) continue;
- CString sAuto(m_cMountlist.GetItemText(iItem,COLAUTO));
- if (sAuto!="*")
- continue;
- sDrive=m_cMountlist.GetItemText(iItem,COLDRIVE);
- LOG("Connect %s %s",sDrive,sKey);
- if (m_cAfs.Mount(msg,sDrive,sKey))
- {
- m_cMountlist.SetCheck(iItem,TRUE);
- AddMenu(sDrive,sKey);
- } else
- HandleError(msg);
- }
- if (!m_cAfs.StartExployer(msg,sDrive))
- HandleError(msg);
- if (!m_cSaveUsername.GetCheck())
- {
- m_sPassword.Empty();
- UpdateData(FALSE);
- }
-// Sleep(5000)
- m_bServiceIsActive=TRUE; //DON'T allow shutdown until DOS is terminated
- UpdateConnect();
- if (m_bConnect)
- PostMessage(WM_COMMAND,IDC_CANCEL,0);
-}
-
-void CWinAfsLoadDlg::PostNcDestroy()
-{
- // TODO: Add your specialized code here and/or call the base class
- WSACleanup();
- if( m_pImagelist != NULL)
- delete m_pImagelist;
- if (m_pEncript)
- delete m_pEncript;
- m_bmpWorld.DeleteObject();
- CDialog::PostNcDestroy();
-}
-
-
-void CWinAfsLoadDlg::OnCancel()
-{
- // TODO: Add your control notification handler code here
-
- if (m_bServiceIsActive)
- ShowWindow(SW_HIDE);
- else
- {
- CString msg,warn="";
- ProfileData(TRUE);
- CString user,pass;
- UpdateData(TRUE);
- RegPassword(user,pass,TRUE);
- if (m_cSaveUsername.GetCheck())
- {
- if (!m_pEncript->IsValid())
- warn="\n\nAt this time if you choose to save your password on your harddrive, it will not be in encripted form.\n\n\
-To encript your password you must have version 4.71 of ADVAPI32.dll (or better).\n Note: To upgrade this system file, install Internet Explorer 4.01 SP2 (or better).\n\n\
-HINT:To intstall Internet Explorer 4.01 Service Pack 2\n\
-1. Insert the CD that contains Service Pack 2\n\
-2. Use the Explorer to navigate to the CDROM sub-Directory \\IE4SP2\\I386\n\
-3. Double Click on Setup \n\
-4. Follow the instructions for standard Installation\n\
-5. If asked, select option to install Windows Desktop Update\n\
-6. You will have to restart your computer when installation is completed\n\
-7. You may remove all other components except SP2 (approximatly 90MB)";
- if ((user==m_sUsername) && (m_sPassword!=pass))
- {
- msg.Format("Your password is different from what was previous saved on disk.\n Do you wish to update? %s",warn);
- if (MessageBox(msg
- ,"AFS - Security Warning"
- , MB_ICONWARNING | MB_YESNO)==IDYES)
- RegPassword(m_sUsername,m_sPassword,FALSE);
- } else if (user==""){
- if (m_pEncript)
- msg.Format("Your user name and password (encrypted) will be saved on your disk.\n Do you wish to save?");
- else
- msg.Format("Your user name and password will be saved on your disk.\n Do you wish to save?%s",warn);
- if (MessageBox(msg,"AFS - Security Warning"
- , MB_ICONWARNING | MB_YESNO)==IDYES)
- RegPassword(m_sUsername,m_sPassword,FALSE);
- } else if (user!=m_sUsername){
- msg.Format("Previous saved on the disk a user name (%s) and password will be overwritten by new user name (%s) and password(encrypted). Do you wish to update?%s",user,m_sUsername,warn);
- if (MessageBox(msg,"AFS - Security Warning"
- , MB_ICONWARNING | MB_YESNO)==IDYES)
- RegPassword(m_sUsername,m_sPassword,FALSE);
- }
- }
- else
- {
- if ((pass!="")&&(user==m_sUsername))
- {
- msg.Format("Previous user name (%s) and password will be removed from the disk\nDo you wish to clear?",user);
- if (MessageBox(msg,"AFS - Security Warning",
- MB_ICONWARNING | MB_YESNO)==IDYES)
- {
- user="";
- RegPassword(user,user,FALSE);
- }
- }
- }
- RegLastUser(m_sUsername,FALSE);
- CDialog::OnCancel();
- }
-}
-
-void CWinAfsLoadDlg::OnCheckadvanced()
-{
- // TODO: Add your control notification handler code here
- if (m_cCheckAdvanceDisplay.GetCheck())
- {
- CWait wait;
- if (m_bServiceIsActive)
- UpdateMountDisplay();
- SetWindowPos(&wndTop,0,0,m_OriginalRect.right-m_OriginalRect.left,m_OriginalRect.bottom-m_OriginalRect.top,SWP_NOMOVE|SWP_NOZORDER);
- } else {
- SetWindowPos(&wndTop,0,0,m_OriginalRect.right-m_OriginalRect.left,m_DialogShrink,SWP_NOMOVE|SWP_NOZORDER);
- }
-}
-
-BOOL CWinAfsLoadDlg::DismountAll(CString &msg,INT mode)
-{// mode =0 , give user option to retry or cancel
- //mode =1, give user option to force
- //mode =3 , force it anyway
- TCHAR szDrive[] = TEXT("*:");
- TCHAR szMapping[ MAX_PATH ] = TEXT("");
- LPTSTR pszSubmount = szMapping;
- DWORD dwSize = MAX_PATH;
- TCHAR pBuffer[MAX_PATH];
- if (strlen(m_cAfs.MountName())==0)
- return TRUE;
- for (TCHAR chDrive = 'D'; chDrive <= 'Z'; ++chDrive)
- {
- szDrive[0]=chDrive;
- if (WNetGetConnection (szDrive, szMapping, &dwSize) == NO_ERROR)
- {
- CHAR *p=strstr(szMapping,m_cAfs.MountName());
- if (p)
- {
- LOG("Disconnect %s %s",szDrive,szMapping);
- if (!m_cAfs.Dismount(msg,szDrive,(mode==3)))
- {
- CWait wait;
- switch (mode)
- {
- case 1: //Option to force
- {
- CForce dlg;
- dlg.m_sMsg=msg;
- switch (dlg.DoModal())
- {
- case IDOK:
- LOG("Force Disconnect %s %s",szDrive,szMapping);
- if (!m_cAfs.Dismount(msg,szDrive,TRUE))
- return FALSE;
- break;
- default:
- return FALSE;
- }
- }
- break;
- default:
- {//option to return
- CRetry dlg(TRUE);
- dlg.m_sMsg=msg;
- switch (dlg.DoModal())
- {
- case IDC_FORCE:
- LOG("Force Disconnect %s %s",szDrive,szMapping);
- if (!m_cAfs.Dismount(msg,szDrive,TRUE))
- return FALSE;
- break;
- case IDOK:
- chDrive--;
- continue;
-
- default:
- return FALSE;
- }
- }
- }
- }
- p=strrchr(szMapping,'\\');
- if (p)
- for (int iItem=m_cMountlist.GetItemCount()-1;iItem>=0;iItem--)
- {
- m_cMountlist.GetItemText(iItem,COLSHARE,pBuffer,MAX_PATH);
- if (stricmp(p+1,pBuffer)!=0) continue;
- m_cMountlist.GetItemText(iItem,COLDRIVE,pBuffer,MAX_PATH);
- if (stricmp(szDrive,pBuffer)!=0) continue;
- m_cMountlist.SetCheck(iItem,FALSE);
- RemoveMenu(szDrive);
- break;
- }
- }
- }
- }
- return TRUE;
-}
-
-BOOL CWinAfsLoadDlg::TerminateBackground(BOOL bDisplay,CString *emsg)
-{// if bDisplay==FALSE then skip error message and don't update connect buttons (power down needs this option)
-// IF error and emsg!=NULL then return error messaage
- CString msg;
- CWait wait;
- if (!m_cAfs.Shutdown(msg))
- {
- HandleError(msg,bDisplay);
- m_cConnect.ModifyStyle(0,WS_DISABLED,0);
- m_cConnect.Invalidate();
- m_cCancel.SetWindowText("Exit");
- m_cCancel.Invalidate();
- m_trayIcon.SetConnectState(2);
- m_bServiceIsActive=FALSE;
- if (emsg)
- *emsg=msg;
- return FALSE;
- }
- m_bServiceIsActive=FALSE;
- if (bDisplay)
- UpdateConnect();
- LOG("AFS Client Console stopped");
- return TRUE;
-}
-
-void CWinAfsLoadDlg::UpdateConnect()
-{
- if (m_bRestartAFSD)
- {
- m_cConnect.ModifyStyle(WS_DISABLED,0);
- m_cAuthenicate.ModifyStyle(WS_DISABLED,0);
- return;
- }
- if (m_bServiceIsActive)
- {
- m_cConnect.SetWindowText("DisConnect");
- m_cConnect.Invalidate();
- m_cCancel.SetWindowText("Cancel");
- m_cCancel.Invalidate();
- if (!CWINAFSLOADAPP->m_bNoID)
- {
- m_cAuthenicate.ModifyStyle(WS_DISABLED,0);
- if (IsGetTokens())
- m_cAuthenicate.SetWindowText("ReAuthenicate");
- else //tokens are not gotten; allow authenication
- m_cAuthenicate.SetWindowText("Authenicate");
- m_cAuthenicate.Invalidate();
- }
- m_trayIcon.SetConnectState(0);
- return;
- }
- m_cConnect.SetWindowText("Connect");
- m_cConnect.Invalidate();
- m_cCancel.SetWindowText("Exit");
- m_cCancel.Invalidate();
- m_cAuthenicate.ModifyStyle(0,WS_DISABLED);
- m_cAuthenicate.Invalidate();
- m_trayIcon.SetConnectState(1);
-}
-
-
-void CWinAfsLoadDlg::OnAppOpen()
-{
- // TODO: Add your command handler code here
- //required so when icon menu is "Open" it will show the hidden application
- m_trayIcon.MaximiseFromTray(this);
-// ShowWindow(SW_SHOW);
-}
-
-// Up to 4 drives can be listed on the menu for the user to click on and start up explorer
-void CWinAfsLoadDlg::OnTrayButton0()
-{
- OnSysCommand(IDM_EXPLORERAFS, 0);
-}
-void CWinAfsLoadDlg::OnTrayButton1()
-{
- OnSysCommand(IDM_EXPLORERAFS+16, 0);
-}
-void CWinAfsLoadDlg::OnTrayButton2()
-{
- OnSysCommand(IDM_EXPLORERAFS+32, 0);
-}
-void CWinAfsLoadDlg::OnTrayButton3()
-{
- OnSysCommand(IDM_EXPLORERAFS+48, 0);
-}
-void CWinAfsLoadDlg::OnTrayButton4()
-{
- OnSysCommand(IDM_EXPLORERAFS+64, 0);
-}
-
-#define MAXDRIVESIZE (SHARENAMESIZE+5)*MAXSHARES
-
-BOOL CWinAfsLoadDlg::ProfileData(BOOL put)
-{
- CString dINI;
- CString tINI;
- dINI.Format("%safsdsbmd.ini",CWINAFSLOADAPP->m_sTargetDir);
- tINI.Format("%safsdsbmt.ini",CWINAFSLOADAPP->m_sTargetDir);
- BOOL ret=TRUE;
- if (put)
- {
-#define BLOCKSIZE MAX_PATH+SHARENAMESIZE+3
- int scur=BLOCKSIZE;
- char *sblock=(char *)malloc(scur);
- int sused=0;
- char *sptr=sblock;
- int dcur=128;
- char *dblock=(char *)malloc(dcur);
- int dused=0;
- char *dptr=dblock;
- for (int iItem=m_cMountlist.GetItemCount()-1;iItem>=0;iItem--)
- {
- CString sKey(m_cMountlist.GetItemText(iItem,COLSHARE));
- CString sPath(m_cMountlist.GetItemText(iItem,COLPATH));
- CString sDrive(m_cMountlist.GetItemText(iItem,COLDRIVE));
- CString sAuto(m_cMountlist.GetItemText(iItem,COLAUTO));
- if (!sKey.IsEmpty() && !sPath.IsEmpty())
- {// going a lot of trouble to handle any size buffer with out puting a limit on it
- int len=sKey.GetLength()+sDrive.GetLength()+sAuto.GetLength()+2;
- if (dused+len>=dcur)
- dblock=(char *)realloc(dblock,(dcur+=128));
- dptr=dblock+dused;
- wsprintf(dptr,"%s=%s%s",sKey,sAuto,sDrive);
- dused+=len;
- len=sKey.GetLength()+sPath.GetLength()+2;
- if (sused+len>=scur)
- sblock=(char *)realloc(sblock,(scur+=BLOCKSIZE));
- sptr=sblock+sused;
- wsprintf(sptr,"%s=%s",sKey,sPath);
- sused+=len;
- }
- }
- *(sblock+sused)=0; //put extra null at the end
- *(dblock+dused)=0;
- WritePrivateProfileSection("AFS Submounts",sblock,tINI);
- WritePrivateProfileSection("AFS Drivemounts",dblock,dINI);
- delete dblock;
- delete sblock;
- } else { //get
- char sShare[SHARENAMESIZE+1];
- CHAR sPath[MAX_PATH+1];
- CHAR sDriveMount[MAXDRIVESIZE+2];
- CHAR sDrive[DRIVESIZE+1];
- CHAR sAuto[AUTOSIZE+1];
- strcpy(sAuto," ");
- CString path;
- // lets scan for all and home first, we want to place them first
- //mode: 0=look for all, 1=look for home, 2=finish the rest
- for(int mode=0;mode<3;mode++)
- {
- int drivelen=GetPrivateProfileString("AFS Drivemounts", NULL, "", sDriveMount, MAXDRIVESIZE,dINI);
- if (drivelen>=MAXDRIVESIZE)
- {
- CString msg;
- msg.Format("Profile String Error - Too many entries (%d)",MAXSHARES);
- HandleError(msg,TRUE);
- return FALSE;
- }
- PCHAR pDrivekey=sDriveMount;
- while (drivelen>1)
- {
- if ((strlen(pDrivekey)==0) || (strlen(pDrivekey)>SHARENAMESIZE))
- {
- HandleError("Profile String Error - AFS Drivemounts - Share Name",FALSE);
- ret=FALSE;
- break;
- }
- strcpy(sShare,pDrivekey);
- if (GetPrivateProfileString("AFS Drivemounts", sShare, "", sDrive, DRIVESIZE,dINI)==0)
- {
- HandleError("Profile String Error - AFS Drivemounts - Drive Name",FALSE);
- ret=FALSE;
- break;
- }
- if (sDrive[0]=='*') //test for leading *
- {
- strcpy(sAuto,"*");
- strrev(sDrive);
- sDrive[strlen(sDrive)-1]=0;
- } else
- strcpy(sAuto," ");
- sDrive[1]=0; //force to be single character
- strupr(sDrive);
- if (strspn(sDrive,"DEFGHIJKLMNOPQRSTUVWXYZ")==0)
- {
- HandleError("Profile String Error - AFS Drivemounts - Drive Letter",FALSE);
- ret=FALSE;
- break;
- }
- strcat(sDrive,":");
- switch (mode)
- {
- case 0:
- if (stricmp("all",sShare)!=0) break;
- if (GetPrivateProfileString("AFS Submounts", sShare, "", sPath, MAX_PATH,tINI)==0)
- {
- strcpy(sPath,"/"); //none defined
- }
- AddToList(sDrive,sPath,sShare,sAuto);
- drivelen=0;
- continue;
-
- case 1:
- if (stricmp("home",sShare)!=0) break;
- if (GetPrivateProfileString("AFS Submounts", sShare, "", sPath, MAX_PATH,tINI)==0)
- {
- HandleError("Profile String Error - AFS Drivemounts - Share Name",FALSE);
- ret=FALSE;
- break;
- }
- AddToList(sDrive,sPath,sShare,sAuto);
- drivelen=0;
- continue;
- default:
- if ((stricmp("all",sShare)==0)|| (stricmp("home",sShare)==0)) break;
- if (GetPrivateProfileString("AFS Submounts", sShare, "", sPath, MAX_PATH,tINI)==0)
- {
- HandleError("Profile String Error - AFS Drivemounts - Share Name",FALSE);
- ret=FALSE;
- break;
- }
- AddToList(sDrive,sPath,sShare,sAuto);
- break;
- }
- drivelen-=(strlen(pDrivekey)+1);
- pDrivekey+=(strlen(pDrivekey)+1);
- }
- }
-
- }
- return ret;
-}
-
-void CWinAfsLoadDlg::OnChange()
-{
- // TODO: Add your control notification handler code here
-
- POSITION pos = m_cMountlist.GetFirstSelectedItemPosition();
- if (pos == NULL) return;
- int nItem = m_cMountlist.GetNextSelectedItem(pos);
- UINT state=m_cMountlist.GetCheck(nItem);
- if (state)
- {
- MessageBox("You cannot change Item from the list while connected!","AFS - Warning",MB_OK|MB_ICONWARNING);
- return;
- }
- CChange dlg(TRUE,this);
- dlg.m_sDrive=m_cMountlist.GetItemText(nItem,COLDRIVE);
- dlg.m_sPath=m_cMountlist.GetItemText(nItem,COLPATH);
- dlg.m_sDescription=m_cMountlist.GetItemText(nItem,COLSHARE);
- dlg.m_bAuto=(strcmp(m_cMountlist.GetItemText(nItem,COLAUTO),"*")==0);
- if (dlg.DoModal()==IDCANCEL) return;
- m_cMountlist.SetItemText(nItem,COLDRIVE,dlg.m_sDrive);
- m_cMountlist.SetItemText(nItem,COLPATH,dlg.m_sPath);
- m_cMountlist.SetItemText(nItem,COLSHARE,dlg.m_sDescription);
- m_cMountlist.SetItemText(nItem,COLAUTO,(dlg.m_bAuto)?"*":" ");
- UpdateData(FALSE);
- ProfileData(TRUE);
-}
-
-VOID CWinAfsLoadDlg::AddToList(const char *sDrive,const char *sPath,const char *sShare,const char *sAuto)
-{
- LV_ITEM lvitem;
- memset(&lvitem,0,sizeof(lvitem));
- int iSubItem,iActualItem;
- int iItem;
- if (stricmp(sShare,"home")==0)
- iItem=1;
- else if (stricmp(sShare,"all")==0)
- iItem=0;
- else {
- iItem=m_cMountlist.GetItemCount();
- if (iItem<1) iItem=2;
- }
-
- for (iSubItem = 0; iSubItem < NUMCOL; iSubItem++)
- {
- lvitem.mask = LVIF_TEXT ;//| (iSubItem == 0? LVIF_IMAGE : 0);
- lvitem.iItem = (iSubItem == 0)? iItem : iActualItem;
- lvitem.iSubItem = iSubItem;
- lvitem.iImage = 0;
- switch(iSubItem)
- {
- case COLDRIVE:
- lvitem.pszText=(char *)sDrive;
- break;
- case COLPATH:
- lvitem.pszText=(char *)sPath;
- break;
- case COLSHARE:
- lvitem.pszText=(char *)sShare;
- break;
- case COLAUTO:
- lvitem.pszText=(char *)sAuto;
- break;
- default:
- break;
- }
- if (iSubItem == 0)
- iActualItem = m_cMountlist.InsertItem(&lvitem); // insert new item
- else
- m_cMountlist.SetItem(&lvitem); // modify existing item (the sub-item text)
- }
-
-}
-
-void CWinAfsLoadDlg::OnAdd()
-{
- // TODO: Add your control notification handler code here
- CChange dlg(FALSE,this);
- if (dlg.DoModal()==IDCANCEL) return;
- //return m_sDescription, m_sPath, m_sDrive
- AddToList(dlg.m_sDrive,dlg.m_sPath,dlg.m_sDescription,(dlg.m_bAuto)?"*":" ");
- UpdateData(FALSE);
- ProfileData(TRUE); //update INI list if changed
-}
-
-
-void CWinAfsLoadDlg::OnRemove()
-{
- // TODO: Add your control notification handler code here
-
- POSITION pos = m_cMountlist.GetFirstSelectedItemPosition();
- if (pos == NULL) return;
- while (pos)
- {
- int nItem = m_cMountlist.GetNextSelectedItem(pos);
- UINT state=m_cMountlist.GetCheck(nItem);
- if (state)
- {
- HandleError("You cannot remove Item from the list while connected!");
- continue;
- }
-#if 0
- if (stricmp(m_cMountlist.GetItemText(nItem,COLSHARE),"all")==0)
- {
- HandleError("You cannot remove 'All' Item from the list!");
- continue;
- }
-#endif
- m_cMountlist.DeleteItem(nItem);
- }
- ProfileData(TRUE);
-}
-
-// FOLLOWING ROUITNE IS required so OnItemchangedDrivemountlist can tell the difference
-// between a user changing an item to mount/dismount or the program is just updating the display
-// unfortunately any changes go thourgh OnItemchangedDrivemountlist
-void CWinAfsLoadDlg::OnClickDrivemountlist(NMHDR* pNMHDR, LRESULT* pResult)
-{
- // TODO: Add your control notification handler code here
-
- *pResult = 0;
- NM_LISTVIEW* pListview = (NM_LISTVIEW*)pNMHDR;
- CString msg;
- *pResult=0;
- m_iActiveItem=pListview->iItem; //this is the only place where items changed are done by user click
-}
-
-void CWinAfsLoadDlg::UpdateMountDisplay()
-{
- TCHAR szDrive[] = TEXT("*:");
- TCHAR szMapping[ MAX_PATH ] = TEXT("");
- LPTSTR pszSubmount = szMapping;
- DWORD dwSize = MAX_PATH;
- TCHAR pDrive[DRIVESIZE+1];
- TCHAR pShare[SHARENAMESIZE+1];
- ASSERT(strlen(m_cAfs.MountName())!=0);
- BOOL update=FALSE;
- for (int iItem=m_cMountlist.GetItemCount()-1;iItem>=0;iItem--)
- {
- m_cMountlist.GetItemText(iItem,COLDRIVE,pDrive,DRIVESIZE);
- m_cMountlist.GetItemText(iItem,COLSHARE,pShare,SHARENAMESIZE);
- if ((WNetGetConnection(pDrive, szMapping, &dwSize) == NO_ERROR)
- && (strstr(szMapping,m_cAfs.MountName())!=NULL))
- {
- if ((stricmp((strrchr(szMapping,'\\')+1),pShare)==0)
- && (!m_cMountlist.GetCheck(iItem)))
- {
- m_cMountlist.SetCheck(iItem,TRUE);
- AddMenu(m_cMountlist.GetItemText(iItem,COLDRIVE),m_cMountlist.GetItemText(iItem,COLSHARE));
- update=TRUE;
- }
- }
- else {
- if (m_cMountlist.GetCheck(iItem))
- {
- m_cMountlist.SetCheck(iItem,FALSE);
- RemoveMenu(m_cMountlist.GetItemText(iItem,COLDRIVE));
- update=TRUE;
- }
- }
- }
- if (update)
- m_cMountlist.Invalidate();
-}
-
-void CWinAfsLoadDlg::OnItemchangedDrivemountlist(NMHDR* pNMHDR, LRESULT* pResult)
-{
- NM_LISTVIEW* pListview = (NM_LISTVIEW*)pNMHDR;
- CString msg;
- *pResult=0;
- if ((pListview->uNewState & (ITEMCHECKED | ITEMNOTCHECKED))!=(pListview->uOldState & 0x3000))
- {
- if (m_iActiveItem<0) return; //no processing needed if not initiated by a mouse click
- m_iActiveItem=-1;
- switch (pListview->uNewState & (ITEMCHECKED | ITEMNOTCHECKED))
- {
- case ITEMCHECKED: //mount a drive
- if (!m_bServiceIsActive)
- {// can't allow mounting if connection not active
- HandleError("You must connect first");
- m_cMountlist.SetCheck(pListview->iItem,FALSE);
- return;
- }
- LOG("Connect %s %s",m_cMountlist.GetItemText(pListview->iItem,COLDRIVE),m_cMountlist.GetItemText(pListview->iItem,COLSHARE));
- {
- CProgress progress(this,4);
- if (!m_cAfs.Mount(msg
- ,m_cMountlist.GetItemText(pListview->iItem,COLDRIVE)
- ,m_cMountlist.GetItemText(pListview->iItem,COLSHARE)))
- {
- m_cMountlist.SetCheck(pListview->iItem,FALSE);
- UpdateData(FALSE);
- HandleError(msg);
- return;
- }
- AddMenu(m_cMountlist.GetItemText(pListview->iItem,COLDRIVE),m_cMountlist.GetItemText(pListview->iItem,COLSHARE));
- }
- break;
- case ITEMNOTCHECKED: //dismount a drive
- {
- BOOL force=FALSE;
- LOG("Disconnect %s",m_cMountlist.GetItemText(pListview->iItem,COLDRIVE));
- do
- {
- if (!m_cAfs.Dismount(msg,m_cMountlist.GetItemText(pListview->iItem,COLDRIVE),force))
- {// there was an error, allow the user to force closing the drive anyway
- CRetry dlg(TRUE);
- dlg.m_sMsg=msg;
- switch (dlg.DoModal())
- {
- case IDOK:
- continue;
- case IDC_FORCE:
- force=TRUE;
- continue;
- default:
- m_cMountlist.SetCheck(pListview->iItem,TRUE);
- return;
- }
- }
- RemoveMenu(m_cMountlist.GetItemText(pListview->iItem,COLDRIVE));
- break;
- } while (TRUE);
- }
- break;
- default:
- break;
- }
- return;
- }
- POSITION pos = m_cMountlist.GetFirstSelectedItemPosition();
- if (pos == NULL)
- {
- m_cRemove.ModifyStyle(0,WS_DISABLED,0);
- m_cChange.ModifyStyle(0,WS_DISABLED,0);
- } else {
- m_cRemove.ModifyStyle(WS_DISABLED,0,0);
- m_cMountlist.GetNextSelectedItem(pos);
- if (pos==NULL)
- m_cChange.ModifyStyle(WS_DISABLED,0,0);
- else
- m_cChange.ModifyStyle(0,WS_DISABLED,0);
- }
- m_cChange.Invalidate(TRUE);
- m_cRemove.Invalidate(TRUE);
- m_iActiveItem=-1;
-}
-
-void CWinAfsLoadDlg::BuildDriveList(BOOL newone)
-{//if force then build a newone
-
- DWORD mapDrive=GetLogicalDrives();
- TCHAR szDrive[] = TEXT("*: ");
- int iItem;
- if (newone)
- {
- m_Drivelist.RemoveAll();
- TCHAR szMapping[ MAX_PATH ] = TEXT("");
- LPTSTR pszSubmount = szMapping;
- DWORD dwSize = MAX_PATH;
- TCHAR stDrive[]=TEXT("*:");
- for (iItem = 2;iItem <= 25; ++iItem)
- {
- szDrive[0]=stDrive[0]=iItem+'A';
- if (((mapDrive & 1<<iItem)==0) // if drive is not in use or it is a network assigned drive
- // then place it on the available drive list
- || (WNetGetConnection (stDrive, szMapping, &dwSize) == NO_ERROR))
- {
- m_Drivelist.AddTail(CString(szDrive));
- }
- }
- return;
- }
- //update drive list seting * for thoes drives already in use
- for (iItem=m_Drivelist.GetCount()-1;iItem>=0;iItem--)
- {
- strcpy(szDrive,m_Drivelist.GetAt(m_Drivelist.FindIndex(iItem)));
- szDrive[3]= ((1<<(szDrive[0]-'A')) & mapDrive)?'*' :' ';
- m_Drivelist.SetAt(m_Drivelist.FindIndex(iItem),CString(szDrive));
- }
-}
-
-void CWinAfsLoadDlg::ExtractDrive(CString &zdrive,const char *request)
-{// extract the cloest drive to the requested letter
- POSITION pos = m_Drivelist.Find(CString(request));
- if (pos)
- {
- zdrive=m_Drivelist.GetAt(pos);
- m_Drivelist.RemoveAt(pos);
- return;
- }
- int count=m_Drivelist.GetCount()-4;
- if (count<0) count=0;
- pos=m_Drivelist.FindIndex(count);
- zdrive=m_Drivelist.GetAt(pos);
- m_Drivelist.RemoveAt(pos);
-}
-
-HCURSOR CWinAfsLoadDlg::OnQueryDragIcon()
-{
- return (HCURSOR) m_hIcon;
-}
-
-
-// Main menu close statement
-BOOL CWinAfsLoadDlg::OnQueryEndSession( )
-{
- ShowWindow(SW_SHOW);
- CString msg;
- if (!DismountAll(msg,1))// disconnect any connected AFS mounts, unless there are files open!
- return FALSE;
- TerminateBackground();
- if (m_nDirTimer) //Destroy Window is not being called
- KillTimer(m_nDirTimer);
- if (m_nAutTimer)
- KillTimer(m_nAutTimer);
- m_nAutTimer=m_nDirTimer=0;
- return !m_bServiceIsActive;
-}
-
-void CWinAfsLoadDlg::OnTimer(UINT nIDEvent)
-{
- // TODO: Add your message handler code here and/or call default
- char pBuffer[64];
- int len;
- char *p=NULL;
- CString msg;
- switch (nIDEvent)
- {
- case WM_DIRTIMER:
- switch (m_seqIndex)
- {
- case 22:
- case 25://1.0
- if ((m_seqCount+=TIMEINTERVAL)<1000)
- break;
- case 23: //0.75
- if ((m_seqCount+=TIMEINTERVAL)<500)
- break;
- case 20:
- case 21:
- case 24:
- case 26://0.5
- if ((m_seqCount+=TIMEINTERVAL)<500)
- break;
- default://0.2
- m_seqCount=0;
- if (++m_seqIndex>MAXWORLDINDEX) m_seqIndex=0;
- m_bmpWorld.UpdateMask(this,m_WorldRect);//build new mask and force repaint of world area
- break;
- }
- if ((!m_bServiceIsActive) || (m_bRestartAFSD)) break;
- if ((m_dirCount+=TIMEINTERVAL)<CHECKDIR) break;
- m_dirCount=0;
- len=::GetWindowText(m_cAfs.GetLoadWindowHandle(),pBuffer,64);
- if ((len==0) || ((p=strstr(pBuffer,"Finish"))!=NULL))
- {// if p!=NULL then application is finished but not totally shutdown
- if (p)
- {
- ::SendMessage(m_cAfs.GetLoadWindowHandle(),WM_CLOSE,0,0);
- LOG("WM_CLOSE4");
- }
- CString msg;
- DismountAll(msg,3); //unfortunately all drive references are invalid also!
- m_bServiceIsActive=FALSE;
- UpdateConnect();
- break;
- }
- if (!m_cCheckAdvanceDisplay.GetCheck()) break;
- if ((WS_VISIBLE & GetStyle()) )
- UpdateMountDisplay();
- break;
- case WM_AUTTIMER:
- if ((!m_bServiceIsActive) || m_bRestartAFSD) break;
- switch (m_cAfs.TestTokenTime(msg))
- {
- case 0:
- if (m_nShown==0) break;
- m_cAuthWarn.ShowWindow(SW_HIDE);
- m_cAuthWarn.Invalidate(TRUE);
- m_nShown=0;
- break;
- case -1:
- if (m_nShown==-1) break;
- HandleError(msg);
- ShowWindow(SW_SHOWDEFAULT);
- m_nShown=-1;
- break;
- case 1:
- if (m_nShown==1) break;
- m_bkBrush.DeleteObject();
- m_bkBrush.CreateSolidBrush(RGB(255,255,0));
- m_cAuthWarn.SetWindowText(msg);
- m_cAuthWarn.Invalidate(TRUE);
- m_cAuthWarn.ShowWindow(SW_SHOW);
- ShowWindow(SW_SHOWDEFAULT);
- m_nShown=1;
- LOG(msg);
- break;
- case 2:
- if (m_nShown==2) break;
- m_bkBrush.DeleteObject();
- m_bkBrush.CreateSolidBrush(RGB(255,0,0));
- m_cAuthWarn.ShowWindow(SW_SHOW);
- m_cAuthWarn.SetWindowText(msg);
- m_cAuthWarn.Invalidate(TRUE);
- ShowWindow(SW_SHOWDEFAULT);
- LOG(msg);
- m_nShown=2;
- break;
- default:
- break;
- }
-
- break;
- default:
- break;
- }
- CDialog::OnTimer(nIDEvent);
-}
-
-void CWinAfsLoadDlg::OnAuthenicate()
-{
- // TODO: Add your control notification handler code here
- CString msg;
- CWait wait;
- UpdateData(TRUE);
- m_nShown=0;
- m_cAuthWarn.ShowWindow(SW_HIDE);
- LOG("Re-Authenication");
- if (m_sUsername=="")
- {
- HandleError("You must enter a user name!");
- m_cUsername.SetFocus();
- return;
- }
- if (m_sPassword=="")
- {
- HandleError("You must enter a password!");
- m_cPassword.SetFocus();
- return;
- }
- if (!m_cAfs.Authencate(msg,m_sUsername,m_sPassword))
- {
- HandleError(msg);
- return;
- }
- m_cAuthenicate.SetWindowText("ReAuthenicate");
- m_cAuthenicate.Invalidate();
- if (!m_cSaveUsername.GetCheck())
- {
- m_sPassword.Empty();
- UpdateData(FALSE);
- }
-
-}
-
-
-void CWinAfsLoadDlg::OnDestroy()
-{
-
-// ASSERT( m_hBmpOld );
-// VERIFY( m_dcMem.SelectObject( CBitmap::FromHandle(m_hBmpOld) ) );
- // Need to DeleteObject() the bitmap that was loaded
- m_bmpWorld.DeleteObject();
-
- // m_dcMem destructor will handle rest of cleanup
-
- if (m_nDirTimer) //it is better to kill the timer here than PostNcDestroy
- KillTimer(m_nDirTimer);
- if (m_nAutTimer)
- KillTimer(m_nAutTimer);
- m_nAutTimer=m_nDirTimer=0;
- CDialog::OnDestroy();
-
- // TODO: Add your message handler code here
-
-}
-
-// Here is how we change the Background color for the yellow warning
-HBRUSH CWinAfsLoadDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
-{
- HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
-
- // TODO: Change any attributes of the DC here
- if (pWnd->GetDlgCtrlID() == IDC_AUTHWARN)
- {
- pDC->SetBkMode(TRANSPARENT); // we have to make text background transparent
- return (HBRUSH)m_bkBrush; // Return a different brush (YELLOW)
- }
-
- return hbr;
-}
-
-void CWinAfsLoadDlg::OnShow()
-{
- // TODO: Add your command handler code here
- CMenu* pSysMenu = GetSystemMenu(FALSE);
-
- if (pSysMenu != NULL)
- {
- if (0xFFFFFFFF!=pSysMenu->GetMenuState(IDM_CAPTUREWINDOW, MF_BYCOMMAND))
- return;
- CSettings dlg(this);
- dlg.DoModal();
- OnShowAddMenus();
- }
-}
-
-void CWinAfsLoadDlg::OnShowAddMenus()
-{
- CMenu* pSysMenu = GetSystemMenu(FALSE);
- if (pSysMenu == NULL) return;
- CString strMenu;
- pSysMenu->AppendMenu(MF_SEPARATOR);
- strMenu.LoadString(IDM_CAPTUREWINDOW);
- pSysMenu->AppendMenu(MF_STRING, IDM_CAPTUREWINDOW, strMenu);
- strMenu.LoadString(IDM_CAPTUREFILE);
- pSysMenu->AppendMenu(MF_STRING, IDM_CAPTUREFILE, strMenu);
- strMenu.LoadString(IDM_VIEWAFS);
- pSysMenu->AppendMenu(MF_STRING, IDM_VIEWAFS, strMenu);
-}
-
-// Signaled when AFSD sends a socket message
-LRESULT CWinAfsLoadDlg::OnPowerBroadcast(WPARAM wParam, LPARAM lParam)
-{
- CString msg;
- CString sDrive;
- CString sKey;
- BOOL result=TRUE;
- switch(wParam)
- {
- case PBT_APMSUSPEND:
- LOG("PBT_APMSUSPEND");
- break;
- case PBT_APMQUERYSUSPEND:
- // if lParam & 1 ==1 then you can prompt user for info
- LOG("PBT_APMQUERYSUSPEND");
-#if WIN95TEST
- if (IsWin95())
- {// Windows 95
- CString *emsg=new CString;
- emsg->Format("Warning: Attempt to Suspend was Denied\nPower Suspend on Windows 95 is not compatable with Ufiler. \nYou may be required to reboot before using Ufilier again!");
- PostMessage(WM_ERRORMSG,AFS_EXITCODE_GENERAL_FAILURE,(LPARAM)emsg);
-
- return BROADCAST_QUERY_DENY; //deny suspension
- }
-#endif
- if (m_bRestartAFSD)
- break;
- if (m_bServiceIsActive)
- {
-
- if (
- (!IsWin95()) // WIN95 will suspend anyway
- && (!m_cAfs.CheckNet(msg))
-
- )
-
- {
- if (lParam &1)
- {
- CString *emsg=new CString;
- emsg->Format("Attempt to Suspend Denied\n%s",msg);
- PostMessage(WM_ERRORMSG,AFS_EXITCODE_GENERAL_FAILURE,(LPARAM)emsg);
- }
- LOG("AFS Client Console stopped, powerdown denied.");
- return BROADCAST_QUERY_DENY; //files open suspend denied
- }
- CString *emsg=new CString;
- // Allow power suspension even though termination incomplete (no files open anyway)
- if (!TerminateBackground(FALSE,emsg))
- {
- if (lParam &1)
- {
- m_cConnect.ModifyStyle(0,WS_DISABLED,0);
- m_cConnect.Invalidate();
- m_cCancel.SetWindowText("Exit");
- m_cCancel.Invalidate();
- m_trayIcon.SetConnectState(2);
- m_bServiceIsActive=FALSE;
- PostMessage(WM_ERRORMSG,AFS_EXITCODE_GENERAL_FAILURE,(LPARAM)emsg);
- result=FALSE;
- }
- } else
- delete emsg;
- m_bServiceIsActive=FALSE;
- }
- // terminate socket connection (even if terminatebackground failed
- REQUESTUISUSPENDEVENT(ONPARMDISCONNECT);
- {
- WPARAM wp;
- CString msg;
- CWINAFSLOADAPP->WaitForEvent(SOCKETIO+2000,&wp,&msg); //wait 2 second longer than any socket IO
- switch (wp)
- {
- case AFS_EXITCODE_NORMAL:
- break;
- default:
- // have to post message to myself so I can return Querry deny immediately
- {
- CString *emsg=new CString(msg);
- m_cConnect.ModifyStyle(0,WS_DISABLED,0);
- m_cConnect.Invalidate();
- m_cCancel.SetWindowText("Exit");
- m_cCancel.Invalidate();
- PostMessage(WM_ERRORMSG,AFS_EXITCODE_GENERAL_FAILURE,(LPARAM)emsg);
- m_trayIcon.SetConnectState(2);
- result=FALSE;
- }
- }
- }
- m_bRestartAFSD=result;
- break;
- case PBT_APMRESUMESUSPEND:
- LOG("PBT_APMRESUMESUSPEND");
- REQUESTUIPOSTEVENT(WM_UICONNECT,WM_CONNECTRETURN,0);
- break;
- case PBT_APMRESUMECRITICAL:
- LOG("PBT_APMRESUMECRITICAL");
- REQUESTUIPOSTEVENT(WM_UICONNECT,WM_CONNECTRETURN,0);
- break;
- default:
- break;
- }
- UpdateConnect();
- return true;
-}
-
-
-// lParam will contain CString, they must be deleted when done!
-LRESULT CWinAfsLoadDlg::OnErrorMessage(WPARAM wParam, LPARAM lParam)
-{
- CString *msg=(CString *)lParam;
- MessageBox(*msg,"AFS Control Panel Warning");
- delete msg;
- return TRUE;
-}
-
-// actual message comes from AfsLoad (CWinApp)
-LRESULT CWinAfsLoadDlg::OnAfsEvent(WPARAM wParam, LPARAM lParam)
-{
- ASSERT(lParam);
- CString * msg=(CString *)lParam;
- CString emsg;
- emsg.Format("OnAfsEvent %x [%s]",wParam,(const char *)(*msg));
- LOG((const char *)emsg);
- switch (wParam)
- {
- case AFS_EXITCODE_NORMAL:
- break;
- default:
- MessageBox((const char*)(*msg),"AFS Client Console Failure");
- break;
- }
- if (msg)
- delete msg;
- return 0;
-}
-
-
-void CWinAfsLoadDlg::ErrorDisplayState()
-{
- m_cConnect.ModifyStyle(0,WS_DISABLED,0);
- m_cConnect.Invalidate();
- m_cCancel.SetWindowText("Exit");
- m_cCancel.Invalidate();
- m_cAuthenicate.ModifyStyle(0,WS_DISABLED,0);
- m_cAuthenicate.Invalidate();
- UpdateConnect();
-}
-
-static CProgress *m_progress=NULL;
-
-// all calls must have set lParam null or contain a message to release
-// actual message comes from AfsLoad (CWinApp)
-LRESULT CWinAfsLoadDlg::OnNotifyReturn(WPARAM wParam, LPARAM lParam)
-{// fields messages from a NotifyFromUI, e.g. ONCONNECT ONPING
-// lParam contains the message that must be released
- CString msg;
- int iItem;
- CString sDrive;
- CString sKey;
- switch(wParam)
- {
- case WM_CONNECTRETURN:
- if (lParam)
- {// we had a failure
- HandleError(*(CString *)lParam);
- delete (CString *)lParam;
- m_bRestartAFSD=FALSE;
- ErrorDisplayState();
- break;
- }
- if (!m_bRestartAFSD)
- break;
- m_progress = new CProgress(this,7);
- if (m_progress)
- {
- m_progress->SetTitle("Power Restart","Enable AFS Client Console","Authenication");
- m_progress->Next();
- }
- if (IsWin95())
- {
- LOG("Wait %d seconds to Bring up AFSD",m_PowerResumeDelay);
- return TRUE; // do a return instead of break so Delete won't be called
- }
- case WM_RESUMEDELAY:
- case WM_PINGRETURN: //we will return here after CONNECT(ONPING) finds the server connected
- LOG("Done with delay, load AFSD");
- if (m_progress)
- m_progress->Next();
- {
- m_bRestartAFSD=FALSE;
- if (lParam)
- {// we had a failure
- HandleError(*(CString *)lParam);
- delete (CString *)lParam;
- ErrorDisplayState();
- break;
- }
- if (m_progress)
- m_progress->Next();
- if (!m_cAfs.Create(msg,m_sComputername,m_procInfo))
- {
- HandleError(msg);
- m_procInfo.hThread=0;
- ErrorDisplayState();
- break;
- } else
- LOG("AFS Client Powerup started successfully.");
- for (iItem=0;iItem<m_cMountlist.GetItemCount();iItem++)
- {
- sKey = m_cMountlist.GetItemText(iItem,COLSHARE);
- if (stricmp(sKey,"all")!=0) continue;
- CString sAuto(m_cMountlist.GetItemText(iItem,COLAUTO));
- if (sAuto!="*")
- continue;
- sDrive=m_cMountlist.GetItemText(iItem,COLDRIVE);
- LOG("Connect %s %s",sDrive,sKey);
- m_cAfs.Dismount(msg,sDrive,TRUE);
- if (!m_cAfs.Mount(msg,sDrive,sKey))
- {
- CString msg2;
- m_cAfs.Shutdown(msg2);
- m_procInfo.hThread=0;
- msg2.Format("Connect can't continue: %s",msg);
- HandleError(msg2);
- ErrorDisplayState();
- return true;
- }
- AddMenu(sDrive,sKey);
- break;
- }
- if (m_progress)
- m_progress->Next();
- if (!m_cAfs.Authencate(msg,m_sUsername,m_sPassword))
- {
- CString msg2;
- DismountAll(msg,3); //unfortunately all drive references are invalid also!
- m_cAfs.Shutdown(msg2);
- m_procInfo.hThread=0;
- HandleError(msg);
- ErrorDisplayState();
- if (m_progress)
- delete m_progress;
- return true;
- }
- m_bServiceIsActive=TRUE;
- }
- break;
- default:
- if (lParam)
- delete (CString *)lParam;
- break;
- }
- UpdateConnect();
- if (m_progress)
- delete m_progress;
- return true;
-}
-
-
-BOOL CWinAfsLoadDlg::OnHelpInfo(HELPINFO* pHelpInfo)
-{
- // TODO: Add your message handler code here and/or call default
- ::WinHelp(m_hWnd,CWINAFSLOADAPP->m_pszHelpFilePath,HELP_CONTEXT,IDH_MAIN);
- return TRUE;
-}
-
-void CWinAfsLoadDlg::OnHelpmain()
-{
- // TODO: Add your control notification handler code here
- ::WinHelp(m_hWnd,CWINAFSLOADAPP->m_pszHelpFilePath,HELP_CONTEXT,IDH_MAIN);
-
-}
-
-void CWinAfsLoadDlg::OnSettings()
-{
- // TODO: Add your control notification handler code here
- CRegkey regkey("AFS\\Window");
- CCommandSettings dlg;
- dlg.m_ConnectOnStart= CWINAFSLOADAPP->m_bConnect;
- dlg.m_LogToWindow=CWINAFSLOADAPP->m_bLogWindow;
- dlg.m_LogToFile=CWINAFSLOADAPP->m_bLog;
- dlg.m_UserName=m_sUsername;
- UINT tvar;
- DWORD size=sizeof(tvar);
- regkey.GetBinary("LoginTime",(LPBYTE)&tvar,size);
- dlg.m_uMaxLoginTime=tvar;
- dlg.m_uMaxPowerRestartDelay=m_PowerResumeDelay;
- if (dlg.DoModal()==IDOK)
- {
- if (dlg.m_LogToWindow ^ CWINAFSLOADAPP->m_bLogWindow)
- CWINAFSLOADAPP->ShowLog(dlg.m_LogToWindow);
- if (dlg.m_LogToFile ^ CWINAFSLOADAPP->m_bLog)
- CWINAFSLOADAPP->ShowPrint(dlg.m_LogToFile);
- CWINAFSLOADAPP->m_bLogWindow=dlg.m_LogToWindow;
- CWINAFSLOADAPP->m_bLog=dlg.m_LogToFile;
- CWINAFSLOADAPP->m_bConnect=dlg.m_ConnectOnStart;
- CWINAFSLOADAPP->RegOptions(FALSE);
- tvar=dlg.m_uMaxLoginTime;
- regkey.PutBinary("LoginTime",(LPBYTE)&tvar,size);
- m_PowerResumeDelay=dlg.m_uMaxPowerRestartDelay;
- regkey.PutBinary("PowerResumeDelay",(LPBYTE)&m_PowerResumeDelay,size);
- }
-}
-
+++ /dev/null
-// WinAfsLoadDlg.h : header file
-//
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-
-#if !defined(AFX_WINAFSLOADDLG_H__75E145B5_F5C0_11D3_A374_00105A6BCA62__INCLUDED_)
-#define AFX_WINAFSLOADDLG_H__75E145B5_F5C0_11D3_A374_00105A6BCA62__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-#include "trayicon.h"
-#include "datalog.h"
-#include "cafs.h"
-#include <afxtempl.h>
-#include "share.h"
-#include "transbmp.h"
-/////////////////////////////////////////////////////////////////////////////
-// CWinAfsLoadDlg dialog
-class CSettings;
-class CEncript;
-
-class CWinAfsLoadDlg : public CDialog
-{
-// Construction
- friend CSettings;
-public:
- CWinAfsLoadDlg(const char *user,const char *pass,CWnd* pParent = NULL); // standard constructor
- void HandleError(const char *s,BOOL b=TRUE);
- void BuildDriveList(BOOL newone=FALSE);
- CList<CString,CString&> m_Drivelist;
- void OnShowAddMenus();
- LRESULT OnNotifyReturn(WPARAM wParam, LPARAM lParam);
- LRESULT OnAfsEvent(WPARAM wParam, LPARAM lParam);
- BOOL IsGetTokens(){return (!CWINAFSLOADAPP->m_bNoID) && (m_sUsername!="");}
-
-// Dialog Data
- //{{AFX_DATA(CWinAfsLoadDlg)
- enum { IDD = IDD_WINAFSLOAD_DIALOG };
- CButton m_Down;
- CButton m_Enable;
- CButton m_cWorld;
- CStatic m_cAuthWarn;
- CButton m_cAuthenicate;
- CButton m_cSaveUsername;
- CListCtrl m_cMountlist;
- CButton m_cChange;
- CButton m_cRemove;
- CButton m_cOptionLine;
- CButton m_cCheckAdvanceDisplay;
- CButton m_cConnect;
- CButton m_cCancel;
- CEdit m_cPassword;
- CEdit m_cUsername;
- CString m_sPassword;
- CString m_sUsername;
- CString m_sMountDisplay;
- //}}AFX_DATA
-
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CWinAfsLoadDlg)
- public:
- virtual BOOL PreTranslateMessage(MSG* pMsg);
- protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
- virtual void PostNcDestroy();
- //}}AFX_VIRTUAL
-
-// Implementation
-protected:
- CString m_VersionString;
- CAfs m_cAfs;
- CTrayIcon m_trayIcon; // my tray icon
- HICON m_hIcon;
- BOOL m_bHomepath;
- BOOL m_bServiceIsActive; //service is active
- PROCESS_INFORMATION m_procInfo;
- UINT m_DialogShrink;
- CRect m_OriginalRect;
- CString m_sComputername;
- BOOL TerminateBackground(BOOL bDisplay=TRUE,CString *emsg=NULL);
- BOOL OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult );
- BOOL RegPassword(CString &user,CString &pass,BOOL fetch);
- CImageList *m_pImagelist;
- BOOL ProfileData(BOOL put);
- void AddToList(const char *sDrive,const char *sPath,const char *sShare,const char *sAuto);
- void ExtractDrive(CString &zdrive,const char *request);
- int m_iActiveItem;
- BOOL DismountAll(CString &msg,INT mode);
- HACCEL m_hAccelTable;
- CString m_sLoginName;
- BOOL m_bSaveUsername; //TRUE means a click will save, FALSE will mean to clear
- void UpdateMountDisplay();
- UINT m_nDirTimer; //Timer for directory update
- UINT m_nAutTimer; //Timer for authenicate testing
- BOOL RegLastUser(CString &user,BOOL fetch);
- void UpdateConnect();
- UINT m_nShown; //SET according level of warning has occured
- CBrush m_bkBrush;
- INT m_seqIndex; //index count for whirling world
- INT m_seqCount; //count in each sequence
- INT m_dirCount; //number of 1/2 seconds to wait before checking changes in directory
- CTransBmp m_bmpWorld; // Bitmap to display, special bit map that does transparent painting
- CRect m_WorldRect;
- BOOL m_bRestartAFSD; //were we suspended???
- BOOL m_bConnect; //option to automatically start connected
- INT m_iMode;
- CEncript *m_pEncript;
- sockaddr_in m_sHostIP;
- OSVERSIONINFO m_OSVersion;
- BOOL IsWin95(){
- return (
- (m_OSVersion.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS)
- && (m_OSVersion.dwMinorVersion==0)
- );
- }
- void ErrorDisplayState();
- int m_PowerResumeDelay;
- void AddMenu(const char *,const char *);
- void RemoveMenu(const char *);
-
-// int m_PowerDelay; //power delay hack
-
- // Generated message map functions
- //{{AFX_MSG(CWinAfsLoadDlg)
- virtual BOOL OnInitDialog();
- afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
- afx_msg void OnPaint();
- afx_msg void OnConnect();
- afx_msg void OnCancel();
- afx_msg void OnCheckadvanced();
- afx_msg void OnAppOpen();
- afx_msg void OnChange();
- afx_msg void OnAdd();
- afx_msg void OnRemove();
- afx_msg void OnClickDrivemountlist(NMHDR* pNMHDR, LRESULT* pResult);
- afx_msg void OnItemchangedDrivemountlist(NMHDR* pNMHDR, LRESULT* pResult);
- afx_msg BOOL OnQueryEndSession( );
- afx_msg void OnTimer(UINT nIDEvent);
- afx_msg void OnAuthenicate();
- afx_msg void OnDestroy();
- afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
- afx_msg void OnShow();
- afx_msg void OnSuspend();
- afx_msg void OnResume();
- afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
- afx_msg void OnHelpmain();
- afx_msg void OnSettings();
- //}}AFX_MSG
- afx_msg void OnTrayButton0();
- afx_msg void OnTrayButton1();
- afx_msg void OnTrayButton2();
- afx_msg void OnTrayButton3();
- afx_msg void OnTrayButton4();
- afx_msg HCURSOR OnQueryDragIcon();
- afx_msg LRESULT OnPowerBroadcast(WPARAM wParam, LPARAM lParam);
- afx_msg LRESULT OnErrorMessage(WPARAM wParam, LPARAM lParam);
- DECLARE_MESSAGE_MAP()
-};
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_WINAFSLOADDLG_H__75E145B5_F5C0_11D3_A374_00105A6BCA62__INCLUDED_)
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-/* api functions for access to AFS pioctl functions from windows gui */
-
-#include "stdafx.h"
-#ifdef _MFC_VER
-extern "C" {
-#endif
-#include <afs/param.h>
-#include <afs/stds.h>
-#ifdef _MFC_VER
- }
-#endif
-/*#include <afs/pioctl_nt.h>*/
-#ifndef _MFC_VER
-
-#include <osi.h>
-#include <afsint.h>
-
-#include <windows.h>
-#include <stdlib.h>
-#include <malloc.h>
-#include <string.h>
-#include <stdio.h>
-#include <time.h>
-#include <errno.h>
-#endif
-
-typedef short int16;
-typedef unsigned short u_int16;
-
-#ifdef _MFC_VER
-extern "C" {
-#endif
-#include <afs\fs_utils.h>
-#ifdef _MFC_VER
- }
-#endif
-
-int ShutdownAfs()
-{
- struct ViceIoctl blob;
- int code;
-
- blob.in_size = 0;
- blob.out_size = 0;
- code = pioctl(0, VIOC_SHUTDOWN, &blob, 0);
-
- return code;
-}
-
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-/* api functions for access to AFS pioctl functions from windows gui */
-
-int ShutdownAfs();
+++ /dev/null
-//cafs.h
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-
-//#define DOSTITLE "_AFS File System_"
-//#define DOSTITLEFINISH "Finished - _AFS File System_"
-#define DOSTITLE "AFS Client Console"
-#define DOSTITLEFINISH "Finished - AFS Client Console"
-#define APPTITLE "AFS"
-#define APPTITLEFINISH "Finished - AFSD"
-#ifdef DEV_IDE
-#ifdef _DEBUG
-#define CMDLINE "AFSD.EXE -startup"
-#else
-#define CMDLINE ".//release//AFSD.EXE -startup"
-#endif
-#else
-#define CMDLINE "AFSD.PIF -startup"
-#endif
-
-#ifndef __CAFS__
-#define __CAFS__
-#include "share.h"
-
-class CProgress
-{
-public:
- CProgress(CWnd *wnd, UINT mode);
- ~CProgress();
- void Next();
- void Finish();
- void SetTitle(const char *,const char *,const char *);
-private:
- CWnd *m_pWnd;
-};
-
-class CAfs
-{
- friend CProgress;
-public:
- const char * MountName(){return m_sMountName;}
- CAfs(){m_sDosAppName=DOSTITLE;m_sMountName="";};
- ~CAfs();
- BOOL Mount(CString &msg,const char *drvLetter,const char *path);
- BOOL Create(CString &msg,CString sCompName,PROCESS_INFORMATION &procInfo);
- BOOL Authencate(CString &msg,const char * username,const char * password);
- BOOL Dismount(CString &msg,const char * drive,BOOL force=FALSE);
- BOOL StartExployer(CString &msg, const char *drive);
- BOOL Shutdown(CString &msg);
- BOOL Init(CWnd *,CString &);
- UINT TestTokenTime(CString&);
- BOOL ScanTokens(CString&);
- HWND & GetLoadWindowHandle(){return m_hAfsLoad;}
- void FinishProgress();
- BOOL CheckNet(CString &);
-private:
- CString m_sMountName;
- static CString m_sDosAppName;
- STARTUPINFO m_startUpInfo;
- PROCESS_INFORMATION m_procProgBar;
- static HWND m_hAfsLoad;
- static HWND m_hAfsLoadFinish;
- static BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam);
- static BOOL CALLBACK EnumWindowsProcShutdown(HWND hWnd, LPARAM lParam);
- char m_cCell[256]; //cell name
-
- DWORD m_dTokenEndTime;
- CTimeSpan m_tTotalSpanTime;
-};
-
-#endif
-
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-#ifndef __ENCRIPT__
-#define __ENCRIPT__
-#include <wincrypt.h>
-typedef BOOL (WINAPI * PCRYPTACQUIRECONTEXT)(HCRYPTPROV *,LPCTSTR,LPCTSTR,DWORD,DWORD);
-typedef BOOL (WINAPI * PCRYPTCREATEHASH)(HCRYPTPROV,ALG_ID,HCRYPTKEY,DWORD,HCRYPTHASH *);
-typedef BOOL (WINAPI * PCRYPTHASHDATA)(HCRYPTHASH,BYTE *,DWORD,DWORD);
-typedef BOOL (WINAPI * PCRYPTDERIVEKEY)(HCRYPTPROV,ALG_ID,HCRYPTHASH,DWORD,HCRYPTKEY *);
-typedef BOOL (WINAPI * PCRYPTENCRYPT)(HCRYPTKEY,HCRYPTHASH,BOOL,DWORD,BYTE *,DWORD *,DWORD);
-typedef BOOL (WINAPI * PCRYPTDECRYPT)(HCRYPTKEY,HCRYPTHASH,BOOL,DWORD,BYTE *,DWORD *);
-typedef BOOL (WINAPI * PCRYPTDESTROYHASH)(HCRYPTHASH);
-typedef BOOL (WINAPI * PCRYPTDESTROYKEY)(HCRYPTKEY);
-typedef BOOL (WINAPI * PCRYPTRELEASECONTEXT)(HCRYPTPROV,DWORD);
-
-
-class CEncript
-{
-public:
- CEncript(CWinAfsLoadDlg *pParent);
- ~CEncript();
- CWinAfsLoadDlg *m_pParent;
- BOOL Encript(LPCSTR pMachinename,LPCSTR pLoginName,LPCSTR pUsername,PBYTE pPassword,DWORD &dwSize,BOOL doEncript);
- BOOL IsValid(){return (m_hLibrary!=NULL);}
-private:
- HMODULE m_hLibrary;
- PCRYPTACQUIRECONTEXT m_pCryptAcquireContext;
- PCRYPTCREATEHASH m_pCryptCreateHash;
- PCRYPTHASHDATA m_pCryptHashData;
- PCRYPTDERIVEKEY m_pCryptDeriveKey;
- PCRYPTENCRYPT m_pCryptEncrypt;
- PCRYPTDECRYPT m_pCryptDecrypt;
- PCRYPTDESTROYHASH m_pCryptDestroyHash;
- PCRYPTDESTROYKEY m_pCryptDestroyKey;
- PCRYPTRELEASECONTEXT m_pCryptReleaseContext;
-};
-
-#endif
\ No newline at end of file
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-#include "StdAfx.h"
-#include "ModVer.h"
-
-CModuleVersion::CModuleVersion()
-{
-}
-
-//////////////////
-// Destroy: delete version info
-//
-CModuleVersion::~CModuleVersion()
-{
-}
-
-BOOL CModuleVersion::GetFileVersionInfo(LPCTSTR modulename,DWORD &vernum)
-{
- vernum=0;
- TCHAR filename[_MAX_PATH];
- HMODULE hModule = ::GetModuleHandle(modulename);
- DWORD dwHandle;
- if (hModule==NULL && modulename!=NULL)
- return FALSE;
- DWORD len = GetModuleFileName(hModule, filename,
- sizeof(filename)/sizeof(filename[0]));
- if (len <= 0)
- return FALSE;
- len = GetFileVersionInfoSize(filename, &dwHandle);
- if (len <= 0)
- return FALSE;
-
- BYTE * pVersionInfo = new BYTE[len]; // allocate version info
- if (!::GetFileVersionInfo(filename, 0, len, pVersionInfo))
- return FALSE;
- VS_FIXEDFILEINFO *pfixed;
- UINT iLen;
- if (!VerQueryValue(pVersionInfo, _T("\\"), (LPVOID *)&pfixed, &iLen))
- return FALSE;
- vernum=pfixed->dwFileVersionMS;
- delete pVersionInfo;
- return pfixed->dwSignature == VS_FFI_SIGNATURE;
-}
-
-typedef HRESULT (CALLBACK* DLLGETVERSIONPROC)(DLLVERSIONINFO *);
-
-BOOL CModuleVersion::DllGetVersion(LPCTSTR modulename, DLLVERSIONINFO& dvi,DWORD &vernum)
-{
- HINSTANCE hinst = LoadLibrary(modulename);
- vernum=0;
- if (!hinst)
- return FALSE;
-
- DLLGETVERSIONPROC pDllGetVersion =
- (DLLGETVERSIONPROC)GetProcAddress(hinst, _T("DllGetVersion"));
-
- if (!pDllGetVersion)
- return FALSE;
-
- memset(&dvi, 0, sizeof(dvi)); // clear
- dvi.cbSize = sizeof(dvi); // set size for Windows
- BOOL ret=SUCCEEDED((*pDllGetVersion)(&dvi));
- vernum=MAKELONG(dvi.dwMinorVersion,dvi.dwMajorVersion);
- return ret;
-}
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-#ifndef __MODVER_H
-#define __MODVER_H
-
-#include <shlwapi.h> //win95/98/2000 sdk
-#define PACKVERSION(major,minor) MAKELONG(minor,major)
-
-// tell linker to link with version.lib for VerQueryValue, etc.
-#pragma comment(linker, "/defaultlib:version.lib")
-
-// CModuleVersion version info about a module.
-//
-
-class CModuleVersion {
-public:
- CModuleVersion();
- virtual ~CModuleVersion();
- BOOL GetFileVersionInfo(LPCTSTR modulename,DWORD &vernum);
- BOOL DllGetVersion(LPCTSTR modulename, DLLVERSIONINFO& dvi,DWORD &vernum);
-};
-
-#endif
-
+++ /dev/null
-//{{NO_DEPENDENCIES}}
-// generated include file.
-// Used by WinAfsLoad.rc
-//
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-
-#define IDS_ABOUTBOX 0
-#define IDS_HIDE 1
-#define IDS_DISCONNECT 2
-#define IDS_HIDEADVANCE 3
-#define IDS_HIDELOG 4
-#define IDS_FORGETUSERNAME 5
-
-#define IDM_ABOUTBOX 0x0010
-#define IDD_ABOUTBOX 100
-#define IDD_WINAFSLOAD_DIALOG 102
-#define IDP_SOCKETS_INIT_FAILED 103
-#define IDR_MAINFRAME 128
-#define IDR_TRAYICON 131
-#define IDD_ACTIVITYLOG 132
-#define IDD_AFSCHANGE 134
-#define IDD_DIALOGTERM 138
-#define IDD_DIALOGFORCE 140
-#define IDR_ACCELERATOR1 141
-#define IDD_DIALOGRETRY 143
-#define IDD_PROGBAR_DIALOG 145
-#define IDD_MENUSETTINGS 146
-#define IDB_WORLD 247
-#define IDD_SETTINGS 252
-#define IDC_CONNECT 1001
-#define IDC_CANCEL 1002
-#define IDC_OPTIONLINE 1005
-#define IDC_PICTURE 1006
-#define IDC_EDIT 1007
-#define IDC_DRIVEMOUNTLIST 1008
-#define IDC_SETTINGS 1009
-#define IDC_CHECKADVANCED 1010
-#define IDC_USERNAME 1011
-#define IDC_PASSWORD 1012
-#define IDC_SAVEUSERNAME 1013
-#define IDC_SHOWLOG 1016
-#define IDC_ADD 1018
-#define IDC_CHANGE 1019
-#define IDC_REMOVE 1020
-#define IDC_MOUNTDISPLAY 1024
-#define IDC_DRIVE 1027
-#define IDC_STATICMSG 1029
-#define IDC_AUTH 1033
-#define IDC_SHOWBACK 1034
-#define IDC_STATICABOUT 1035
-#define IDC_CHECKBACKGROUND 1038
-#define IDC_TIMEBACKGROUND 1039
-#define IDC_CHECKAUTHENICATION 1040
-#define IDC_TIMEAUTHENICATION 1041
-#define IDC_PATH 1042
-#define IDC_CHECKMOUNT 1042
-#define IDC_PERSISTENT 1043
-#define IDC_TIMEMOUNT 1043
-#define IDC_DESCRIPTION 1044
-#define IDC_AUTHWARN 1046
-#define IDC_WORLD 1049
-#define IDM_CAPTUREWINDOW 1088
-#define IDM_CAPTUREFILE 1104
-#define IDM_VIEWAFS 1136
-#define IDH_ADD 1137
-#define IDH_CHANGE 1138
-#define IDH_MAIN 1140
-#define IDM_CLEAR 1152
-#define IDM_VISIBLE 1168
-#define IDC_COMPLETE_AUTH 1280
-#define IDC_COMPLETE_ENABLE 1281
-#define IDC_COMPLETE_MOUNT 1282
-#define IDC_STATUSREGION 1284
-#define IDC_FORCE 1285
-#define IDC_STATICOPTIONS 1286
-#define IDC_HELPMAIN 1287
-#define IDC_LOGTOFILE 1288
-#define IDC_LOGTOWINDOW 1290
-#define IDC_CONNECTONSTART 1291
-#define IDH_SETTINGS 1293
-#define IDM_EXPLORERAFS 1296
-#define IDC_MAXLOGINTIME 1362
-#define IDC_POWERRESTARTDELAY 1363
-#define IDC_BUTTON1 1365
-#define IDM_APP_OPEN 32771
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 253
-#define _APS_NEXT_COMMAND_VALUE 32774
-#define _APS_NEXT_CONTROL_VALUE 1366
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
+++ /dev/null
-/* Copyright 2000, International Business Machines Corporation and others.
- All Rights Reserved.
-
- This software has been released under the terms of the IBM Public
- License. For details, see the LICENSE file in the top-level source
- directory or online at http://www.openafs.org/dl/license10.html
-*/
-#if !defined(SHARE_H__CF7462A3_F999_11D3_A374_00105A6BCA62__INCLUDED_)
-#define SHARE_H__CF7462A3_F999_11D3_A374_00105A6BCA62__INCLUDED_
-#define WM_MY_TRAY_NOTIFICATION WM_APP+1
-#define WM_DIRTIMER WM_USER+2 //MUST BE DIFFERENT FROM CTRAYICON
-#define WM_AUTTIMER WM_USER+3
-#define WM_PROGRESSTIMER WM_USER+4
-#define WM_PROGRESSPARM WM_USER+5 //SHARED BETWEEN PROGBAR
-#define WM_LOG WM_USER+6 //Message Log
-#define WSA_EVENT WM_USER+7 //Socket messages
-#define WM_UIONPARM WM_USER+8
-#define WM_UIPING WM_USER+9 //INDication from UIThread that there is a socket connection to server
-#define WM_UICONNECT WM_USER+10 //UIThread do a connect to socket
-#define WM_UIDISCONNECT WM_USER+11 //UIthread do a disconnect
-#define WM_PINGRETURN WM_USER+12 //return message from a ping
-#define WM_CONNECTRETURN WM_USER+13 //return message from connect
-#define WM_RESUMEDELAY WM_USER+14 //used to delay after power resume
-#define WM_ERRORMSG WM_USER+15 //Error Display Message
-#define ProgFShow 100 //since modes are 1-7 skip thoes numbers
-#define ProgFHide 102
-#define ProgFOpt 103
-#define ProgFNext 104
-#define ProgFSetTitle 105
-
-#define SOCKETIO 2000 //maximum IO time for sockets in milli-seconds
-
-#endif
+++ /dev/null
-#
-# Makefile.djgpp.common
-# shared make information for all builds
-# requires gmake
-#
-# Usage: Not designed for direct invocation.
-# Please use a Makefile.djgpp instead, which will include this file
-# as a resource.
-#
-# Makefile.djgpp
-# A Makefile should define some basics, be in the right directory, then
-# include this Makefile.djgpp.common
-# Please define
-# TARGETS a list of executables the Makefile covers (with .exe)
-# target rules dependencies between an executable and its object files
-# install target --- to be determined ---
-# all target list the exported files of the build
-
-#
-# VARIABLE SETUP
-#
-
-SHELL = /bin/sh
-MKDIR = /bin/mkdir -p
-CP = /bin/cp -f
-MAKE := $(MAKE) -f Makefile.djgpp
-
-.PHONY : install all clean depends
-# depends is a phony target even though we have a file by that name
-# to hold dependency information, because we want it to be refreshed every
-# time a user invokes make depends, regardless of how up-to-date it may appear
-
-# These are the source files that need make depends handling.
-#
-ifndef SOURCES
-SOURCES = $(wildcard *.c) $(wildcard *.s)
-endif
-
-# This define is for convenience only, should individual makefiles find
-# it useful to have a list of possible object files.
-#
-# ALL_OBJS = $(patsubst %.c,%.o,$(wildcard *.c)) \
-# $(patsubst %.s,%.o,$(wildcard *.s))
-ALL_OBJS = $(addsuffix .o,$(basename $(SOURCES)))
-
-# These are the directories where built things should end up.
-#
-DESTINC = DEST/include
-DESTINCAFS = DEST/include/afs
-DESTLIB = DEST/lib
-DESTBIN = DEST/bin
-
-# global flags: Please set or empty these global flags as needed,
-# or append to/modify them in local makefiles for directory-specific behavior.
-#
-#DEBUGFLAGS = #-g #-pg
- # -Wall
-DEBUGFLAGS = -g -DDEBUG
-#OPTIMIZEFLAGS = -O2
-#OPTIMIZEFLAGS =
-INCLUDES = -IDEST/include # -I../client_osi
-# includes2 is for compiling components in outer directory
-INCLUDES2 = -I../djgpp/include -I../djgpp/client_osi
-LIBDIRS = -L$(DESTLIB)
-DEFINES = -Dfds_bits=fd_bits
-# -DIDRIVE_X86_ENV
-
-# global flags: These are constructed from other defines.
-# Redefine global flags in individual makefiles if needed.
-#
-CFLAGS = $(DEBUGFLAGS) $(OPTIMIZEFLAGS) $(DEFINES) $(INCLUDES)
-CFLAGS2 = $(DEBUGFLAGS) $(OPTIMIZEFLAGS) $(DEFINES) $(INCLUDES2)
-LDFLAGS = $(DEBUGFLAGS) $(OPTIMIZEFLAGS) $(LIBDIRS)
-
-# We are cross-compiling, so some defaults change...
-#
-CC = dos-gcc -bmmap
-#CC = gcc -bmmap
-MAKEDEPEND = $(CC) $(CFLAGS) -M
-CPP = $(CC) $(CFLAGS) -E
-LD = dos-ld
-AS = dos-as
-AR = dos-ar
-RANLIB = $(AR) -s # GNU-ranlib = GNU-ar -s
-
-#
-# RULES FOR ESSENTIAL TARGETS
-#
-
-# make all
-# Builds the files that need to be built
-# Actual files to be built should be listed as dependencies
-# in the Makefile that includes this one.
-# A do-nothing target is listed here to ensure it is the first
-# (default) target.
-all :
-
-# make install
-# Installs the built files in the right place
-# Actual files in their final destinations should be listed
-# as dependencies in the makefile that includes this one.
-# For example, if install needs to copy libwidget.a to $DESTLIB,
-# the makefile should have a line 'install : $(DESTLIB)/libwidget.a'.
-# It may optionally have a body of commands that handle any
-# directory-specific post-processing.
-install : all
-
-# make depends
-# Updates dependencies for all source files
-# Must be run by hand whenever dependencies change, or before
-# the very first build
-#
-depends :
- $(MAKEDEPEND) $(SOURCES) > Makefile.djgpp.depends
-
-# make clean
-# Removes all built files
-#
-clean :
- -$(RM) -f $(TARGETS) *.o *.ss core
-
-#
-# IMPLICIT RULES
-#
-
-# new implicit rules install files
-# These come first so that the more general rule to create libraries does not
-# trump the rule below to install libraries.
-#
-$(DESTLIB)/%.a : %.a
- [ -d $(DESTLIB) ] || $(MKDIR) $(DESTLIB)
- $(CP) $< $@
-#$(DESTLIB2)/%.a : %.a
-# [ -d $(DESTLIB2) ] || $(MKDIR) $(DESTLIB2)
-# $(CP) $< $@
-$(DESTINC)/%.h : %.h
- [ -d $(DESTINC) ] || $(MKDIR) $(DESTINC)
- $(CP) $< $@
-$(DESTINCAFS)/%.h : %.h
- [ -d $(DESTINC) ] || $(MKDIR) $(DESTINC)
- [ -d $(DESTINCAFS) ] || $(MKDIR) $(DESTINCAFS)
- $(CP) $< $@
-# special: djgpp can make .exe and coff file pairs; copy both if possible
-$(DESTBIN)/%.exe : %.exe
- [ -d $(DESTBIN) ] || $(MKDIR) $(DESTBIN)
- -[ -r $(basename $<) ] && $(CP) $(basename $<) $(DESTBIN)/
- $(CP) $^ $@
-
-# new implicit rules to handle assembly (.s), AFS-style
-# AFS uses %.s -> cpp -> %.ss -> as -> %.o rather than the
-# gmake %.S -> cpp -> %.s -> as -> %.o default.
-#
-%.ss : %.s
- $(CPP) $(CPPFLAGS) -P -x c-header $< $(OUTPUT_OPTION)
-%.o : %.ss
- $(AS) $(ASFLAGS) $< $(OUTPUT_OPTION)
-
-# new implicit rule to create libraries
-#
-%.a :
- -$(RM) $@
- $(AR) crv $@ $^
- $(RANLIB) $@
-
-# new implicit rule to create executables
-# $(LD) $(LDFLAGS) $^ -o $(basename $@)
-%.exe :
- $(CC) $(LDFLAGS) -Wl,-\( $^ -Wl,-\) -o $(basename $@)
-
-
-#
-# DEPENDENCY INFORMATION
-#
-
-# always request a local dependency list
-#
-ifeq ($(MAKECMDGOALS),depends)
- DONTDEP=1
-endif
-ifeq ($(MAKECMDGOALS),includes)
- DONTDEP=1
-endif
-ifneq ($(DONTDEP),1)
-include Makefile.djgpp.depends
-# ensure a build process breaks if Makefile.djgpp.depends does not exist
-#
-Makefile.djgpp.depends :
- @echo Please run \"$(MAKE) depends\" to generate dependency information.
- @exit 1
-endif
+++ /dev/null
-# Copyright 2000, International Business Machines Corporation and others.
-# All Rights Reserved.
-#
-# This software has been released under the terms of the IBM Public
-# License. For details, see the LICENSE file in the top-level source
-# directory or online at http://www.openafs.org/dl/license10.html
-
-# Keep macros within each section in sorted order for clean diff displays.
-#
-# MKAFS_OSTYPE used to indicate suffixes and os specific subdirectories.
-MKAFS_OSTYPE = DJGPP
-
-# compilation and link editor flags
-#DBG=-g
-OPTMZ=-O2
-#PAM_CFLAGS = -O2 -Dlinux -DLINUX_PAM -fPIC
-# Put -O2 here to _ensure_ all Makefiles pick it up.
-XCFLAGS= ${DBG} -Dfds_bits=fd_bits -DAFS_AFSDB_ENV -DAFS_FREELANCE_CLIENT
-MT_CFLAGS=${XCFLAGS} ${ARCHFLAGS}
-XLDFLAGS=
-SHLIB_LDFLAGS = -shared -Xlinker -x
-SHLIB_SUFFIX=so
-SHLIB_CFLAGS=
-#
-# libraries
-MT_LIBS=
-TXLIBS=
-XLIBS=
-#
-# programs
-AR=dos-ar
-AS=dos-as
-CP=cp
-INSTALL=${SRCDIR}/bin/install
-LD=dos-ld
-CC=dos-gcc -bmmap
-RANLIB=dos-ranlib
-MT_CC=dos-gcc -bmmap
-MV=mv
-RM=rm
-#
-# Other OS specific requirements
-#
-YACC = bison -y
-LEX = flex -l
+++ /dev/null
-# Copyright 2000, International Business Machines Corporation and others.
-# All Rights Reserved.
-#
-# This software has been released under the terms of the IBM Public
-# License. For details, see the LICENSE file in the top-level source
-# directory or online at http://www.openafs.org/dl/license10.html
-
-# Common nmake file to be included in each NTMakfile.
-#
-# Required definitions:
-# AFSDEV_BUILDTYPE = [ CHECKED | FREE ]
-# AFSDEV_INCLUDE = <default include directories>
-# AFSDEV_LIB = <default library directories>
-#
-# Optional definitions:
-# AFSDEV_DESTDIR = <top-level install directory> (default is $(AFSROOT)\DEST)
-# AFSDEV_WARNLEVEL = [0 | 1 | 2 | 3 | 4] (default is 3)
-# AFSDEV_AUXCDEFINES = <auxiliary C preprocessor defs> (default is null)
-# AFSDEV_AUXRCFLAGS = <auxiliary resource compiler flags> (default is null)
-# AFSDEV_TEXTMODE = <text mode is default if defined> (default is null)
-# AFSDEV_CRTDEBUG = <utilize debug C runtime if define> (default is null)
-#
-############################################################################
-
-
-# Definitions provided here are based on WIN32.MAK, a common nmake
-# file included with the MS SDK and MS VC distributions.
-# WIN32.MAK, and this nmake file, are targeted to the MSVC compiler;
-# port this nmake file if additional compiler support is required.
-
-# Define default target-type macros required by WIN32.MAK.
-# Allow them to be overriden in an NTMakefile or via an environment variable.
-
-!IFNDEF APPVER
-APPVER = 4.0
-!ENDIF
-
-#define used in Win9x installation and program version display
-AFSPRODUCT_VERSION=0.0.00
-CELLNAME_DEFAULT=Your Cell Name
-CELLSERVDB_INSTALL=CellServDB.GrandCentral
-CELLSERVDB_WEB=http://grand.central.org/dl/cellservdb/CellServDB
-
-!IFNDEF TARGETOS
-TARGETOS = WIN95
-#TARGETOS = WINNT
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IFNDEF _WIN32_IE
-_WIN32_IE = 0x0300
-!ENDIF
-
-# Check that build type is correctly specified.
-
-!IF (DEFINED(PROFILE) || DEFINED(TUNE))
-# Build type ignored when profiling or tuning.
-AFSDEV_BUILDTYPE = NONE
-
-!ELSE
-# Build type must be checked or free.
-!IF ("$(AFSDEV_BUILDTYPE)" != "CHECKED" && "$(AFSDEV_BUILDTYPE)" != "FREE")
-!ERROR Must define AFSDEV_BUILDTYPE to be CHECKED or FREE.
-!ENDIF
-
-!ENDIF
-
-# Limit default include and library directories to those specified for build.
-
-!IFNDEF AFSDEV_INCLUDE
-!ERROR Must define AFSDEV_INCLUDE to be the default include directories.
-!ENDIF
-
-!IF ((!DEFINED(INCLUDE)) && ([set INCLUDE=$(AFSDEV_INCLUDE)] != 0))
-# If env. var. INCLUDE not defined then macro assignment won't set it.
-!ERROR Failed setting environment variable INCLUDE.
-!ENDIF
-INCLUDE = $(AFSDEV_INCLUDE)
-
-
-!IFNDEF AFSDEV_LIB
-!ERROR Must define AFSDEV_LIB to be the default library directories.
-!ENDIF
-
-!IF ((!DEFINED(LIB)) && ([set LIB=$(AFSDEV_LIB)] != 0))
-# If env. var. LIB not defined then macro assignment won't set it.
-!ERROR Failed setting environment variable LIB.
-!ENDIF
-LIB = $(AFSDEV_LIB)
-
-# Undefine WIN32.MAK NODEBUG macro.
-# Always generate full debug info, unless profiling or tuning (see below).
-
-!UNDEF NODEBUG
-
-# Include WIN32.MAK nmake file
-
-!INCLUDE <WIN32.MAK>
-
-# Extend and/or supplement definitions in WIN32.MAK.
-
-# Standard install directory.
-!IFDEF AFSDEV_DESTDIR
-DESTDIR = $(AFSDEV_DESTDIR)
-!ELSE
-DESTDIR = $(AFSROOT)\DEST
-!ENDIF
-
-# Command macros.
-COPY = copy
-#DEL = del
-#DEL = rm -f # to delete multiple files on one command line
-DEL = $(DESTDIR)\BIN\rmbat # win 98 must use batch file
-MKDIR = mkdir
-REN = ren
-ECHO = echo
-CD = cd
-MC = mc -vcsU
-MAKECMD = nmake.exe
-
-
-
-COMPILE_ET = $(DESTDIR)\bin\compile_et
-RXGEN = $(DESTDIR)\bin\rxgen
-MIDL = midl
-
-# Common clean target.
-# Double colon (::) syntax allows supplemental clean target to be specified.
-clean::
- $(DEL) *.obj *.lib *.dll *.exe
- $(DEL) *_component_version_number.*
-
-# Common lang target.
-# Double colon (::) syntax allows supplemental lang target to be specified.
-lang::
-
-
-# Compiler include paths and preprocessor defines
-
-afscdefs =\
- -I. \
- -I$(DESTDIR)\include \
- -I$(DESTDIR)\include\afs \
- -I$(DESTDIR)\include\rx \
- -DWIN32_LEAN_AND_MEAN \
- -DSTRICT \
- -D_WIN32_IE=0x0400 \
- -DAFS_AFSDB_ENV \
- -DAFS_FREELANCE_CLIENT
-
-! IF ((EXIST($(MSSDK)\include)) && (("$(SYS_NAME)"=="i386_win95" ) || ("$(SYS_NAME)"=="I386_WIN95" )))
-afscdefs=$(afscdefs) -I$(MSSDK)\include $(afscppdefs) \
-! ENDIF
-
-afscdefs = $(afscdefs) $(AFSDEV_AUXCDEFINES)
-
-#add a few defines for win9xpanel
-afscppdefs = -D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_WINNT" /D "_AFXDLL"
-
-# Compiler switches (except include paths and preprocessor defines)
-#
-# Note: if conflicting options are specified, rightmost option applies.
-#
-# /Oy- specifies no frame-pointer omission
-# /GF pool strings and place in read-only memory
-# /Gd use cdecl calling convention by default
-# /Gy enable function-level linking
-# /GX enable C++ exceptions (assumes extern C funcs never throw exceptions)
-# /Os favor small (over fast) code; seems to avoid 64-bit bugs in VC compiler
-
-afscflags =\
- /Oy- \
- /GF \
- /Gd \
- /Gy \
- /GX \
- /Os
-
-# Set optimization and debugging level based on build type.
-
-!IF ("$(AFSDEV_BUILDTYPE)" == "FREE")
-# Apply full optimization; generate full debug info in obj.
-afscflags = $(afscflags) /Ox /Z7
-ldebug = $(ldebug) -debugtype:both
-cdebug = $(cdebug:-Od=) # avoid annoying override warning (D4025)
-
-!ELSEIF ("$(AFSDEV_BUILDTYPE)" == "CHECKED")
-# Disable optimization; generate full debug info in obj.
-afscflags = $(afscflags) /Od /Z7
-ldebug = $(ldebug) -debugtype:both
-!ENDIF
-
-# Set compiler warning level
-
-!IFNDEF AFSDEV_WARNLEVEL
-AFSDEV_WARNLEVEL = 3
-!ELSE
-!IF ("$(AFSDEV_WARNLEVEL)" != "0" && \
- "$(AFSDEV_WARNLEVEL)" != "1" && \
- "$(AFSDEV_WARNLEVEL)" != "2" && \
- "$(AFSDEV_WARNLEVEL)" != "3" && \
- "$(AFSDEV_WARNLEVEL)" != "4")
-!ERROR Must define AFSDEV_WARNLEVEL to be one of 0 through 4.
-!ENDIF
-!ENDIF
-
-afscflags = $(afscflags) /W$(AFSDEV_WARNLEVEL)
-
-
-# Linker switches
-#
-# /FIXED:NO generates a relocation section in the executable
-
-afslflags =\
- /FIXED:NO
-
-
-
-# For checked builds, define DEBUG (but not the MS control flag _DEBUG).
-
-!IF ("$(AFSDEV_BUILDTYPE)" == "CHECKED")
-afscdefs = $(afscdefs) -DDEBUG
-!ENDIF
-
-# Utilize the debug version of the MSVC runtime, if requested.
-
-!IFDEF AFSDEV_CRTDEBUG
-afscdefs = $(afscdefs) -D_DEBUG
-conlibsdll = $(conlibsdll:msvcrt.lib=msvcrtd.lib)
-guilibsdll = $(guilibsdll:msvcrt.lib=msvcrtd.lib)
-!ENDIF
-
-# Link with binmode.obj; files will be opened in binary mode by default.
-
-!IFNDEF AFSDEV_TEXTMODE
-conlibsdll = $(conlibsdll) binmode.obj
-guilibsdll = $(guilibsdll) binmode.obj
-!ENDIF
-
-
-# Define MFC link and library macros
-# Note that MFC seems to make extensive use of default libraries,
-# thus we do not specify a general /NODEFAULTLIB.
-
-mfclflags = $(guilflags)
-mfclflags = $(mfclflags:/NODEFAULTLIB=)
-
-mfcdlllflags = $(dlllflags)
-mfcdlllflags = $(mfcdlllflags:/NODEFAULTLIB=)
-
-mfclibsdll = $(guilibsdll)
-mfclibsdll = $(mfclibsdll:msvcrtd.lib=)
-mfclibsdll = $(mfclibsdll:msvcrt.lib=)
-
-!IFNDEF AFSDEV_CRTDEBUG
-mfclflags = $(mfclflags) /NODEFAULTLIB:msvcrtd.lib
-mfcdlllflags = $(mfcdlllflags) /NODEFAULTLIB:msvcrtd.lib
-!ELSE
-mfclflags = $(mfclflags) /NODEFAULTLIB:msvcrt.lib
-mfcdlllflags = $(mfcdlllflags) /NODEFAULTLIB:msvcrt.lib
-!ENDIF
-
-
-# Macros for creating/modifying binary targets
-
-# EXE link macro for console applications
-EXECONLINK = $(link) /OUT:$@ $(ldebug) $(conlflags) $(afslflags) $(conlibsdll) $**
-
-# EXE link macro for GUI applications
-EXEGUILINK = $(link) /OUT:$@ $(ldebug) $(guilflags) $(afslflags) $(guilibsdll) $**
-
-# EXE link macro for MFC applications
-EXEMFCLINK = $(link) /OUT:$@ $(ldebug) $(mfclflags) $(afslflags) $(mfclibsdll) $**
-
-# DLL link macro for console applications
-DLLCONLINK = $(link) /OUT:$@ $(ldebug) $(dlllflags) $(afslflags) $(conlibsdll) $**
-
-# DLL link macro for GUI applications
-DLLGUILINK = $(link) /OUT:$@ $(ldebug) $(dlllflags) $(afslflags) $(guilibsdll) $**
-
-# DLL link macro for MFC applications
-DLLMFCLINK = $(link) /OUT:$@ $(ldebug) $(mfcdlllflags) $(afslflags) $(mfclibsdll) $**
-
-# DLL link macro for resource-only DLLs
-# DLLRESLINK = $(link) /OUT:$@ $(dlllflags:-entry:_DllMainCRTStartup@12=-noentry) $(afslflags) $**
-DLLRESLINK = $(link) /OUT:$@ -noentry $(afslflags) $**
-
-# Library archive macro
-LIBARCH = $(implib) /NOLOGO /OUT:$@ $**
-
-# Language selection macro
-NTLANG = $(DESTDIR)\bin\NTLang.bat
-
-
-# EXE\DLL preparation macros
-# Rebase to avoid conflicts; strip symbols in free build.
-!IF ("$(AFSDEV_BUILDTYPE)" == "FREE")
-EXEPREP = rebase -b 0x00400000 -x $(@D) -q $@
-DLLPREP = rebase -i $(DESTDIR)\NTDllmap.txt -x $(@D) -q $@
-!ELSEIF ("$(AFSDEV_BUILDTYPE)" == "CHECKED")
-EXEPREP = rebase -b 0x00400000 -q $@
-DLLPREP = rebase -i $(DESTDIR)\NTDllmap.txt -q $@
-!ENDIF
-
-# C/C++ compilation macros
-
-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) /d "AFSPRODUCT_VERSION=\"$(AFSPRODUCT_VERSION)\""
-
-# Lex/Yacc macros
-LEX = flex -l
-YACC = bison
-
-# Inference rules for building and installing targets
-
-# Compile .c files
-.c.obj:
- $(C2OBJ) $*.c
-
-# Compile .cpp files
-.cpp.obj:
- $(CPP2OBJ) $*.cpp
-
-# Compile .rc (resource) files
-.rc.res:
- $(RC) $*.rc
-
-# Install header files
-.SUFFIXES: .h
-
-.h.{$(DESTDIR)\include}.h:
- $(COPY) $(*B).h $(DESTDIR)\include
-
-.h.{$(DESTDIR)\include\afs}.h:
- $(COPY) $(*B).h $(DESTDIR)\include\afs
-
-.h.{$(DESTDIR)\include\rx}.h:
- $(COPY) $(*B).h $(DESTDIR)\include\rx
-
-.h.{$(DESTDIR)\include\WINNT}.h:
- $(COPY) $(*B).h $(DESTDIR)\include\WINNT
-
+++ /dev/null
-#ifndef UKERNEL
-/* This section for kernel libafs compiles only */
-
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-#ifndef AFS_PARAM_H
-#define AFS_PARAM_H
-
-#define AFS_NONFSTRANS
-#define AFS_DJGPP_ENV /* win95 env. */
-
-#define AFS_MOUNT_AFS "afs" /* The name of the filesystem type. */
-#define AFS_SYSCALL 137
-#include <afs/afs_sysnames.h>
-
-#define AFS_USERSPACE_IP_ADDR 1
-#define RXK_LISTENER_ENV 1
-#define AFS_GCPAGS 0 /* if nonzero, garbage collect PAGs */
-
-
-/* Machine / Operating system information */
-#define SYS_NAME "i386_win9x"
-#define SYS_NAME_ID SYS_NAME_ID_i386_win9x
-#define AFSLITTLE_ENDIAN 1
-#define AFS_HAVE_FFS 1 /* Use system's ffs. */
-#define AFS_HAVE_STATVFS 0 /* System doesn't support statvfs */
-#define AFS_VM_RDWR_ENV 1 /* read/write implemented via VM */
-
-#endif /* AFS_PARAM_H */
-
-#else /* !defined(UKERNEL) */
-
-/* This section for user space compiles only */
-
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-#ifndef AFS_PARAM_H
-#define AFS_PARAM_H
-
-/* In user space the AFS_LINUX20_ENV should be sufficient. In the kernel,
- * it's a judgment call. If something is obviously i386 specific, use that
- * #define instead. Note that "20" refers to the linux 2.0 kernel. The "2"
- * in the sysname is the current version of the client. This takes into
- * account the perferred OS user space configuration as well as the kernel.
- */
-
-#define UKERNEL 1 /* user space kernel */
-#define AFS_ENV 1
-#define AFS_USR_LINUX20_ENV 1
-#define AFS_USR_LINUX22_ENV 1
-#define AFS_NONFSTRANS 1
-
-#define AFS_MOUNT_AFS "afs" /* The name of the filesystem type. */
-#define AFS_SYSCALL 137
-#define AFS_64BIT_IOPS_ENV 1
-#define AFS_NAMEI_ENV 1 /* User space interface to file system */
-#include <afs/afs_sysnames.h>
-
-#define AFS_USERSPACE_IP_ADDR 1
-#define RXK_LISTENER_ENV 1
-#define AFS_GCPAGS 0 /* if nonzero, garbage collect PAGs */
-
-
-/* Machine / Operating system information */
-#define SYS_NAME "i386_linux22"
-#define SYS_NAME_ID SYS_NAME_ID_i386_linux22
-#define AFSLITTLE_ENDIAN 1
-#define AFS_HAVE_FFS 1 /* Use system's ffs. */
-#define AFS_HAVE_STATVFS 0 /* System doesn't support statvfs */
-#define AFS_VM_RDWR_ENV 1 /* read/write implemented via VM */
-
-#define afsio_iov uio_iov
-#define afsio_iovcnt uio_iovcnt
-#define afsio_offset uio_offset
-#define afsio_seg uio_segflg
-#define afsio_fmode uio_fmode
-#define afsio_resid uio_resid
-#define AFS_UIOSYS 1
-#define AFS_UIOUSER UIO_USERSPACE
-#define AFS_CLBYTES MCLBYTES
-#define AFS_MINCHANGE 2
-#define VATTR_NULL usr_vattr_null
-
-#define AFS_DIRENT
-#ifndef CMSERVERPREF
-#define CMSERVERPREF
-#endif
-
-#endif /* AFS_PARAM_H */
-
-#endif /* !defined(UKERNEL) */
+++ /dev/null
-#error This file is deprecated, do not use or maintain.
+++ /dev/null
-#ifndef UKERNEL
-/* This section for kernel libafs compiles only */
-
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License. For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-#ifndef AFS_PARAM_H
-#define AFS_PARAM_H
-
-
-#define AFS_NT40_ENV 1
-#define AFSLITTLE_ENDIAN 1
-#define AFS_64BIT_IOPS_ENV 1
-#define AFS_NAMEI_ENV 1 /* User space interface to file system */
-#define AFS_HAVE_STATVFS 0 /* System doesn't support statvfs */
-#define AFS_WIN95_ENV 1
-
-#include <afs/afs_sysnames.h>
-#define SYS_NAME_ID SYS_NAME_ID_i386_win95
-
-#include <stdlib.h>
-#include <string.h>
-#include <stddef.h>
-
-/*
- * NT makes size_t a typedef for unsigned int (e.g. in <stddef.h>)
- * and has no typedef for ssize_t (a signed size_t).
- * So, we make our own.
- */
-typedef int ssize_t;
-
-/* these macros define Unix-style functions missing in VC++5.0/NT4.0 */
-#define MAXPATHLEN _MAX_PATH
-
-#if 0
-#define memset(A, 0, S) memset((void*)(A), 0, (size_t)(S))
-#define memcpy(B, A, S) memcpy((void*)(B), (void*)(A), (size_t)(S))
-/* There is a minor syntactic difference between memcmp and bcmp... */
-#define memcmp(A, B, S) (memcmp((void*)(A), (void*)(B), (size_t)(S)) ? 1 : 0)
-#define strchr(s, c) strchr(s, c)
-#define strrchr(s, c) strrchr(s, c)
-#endif
-#define strcasecmp(s1,s2) _stricmp(s1,s2)
-#define strncasecmp(s1,s2,n) _strnicmp(s1,s2,n)
-#define sleep(seconds) Sleep((seconds) * 1000)
-#define fsync(fileno) _commit(fileno)
-#define ftruncate(fd, size) _chsize((fd), (long)(size))
-#define strtoll(str, cp, base) strtoi64((str), (cp), (base))
-#define strtoull(str, cp, base) strtoui64((str), (cp), (base))
-
-#define random() rand()
-#define srandom(a) srand(a)
-
-#define popen(cmd, mode) _popen((cmd), (mode))
-#define pclose(stream) _pclose(stream)
-typedef char *caddr_t;
-
-#define pipe(fdp) _pipe(fdp, 4096, _O_BINARY)
-#endif /* AFS_PARAM_H */
-
-#else /* !defined(UKERNEL) */
-
-/* This section for user space compiles only */
-
-
-#endif /* !defined(UKERNEL) */
+++ /dev/null
-# Copyright 2000, International Business Machines Corporation and others.
-# All Rights Reserved.
-#
-# This software has been released under the terms of the IBM Public
-# License. For details, see the LICENSE file in the top-level source
-# directory or online at http://www.openafs.org/dl/license10.html
-
-# nmake Makefile for NT build of LWP.
-
-!include ..\config\NTMakefile.$(SYS_NAME)
-!IF (EXIST(..\config\NTMakefile.version))
-!include ..\config\NTMakefile.version
-!ENDIF
-
-#LIBOBJS = lock.obj \
- #lwp_nt.obj \
- #iomgr.obj \
- #timer.obj\
- #fasttime.obj \
- #waitkey.obj \
- #AFS_component_version_number.obj
-LIBOBJS=tlwp.obj process.obj lock.obj tiomgr.obj timer.obj fasttime.obj preempt.obj AFS_component_version_number.obj pthread.obj
-
-#tlwp.o: lwp.c lwp.h
- #$(CC) $(CFLAGS) -DUSE_SOLARIS_THREADSX -c lwp.c
- #mv lwp.o tlwp.o
-#
-#tiomgr.o: iomgr.c lwp.h
-# $(CC) $(CFLAGS) -DUSE_SOLARIS_THREADSX -c iomgr.c
-# mv iomgr.o tiomgr.o
-#
-#pthread.o : pthread.c
-# $(CC) $(CFLAGS) -DUSE_SOLARIS_THREADSX -c pthread.c
-
-LIBFILE = $(DESTDIR)\lib\afslwp.lib
-
-INCFILES = \
- $(DESTDIR)\include\lock.h \
- $(DESTDIR)\include\lwp.h \
- $(DESTDIR)\include\preempt.h \
- $(DESTDIR)\include\timer.h
-
-
-
-install: $(LIBFILE) $(INCFILES)
-
-$(LIBFILE): $(LIBOBJS)
- $(LIBARCH)
-
-tests: rw.exe
-
-rw.exe: rw.obj $(LIBFILE) $(DESTDIR)\lib\afs\afsutil.lib
- $(EXECONLINK)