--- /dev/null
+Makefile
+aclocal.m4
+config.log
+config.status
+configure
+configure-libafs
+hp_ux102
+hp_ux110
+i386_linux22
+i386_linux24
+include
+lib
+sgi_65
+sun4x_56
+sun4x_57
--- /dev/null
+*WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING* *WARNING*
+The CVS tree may not always have code which can currently be built.
+While every effort is made to keep the head of the tree buildable,
+you may at any time find yourself between commits and hence have a tree
+which does not build, or worse, causes more serious problems!
+
+Do not use the CVS tree unless you know what you're doing.
+
+CVS snapshots do not include files generated by autoconf; You can
+run regen.sh (at the top level) to create these files. You will need
+to have autoconf installed on your system.
+
+
--- /dev/null
+AC_INIT(Makefile.common)
+AM_INIT_AUTOMAKE(openafs-libafs,1.2.0)
+AC_CANONICAL_HOST
+AC_CONFIG_HEADER(src/config/afsconfig.h)
+
+#BOZO_SAVE_CORES BOS_RESTRICTED_MODE BOS_NEW_CONFIG pam sia
+AC_ARG_WITH(afs-sysname,
+[ --with-afs-sysname=sys use sys for the afs sysname]
+)
+AC_ARG_ENABLE( obsolete,
+[ --enable-obsolete enable obsolete portions of AFS (mpp, ntp and package)],, enable_obsolete="no")
+AC_ARG_ENABLE( insecure,
+[ --enable-insecure enable insecure portions of AFS (ftpd, inetd, rcp, rlogind and rsh)],, enable_insecure="no")
+AC_ARG_ENABLE( afsdb,
+[ --disable-afsdb disable AFSDB RR support],, enable_afsdb="yes")
+AC_ARG_ENABLE( bos-restricted-mode,
+[ --enable-bos-restricted-mode enable bosserver restricted mode which disables certain bosserver functionality],, enable_bos_restricted_mode="no")
+AC_ARG_ENABLE( namei-fileserver,
+[ --enable-namei-fileserver force compilation of namei fileserver in preference to inode fileserver],, enable_namei_fileserver="no")
+AC_ARG_ENABLE( fast-restart,
+[ --enable-fast-restart enable fast startup of file server without salvaging],, enable_fast_restart="no")
+AC_ARG_ENABLE( bitmap-later,
+[ --enable-bitmap-later enable fast startup of file server by not reading bitmap till needed],, enable_bitmap_later="no")
+AC_ARG_ENABLE( full-vos-listvol-switch,
+[ --enable-full-vos-listvol-switch enable vos full listvol switch for formatted output],, enable_full_vos_listvol_switch="no")
+AC_ARG_WITH(dux-kernel-headers,
+[ --with-dux-kernel-headers=path use the kernel headers found at path(optional, defaults to first match in /usr/sys)]
+)
+AC_ARG_WITH(linux-kernel-headers,
+[ --with-linux-kernel-headers=path use the kernel headers found at path(optional, defaults to /usr/src/linux)]
+)
+AC_ARG_ENABLE(kernel-module,
+[ --disable-kernel-module disable compilation of the kernel module (defaults to enabled)],, enable_kernel_module="yes"
+)
+AC_ARG_ENABLE(redhat-buildsys,
+[ --enable-redhat-buildsys enable compilation of the redhat build system kernel (defaults to disabled)],, enable_redhat_buildsys="no"
+)
+AC_ARG_ENABLE(transarc-paths,
+[ --enable-transarc-paths Use Transarc style paths like /usr/afs and /usr/vice],, enable_transarc_paths="no"
+)
+
+AC_PROG_CC
+
+dnl weird ass systems
+AC_AIX
+AC_ISC_POSIX
+AC_MINIX
+
+dnl Various compiler setup.
+AC_C_INLINE
+AC_C_CONST
+AC_TYPE_PID_T
+AC_TYPE_SIZE_T
+AC_TYPE_SIGNAL
+
+dnl Checks for programs.
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_RANLIB
+AC_PROG_YACC
+AM_PROG_LEX
+
+OPENAFS_CHECK_BIGENDIAN
+
+AC_MSG_CHECKING(your OS)
+system=$host
+case $system in
+ *-linux*)
+ MKAFS_OSTYPE=LINUX
+ if test "x$enable_redhat_buildsys" = "xyes"; then
+ AC_DEFINE(ENABLE_REDHAT_BUILDSYS)
+ fi
+ if test "x$enable_kernel_module" = "xyes"; then
+ if test "x$with_linux_kernel_headers" != "x"; then
+ LINUX_KERNEL_PATH="$with_linux_kernel_headers"
+ else
+ LINUX_KERNEL_PATH="/usr/src/linux"
+ fi
+ if test -f "$LINUX_KERNEL_PATH/include/linux/version.h"; then
+ linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version.h |awk 'BEGIN { FS="\"" } { print $2 }'|tail -1`
+ if test "x$linux_kvers" = "x"; then
+ if test -f "$LINUX_KERNEL_PATH/include/linux/version-up.h"; then
+ linux_kvers=`fgrep UTS_RELEASE $LINUX_KERNEL_PATH/include/linux/version-up.h |awk 'BEGIN { FS="\"" } { print $2 }'|tail -1`
+ if test "x$linux_kvers" = "x"; then
+
+ AC_MSG_ERROR(Linux headers lack version definition [2])
+ exit 1
+ else
+ LINUX_VERSION="$linux_kvers"
+ fi
+ else
+ AC_MSG_ERROR(Linux headers lack version definition)
+ exit 1
+ fi
+ else
+ LINUX_VERSION="$linux_kvers"
+ fi
+ else
+ enable_kernel_module="no"
+ fi
+ if test ! -f "$LINUX_KERNEL_PATH/include/linux/autoconf.h"; then
+ enable_kernel_module="no"
+ fi
+ if test "x$enable_kernel_module" = "xno"; then
+ if test "x$with_linux_kernel_headers" != "x"; then
+ AC_MSG_ERROR(No usable linux headers found at $LINUX_KERNEL_PATH)
+ exit 1
+ else
+ AC_MSG_WARN(No usable linux headers found at $LINUX_KERNEL_PATH so disabling kernel module)
+ fi
+ fi
+ fi
+ AC_MSG_RESULT(linux)
+ if test "x$enable_kernel_module" = "xyes"; then
+ LINUX_FS_STRUCT_INODE_HAS_I_BYTES
+ LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
+ LINUX_FS_STRUCT_INODE_HAS_I_CDEV
+ LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM
+ LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
+ LINUX_FS_STRUCT_INODE_HAS_I_MAPPING_OVERLOAD
+ LINUX_FS_STRUCT_INODE_HAS_I_MMAP_SHARED
+ LINUX_INODE_SETATTR_RETURN_TYPE
+ LINUX_NEED_RHCONFIG
+ LINUX_WHICH_MODULES
+ if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then
+ AC_DEFINE(INODE_SETATTR_NOT_VOID)
+ fi
+ if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then
+ AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS)
+ fi
+ if test "x$ac_cv_linux_fs_struct_inode_has_i_mmap_shared" = "xyes"; then
+ AC_DEFINE(STRUCT_INODE_HAS_I_MMAP_SHARED)
+ fi
+ if test "x$ac_cv_linux_fs_struct_inode_has_i_mapping_overload" = "xyes"; then
+ AC_DEFINE(STRUCT_INODE_HAS_I_MAPPING_OVERLOAD)
+ fi
+ if test "x$ac_cv_linux_fs_struct_inode_has_i_cdev" = "xyes"; then
+ AC_DEFINE(STRUCT_INODE_HAS_I_CDEV)
+ fi
+ if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then
+ AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM)
+ fi
+ if test "x$ac_cv_linux_fs_struct_inode_has_i_bytes" = "xyes"; then
+ AC_DEFINE(STRUCT_INODE_HAS_I_BYTES)
+ fi
+ if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then
+ AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK)
+ fi
+ :
+ fi
+ ;;
+ *-solaris*)
+ MKAFS_OSTYPE=SOLARIS
+ AC_MSG_RESULT(sun4)
+ SOLARIS_UFSVFS_HAS_DQRWLOCK
+ ;;
+ *-hpux*)
+ MKAFS_OSTYPE=HPUX
+ AC_MSG_RESULT(hp_ux)
+ ;;
+ *-irix*)
+ MKAFS_OSTYPE=IRIX
+ AC_MSG_RESULT(sgi)
+ ;;
+ *-aix*)
+ MKAFS_OSTYPE=AIX
+ AC_MSG_RESULT(rs_aix)
+ ;;
+ *-osf*)
+ MKAFS_OSTYPE=DUX
+ AC_MSG_RESULT(alpha_dux)
+ if test "x$enable_kernel_module" = "xyes"; then
+ if test "x$with_dux_kernel_headers" != "x"; then
+ HEADER_RT=`ls ${with_dux_kernel_headers}/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
+ else
+ HEADER_RT=`ls /usr/sys/*/rt_preempt.h | head -1 | sed 's,/rt_preempt.h,,;s,/usr/sys/,,'`
+ fi
+ fi
+ if test "$HEADER_RT" = "*" ; then
+ AC_MSG_ERROR([Need a configured kernel directory])
+ fi
+ AC_SUBST([HEADER_RT])
+ ;;
+ *-darwin*)
+ MKAFS_OSTYPE=DARWIN
+ AC_MSG_RESULT(ppc_darwin)
+ ;;
+ *-freebsd*)
+ MKAFS_OSTYPE=FBSD
+ AC_MSG_RESULT(i386_fbsd)
+ ;;
+ *)
+ AC_MSG_RESULT($system)
+ ;;
+esac
+
+if test "x$with_afs_sysname" != "x"; then
+ AFS_SYSNAME="$with_afs_sysname"
+else
+ AC_MSG_CHECKING(your AFS sysname)
+ case $host in
+ i?86-*-freebsd4.2*)
+ AFS_SYSNAME="i386_fbsd_42"
+ ;;
+ hppa*-hp-hpux11*)
+ AFS_SYSNAME="hp_ux110"
+ ;;
+ hppa*-hp-hpux10*)
+ AFS_SYSNAME="hp_ux102"
+ ;;
+ powerpc-apple-darwin1.2*)
+ AFS_SYSNAME="ppc_darwin_12"
+ DARWIN_PLIST=src/afsd/afs.${AFS_SYSNAME}.plist
+ ;;
+ powerpc-apple-darwin1.3*)
+ AFS_SYSNAME="ppc_darwin_13"
+ DARWIN_PLIST=src/afsd/afs.${AFS_SYSNAME}.plist
+ ;;
+ powerpc-apple-darwin1.4*)
+ AFS_SYSNAME="ppc_darwin_14"
+ DARWIN_PLIST=src/afsd/afs.${AFS_SYSNAME}.plist
+ ;;
+ sparc-sun-solaris2.5*)
+ AFS_SYSNAME="sun4x_55"
+ ;;
+ sparc-sun-solaris2.6)
+ AFS_SYSNAME="sun4x_56"
+ ;;
+ sparc-sun-solaris2.7)
+ AFS_SYSNAME="sun4x_57"
+ ;;
+ sparc-sun-solaris2.8)
+ AFS_SYSNAME="sun4x_58"
+ ;;
+ alpha*-dec-osf4.0*)
+ AFS_SYSNAME="alpha_dux40"
+ ;;
+ alpha*-dec-osf5.0*)
+ AFS_SYSNAME="alpha_dux50"
+ ;;
+ mips-sgi-irix6.5)
+ AFS_SYSNAME="sgi_65"
+ ;;
+ ia64-*-linux*)
+ AFS_SYSNAME="ia64_linuxXX"
+ ;;
+ powerpc-*-linux*)
+ AFS_SYSNAME="ppc_linuxXX"
+ ;;
+ alpha*-linux*)
+ AFS_SYSNAME="alpha_linux_XX"
+ ;;
+ s390-*-linux*)
+ AFS_SYSNAME="s390_linuxXX"
+ ;;
+ sparc-*-linux*)
+ AFS_SYSNAME="sparc_linuxXX"
+ ;;
+ sparc64-*-linux*)
+ AFS_SYSNAME="sparc64_linuxXX"
+ ;;
+ i?86-*-linux*)
+ AFS_SYSNAME="i386_linuxXX"
+ ;;
+ power*-ibm-aix4.2*)
+ AFS_SYSNAME="rs_aix42"
+ ;;
+ power*-ibm-aix4.3*)
+ AFS_SYSNAME="rs_aix42"
+ ;;
+ *)
+ AC_MSG_ERROR(An AFS sysname is required)
+ exit 1
+ ;;
+ esac
+ case $AFS_SYSNAME in
+ *_linux*)
+ AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $1 $2}'`
+ if test "x${AFS_SYSKVERS}" = "x"; then
+ AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.)
+ fi
+ _AFS_SYSNAME=`echo $AFS_SYSNAME|sed s/XX\$/$AFS_SYSKVERS/`
+ AFS_SYSNAME="$_AFS_SYSNAME"
+ ;;
+ esac
+ AC_MSG_RESULT($AFS_SYSNAME)
+fi
+
+
+if test "x${MKAFS_OSTYPE}" = "xIRIX"; then
+ echo Skipping library tests because they confuse Irix.
+else
+ AC_CHECK_FUNCS(socket)
+
+ if test "$ac_cv_func_socket" = no; then
+ for lib in socket inet; do
+ if test "$HAVE_SOCKET" != 1; then
+ AC_CHECK_LIB(${lib}, socket,LIBS="$LIBS -l$lib";HAVE_SOCKET=1;AC_DEFINE(HAVE_SOCKET))
+ fi
+ done
+ fi
+
+ AC_CHECK_FUNCS(connect)
+
+ if test "$ac_cv_func_connect" = no; then
+ for lib in nsl; do
+ if test "$HAVE_CONNECT" != 1; then
+ AC_CHECK_LIB(${lib}, connect,LIBS="$LIBS -l$lib";HAVE_CONNECT=1;AC_DEFINE(HAVE_CONNECT))
+ fi
+ done
+ fi
+
+ AC_CHECK_FUNCS(gethostbyname)
+ if test "$ac_cv_func_gethostbyname" = no; then
+ for lib in dns nsl resolv; do
+ if test "$HAVE_GETHOSTBYNAME" != 1; then
+ AC_CHECK_LIB(${lib}, gethostbyname, LIBS="$LIBS -l$lib";HAVE_GETHOSTBYNAME=1;AC_DEFINE(HAVE_GETHOSTBYNAME))
+ fi
+ done
+ fi
+
+ AC_CHECK_FUNCS(res_search)
+ if test "$ac_cv_func_res_search" = no; then
+ for lib in dns nsl resolv; do
+ if test "$HAVE_RES_SEARCH" != 1; then
+ AC_CHECK_LIB(${lib}, res_search, LIBS="$LIBS -l$lib";HAVE_RES_SEARCH=1;AC_DEFINE(HAVE_RES_SEARCH))
+ fi
+ done
+ if test "$HAVE_RES_SEARCH" = 1; then
+ LIB_res_search="-l$lib"
+ fi
+ fi
+fi
+
+PTHREAD_LIBS=error
+AC_CHECK_LIB(pthread, pthread_attr_init,
+ PTHREAD_LIBS="-lpthread")
+if test "x$PTHREAD_LIBS" = xerror; then
+ AC_CHECK_LIB(pthreads, pthread_attr_init,
+ PTHREAD_LIBS="-lpthreads")
+fi
+if test "x$PTHREAD_LIBS" = xerror; then
+ AC_CHECK_LIB(c_r, pthread_attr_init,
+ PTHREAD_LIBS="-lc_r")
+fi
+if test "x$PTHREAD_LIBS" = xerror; then
+ AC_CHECK_FUNC(pthread_attr_init, PTHREAD_LIBS="")
+fi
+if test "x$PTHREAD_LIBS" = xerror; then
+ AC_MSG_WARN(*** Unable to locate working posix thread library ***)
+fi
+AC_SUBST(PTHREAD_LIBS)
+
+WITH_OBSOLETE=NO
+if test "$enable_obsolete" = "yes"; then
+ WITH_OBSOLETE=YES
+fi
+
+WITH_INSECURE=NO
+if test "$enable_insecure" = "yes"; then
+ WITH_INSECURE=YES
+fi
+
+# Fast restart
+if test "$enable_fast_restart" = "yes"; then
+ AC_DEFINE(FAST_RESTART)
+fi
+
+if test "$enable_bitmap_later" = "yes"; then
+ AC_DEFINE(BITMAP_LATER)
+fi
+
+if test "$enable_full_vos_listvol_switch" = "yes"; then
+ AC_DEFINE(FULL_LISTVOL_SWITCH)
+fi
+
+if test "$enable_bos_restricted_mode" = "yes"; then
+ AC_DEFINE(BOS_RESTRICTED_MODE)
+fi
+
+if test "$enable_namei_fileserver" = "yes"; then
+ AC_DEFINE(AFS_NAMEI_ENV)
+fi
+
+if test "$enable_afsdb" = "yes"; then
+ LIB_AFSDB="$LIB_res_search"
+ AC_DEFINE(AFS_AFSDB_ENV)
+fi
+
+SRCDIR_PARENT=`pwd`
+TOP_SRCDIR="${SRCDIR_PARENT}"
+DESTDIR="${SRCDIR_PARENT}/${AFS_SYSNAME}/dest/"
+TOP_INCDIR="${SRCDIR_PARENT}/include"
+TOP_LIBDIR="${SRCDIR_PARENT}/lib"
+
+dnl checks for header files.
+AC_HEADER_STDC
+AC_HEADER_SYS_WAIT
+AC_HEADER_DIRENT
+AC_CHECK_HEADERS(stdlib.h string.h unistd.h fcntl.h sys/time.h sys/file.h)
+AC_CHECK_HEADERS(netinet/in.h netdb.h sys/fcntl.h sys/mnttab.h sys/mntent.h)
+AC_CHECK_HEADERS(mntent.h sys/vfs.h sys/param.h sys/fs_types.h)
+AC_CHECK_HEADERS(sys/mount.h strings.h termios.h signal.h)
+AC_CHECK_HEADERS(windows.h malloc.h winsock2.h direct.h io.h)
+AC_CHECK_HEADERS(security/pam_modules.h siad.h usersec.h)
+
+AC_CHECK_FUNCS(utimes random srandom getdtablesize snprintf re_comp re_exec)
+
+dnl Directory PATH handling
+if test "x$enable_transarc_paths" = "xyes" ; then
+ afsconfdir=${afsconfdir=/usr/afs/etc}
+ viceetcdir=${viceetcdir=/usr/vice/etc}
+ afskerneldir=${afskerneldir=${viceetcdir}}
+ afssrvbindir=${afssrvbindir=/usr/afs/bin}
+ afssrvsbindir=${afssrvsbindir=/usr/afs/bin}
+ afssrvlibexecdir=${afssrvlibexecdir=/usr/afs/bin}
+ afsdbdir=${afsdbdir=/usr/afs/db}
+ afslogsdir=${afslogsdir=/usr/afs/logs}
+ afslocaldir=${afslocaldir=/usr/afs/local}
+ afsbackupdir=${afsbackupdir=/usr/afs/backup}
+ afsbosconfigdir=${afsbosconfigdir=/usr/afs/local}
+ else
+ afsconfdir=${afsconfdir=$sysconfdir/openafs/server}
+ viceetcdir=${viceetcdir=$sysconfdir/openafs}
+ afskerneldir=${afskerneldir=$libdir/openafs}
+ afssrvbindir=${afssrvbindir=$bindir}
+ afssrvsbindir=${afssrvsbindir=$sbindir}
+ afssrvlibexecdir=${afssrvlibexecdir=$libexecdir/openafs}
+ afsdbdir=${afsdbdir=$localstatedir/openafs/db}
+ afslogsdir=${afslogsdir=$localstatedir/openafs/logs}
+ afslocaldir=${afslocaldir=$localstatedir/openafs}
+ afsbackupdir=${afsbackupdir=$localstatedir/openafs/backup}
+ afsbosconfigdir=${afsbosconfigdir=$sysconfdir/openafs}
+
+fi
+AC_SUBST(afsconfdir)
+AC_SUBST(viceetcdir)
+AC_SUBST(afskerneldir)
+AC_SUBST(afssrvbindir)
+AC_SUBST(afssrvsbindir)
+AC_SUBST(afssrvlibexecdir)
+AC_SUBST(afsdbdir)
+AC_SUBST(afslogsdir)
+AC_SUBST(afslocaldir)
+AC_SUBST(afsbackupdir)
+AC_SUBST(afsbosconfigdir)
+
+if test "x$enable_kernel_module" = "xyes"; then
+ENABLE_KERNEL_MODULE=libafs
+fi
+
+AC_SUBST(AFS_SYSNAME)
+AC_SUBST(ENABLE_KERNEL_MODULE)
+AC_SUBST(LIB_AFSDB)
+AC_SUBST(LINUX_KERNEL_PATH)
+AC_SUBST(LINUX_VERSION)
+AC_SUBST(MKAFS_OSTYPE)
+AC_SUBST(TOP_SRCDIR)
+AC_SUBST(TOP_INCDIR)
+AC_SUBST(TOP_LIBDIR)
+AC_SUBST(DEST)
+AC_SUBST(WITH_OBSOLETE)
+AC_SUBST(WITH_INSECURE)
+
+AC_OUTPUT( \
+Makefile \
+config/Makefile.${AFS_SYSNAME} \
+)
--- /dev/null
+// GetWebDll.cpp : Defines the initialization routines for the DLL.
+//
+
+#include "stdafx.h"
+#include "GetWebDll.h"
+#include "getwebdllfun.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#undef THIS_FILE
+static char THIS_FILE[] = __FILE__;
+#endif
+
+//
+// Note!
+//
+// If this DLL is dynamically linked against the MFC
+// DLLs, any functions exported from this DLL which
+// call into MFC must have the AFX_MANAGE_STATE macro
+// added at the very beginning of the function.
+//
+// For example:
+//
+// extern "C" BOOL PASCAL EXPORT ExportedFunction()
+// {
+// AFX_MANAGE_STATE(AfxGetStaticModuleState());
+// // normal function body here
+// }
+//
+// It is very important that this macro appear in each
+// function, prior to any calls into MFC. This means that
+// it must appear as the first statement within the
+// function, even before any object variable declarations
+// as their constructors may generate calls into the MFC
+// DLL.
+//
+// Please see MFC Technical Notes 33 and 58 for additional
+// details.
+//
+
+/////////////////////////////////////////////////////////////////////////////
+// CGetWebDllApp
+
+BEGIN_MESSAGE_MAP(CGetWebDllApp, CWinApp)
+ //{{AFX_MSG_MAP(CGetWebDllApp)
+ // NOTE - the ClassWizard will add and remove mapping macros here.
+ // DO NOT EDIT what you see in these blocks of generated code!
+ //}}AFX_MSG_MAP
+END_MESSAGE_MAP()
+
+/////////////////////////////////////////////////////////////////////////////
+// CGetWebDllApp construction
+
+CGetWebDllApp::CGetWebDllApp()
+{
+ // TODO: add construction code here,
+ // Place all significant initialization in InitInstance
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// The one and only CGetWebDllApp object
+
+CGetWebDllApp theApp;
+
+
+LPCTSTR pszURL = NULL;
+BOOL bStripMode = FALSE;
+BOOL bProgressMode = FALSE;
+DWORD dwAccessType = PRE_CONFIG_INTERNET_ACCESS;
+
+DWORD dwHttpRequestFlags =
+ INTERNET_FLAG_EXISTING_CONNECT | INTERNET_FLAG_NO_AUTO_REDIRECT;
+//
+//GET /updateCellServDB.jsp?type=bunk HTTP/1.1
+//Accept: */*
+//Accept -Language: en -us
+//Accept -Encoding: gzip , deflate
+//User-Agent: ufilerNativeClient/1.0 (1.0; Windows NT)
+//Host: 192.168.0.1
+//Connection: Keep -Alive
+
+const TCHAR szVersion[] =
+ _T("HTTP/1.1");
+
+const TCHAR szHeaders[] =
+ _T("\
+Accept: */*\r\n\
+Accept -Language: en -us\r\n\
+Accept -Encoding: gzip , deflate\r\n\
+User-Agent: ufilerNativeClient/1.0 (1.0; Windows NT)\r\n\
+Host: 192.168.0.1\r\n\
+Connection: Keep -Alive\r\n");
+
+CTearSession::CTearSession(LPCTSTR pszAppName, int nMethod)
+ : CInternetSession(pszAppName, 1, nMethod)
+{
+}
+
+void CTearSession::OnStatusCallback(DWORD /* dwContext */, DWORD dwInternetStatus,
+ LPVOID /* lpvStatusInfomration */, DWORD /* dwStatusInformationLen */)
+{
+ if (!bProgressMode)
+ return;
+
+ if (dwInternetStatus != INTERNET_STATUS_CONNECTED_TO_SERVER)
+ AfxMessageBox("Connection Not Made",MB_ICONERROR | MB_OK);
+ return;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+// CTearException -- used if something goes wrong for us
+
+// TEAR will throw its own exception type to handle problems it might
+// encounter while fulfilling the user's request.
+
+IMPLEMENT_DYNCREATE(CTearException, CException)
+
+CTearException::CTearException(int nCode)
+ : m_nErrorCode(nCode)
+{
+}
+
+void ThrowTearException(int nCode)
+{
+ CTearException* pEx = new CTearException(nCode);
+ throw pEx;
+}
+
+// StripTags() rips through a buffer and removes HTML tags from it.
+// The function uses a static variable to remember its state in case
+// a HTML tag spans a buffer boundary.
+
+void StripTags(LPTSTR pszBuffer)
+{
+ static BOOL bInTag = FALSE;
+ LPTSTR pszSource = pszBuffer;
+ LPTSTR pszDest = pszBuffer;
+
+ while (*pszSource != '\0')
+ {
+ if (bInTag)
+ {
+ if (*pszSource == '>')
+ bInTag = FALSE;
+ pszSource++;
+ }
+ else
+ {
+ if (*pszSource == '<')
+ bInTag = TRUE;
+ else
+ {
+ *pszDest = *pszSource;
+ pszDest++;
+ }
+ pszSource++;
+ }
+ }
+ *pszDest = '\0';
+}
+
+
+extern "C"
+__declspec(dllexport) INT GetWebPage(LPSTR lpErrMsg,LPSTR lpFile,LPSTR lpCmdLine)
+{
+ CString emsg;
+// emsg.Format("p1=[%s],p2=[%s]",lpFile,lpCmdLine);
+// AfxMessageBox(emsg,MB_ICONERROR | MB_OK);
+ if ((strlen(lpCmdLine)==0) || (strlen(lpFile)==0))
+ {
+ emsg="Parameter Error";
+ return 1;
+ }
+
+ int nRetCode = 0;
+
+ CTearSession session(_T("TEAR - MFC Sample App"), dwAccessType);
+ CHttpConnection* pServer = NULL;
+ CHttpFile* pFile = NULL;
+ char *szParm=strstr(lpCmdLine,"?");
+ try
+ {
+ // check to see if this is a reasonable URL
+ CFile ofile(lpFile,CFile::modeCreate|CFile::modeWrite);
+
+ CString strServerName;
+ CString strObject;
+ INTERNET_PORT nPort;
+ DWORD dwServiceType;
+
+ if (!AfxParseURL(lpCmdLine, dwServiceType, strServerName, strObject, nPort) ||
+ dwServiceType != INTERNET_SERVICE_HTTP)
+ {
+ emsg="Error: can only use URLs beginning with http://";
+ ThrowTearException(1);
+ }
+
+ if (bProgressMode)
+ {
+ VERIFY(session.EnableStatusCallback(TRUE));
+ }
+
+ pServer = session.GetHttpConnection(strServerName, nPort);
+ pFile = pServer->OpenRequest(
+ CHttpConnection::HTTP_VERB_GET,
+ strObject, //updateCellServDB.jsp
+ NULL, // URL of document
+ 1, // context
+ NULL,
+ szVersion,
+ dwHttpRequestFlags);
+ pFile->AddRequestHeaders(szHeaders);
+ pFile->SendRequest();
+
+ DWORD dwRet;
+ pFile->QueryInfoStatusCode(dwRet);
+
+ // if access was denied, prompt the user for the password
+
+ if (dwRet == HTTP_STATUS_DENIED)
+ {
+ DWORD dwPrompt;
+ dwPrompt = pFile->ErrorDlg(NULL, ERROR_INTERNET_INCORRECT_PASSWORD,
+ FLAGS_ERROR_UI_FLAGS_GENERATE_DATA | FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS, NULL);
+
+ // if the user cancelled the dialog, bail out
+
+ if (dwPrompt != ERROR_INTERNET_FORCE_RETRY)
+ {
+ emsg="Access denied: Invalid password";
+ ThrowTearException(1);
+ }
+
+ pFile->SendRequest();
+ pFile->QueryInfoStatusCode(dwRet);
+ }
+
+ CString strNewLocation;
+ pFile->QueryInfo(HTTP_QUERY_RAW_HEADERS_CRLF, strNewLocation);
+
+ // were we redirected?
+ // these response status codes come from WININET.H
+
+ if (dwRet == HTTP_STATUS_MOVED ||
+ dwRet == HTTP_STATUS_REDIRECT ||
+ dwRet == HTTP_STATUS_REDIRECT_METHOD)
+ {
+ CString strNewLocation;
+ pFile->QueryInfo(HTTP_QUERY_RAW_HEADERS_CRLF, strNewLocation);
+
+ int nPlace = strNewLocation.Find(_T("Location: "));
+ if (nPlace == -1)
+ {
+ emsg="Error: Site redirects with no new location";
+ ThrowTearException(2);
+ }
+
+ strNewLocation = strNewLocation.Mid(nPlace + 10);
+ nPlace = strNewLocation.Find('\n');
+ if (nPlace > 0)
+ strNewLocation = strNewLocation.Left(nPlace);
+
+ // close up the redirected site
+
+ pFile->Close();
+ delete pFile;
+ pServer->Close();
+ delete pServer;
+
+ if (bProgressMode)
+ {
+ emsg.Format("Caution: redirected to %s",(LPCTSTR) strNewLocation);
+ }
+
+ // figure out what the old place was
+ if (!AfxParseURL(strNewLocation, dwServiceType, strServerName, strObject, nPort))
+ {
+ emsg="Error: the redirected URL could not be parsed.";
+ ThrowTearException(2);
+ }
+
+ if (dwServiceType != INTERNET_SERVICE_HTTP)
+ {
+ emsg="Error: the redirected URL does not reference a HTTP resource.";
+ ThrowTearException(2);
+ }
+
+ // try again at the new location
+ pServer = session.GetHttpConnection(strServerName, nPort);
+ pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_GET,
+ strObject, NULL, 1, NULL, NULL, dwHttpRequestFlags);
+ pFile->AddRequestHeaders(szHeaders);
+ pFile->SendRequest();
+
+ pFile->QueryInfoStatusCode(dwRet);
+ if (dwRet != HTTP_STATUS_OK)
+ {
+ emsg.Format("Error: Got status code %d",dwRet);
+ ThrowTearException(2);
+ }
+ }
+
+
+ TCHAR sz[1024];
+ while (pFile->ReadString(sz, 1023))
+ {
+ if (bStripMode)
+ StripTags(sz);
+ ofile.Write(sz,strlen(sz));
+ }
+
+ pFile->Close();
+ pServer->Close();
+ ofile.Close();
+ }
+ catch (CInternetException* pEx)
+ {
+ // catch errors from WinINet
+
+ TCHAR szErr[1024];
+ pEx->GetErrorMessage(szErr, 1024);
+
+ CString emsg;
+ emsg.Format("Error: (%s)",szErr);
+ nRetCode = 2;
+ pEx->Delete();
+ }
+ catch (CFileException* pEx)
+ {
+ TCHAR szErr[1024];
+ pEx->GetErrorMessage(szErr, 1024);
+
+ emsg.Format("File Error: (%s)",szErr);
+ nRetCode = 2;
+ pEx->Delete();
+ }
+ catch (CTearException* pEx)
+ {
+ // catch things wrong with parameters, etc
+
+ nRetCode = pEx->m_nErrorCode;
+ pEx->Delete();
+ }
+
+ if (pFile != NULL)
+ delete pFile;
+ if (pServer != NULL)
+ delete pServer;
+ session.Close();
+ int len=strlen(lpErrMsg);
+ strncpy(lpErrMsg,emsg,len);
+ lpErrMsg[len]=0;
+ return nRetCode;
+}
+
+extern "C"
+__declspec(dllexport) INT GetUserLogon(LPSTR lpUserName)
+{
+ int nRetCode = 1;
+ ULONG nSize=strlen(lpUserName);
+ if (!GetUserName(lpUserName,&nSize)) nRetCode=0;
+ return nRetCode;
+}
+
+extern "C"
+__declspec(dllexport) INT BrowseFile(HWND hwndOwner,LPSTR lpstrTitle,LPSTR lpFileName,INT size)
+{
+ char *xptr;
+// char msg[256];
+ char *ptr=strrchr(lpFileName,'\\');
+ int nFileOffset=0;
+ int nFileExtension=0;
+ if (ptr)
+ nFileOffset=ptr-lpFileName+1;
+ else {
+ ptr=strrchr(lpFileName,':');
+ if (ptr)
+ nFileOffset=ptr-lpFileName;
+ }
+ if (ptr==NULL)
+ ptr=lpFileName;
+ if (xptr=strrchr(ptr,'.'))
+ nFileExtension=nFileOffset+(xptr-ptr);
+// sprintf(msg,"Title: [%s] filename=[%s], %i,%i,%i",lpstrTitle,lpFileName,nFileOffset,nFileExtension,size);
+// AfxMessageBox(msg,MB_OK);
+ OPENFILENAME data={
+ sizeof(OPENFILENAME) //lStructSize
+ ,hwndOwner //hwndOwner
+ ,NULL //
+ ,"*.*" //lpstrFilter
+ ,NULL //lpstrCustomFilter
+ ,NULL //nMaxCustFilter
+ ,0 //nFilterIndex
+ ,lpFileName //lpstrFile
+ ,size //nMaxFile - at least 256 characters
+ ,NULL //lpstrFileTitle
+ ,0 //nMaxFileTitle
+ ,NULL //lpstrInitialDir
+ ,lpstrTitle //lpstrTitle
+ ,OFN_HIDEREADONLY|OFN_PATHMUSTEXIST //Flags
+ ,nFileOffset //nFileOffset
+ ,nFileExtension //nFileExtension
+ ,NULL //lpstrDefExt
+ ,NULL //lCustData
+ ,NULL //lpfnHook
+ ,NULL //lpTemplateName
+ };
+ return GetOpenFileName(&data);
+}
\ No newline at end of file
--- /dev/null
+; GetWebDll.def : Declares the module parameters for the DLL.
+
+LIBRARY "GetWebDll"
+DESCRIPTION 'GetWebDll Windows Dynamic Link Library'
+
+EXPORTS
+ ; Explicit exports can go here
--- /dev/null
+# Microsoft Developer Studio Generated Dependency File, included by GetWebDll.mak
+
+.\GetWebDll.cpp : \
+ ".\GetWebDll.h"\
+ ".\GetWebDllFun.h"\
--- /dev/null
+// GetWebDll.h : main header file for the GETWEBDLL DLL
+//
+
+#if !defined(AFX_GETWEBDLL_H__470FBE70_389E_11D5_A375_00105A6BCA62__INCLUDED_)
+#define AFX_GETWEBDLL_H__470FBE70_389E_11D5_A375_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
+
+/////////////////////////////////////////////////////////////////////////////
+// CGetWebDllApp
+// See GetWebDll.cpp for the implementation of this class
+//
+
+class CGetWebDllApp : public CWinApp
+{
+public:
+ CGetWebDllApp();
+
+// Overrides
+ // ClassWizard generated virtual function overrides
+ //{{AFX_VIRTUAL(CGetWebDllApp)
+ //}}AFX_VIRTUAL
+
+ //{{AFX_MSG(CGetWebDllApp)
+ // NOTE - the ClassWizard will add and remove member functions here.
+ // DO NOT EDIT what you see in these blocks of generated code !
+ //}}AFX_MSG
+ DECLARE_MESSAGE_MAP()
+};
+
+
+/////////////////////////////////////////////////////////////////////////////
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
+
+class CTearSession : public CInternetSession
+{
+public:
+ CTearSession(LPCTSTR pszAppName, int nMethod);
+ virtual void OnStatusCallback(DWORD dwContext, DWORD dwInternetStatus,
+ LPVOID lpvStatusInfomration, DWORD dwStatusInformationLen);
+};
+
+
+class CTearException : public CException
+{
+ DECLARE_DYNCREATE(CTearException)
+
+public:
+ CTearException(int nCode = 0);
+ ~CTearException() { }
+
+ int m_nErrorCode;
+};
+
+#endif // !defined(AFX_GETWEBDLL_H__470FBE70_389E_11D5_A375_00105A6BCA62__INCLUDED_)
+
+
--- /dev/null
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+#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 ""afxres.rc"" // Standard components\r\n"
+ "#endif\r\n"
+ "\0"
+END
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // APSTUDIO_INVOKED
+
+
+
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE 9, 1
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,0,1
+ PRODUCTVERSION 1,0,0,1
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904B0"
+ BEGIN
+ VALUE "CompanyName", "\0"
+ VALUE "FileDescription", "GetWebDll DLL\0"
+ VALUE "FileVersion", "1, 0, 0, 1\0"
+ VALUE "InternalName", "GetWebDll\0"
+ VALUE "LegalCopyright", "Copyright (C) 2001\0"
+ VALUE "LegalTrademarks", "\0"
+ VALUE "OriginalFilename","GetWebDll.DLL\0"
+ VALUE "ProductName", "GetWebDll Dynamic Link Library\0"
+ VALUE "ProductVersion", "1, 0, 0, 1\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+#endif
+
+#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
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
--- /dev/null
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+__declspec(dllexport) INT GetWebPage(LPSTR lpErrMsg,LPSTR lpFile,LPSTR lpCmdLine);
+
+__declspec(dllexport) INT GetUserLogon(LPSTR lpUserName);
+
+__declspec(dllexport) INT BrowseFile(HWND hwndOwner,LPSTR lpstrTitle,LPSTR lpFileFullName,INT fullsize);
+
+#ifdef __cplusplus
+}
+#endif
+
--- /dev/null
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by GETWEBDLL.RC
+//
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+
+#define _APS_NEXT_RESOURCE_VALUE 18000
+#define _APS_NEXT_CONTROL_VALUE 18000
+#define _APS_NEXT_SYMED_VALUE 18000
+#define _APS_NEXT_COMMAND_VALUE 32771
+#endif
+#endif
--- /dev/null
+// 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__470FBE72_389E_11D5_A375_00105A6BCA62__INCLUDED_)
+#define AFX_STDAFX_H__470FBE72_389E_11D5_A375_00105A6BCA62__INCLUDED_
+
+#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
+
+#ifndef _AFX_NO_OLE_SUPPORT
+#include <afxole.h> // MFC OLE classes
+#include <afxodlgs.h> // MFC OLE dialog classes
+#include <afxdisp.h> // MFC Automation classes
+#endif // _AFX_NO_OLE_SUPPORT
+
+
+#ifndef _AFX_NO_DB_SUPPORT
+#include <afxdb.h> // MFC ODBC database classes
+#endif // _AFX_NO_DB_SUPPORT
+
+#ifndef _AFX_NO_DAO_SUPPORT
+#include <afxdao.h> // MFC DAO database classes
+#endif // _AFX_NO_DAO_SUPPORT
+
+#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 <afxinet.h>
+
+#endif // !defined(AFX_STDAFX_H__470FBE72_389E_11D5_A375_00105A6BCA62__INCLUDED_)
--- /dev/null
+# Microsoft Developer Studio Generated NMAKE File, Based on GetWebDll.dsp
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE
+NULL=nul
+!ENDIF
+
+OUTDIR=.
+INTDIR=.
+# Begin Custom Macros
+OutDir=.
+# End Custom Macros
+
+INSTALL : "$(OUTDIR)\GetWebDll.dll"
+
+
+CLEAN :
+ -@erase "$(INTDIR)\GetWebDll.pch"
+ -@erase "$(INTDIR)\*.obj"
+ -@erase "$(INTDIR)\vc60.idb"
+ -@erase "$(OUTDIR)\GetWebDll.dll"
+ -@erase "$(OUTDIR)\GetWebDll.exp"
+ -@erase "$(OUTDIR)\GetWebDll.lib"
+ -@erase "$(OUTDIR)\GetWebDll.sbl"
+ -@erase "$(OUTDIR)\GetWebDll.pjt"
+
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_MBCS" /D "_USRDLL" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
+
+.c{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.c{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+MTL=midl.exe
+MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
+RSC=rc.exe
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\GetWebDll.res" /d "NDEBUG"
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\GetWebDll.bsc"
+BSC32_SBRS= \
+
+LINK32=link.exe
+LINK32_FLAGS=/nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\GetWebDll.pdb" /machine:I386 /def:".\GetWebDll.def" /out:"$(OUTDIR)\GetWebDll.dll" /implib:"$(OUTDIR)\GetWebDll.lib"
+DEF_FILE= \
+ ".\GetWebDll.def"
+LINK32_OBJS= \
+ "$(INTDIR)\GetWebDll.obj" \
+ "$(INTDIR)\GetWebDll.res"
+
+"$(OUTDIR)\GetWebDll.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("GetWebDll.dep")
+!INCLUDE "GetWebDll.dep"
+!ELSE
+!MESSAGE Warning: cannot find "GetWebDll.dep"
+!ENDIF
+!ENDIF
+
+
+SOURCE=.\GetWebDll.cpp
+
+"$(INTDIR)\GetWebDll.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\GetWebDll.rc
+
+"$(INTDIR)\GetWebDll.res" : $(SOURCE) "$(INTDIR)"
+ $(RSC) $(RSC_PROJ) $(SOURCE)
+
--- /dev/null
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#define APSTUDIO_HIDDEN_SYMBOLS
+#include "windows.h"
+#undef APSTUDIO_HIDDEN_SYMBOLS
+#include <.\sdrc.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
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+DLG_DRIVEPATH DIALOGEX 0, 0, 332, 218
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Select Local Drive Mapping"
+FONT 8, "MS Sans Serif"
+BEGIN
+ LTEXT "",52,0,0,332,36
+ LTEXT "Enable Assignment, choose drive letter and define AFS mount point path.",
+ 901,17,41,289,19,SS_NOPREFIX
+ LTEXT "Map local drive letter to AFS mount point.",50,10,3,220,
+ 8,0,WS_EX_TRANSPARENT
+ LTEXT "AFS service can map drive letters to AFS mount points.\nBoth Letters and mounts points can be configured!",
+ 51,17,12,273,22,0,WS_EX_TRANSPARENT
+ CONTROL "",1301,"Static",SS_ETCHEDHORZ | WS_GROUP,0,36,332,1
+ DEFPUSHBUTTON "&Next >",SD_PBUT_CONTINUE,215,196,50,14
+ PUSHBUTTON "Cancel",SD_PBUT_CANCEL,272,196,50,14
+ PUSHBUTTON "< &Back",SD_PBUT_BACK,166,196,50,14
+ CONTROL "",SD_STA_IMAGE_2,"Static",SS_BLACKFRAME,54,185,268,1
+ LTEXT "",7,10,182,40,10,NOT WS_VISIBLE
+ COMBOBOX IDC_HOMEDRIVELIST,17,151,41,76,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_GROUP | WS_TABSTOP
+ GROUPBOX "Root Drive Assignment",IDC_STATIC,2,62,323,52,WS_GROUP
+ EDITTEXT IDC_HOMEPATH,66,151,258,12,ES_AUTOHSCROLL |
+ ES_OEMCONVERT | WS_GROUP
+ LTEXT "Drive",IDC_STATIC,17,139,17,8
+ LTEXT "Path",IDC_STATIC,66,139,15,8
+ COMBOBOX IDC_ROOTDRIVELIST,17,94,40,76,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_GROUP | WS_TABSTOP
+ GROUPBOX "Home Drive Assignment",IDC_STATIC,5,117,323,56,WS_GROUP
+ EDITTEXT IDC_ROOTPATH,66,94,254,12,ES_AUTOHSCROLL | ES_OEMCONVERT |
+ WS_GROUP
+ LTEXT "Drive",IDC_STATIC,17,84,17,8
+ LTEXT "Path",IDC_STATIC,66,84,15,8
+ LTEXT "@10550,10551;1;0;;0,128,128 ",1200,0,0,332,36,NOT
+ WS_VISIBLE,WS_EX_TRANSPARENT
+ PUSHBUTTON "C",3,21,200,25,12,NOT WS_VISIBLE | WS_GROUP | NOT
+ WS_TABSTOP
+ CONTROL "Enable Assigment",IDC_ENABLEROOT,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,5,72,71,10
+ CONTROL "Enable Assigment",IDC_ENABLEHOME,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,9,128,71,10
+END
+
+DLG_CELLSERVDB DIALOGEX 0, 0, 336, 228
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Select AFS Cell Data Base (afsdcell.ini)"
+FONT 8, "MS Sans Serif"
+BEGIN
+ LTEXT "",52,0,0,336,36
+ LTEXT "Select the data base from one of the following source locations.",
+ 901,17,41,289,15,SS_NOPREFIX
+ LTEXT "Choose Source location:",50,10,3,220,8,0,
+ WS_EX_TRANSPARENT
+ LTEXT "AFS Cell Data Base contains the list of available AFS cells and their IP addresses.",
+ 51,17,15,275,19,0,WS_EX_TRANSPARENT
+ CONTROL "",1301,"Static",SS_ETCHEDHORZ | WS_GROUP,0,36,336,1
+ DEFPUSHBUTTON "&Next >",SD_PBUT_CONTINUE,215,196,50,14
+ PUSHBUTTON "Cancel",SD_PBUT_CANCEL,272,196,50,14
+ PUSHBUTTON "< &Back",SD_PBUT_BACK,166,196,50,14
+ CONTROL "",SD_STA_IMAGE_2,"Static",SS_BLACKFRAME,54,185,268,1
+ LTEXT "",7,10,182,40,10,NOT WS_VISIBLE
+ LTEXT "@10550,10551;1;0;;0,128,128 ",1200,0,0,336,36,NOT
+ WS_VISIBLE,WS_EX_TRANSPARENT
+ PUSHBUTTON "C",3,21,200,25,12,NOT WS_VISIBLE | WS_GROUP | NOT
+ WS_TABSTOP
+ PUSHBUTTON "B&rowse...",IDC_BROWSE,262,160,46,14
+ GROUPBOX "Download from Web Address",IDC_STATIC,108,115,205,31
+ GROUPBOX "Select File",IDC_STATIC,108,150,205,31
+ EDITTEXT IDC_WEB,115,126,180,12,ES_AUTOHSCROLL | ES_OEMCONVERT |
+ WS_GROUP
+ GROUPBOX "Packaged Installation File",IDC_STATIC,108,87,205,23,
+ WS_GROUP
+ LTEXT "General.org",IDC_INSTALL,114,96,187,10
+ GROUPBOX "",IDC_STATIC,90,58,15,124,NOT WS_VISIBLE | WS_GROUP
+ CONTROL "",IDC_CHECK_INSTALL,"Button",BS_AUTORADIOBUTTON |
+ WS_GROUP,94,96,8,10
+ CONTROL "",IDC_CHECK_WEB,"Button",BS_AUTORADIOBUTTON | WS_GROUP,
+ 94,125,8,10
+ CONTROL "",IDC_CHECK_BROWSEFILE,"Button",BS_AUTORADIOBUTTON |
+ WS_GROUP,94,160,8,10
+ CONTROL "",IDC_CHECK_PREVIOUSFILE,"Button",BS_AUTORADIOBUTTON |
+ WS_GROUP,94,70,8,10
+ LTEXT "",IDC_PREVIOUSFILE,114,71,189,8
+ GROUPBOX "Previous Installation",IDC_STATIC,108,58,205,26,
+ WS_GROUP
+ EDITTEXT IDC_BROWSEFILE,113,161,142,12,ES_AUTOHSCROLL
+END
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
+ "#include ""windows.h""\r\n"
+ "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
+ "#include ""sdrc.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+//10000 ICON DISCARDABLE "icon1.ico"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO DISCARDABLE
+BEGIN
+ DLG_CELLSERVDB, DIALOG
+ BEGIN
+ RIGHTMARGIN, 332
+ BOTTOMMARGIN, 218
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
--- /dev/null
+# Microsoft Developer Studio Generated Dependency File, included by _IsUser.mak
+
+.\_Isuser.RC : \
+ ".\sdrc.h"\
+
--- /dev/null
+
+////////////////////////////////////////////////////////////////////////////////
+//
+// IIIIIII SSSSSS
+// II SS InstallShield (R)
+// II SSSSSS (c) 1996-2000, InstallShield Software Corporation
+// II SS (c) 1990-1996, InstallShield Corporation
+// IIIIIII SSSSSS All Rights Reserved.
+//
+//
+////////////////////////////////////////////////////////////////////////////////
+
+#define NOCOMM
+#include <windows.h>
+
+
+BOOL WINAPI DllMain( PVOID hmod, ULONG ulReason, PCONTEXT pctx )
+{
+ return TRUE;
+}
+
--- /dev/null
+# include the primary makefile
+
+!INCLUDE ..\..\..\config\NTMakefile.$(SYS_NAME)
+
+# Microsoft Developer Studio Generated NMAKE File, Based on _IsUser.dsp
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE
+NULL=nul
+!ENDIF
+
+OUTDIR=.
+INTDIR=.
+# Begin Custom Macros
+OutDir=.
+# End Custom Macros
+
+INSTALL : "$(OUTDIR)\_IsUser.dll"
+ $(DEL) *.PCH
+ $(DEL) *.IDB
+
+CLEAN ::
+ -@erase "$(INTDIR)\_isuser.obj"
+ -@erase "$(INTDIR)\_Isuser.res"
+ -@erase "$(INTDIR)\vc60.idb"
+ -@erase "$(OUTDIR)\_IsUser.dll"
+ -@erase "$(OUTDIR)\_IsUser.exp"
+ -@erase "$(OUTDIR)\_IsUser.lib"
+
+"$(OUTDIR)" ::
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+HEADERS = ".\sdrc.h"
+
+".\sdrc.h" : $(IS5ROOT)\INCLUDE\sdrc.h
+ $(COPY) $(IS5ROOT)\INCLUDE\sdrc.h .
+! IF EXIST($(IS5ROOT)\Script\ISRT\Include\sdrc.h)
+ $(COPY) $(IS5ROOT)\Script\ISRT\Include\sdrc.h .
+! ENDIF
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_ISUSER_EXPORTS" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
+
+.c{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.c{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+MTL=midl.exe
+MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
+RSC=rc.exe
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\_Isuser.res" /d "NDEBUG"
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\_IsUser.bsc"
+BSC32_SBRS= \
+
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\_IsUser.pdb" /machine:I386 /out:"$(OUTDIR)\_IsUser.dll" /implib:"$(OUTDIR)\_IsUser.lib"
+LINK32_OBJS= \
+ "$(INTDIR)\_isuser.obj" \
+ "$(INTDIR)\_Isuser.res"
+
+"$(OUTDIR)\_IsUser.dll" : "$(OUTDIR)" $(HEADERS) $(DEF_FILE) $(LINK32_OBJS)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("_IsUser.dep")
+!INCLUDE "_IsUser.dep"
+!ELSE
+!MESSAGE Warning: cannot find "_IsUser.dep"
+!ENDIF
+!ENDIF
+
+
+SOURCE=.\_isuser.c
+
+"$(INTDIR)\_isuser.obj" : $(SOURCE) "$(INTDIR)"
+
+SOURCE=.\_Isuser.RC
+
+"$(INTDIR)\_Isuser.res" : $(SOURCE) "$(INTDIR)"
+ $(RSC) $(RSC_PROJ) $(SOURCE)
--- /dev/null
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by _IsUser.RC
+//
+#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_FILE 1020
+#define IDC_CHECK_BROWSEFILE 1020
+#define IDC_CHECK_DEFAULT 1021
+#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
+#define IDC_STATIC -1
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NO_MFC 1
+#define _APS_NEXT_RESOURCE_VALUE 104
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1028
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
--- /dev/null
+AFS_component_version_number.c
+Makefile
+afs_trace.h
+afs_trace.msf
+afszcm.cat
--- /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
+
+DEST=@DEST@
+TOP_INCDIR=@TOP_INCDIR@
+TOP_LIBDIR=@TOP_LIBDIR@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+bindir=@bindir@
+sbindir=@sbindir@
+libexecdir=@libexecdir@
+libdir=@libdir@
+includedir=@includedir@
+mandir=@mandir@
+afssrvbindir=@afssrvbindir@
+afssrvsbindir=@afssrvsbindir@
+afssrvlibexecdir=@afssrvlibexecdir@
+COMPILE_ET=${TOP_SRCDIR}/comerr/compile_et
+RXGEN=${TOP_SRCDIR}/rxgen/rxgen
+TOP_SRCDIR=@TOP_SRCDIR@
+SYS_NAME=@AFS_SYSNAME@
+
+SHELL=/bin/sh
+KERNELDIR = ../libafs/
+UKERNELDIR = ../libuafs/
+
+include ../config/Makefile.${SYS_NAME}
+
+all: kinstall ukinstall ${TOP_INCDIR}/afs/afs.h ${TOP_INCDIR}/afs/osi_inode.h ${TOP_INCDIR}/afs/afs_stats.h ${TOP_INCDIR}/afs/exporter.h ${TOP_INCDIR}/afs/nfsclient.h
+ case ${SYS_NAME} in \
+ pmax_ul43 | pmax_ul43a) \
+ ${INSTALL} longc_procs.h ${TOP_INCDIR}/afs ;; \
+ esac
+ case ${SYS_NAME} in \
+ *linux* ) \
+ ${INSTALL} ${AFS_OSTYPE}/osi_vfs.h ${TOP_INCDIR}/afs ;;\
+ * ) \
+ echo No vfs headers to install for ${SYS_NAME};; \
+ esac
+
+# NOTE: linux case uses --new as well to work around bug in some versions of
+# gencat.
+kinstall: ${KERNELDIR}/afs AFS_component_version_number.c
+ -chmod 666 ${KERNELDIR}afs/*
+ ${COMPILE_ET} -v 2 afs_trace.et
+ ${INSTALL} *.[csh] ${KERNELDIR}afs
+ ${INSTALL} VNOPS/*.[csh] ${KERNELDIR}afs
+ ${INSTALL} ${AFS_OSTYPE}/*.[csh] ${KERNELDIR}afs
+ -$(RM) -f afszcm.cat
+ case ${SYS_NAME} in \
+ sgi_* ) \
+ gencat -m afszcm.cat afs_trace.msf ;; \
+ *_linux* ) \
+ gencat --new afszcm.cat afs_trace.msf ;; \
+ ppc_darwin* | i386_fbsd*) \
+ echo No gencat for ${SYS_NAME} ;; \
+ * ) \
+ gencat afszcm.cat afs_trace.msf ;; \
+ esac
+
+${KERNELDIR}/afs:
+ mkdir -p $@
+
+ukinstall: ${UKERNELDIR}/afs AFS_component_version_number.c
+ -chmod 666 ${UKERNELDIR}afs/*
+ ${COMPILE_ET} -v 2 afs_trace.et
+ ${INSTALL} *.[csh] ${UKERNELDIR}afs
+ ${INSTALL} VNOPS/*.[csh] ${UKERNELDIR}afs
+ ${INSTALL} UKERNEL/*.[csh] ${UKERNELDIR}afs
+
+${UKERNELDIR}/afs:
+ mkdir -p $@
+
+install: ${DESTDIR}${includedir}/afs/afs.h ${DESTDIR}${includedir}/afs/osi_inode.h ${DESTDIR}${includedir}/afs/afs_stats.h ${DESTDIR}${includedir}/afs/exporter.h ${DESTDIR}${includedir}/afs/nfsclient.h
+ case ${SYS_NAME} in \
+ pmax_ul43 | pmax_ul43a) \
+ ${INSTALL} longc_procs.h ${DESTDIR}${includedir}/afs ;; \
+ esac
+ case ${SYS_NAME} in \
+ *linux* ) \
+ ${INSTALL} ${AFS_OSTYPE}/osi_vfs.h ${DESTDIR}${includedir}/afs ;;\
+ * ) \
+ echo No vfs headers to install for ${SYS_NAME};; \
+ esac
+
+clean:
+ -$(RM) -f *.o core AFS_component_version_number.c afs_trace.h afs_trace.msf afszcm.cat
+
+include ../config/Makefile.version
+${DEST}/include/afs/afs.h: afs.h
+ ${INSTALL} $? $@
+
+${DESTDIR}${includedir}/afs/afs.h: afs.h
+ ${INSTALL} $? $@
+
+
+${TOP_INCDIR}/afs/afs.h: afs.h
+ ${INSTALL} $? $@
+
+
+${DEST}/include/afs/osi_inode.h: ${AFS_OSTYPE}/osi_inode.h
+ ${INSTALL} $? $@
+
+${DESTDIR}${includedir}/afs/osi_inode.h: ${AFS_OSTYPE}/osi_inode.h
+ ${INSTALL} $? $@
+
+${TOP_INCDIR}/afs/osi_inode.h: ${AFS_OSTYPE}/osi_inode.h
+ ${INSTALL} $? $@
+
+
+${DEST}/include/afs/afs_stats.h: afs_stats.h
+ ${INSTALL} $? $@
+
+${DESTDIR}${includedir}/afs/afs_stats.h: afs_stats.h
+ ${INSTALL} $? $@
+
+
+${TOP_INCDIR}/afs/afs_stats.h: afs_stats.h
+ ${INSTALL} $? $@
+
+
+${DEST}/include/afs/exporter.h: exporter.h
+ ${INSTALL} $? $@
+
+${DESTDIR}${includedir}/afs/exporter.h: exporter.h
+ ${INSTALL} $? $@
+
+
+${TOP_INCDIR}/afs/exporter.h: exporter.h
+ ${INSTALL} $? $@
+
+
+${DEST}/include/afs/nfsclient.h: nfsclient.h
+ ${INSTALL} $? $@
+
+${DESTDIR}${includedir}/afs/nfsclient.h: nfsclient.h
+ ${INSTALL} $? $@
+
+
+${TOP_INCDIR}/afs/nfsclient.h: nfsclient.h
+ ${INSTALL} $? $@
+
+
+dest: ${DEST}/include/afs/afs.h ${DEST}/include/afs/osi_inode.h ${DEST}/include/afs/afs_stats.h ${DEST}/include/afs/exporter.h ${DEST}/include/afs/nfsclient.h
+ case ${SYS_NAME} in \
+ pmax_ul43 | pmax_ul43a) \
+ ${INSTALL} longc_procs.h ${DEST}/include/afs ;; \
+ esac
+ case ${SYS_NAME} in \
+ next_mach30 | vax_ul43 | ppc_darwin* | i386_fbsd* ) \
+ echo skipping afszcm.cat install for ${SYS_NAME} ;; \
+ * ) \
+ ${INSTALL} afszcm.cat ${DEST}/root.client/usr/vice/etc/C ;; \
+ esac
+ case ${SYS_NAME} in \
+ *linux* ) \
+ ${INSTALL} ${AFS_OSTYPE}/osi_vfs.h ${DEST}/include/afs ;;\
+ * ) \
+ echo No vfs headers to install for ${SYS_NAME};; \
+ esac
+