]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Merge in changes from 1.3.71
authorSam Hartman <hartmans@debian.org>
Tue, 31 Aug 2004 13:43:32 +0000 (13:43 +0000)
committerSam Hartman <hartmans@debian.org>
Tue, 31 Aug 2004 13:43:32 +0000 (13:43 +0000)
192 files changed:
acinclude.m4
aclocal.m4
configure-libafs.in
configure.in
src/WINNT/afsd/NTMakefile
src/WINNT/afsd/afsd_init.c
src/WINNT/afsd/afskfw.c
src/WINNT/afsd/afslogon.c
src/WINNT/afsd/cm_access.c
src/WINNT/afsd/cm_buf.c
src/WINNT/afsd/cm_buf.h
src/WINNT/afsd/cm_callback.c
src/WINNT/afsd/cm_callback.h
src/WINNT/afsd/cm_cell.c
src/WINNT/afsd/cm_conn.c
src/WINNT/afsd/cm_daemon.c
src/WINNT/afsd/cm_dcache.c
src/WINNT/afsd/cm_dir.h
src/WINNT/afsd/cm_dnlc.c
src/WINNT/afsd/cm_dnlc.h
src/WINNT/afsd/cm_freelance.c
src/WINNT/afsd/cm_ioctl.c
src/WINNT/afsd/cm_scache.c
src/WINNT/afsd/cm_scache.h
src/WINNT/afsd/cm_server.c
src/WINNT/afsd/cm_server.h
src/WINNT/afsd/cm_vnodeops.c
src/WINNT/afsd/cm_volume.c
src/WINNT/afsd/fs.c
src/WINNT/afsd/smb.c
src/WINNT/afsd/smb.h
src/WINNT/afsd/smb3.c
src/WINNT/aklog/aklog.c
src/WINNT/client_config/drivemap.cpp
src/WINNT/client_config/isadmin.cpp
src/WINNT/client_creds/ipaddrchg.c
src/WINNT/client_exp/gui2fs.cpp
src/WINNT/client_osi/osiutils.c
src/WINNT/install/NSIS/AdminGroup.cpp [new file with mode: 0644]
src/WINNT/install/NSIS/CellServDB
src/WINNT/install/NSIS/NTMakefile
src/WINNT/install/NSIS/OpenAFS.nsi
src/WINNT/install/Win9x/CellServDB
src/WINNT/install/wix/CellServDB
src/WINNT/install/wix/NTMakefile
src/WINNT/install/wix/custom/NTMakefile
src/WINNT/install/wix/custom/afscustom.cpp
src/WINNT/install/wix/custom/afscustom.h
src/WINNT/install/wix/feature.wxi
src/WINNT/install/wix/files.wxi
src/WINNT/install/wix/lang/en_US/strings.wxl
src/WINNT/install/wix/lang/en_US/ui.wxi
src/WINNT/install/wix/language_config.wxi
src/WINNT/install/wix/openafs.wxs
src/WINNT/install/wix/property.wxi
src/WINNT/install/wix/registry.wxi
src/WINNT/win9xpanel/CellServDB
src/afs/AIX/osi_config.c
src/afs/AIX/osi_inode.c
src/afs/AIX/osi_vfsops.c
src/afs/IRIX/osi_idbg.c
src/afs/IRIX/osi_machdep.h
src/afs/IRIX/osi_vfsops.c
src/afs/IRIX/osi_vnodeops.c
src/afs/LINUX/osi_module.c
src/afs/LINUX/osi_vnodeops.c
src/afs/UKERNEL/afs_usrops.c
src/afs/UKERNEL/osi_vfsops.c
src/afs/VNOPS/afs_vnop_access.c
src/afs/VNOPS/afs_vnop_attrs.c
src/afs/VNOPS/afs_vnop_create.c
src/afs/VNOPS/afs_vnop_dirops.c
src/afs/VNOPS/afs_vnop_fid.c
src/afs/VNOPS/afs_vnop_flock.c
src/afs/VNOPS/afs_vnop_link.c
src/afs/VNOPS/afs_vnop_lookup.c
src/afs/VNOPS/afs_vnop_readdir.c
src/afs/VNOPS/afs_vnop_remove.c
src/afs/VNOPS/afs_vnop_rename.c
src/afs/VNOPS/afs_vnop_symlink.c
src/afs/VNOPS/afs_vnop_write.c
src/afs/afs.h
src/afs/afs_call.c
src/afs/afs_daemons.c
src/afs/afs_dcache.c
src/afs/afs_pioctl.c
src/afs/afs_segments.c
src/afs/afs_server.c
src/afs/afs_vcache.c
src/auth/authcon.c
src/auth/cellconfig.c
src/auth/ktc.c
src/auth/ktc_nt.c
src/auth/userok.c
src/auth/writeconfig.c
src/bozo/bos.c
src/butc/butc_xbsa.h
src/butc/tcmain.c
src/butc/tcprocs.c
src/cf/osconf.m4
src/comerr/error_msg.c
src/config/NTMakefile.i386_nt40
src/config/afs_sysnames.h
src/config/afsconfig.h.in
src/config/make_libafs_tree.pl
src/config/param.i386_nbsd20.h
src/config/param.nbsd20.h
src/config/param.ppc_nbsd20.h
src/config/param.s390x_linux24.h [new file with mode: 0644]
src/des/Makefile.in
src/des/crypt.c
src/des/des.c
src/des/key_sched.c
src/des/new_rnd_key.c
src/des/stats.h
src/export/Makefile.in
src/kauth/admin_tools.c
src/kauth/authclient.c
src/kauth/client.c
src/kauth/kadatabase.c
src/kauth/kalocalcell.c
src/kauth/kaprocs.c
src/kauth/kdb.c
src/kauth/kpasswd.c
src/kauth/prot.h
src/kauth/token.c
src/kauth/user.c
src/kauth/user_nt.c
src/libadmin/adminutil/afs_utilAdmin.c
src/libadmin/client/afs_clientAdmin.c
src/libafs/MakefileProto.LINUX.in
src/libafsauthent/mapfile
src/lwp/Makefile.in
src/lwp/lock.h
src/lwp/lwp.c
src/lwp/process.i386.s
src/lwp/process.s
src/lwp/process.s390.s [new file with mode: 0644]
src/lwp/process.s390x.s [new file with mode: 0644]
src/rx/AIX/rx_knet.c
src/rx/LINUX/rx_knet.c
src/rx/rx.c
src/rx/rx_clock_nt.c
src/rx/rx_conncache.c
src/rx/rx_event.c
src/rx/rx_kcommon.c
src/rx/rx_kcommon.h
src/rx/rx_misc.c
src/rx/rx_packet.c
src/rx/rx_pthread.c
src/rx/rx_user.c
src/rx/rx_user.h
src/rx/rx_xmit_nt.c
src/rx/rxdebug.c
src/rx/xdr_int64.c
src/rxkad/bg-fcrypt.c
src/rxkad/domestic/crypt_conn.c
src/rxkad/domestic/fcrypt.c
src/rxkad/hash.h
src/rxkad/md4.c
src/rxkad/md4.h
src/rxkad/md5.c
src/rxkad/md5.h
src/rxkad/rxkad.p.h
src/rxkad/rxkad_client.c
src/rxkad/rxkad_common.c
src/rxkad/rxkad_prototypes.h
src/rxkad/rxkad_server.c
src/rxkad/ticket5.c
src/shlibafsauthent/mapfile
src/ubik/beacon.c
src/ubik/remote.c
src/ubik/ubik.p.h
src/ubik/ubikclient.c
src/util/pthread_glock.h
src/vfsck/setup.c
src/vol/clone.c
src/vol/fssync.c
src/vol/fstab.c
src/vol/ihandle.c
src/vol/ihandle.h
src/vol/namei_ops.c
src/vol/nuke.c
src/vol/partition.c
src/vol/purge.c
src/vol/vnode.c
src/vol/vol-info.c
src/vol/vol-salvage.c
src/vol/volume.c
src/vol/volume.h
src/vol/vutil.c
src/volser/vos.c

index 5b4576953d19781cc9203711804880670fcf3154..4166801fbc98cd13f56a08d2fd87ae741d7ce206 100644 (file)
@@ -224,6 +224,15 @@ case $system in
                          fi
                    fi
                  fi
+                if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
+                 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
+                fi
+                if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
+                 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
+                fi
+                if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
+                 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
+                fi
                 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
                  AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
                 fi
@@ -591,6 +600,9 @@ else
                s390-*-linux*)
                        AFS_SYSNAME="s390_linuxXX"
                        ;;
+               s390x-*-linux*)
+                       AFS_SYSNAME="s390x_linuxXX"
+                       ;;
                sparc-*-linux*)
                        AFS_SYSNAME="sparc_linuxXX"
                        ;;
index e89f7dbef4e23383f54ecc0368cd488b7b1fe95b..8e7ba9692e429c156236cf8efd3af3010ac9b4a4 100644 (file)
@@ -236,6 +236,15 @@ case $system in
                          fi
                    fi
                  fi
+                if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
+                 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
+                fi
+                if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then
+                 AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file])
+                fi
+                if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then
+                 AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file])
+                fi
                 if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then
                  AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir])
                 fi
@@ -603,6 +612,9 @@ else
                s390-*-linux*)
                        AFS_SYSNAME="s390_linuxXX"
                        ;;
+               s390x-*-linux*)
+                       AFS_SYSNAME="s390x_linuxXX"
+                       ;;
                sparc-*-linux*)
                        AFS_SYSNAME="sparc_linuxXX"
                        ;;
@@ -3139,6 +3151,7 @@ case $AFS_SYSNAME in
                AIX64="#"
                ;;
 
+
        rs_aix51)
                DBG=""
                LEX="lex"
@@ -3154,10 +3167,24 @@ case $AFS_SYSNAME in
                AIX64=""
                ;;
 
+       rs_aix52)       
+               DBG=""
+               LEX="lex"
+               LIBSYS_AIX_EXP="afsl.exp"
+               MT_CC="xlc_r"
+               MT_CFLAGS='-DAFS_PTHREAD_ENV ${XCFLAGS}'
+               MT_LIBS="-lpthreads"
+               SHLIB_SUFFIX="o"
+               TXLIBS="-lcurses"
+               XCFLAGS="-K -D_NO_PROTO -D_NONSTD_TYPES -D_MBI=void"
+               XLIBS="${LIB_AFSDB} -ldl"
+               SHLIB_LINKER="${MT_CC} -bM:SRE -berok"
+               AIX64=""
+               ;;
        s390_linux22)
                CC="gcc"
                CCOBJ="gcc"
-               LD="gcc"
+               LD="ld"
                KERN_OPTMZ=-O2
                LEX="flex -l"
                MT_CC="$CC"
@@ -3174,7 +3201,7 @@ case $AFS_SYSNAME in
        s390_linux24)
                CC="gcc"
                CCOBJ="gcc"
-               LD="gcc"
+               LD="ld"
                KERN_OPTMZ=-O2
                LEX="flex -l"
                MT_CC="$CC"
@@ -3188,6 +3215,23 @@ case $AFS_SYSNAME in
                SHLIB_LINKER="${MT_CC} -shared"
                ;;
 
+       s390x_linux24)
+               CC="gcc"
+               CCOBJ="gcc"
+               LD="ld"
+               KERN_OPTMZ=-O2
+               LEX="flex -l"
+               MT_CC="$CC"
+               MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
+               MT_LIBS="-lpthread"
+               PAM_CFLAGS="-O -Dlinux -DLINUX_PAM -fPIC"
+               SHLIB_LDFLAGS="-shared -Xlinker -x"
+               TXLIBS="-lncurses"
+               XCFLAGS="-O -g -D_LARGEFILE64_SOURCE -D__s390x__"
+               YACC="bison -y"
+               SHLIB_LINKER="${MT_CC} -shared"
+               ;;
+
        sgi_62)
                PINSTALL_LIBS=-lmld
                AFSD_LIBS="/usr/lib/libdwarf.a /usr/lib/libelf.a"
index f9fa0facaa1abfcd41ce02943eca4a3168922440..93fe6746c9a1e1ad0b5d9a1697ca279fe6b43f9e 100644 (file)
@@ -1,5 +1,5 @@
 AC_INIT(src/libafs/Makefile.common.in)
-AM_INIT_AUTOMAKE(openafs-libafs,devel)
+AM_INIT_AUTOMAKE(openafs-libafs,1.3.71)
 AC_CONFIG_HEADER(src/config/afsconfig.h)
 define(OPENAFS_CONFIGURE_LIBAFS)
 
index 76956d14d6b784834951ff508495ae373c2d351d..7395939a7dd69b0347221f137c764aa7e9aa7d6e 100644 (file)
@@ -1,5 +1,5 @@
 AC_INIT(src/config/stds.h)
-AM_INIT_AUTOMAKE(openafs,devel)
+AM_INIT_AUTOMAKE(openafs,1.3.71)
 AC_CONFIG_HEADER(src/config/afsconfig.h)
 
 AC_PROG_CC
index 6586818a16abfef5f66e207144412a05d9bc3efe..7f325edd3b1c4cc09df50e4f0a661dc15495820a 100644 (file)
@@ -221,7 +221,9 @@ LOGON_DLLLIBS =\
     $(AFSKFWLIB)
 
 LOGON_DLLSDKLIBS =\
-       dnsapi.lib mpr.lib \
+        dnsapi.lib \
+        netapi32.lib \
+        mpr.lib \
        advapi32.lib \
        secur32.lib \
        strsafe.lib \
index db6c3a54c74b44e27c35f21c06a0d3950712b3b9..faf11da1cccee4963d876c9b12980f20cf334344 100644 (file)
@@ -46,7 +46,7 @@ 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;
+cm_scache_t *cm_rootSCachep = NULL;
 char cm_mountRoot[1024];
 DWORD cm_mountRootLen;
 int cm_logChunkSize;
@@ -71,7 +71,7 @@ long cm_HostAddr;
 
 char cm_NetbiosName[MAX_NB_NAME_LENGTH] = "";
 
-char cm_CachePath[200];
+char cm_CachePath[MAX_PATH];
 DWORD cm_CachePathLen;
 
 BOOL isGateway = FALSE;
@@ -553,8 +553,7 @@ int afsd_InitCM(char **reasonP)
                code = RegQueryValueEx(parmKey, "LogoffTokenTransferTimeout",
                                        NULL, NULL, (BYTE *) &ltto, &dummyLen);
                if (code == ERROR_SUCCESS)
-                       afsi_log("Logoff token tranfer timeout %d seconds",
-                                ltto);
+            afsi_log("Logoff token tranfer timeout %d seconds", ltto);
                else {
                        ltto = 10;
                        afsi_log("Default logoff token transfer timeout 10 seconds");
@@ -647,8 +646,7 @@ int afsd_InitCM(char **reasonP)
     cm_sysName = cm_sysNameList[0];
 
        dummyLen = MAXSYSNAME;
-       code = RegQueryValueEx(parmKey, "SysName", NULL, NULL,
-                               cm_sysName, &dummyLen);
+    code = RegQueryValueEx(parmKey, "SysName", NULL, NULL, cm_sysName, &dummyLen);
        if (code == ERROR_SUCCESS)
                afsi_log("Sys name %s", cm_sysName);
        else {
@@ -943,11 +941,11 @@ int afsd_InitCM(char **reasonP)
         }
        }
 
+
 #ifdef AFS_FREELANCE_CLIENT
        if (cm_freelanceEnabled)
          cm_InitFreelance();
 #endif
-
        return 0;
 }
 
index fbf10568a24379d2b00fe15e6bf08928c3bf0d07..763dc19b113fe7ee204c244e64c8dbaadba33c93 100644 (file)
@@ -62,6 +62,7 @@
 
 #include <osilog.h>
 #include <rxkad_prototypes.h>   /* for life_to_time */
+#include <afs/ptserver.h>
 
 /*
  * TIMING _____________________________________________________________________
@@ -2378,6 +2379,114 @@ KFW_AFS_unlog(void)
     return(0);
 }
 
+
+#define ALLOW_REGISTER 1
+static int
+ViceIDToUsername(char *username, 
+                 char *realm_of_user, 
+                 char *realm_of_cell,
+                 char * cell_to_use,
+                 struct ktc_principal *aclient, 
+                 struct ktc_principal *aserver, 
+                 struct ktc_token *atoken)
+{
+    static char lastcell[MAXCELLCHARS+1] = { 0 };
+    static char confname[512] = { 0 };
+    char username_copy[BUFSIZ];
+    long viceId;                       /* AFS uid of user */
+    int  status = 0;
+#ifdef ALLOW_REGISTER
+    afs_int32 id;
+#endif /* ALLOW_REGISTER */
+
+    if (confname[0] == '\0') {
+        strncpy(confname, AFSDIR_CLIENT_ETC_DIRPATH, sizeof(confname));
+        confname[sizeof(confname) - 2] = '\0';
+    }
+
+    /*
+     * Talk about DUMB!  It turns out that there is a bug in
+     * pr_Initialize -- even if you give a different cell name
+     * to it, it still uses a connection to a previous AFS server
+     * if one exists.  The way to fix this is to change the
+     * _filename_ argument to pr_Initialize - that forces it to
+     * re-initialize the connection.  We do this by adding and
+     * removing a "/" on the end of the configuration directory name.
+     */
+
+    if (lastcell[0] != '\0' && (strcmp(lastcell, aserver->cell) != 0)) {
+        int i = strlen(confname);
+        if (confname[i - 1] == '/') {
+            confname[i - 1] = '\0';
+        } else {
+            confname[i] = '/';
+            confname[i + 1] = '\0';
+        }
+    }
+
+    strcpy(lastcell, aserver->cell);
+
+    if (!pr_Initialize (0, confname, aserver->cell))
+        status = pr_SNameToId (username, &viceId);
+
+    /*
+     * This is a crock, but it is Transarc's crock, so
+     * we have to play along in order to get the
+     * functionality.  The way the afs id is stored is
+     * as a string in the username field of the token.
+     * Contrary to what you may think by looking at
+     * the code for tokens, this hack (AFS ID %d) will
+     * not work if you change %d to something else.
+     */
+
+    /*
+     * This code is taken from cklog -- it lets people
+     * automatically register with the ptserver in foreign cells
+     */
+
+#ifdef ALLOW_REGISTER
+    if (status == 0) {
+        if (viceId != ANONYMOUSID) {
+#else /* ALLOW_REGISTER */
+            if ((status == 0) && (viceId != ANONYMOUSID))
+#endif /* ALLOW_REGISTER */
+            {
+#ifdef AFS_ID_TO_NAME
+                strncpy(username_copy, username, BUFSIZ);
+                snprintf (username, BUFSIZ, "%s (AFS ID %d)", username_copy, (int) viceId);
+#endif /* AFS_ID_TO_NAME */
+            }
+#ifdef ALLOW_REGISTER
+        } else if (strcmp(realm_of_user, realm_of_cell) != 0) {
+            id = 0;
+            strncpy(aclient->name, username, MAXKTCNAMELEN - 1);
+            strcpy(aclient->instance, "");
+            strncpy(aclient->cell, realm_of_user, MAXKTCREALMLEN - 1);
+            if (status = ktc_SetToken(aserver, atoken, aclient, 0))
+                return status;
+
+            /*                                    
+             * In case you're wondering, we don't need to change the
+             * filename here because we're still connecting to the
+             * same cell -- we're just using a different authentication
+             * level
+             */
+
+            if (status = pr_Initialize(1L, confname, aserver->cell, 0))
+                return status;
+            if (status = pr_CreateUser(username, &id))
+                return status;
+#ifdef AFS_ID_TO_NAME
+            strncpy(username_copy, username, BUFSIZ);
+            snprintf (username, BUFSIZ, "%s (AFS ID %d)", username_copy, (int) viceId);
+#endif /* AFS_ID_TO_NAME */
+        }
+    }
+#endif /* ALLOW_REGISTER */
+    return status;
+}
+
+
 int
 KFW_AFS_klog(
     krb5_context alt_ctx,
@@ -2717,6 +2826,9 @@ KFW_AFS_klog(
             p[len] = '\0';
         }
 
+        ViceIDToUsername(aclient.name, realm_of_user, realm_of_cell, CellName, 
+                         &aclient, &aserver, &atoken);
+
         if ( smbname ) {
             strncpy(aclient.smbname, smbname, sizeof(aclient.smbname));
             aclient.smbname[sizeof(aclient.smbname)-1] = '\0';
@@ -2835,6 +2947,9 @@ KFW_AFS_klog(
 
     strcpy(aclient.cell, CellName);
 
+    ViceIDToUsername(aclient.name, realm_of_user, realm_of_cell, CellName, 
+                      &aclient, &aserver, &atoken);
+
     if ( smbname ) {
         strncpy(aclient.smbname, smbname, sizeof(aclient.smbname));
         aclient.smbname[sizeof(aclient.smbname)-1] = '\0';
index 3e63daa1fccf7895d9bdda618f1d23151f7f7b07..7f6b4e1a12a840ef78af2ae1e427d5972e2a4d2e 100644 (file)
@@ -15,6 +15,7 @@
 #include <fcntl.h>
 
 #include <winsock2.h>
+#include <lm.h>
 
 #include <afs/param.h>
 #include <afs/stds.h>
@@ -35,32 +36,32 @@ WSADATA WSAjunk;
 
 void DebugEvent0(char *a) 
 {
-       HANDLE h; char *ptbuf[1];
-       if (!ISLOGONTRACE(TraceOption))
-               return;
-       h = RegisterEventSource(NULL, AFS_LOGON_EVENT_NAME);
-       ptbuf[0] = a;
-       ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, (const char **)ptbuf, NULL);
-       DeregisterEventSource(h);
+    HANDLE h; char *ptbuf[1];
+    if (!ISLOGONTRACE(TraceOption))
+        return;
+    h = RegisterEventSource(NULL, AFS_LOGON_EVENT_NAME);
+    ptbuf[0] = a;
+    ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, (const char **)ptbuf, NULL);
+    DeregisterEventSource(h);
 }
 
 #define MAXBUF_ 512
 void DebugEvent(char *b,...) 
 {
-       HANDLE h; char *ptbuf[1],buf[MAXBUF_+1];
-       va_list marker;
+    HANDLE h; char *ptbuf[1],buf[MAXBUF_+1];
+    va_list marker;
 
-       if (!ISLOGONTRACE(TraceOption))
-               return;
+    if (!ISLOGONTRACE(TraceOption))
+        return;
 
-       h = RegisterEventSource(NULL, AFS_LOGON_EVENT_NAME);
-       va_start(marker,b);
-       StringCbVPrintf(buf, MAXBUF_+1,b,marker);
+    h = RegisterEventSource(NULL, AFS_LOGON_EVENT_NAME);
+    va_start(marker,b);
+    StringCbVPrintf(buf, MAXBUF_+1,b,marker);
     buf[MAXBUF_] = '\0';
-       ptbuf[0] = buf;
-       ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, (const char **)ptbuf, NULL);\
-       DeregisterEventSource(h);
-       va_end(marker);
+    ptbuf[0] = buf;
+    ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, (const char **)ptbuf, NULL);
+    DeregisterEventSource(h);
+    va_end(marker);
 }
 
 static HANDLE hInitMutex = NULL;
@@ -68,8 +69,8 @@ static BOOL bInit = FALSE;
 
 BOOLEAN APIENTRY DllEntryPoint(HANDLE dll, DWORD reason, PVOID reserved)
 {
-       hDLL = dll;
-       switch (reason) {
+    hDLL = dll;
+    switch (reason) {
     case DLL_PROCESS_ATTACH:
         /* Initialization Mutex */
         hInitMutex = CreateMutex(NULL, FALSE, NULL);
@@ -82,118 +83,153 @@ BOOLEAN APIENTRY DllEntryPoint(HANDLE dll, DWORD reason, PVOID reserved)
     case DLL_THREAD_ATTACH:
     case DLL_THREAD_DETACH:
     default:
-               /* Everything else succeeds but does nothing. */
+        /* Everything else succeeds but does nothing. */
         break;
-       }
+    }
 
-       return TRUE;
+    return TRUE;
 }
 
 void AfsLogonInit(void)
 {
     if ( bInit == FALSE ) {
-         if ( WaitForSingleObject( hInitMutex, INFINITE ) == WAIT_OBJECT_0 ) {
-             if ( bInit == FALSE ) {
-                 rx_Init(0);
-                 initAFSDirPath();
-                 ka_Init(0);
-                 bInit = TRUE;
-             }
-             ReleaseMutex(hInitMutex);
-         }
+        if ( WaitForSingleObject( hInitMutex, INFINITE ) == WAIT_OBJECT_0 ) {
+            if ( bInit == FALSE ) {
+                rx_Init(0);
+                initAFSDirPath();
+                ka_Init(0);
+                bInit = TRUE;
+            }
+            ReleaseMutex(hInitMutex);
+        }
     }
 }
 
 CHAR *GenRandomName(CHAR *pbuf)
 {
-       int i;
-       srand( (unsigned)time( NULL ) );
-       for (i=0;i<MAXRANDOMNAMELEN-1;i++)
-               pbuf[i]='a'+(rand() % 26);
-       pbuf[MAXRANDOMNAMELEN-1]=0;
-       return pbuf;
+    int i;
+    srand( (unsigned)time( NULL ) );
+    for (i=0;i<MAXRANDOMNAMELEN-1;i++)
+        pbuf[i]='a'+(rand() % 26);
+    pbuf[MAXRANDOMNAMELEN-1]=0;
+    return pbuf;
 }
 
 BOOLEAN AFSWillAutoStart(void)
 {
-       SC_HANDLE scm;
-       SC_HANDLE svc;
-       BOOLEAN flag;
-       BOOLEAN result = FALSE;
-       LPQUERY_SERVICE_CONFIG pConfig = NULL;
-       DWORD BufSize;
-       LONG status;
-
-       /* Open services manager */
-       scm = OpenSCManager(NULL, NULL, GENERIC_READ);
-       if (!scm) return FALSE;
-
-       /* Open AFSD service */
-       svc = OpenService(scm, "TransarcAFSDaemon", SERVICE_QUERY_CONFIG);
-       if (!svc)
-               goto close_scm;
-
-       /* Query AFSD service config, first just to get buffer size */
-       /* Expected to fail, so don't test return value */
-       (void) QueryServiceConfig(svc, NULL, 0, &BufSize);
-       status = GetLastError();
-       if (status != ERROR_INSUFFICIENT_BUFFER)
-               goto close_svc;
-
-       /* Allocate buffer */
-       pConfig = (LPQUERY_SERVICE_CONFIG)GlobalAlloc(GMEM_FIXED,BufSize);
-       if (!pConfig)
-               goto close_svc;
-
-       /* Query AFSD service config, this time for real */
-       flag = QueryServiceConfig(svc, pConfig, BufSize, &BufSize);
-       if (!flag)
-               goto free_pConfig;
-
-       /* Is it autostart? */
-       if (pConfig->dwStartType < SERVICE_DEMAND_START)
-               result = TRUE;
-
-free_pConfig:
-       GlobalFree(pConfig);
-close_svc:
-       CloseServiceHandle(svc);
-close_scm:
-       CloseServiceHandle(scm);
-
-       return result;
+    SC_HANDLE scm;
+    SC_HANDLE svc;
+    BOOLEAN flag;
+    BOOLEAN result = FALSE;
+    LPQUERY_SERVICE_CONFIG pConfig = NULL;
+    DWORD BufSize;
+    LONG status;
+
+    /* Open services manager */
+    scm = OpenSCManager(NULL, NULL, GENERIC_READ);
+    if (!scm) return FALSE;
+
+    /* Open AFSD service */
+    svc = OpenService(scm, "TransarcAFSDaemon", SERVICE_QUERY_CONFIG);
+    if (!svc)
+        goto close_scm;
+
+    /* Query AFSD service config, first just to get buffer size */
+    /* Expected to fail, so don't test return value */
+    (void) QueryServiceConfig(svc, NULL, 0, &BufSize);
+    status = GetLastError();
+    if (status != ERROR_INSUFFICIENT_BUFFER)
+        goto close_svc;
+
+    /* Allocate buffer */
+    pConfig = (LPQUERY_SERVICE_CONFIG)GlobalAlloc(GMEM_FIXED,BufSize);
+    if (!pConfig)
+        goto close_svc;
+
+    /* Query AFSD service config, this time for real */
+    flag = QueryServiceConfig(svc, pConfig, BufSize, &BufSize);
+    if (!flag)
+        goto free_pConfig;
+
+    /* Is it autostart? */
+    if (pConfig->dwStartType < SERVICE_DEMAND_START)
+        result = TRUE;
+
+  free_pConfig:
+    GlobalFree(pConfig);
+  close_svc:
+    CloseServiceHandle(svc);
+  close_scm:
+    CloseServiceHandle(scm);
+
+    return result;
 }
 
 DWORD MapAuthError(DWORD code)
 {
-       switch (code) {
-               /* Unfortunately, returning WN_NO_NETWORK results in the MPR abandoning
-                * logon scripts for all credential managers, although they will still
-                * receive logon notifications.  Since we don't want this, we return
-                * WN_SUCCESS.  This is highly undesirable, but we also don't want to
-                * break other network providers.
-                */
-/*     case KTC_NOCM:
-       case KTC_NOCMRPC:
-               return WN_NO_NETWORK; */
-       default: return WN_SUCCESS;
-       }
+    switch (code) {
+        /* Unfortunately, returning WN_NO_NETWORK results in the MPR abandoning
+         * logon scripts for all credential managers, although they will still
+         * receive logon notifications.  Since we don't want this, we return
+         * WN_SUCCESS.  This is highly undesirable, but we also don't want to
+         * break other network providers.
+         */
+ /* case KTC_NOCM:
+    case KTC_NOCMRPC:
+    return WN_NO_NETWORK; */
+    default: return WN_SUCCESS;
+  }
 }
 
 DWORD APIENTRY NPGetCaps(DWORD index)
 {
-       switch (index) {
-               case WNNC_NET_TYPE:
-                       /* Don't have our own type; use somebody else's. */
-                       return WNNC_NET_SUN_PC_NFS;
-
-               case WNNC_START:
-                       /* Say we are already started, even though we might wait after we receive NPLogonNotify */
-                       return 1;
-
-               default:
-                       return 0;
-       }
+    switch (index) {
+    case WNNC_NET_TYPE:
+        /* Don't have our own type; use somebody else's. */
+        return WNNC_NET_SUN_PC_NFS;
+
+    case WNNC_START:
+        /* Say we are already started, even though we might wait after we receive NPLogonNotify */
+        return 1;
+
+    default:
+        return 0;
+    }
+}       
+
+NET_API_STATUS 
+NetUserGetProfilePath( LPCWSTR Domain, LPCWSTR UserName, char * profilePath, 
+                       DWORD profilePathLen )
+{
+    NET_API_STATUS code;
+    LPWSTR ServerName = NULL;
+    LPUSER_INFO_3 p3 = NULL;
+
+    NetGetAnyDCName(NULL, Domain, (LPBYTE *)&ServerName);
+    /* if NetGetAnyDCName fails, ServerName == NULL
+     * NetUserGetInfo will obtain local user information 
+     */
+    code = NetUserGetInfo(ServerName, UserName, 3, (LPBYTE *)&p3);
+    if (code == NERR_Success)
+    {
+        code = NERR_UserNotFound;
+        if (p3) {
+            if (p3->usri3_profile) {
+                DWORD len = lstrlenW(p3->usri3_profile);
+                if (len > 0) {
+                    /* Convert From Unicode to ANSI (UTF-8 for future) */
+                    len = len < profilePathLen ? len : profilePathLen - 1;
+                    WideCharToMultiByte(CP_UTF8, 0, p3->usri3_profile, len, profilePath, len, NULL, NULL);
+                    profilePath[len] = '\0';
+                    code = NERR_Success;
+                }
+            }
+            NetApiBufferFree(p3);
+        }
+    }
+    if (ServerName) 
+        NetApiBufferFree(ServerName);
+    return code;
 }
 
 BOOL IsServiceRunning (void)
@@ -251,235 +287,236 @@ BOOL IsServiceRunning (void)
 /* Get domain specific configuration info.  We are returning void because if anything goes wrong
    we just return defaults.
  */
-void GetDomainLogonOptions( PLUID lpLogonId, char * username, char * domain, LogonOptions_t *opt ) {
-       HKEY hkParm = NULL; /* Service parameter */
-       HKEY hkNp = NULL;   /* network provider key */
-       HKEY hkDoms = NULL; /* domains key */
-       HKEY hkDom = NULL;  /* DOMAINS/domain key */
-       HKEY hkTemp = NULL;
-       LONG rv;
-       DWORD dwSize;
-       DWORD dwType;
-       DWORD dwDummy;
-       char computerName[MAX_COMPUTERNAME_LENGTH + 1];
-       char *effDomain;
-
-       DebugEvent("In GetDomainLogonOptions for user [%s] in domain [%s]", username, domain);
-       /* If the domain is the same as the Netbios computer name, we use the LOCALHOST domain name*/
-       opt->flags = LOGON_FLAG_REMOTE;
-       if(domain) {
-               dwSize = MAX_COMPUTERNAME_LENGTH;
-               if(GetComputerName(computerName, &dwSize)) {
-                       if(!stricmp(computerName, domain)) {
-                               effDomain = "LOCALHOST";
-                               opt->flags = LOGON_FLAG_LOCAL;
-                       }
-                       else
-                               effDomain = domain;
-               }
-       } else
-               effDomain = NULL;
-
-       rv = RegOpenKeyEx( HKEY_LOCAL_MACHINE, REG_CLIENT_PARMS_KEY, 0, KEY_READ, &hkParm );
-       if(rv != ERROR_SUCCESS) {
-               hkParm = NULL;
-               DebugEvent("GetDomainLogonOption: Can't open parms key [%d]", rv);
-       }
-
-       rv = RegOpenKeyEx( HKEY_LOCAL_MACHINE, REG_CLIENT_PROVIDER_KEY, 0, KEY_READ, &hkNp );
-       if(rv != ERROR_SUCCESS) {
-               hkNp = NULL;
-               DebugEvent("GetDomainLogonOptions: Can't open NP key [%d]", rv);
-       }
-
-       if(hkNp) {
-               rv = RegOpenKeyEx( hkNp, REG_CLIENT_DOMAINS_SUBKEY, 0, KEY_READ, &hkDoms );
-               if( rv != ERROR_SUCCESS ) {
-                       hkDoms = NULL;
-                       DebugEvent("GetDomainLogonOptions: Can't open Domains key [%d]", rv);
-               }
-       }
-
-       if(hkDoms && effDomain) {
-               rv = RegOpenKeyEx( hkDoms, effDomain, 0, KEY_READ, &hkDom );
-               if( rv != ERROR_SUCCESS ) {
-                       hkDom = NULL;
-                       DebugEvent("GetDomainLogonOptions: Can't open domain key for [%s] [%d]", effDomain, rv);
-                       /* If none of the domains match, we shouldn't use the domain key either */
-                       RegCloseKey(hkDoms);
-                       hkDoms = NULL;
-               }
-       } else
-               DebugEvent("Not opening domain key for [%s]", effDomain);
-
-       /* Each individual can either be specified on the domain key, the domains key or in the
-          net provider key.  They fail over in that order.  If none is found, we just use the 
-          defaults. */
-
-       /* LogonOption */
-       LOOKUPKEYCHAIN(opt->LogonOption, REG_DWORD, DEFAULT_LOGON_OPTION, REG_CLIENT_LOGON_OPTION_PARM);
-
-       /* FailLoginsSilently */
-       dwSize = sizeof(dwDummy);
-       rv = RegQueryValueEx(hkParm, REG_CLIENT_FAIL_SILENTLY_PARM, 0, &dwType, (LPBYTE) &dwDummy, &dwSize);
-       if(rv != ERROR_SUCCESS)
-               LOOKUPKEYCHAIN(dwDummy, REG_DWORD, DEFAULT_FAIL_SILENTLY, REG_CLIENT_FAIL_SILENTLY_PARM);
+void 
+GetDomainLogonOptions( PLUID lpLogonId, char * username, char * domain, LogonOptions_t *opt ) {
+    HKEY hkParm = NULL; /* Service parameter */
+    HKEY hkNp = NULL;   /* network provider key */
+    HKEY hkDoms = NULL; /* domains key */
+    HKEY hkDom = NULL;  /* DOMAINS/domain key */
+    HKEY hkTemp = NULL;
+    LONG rv;
+    DWORD dwSize;
+    DWORD dwType;
+    DWORD dwDummy;
+    char computerName[MAX_COMPUTERNAME_LENGTH + 1];
+    char *effDomain;
+
+    DebugEvent("In GetDomainLogonOptions for user [%s] in domain [%s]", username, domain);
+    /* If the domain is the same as the Netbios computer name, we use the LOCALHOST domain name*/
+    opt->flags = LOGON_FLAG_REMOTE;
+    if(domain) {
+        dwSize = MAX_COMPUTERNAME_LENGTH;
+        if(GetComputerName(computerName, &dwSize)) {
+            if(!stricmp(computerName, domain)) {
+                effDomain = "LOCALHOST";
+                opt->flags = LOGON_FLAG_LOCAL;
+            }
+            else
+                effDomain = domain;
+        }
+    } else
+        effDomain = NULL;
+
+    rv = RegOpenKeyEx( HKEY_LOCAL_MACHINE, REG_CLIENT_PARMS_KEY, 0, KEY_READ, &hkParm );
+    if(rv != ERROR_SUCCESS) {
+        hkParm = NULL;
+        DebugEvent("GetDomainLogonOption: Can't open parms key [%d]", rv);
+    }
+
+    rv = RegOpenKeyEx( HKEY_LOCAL_MACHINE, REG_CLIENT_PROVIDER_KEY, 0, KEY_READ, &hkNp );
+    if(rv != ERROR_SUCCESS) {
+        hkNp = NULL;
+        DebugEvent("GetDomainLogonOptions: Can't open NP key [%d]", rv);
+    }
+
+    if(hkNp) {
+        rv = RegOpenKeyEx( hkNp, REG_CLIENT_DOMAINS_SUBKEY, 0, KEY_READ, &hkDoms );
+        if( rv != ERROR_SUCCESS ) {
+            hkDoms = NULL;
+            DebugEvent("GetDomainLogonOptions: Can't open Domains key [%d]", rv);
+        }
+    }
+
+    if(hkDoms && effDomain) {
+        rv = RegOpenKeyEx( hkDoms, effDomain, 0, KEY_READ, &hkDom );
+        if( rv != ERROR_SUCCESS ) {
+            hkDom = NULL;
+            DebugEvent("GetDomainLogonOptions: Can't open domain key for [%s] [%d]", effDomain, rv);
+            /* If none of the domains match, we shouldn't use the domain key either */
+            RegCloseKey(hkDoms);
+            hkDoms = NULL;
+        }
+    } else
+        DebugEvent("Not opening domain key for [%s]", effDomain);
+
+    /* Each individual can either be specified on the domain key, the domains key or in the
+       net provider key.  They fail over in that order.  If none is found, we just use the 
+       defaults. */
+
+    /* LogonOption */
+    LOOKUPKEYCHAIN(opt->LogonOption, REG_DWORD, DEFAULT_LOGON_OPTION, REG_CLIENT_LOGON_OPTION_PARM);
+
+    /* FailLoginsSilently */
+    dwSize = sizeof(dwDummy);
+    rv = RegQueryValueEx(hkParm, REG_CLIENT_FAIL_SILENTLY_PARM, 0, &dwType, (LPBYTE) &dwDummy, &dwSize);
+    if (rv != ERROR_SUCCESS)
+        LOOKUPKEYCHAIN(dwDummy, REG_DWORD, DEFAULT_FAIL_SILENTLY, REG_CLIENT_FAIL_SILENTLY_PARM);
     opt->failSilently = !!dwDummy;
 
-       /* Retry interval */
-       LOOKUPKEYCHAIN(opt->retryInterval, REG_DWORD, DEFAULT_RETRY_INTERVAL, REG_CLIENT_RETRY_INTERVAL_PARM);
+    /* Retry interval */
+    LOOKUPKEYCHAIN(opt->retryInterval, REG_DWORD, DEFAULT_RETRY_INTERVAL, REG_CLIENT_RETRY_INTERVAL_PARM);
 
-       /* Sleep interval */
-       LOOKUPKEYCHAIN(opt->sleepInterval, REG_DWORD, DEFAULT_SLEEP_INTERVAL, REG_CLIENT_SLEEP_INTERVAL_PARM);
+    /* Sleep interval */
+    LOOKUPKEYCHAIN(opt->sleepInterval, REG_DWORD, DEFAULT_SLEEP_INTERVAL, REG_CLIENT_SLEEP_INTERVAL_PARM);
 
-       opt->logonScript = NULL;
-       opt->smbName = NULL;
+    opt->logonScript = NULL;
+    opt->smbName = NULL;
 
-       if(!ISLOGONINTEGRATED(opt->LogonOption)) {
-               goto cleanup; /* no need to lookup the logon script */
-       }
+    if(!ISLOGONINTEGRATED(opt->LogonOption)) {
+        goto cleanup; /* no need to lookup the logon script */
+    }
 
-       /* come up with SMB username */
-       if(ISHIGHSECURITY(opt->LogonOption)) {
+    /* come up with SMB username */
+    if(ISHIGHSECURITY(opt->LogonOption)) {
         opt->smbName = malloc( MAXRANDOMNAMELEN );
-               GenRandomName(opt->smbName);
-       } else {
-               /* username and domain for logon session is not necessarily the same as
-                  username and domain passed into network provider. */
-               PSECURITY_LOGON_SESSION_DATA plsd;
-               char lsaUsername[MAX_USERNAME_LENGTH];
-               char lsaDomain[MAX_DOMAIN_LENGTH];
-               size_t len, tlen;
+        GenRandomName(opt->smbName);
+    } else {
+        /* username and domain for logon session is not necessarily the same as
+           username and domain passed into network provider. */
+        PSECURITY_LOGON_SESSION_DATA plsd;
+        char lsaUsername[MAX_USERNAME_LENGTH];
+        char lsaDomain[MAX_DOMAIN_LENGTH];
+        size_t len, tlen;
 
         LsaGetLogonSessionData(lpLogonId, &plsd);
         
-               UnicodeStringToANSI(plsd->UserName, lsaUsername, MAX_USERNAME_LENGTH);
-               UnicodeStringToANSI(plsd->LogonDomain, lsaDomain, MAX_DOMAIN_LENGTH);
-
-               DebugEvent("PLSD username[%s] domain[%s]",lsaUsername,lsaDomain);
-
-               if(SUCCEEDED(StringCbLength(lsaUsername, MAX_USERNAME_LENGTH, &tlen)))
-                       len = tlen;
-               else
-                       goto bad_strings;
-
-               if(SUCCEEDED(StringCbLength(lsaDomain, MAX_DOMAIN_LENGTH, &tlen)))
-                       len += tlen;
-               else
-                       goto bad_strings;
-
-               len += 2;
-
-               opt->smbName = malloc(len);
-
-               StringCbCopy(opt->smbName, len, lsaDomain);
-               StringCbCat(opt->smbName, len, "\\");
-               StringCbCat(opt->smbName, len, lsaUsername);
-
-               strlwr(opt->smbName);
-
-bad_strings:
-               LsaFreeReturnBuffer(plsd);
-       }
-
-       DebugEvent("Looking up logon script");
-       /* Logon script */
-       /* First find out where the key is */
-       hkTemp = NULL;
-       rv = ~ERROR_SUCCESS;
-       dwType = 0;
-       if(hkDom)
-           rv = RegQueryValueExW(hkDom, REG_CLIENT_LOGON_SCRIPT_PARMW, 0, &dwType, NULL, &dwSize);
-       if(rv == ERROR_SUCCESS && (dwType == REG_SZ || dwType == REG_EXPAND_SZ)) {
-               hkTemp = hkDom;
-               DebugEvent("Located logon script in hkDom");
-       }
-       else if(hkDoms)
-           rv = RegQueryValueExW(hkDoms, REG_CLIENT_LOGON_SCRIPT_PARMW, 0, &dwType, NULL, &dwSize);
-       if(rv == ERROR_SUCCESS && !hkTemp && (dwType == REG_SZ || dwType == REG_EXPAND_SZ)) {
-               hkTemp = hkDoms;
-               DebugEvent("Located logon script in hkDoms");
-       }
-       /* Note that the LogonScript in the NP key is only used if we are doing high security. */
-       else if(hkNp && ISHIGHSECURITY(opt->LogonOption))
-           rv = RegQueryValueExW(hkNp, REG_CLIENT_LOGON_SCRIPT_PARMW, 0, &dwType, NULL, &dwSize);
-       if(rv == ERROR_SUCCESS && !hkTemp && (dwType == REG_SZ || dwType == REG_EXPAND_SZ)) {
-               hkTemp = hkNp;
-               DebugEvent("Located logon script in hkNp");
-       }
-
-       if(hkTemp) {
-               WCHAR *regscript        = NULL;
-               WCHAR *regexscript      = NULL;
-               WCHAR *regexuscript     = NULL;
-               WCHAR *wuname           = NULL;
-               HRESULT hr;
-
-               size_t len;
-               
-               StringCbLength(opt->smbName, MAX_USERNAME_LENGTH, &len);
-               len ++;
+        UnicodeStringToANSI(plsd->UserName, lsaUsername, MAX_USERNAME_LENGTH);
+        UnicodeStringToANSI(plsd->LogonDomain, lsaDomain, MAX_DOMAIN_LENGTH);
+
+        DebugEvent("PLSD username[%s] domain[%s]",lsaUsername,lsaDomain);
+
+        if(SUCCEEDED(StringCbLength(lsaUsername, MAX_USERNAME_LENGTH, &tlen)))
+            len = tlen;
+        else
+            goto bad_strings;
+
+        if(SUCCEEDED(StringCbLength(lsaDomain, MAX_DOMAIN_LENGTH, &tlen)))
+            len += tlen;
+        else
+            goto bad_strings;
+
+        len += 2;
+
+        opt->smbName = malloc(len);
+
+        StringCbCopy(opt->smbName, len, lsaDomain);
+        StringCbCat(opt->smbName, len, "\\");
+        StringCbCat(opt->smbName, len, lsaUsername);
+
+        strlwr(opt->smbName);
+
+      bad_strings:
+        LsaFreeReturnBuffer(plsd);
+    }
+
+    DebugEvent("Looking up logon script");
+    /* Logon script */
+    /* First find out where the key is */
+    hkTemp = NULL;
+    rv = ~ERROR_SUCCESS;
+    dwType = 0;
+    if(hkDom)
+        rv = RegQueryValueExW(hkDom, REG_CLIENT_LOGON_SCRIPT_PARMW, 0, &dwType, NULL, &dwSize);
+    if(rv == ERROR_SUCCESS && (dwType == REG_SZ || dwType == REG_EXPAND_SZ)) {
+        hkTemp = hkDom;
+        DebugEvent("Located logon script in hkDom");
+    }
+    else if(hkDoms)
+        rv = RegQueryValueExW(hkDoms, REG_CLIENT_LOGON_SCRIPT_PARMW, 0, &dwType, NULL, &dwSize);
+    if(rv == ERROR_SUCCESS && !hkTemp && (dwType == REG_SZ || dwType == REG_EXPAND_SZ)) {
+        hkTemp = hkDoms;
+        DebugEvent("Located logon script in hkDoms");
+    }
+    /* Note that the LogonScript in the NP key is only used if we are doing high security. */
+    else if(hkNp && ISHIGHSECURITY(opt->LogonOption))
+        rv = RegQueryValueExW(hkNp, REG_CLIENT_LOGON_SCRIPT_PARMW, 0, &dwType, NULL, &dwSize);
+    if(rv == ERROR_SUCCESS && !hkTemp && (dwType == REG_SZ || dwType == REG_EXPAND_SZ)) {
+        hkTemp = hkNp;
+        DebugEvent("Located logon script in hkNp");
+    }
 
-               wuname = malloc(len * sizeof(WCHAR));
-               MultiByteToWideChar(CP_ACP,0,opt->smbName,-1,wuname,len*sizeof(WCHAR));
+    if(hkTemp) {
+        WCHAR *regscript       = NULL;
+        WCHAR *regexscript     = NULL;
+        WCHAR *regexuscript    = NULL;
+        WCHAR *wuname          = NULL;
+        HRESULT hr;
 
-               DebugEvent("Username is set for [%S]", wuname);
+        size_t len;
 
-               /* dwSize still has the size of the required buffer in bytes. */
+        StringCbLength(opt->smbName, MAX_USERNAME_LENGTH, &len);
+        len ++;
+
+        wuname = malloc(len * sizeof(WCHAR));
+        MultiByteToWideChar(CP_ACP,0,opt->smbName,-1,wuname,len*sizeof(WCHAR));
+
+        DebugEvent("Username is set for [%S]", wuname);
+
+        /* dwSize still has the size of the required buffer in bytes. */
         regscript = malloc(dwSize);
-               rv = RegQueryValueExW(hkTemp, REG_CLIENT_LOGON_SCRIPT_PARMW, 0, &dwType, (LPBYTE) regscript, &dwSize);
-               if(rv != ERROR_SUCCESS) {/* what the ..? */
-                       DebugEvent("Can't look up logon script [%d]",rv);
-                       goto doneLogonScript;
-               }
-               
-               DebugEvent("Found logon script [%S]", regscript);
-
-               if(dwType == REG_EXPAND_SZ) {
-                       DWORD dwReq;
-
-                       dwSize += MAX_PATH * sizeof(WCHAR);  /* make room for environment expansion. */
-                       regexscript = malloc(dwSize);
-                       dwReq = ExpandEnvironmentStringsW(regscript, regexscript, dwSize / sizeof(WCHAR));
-                       free(regscript);
-                       regscript = regexscript;
-                       regexscript = NULL;
-                       if(dwReq > (dwSize / sizeof(WCHAR))) {
-                               DebugEvent("Overflow while expanding environment strings.");
-                               goto doneLogonScript;
-                       }
-               }
-
-               DebugEvent("After expanding env strings [%S]", regscript);
-
-               if(wcsstr(regscript, L"%s")) {
-               dwSize += len * sizeof(WCHAR); /* make room for username expansion */
-                       regexuscript = (WCHAR *) LocalAlloc(LMEM_FIXED, dwSize);
-                       hr = StringCbPrintfW(regexuscript, dwSize, regscript, wuname);
-               } else {
-                       regexuscript = (WCHAR *) LocalAlloc(LMEM_FIXED, dwSize);
-                       hr = StringCbCopyW(regexuscript, dwSize, regscript);
-               }
-
-               DebugEvent("After expanding username [%S]", regexuscript);
-
-               if(hr == S_OK)
-                       opt->logonScript = regexuscript;
-               else
-                       LocalFree(regexuscript);
-
-doneLogonScript:
-               if(wuname) free(wuname);
-               if(regscript) free(regscript);
-               if(regexscript) free(regexscript);
-       }
-
-cleanup:
-       if(hkNp) RegCloseKey(hkNp);
-       if(hkDom) RegCloseKey(hkDom);
-       if(hkDoms) RegCloseKey(hkDoms);
-       if(hkParm) RegCloseKey(hkParm);
-}
+        rv = RegQueryValueExW(hkTemp, REG_CLIENT_LOGON_SCRIPT_PARMW, 0, &dwType, (LPBYTE) regscript, &dwSize);
+        if(rv != ERROR_SUCCESS) {/* what the ..? */
+            DebugEvent("Can't look up logon script [%d]",rv);
+            goto doneLogonScript;
+        }
+
+        DebugEvent("Found logon script [%S]", regscript);
+
+        if(dwType == REG_EXPAND_SZ) {
+            DWORD dwReq;
+
+            dwSize += MAX_PATH * sizeof(WCHAR);  /* make room for environment expansion. */
+            regexscript = malloc(dwSize);
+            dwReq = ExpandEnvironmentStringsW(regscript, regexscript, dwSize / sizeof(WCHAR));
+            free(regscript);
+            regscript = regexscript;
+            regexscript = NULL;
+            if(dwReq > (dwSize / sizeof(WCHAR))) {
+                DebugEvent("Overflow while expanding environment strings.");
+                goto doneLogonScript;
+            }
+        }
+
+        DebugEvent("After expanding env strings [%S]", regscript);
+
+        if(wcsstr(regscript, L"%s")) {
+            dwSize += len * sizeof(WCHAR); /* make room for username expansion */
+            regexuscript = (WCHAR *) LocalAlloc(LMEM_FIXED, dwSize);
+            hr = StringCbPrintfW(regexuscript, dwSize, regscript, wuname);
+        } else {
+            regexuscript = (WCHAR *) LocalAlloc(LMEM_FIXED, dwSize);
+            hr = StringCbCopyW(regexuscript, dwSize, regscript);
+        }
+
+        DebugEvent("After expanding username [%S]", regexuscript);
+
+        if(hr == S_OK)
+            opt->logonScript = regexuscript;
+        else
+            LocalFree(regexuscript);
+
+      doneLogonScript:
+        if(wuname) free(wuname);
+        if(regscript) free(regscript);
+        if(regexscript) free(regexscript);
+    }
+
+  cleanup:
+    if(hkNp) RegCloseKey(hkNp);
+    if(hkDom) RegCloseKey(hkDom);
+    if(hkDoms) RegCloseKey(hkDoms);
+    if(hkParm) RegCloseKey(hkParm);
+}       
 
 #undef LOOKUPKEYCHAIN
 
@@ -487,22 +524,22 @@ cleanup:
    the contents of *cell in case of failure. *cell is assumed to be
    at least cellLen chars */
 DWORD GetFileCellName(char * path, char * cell, size_t cellLen) {
-       struct ViceIoctl blob;
-       char tcell[MAX_PATH];
-       DWORD code;
+    struct ViceIoctl blob;
+    char tcell[MAX_PATH];
+    DWORD code;
 
-       blob.in_size = 0;
-       blob.out_size = MAX_PATH;
-       blob.out = tcell;
+    blob.in_size = 0;
+    blob.out_size = MAX_PATH;
+    blob.out = tcell;
 
-       code = pioctl(path, VIOC_FILE_CELL_NAME, &blob, 1);
+    code = pioctl(path, VIOC_FILE_CELL_NAME, &blob, 1);
 
-       if(!code) {
-               strncpy(cell, tcell, cellLen);
-               cell[cellLen - 1] = '\0';
-       }
-       return code;
-}
+    if(!code) {
+        strncpy(cell, tcell, cellLen);
+        cell[cellLen - 1] = '\0';
+    }
+    return code;
+}       
 
 
 static BOOL
@@ -526,8 +563,8 @@ UnicodeStringToANSI(UNICODE_STRING uInputString, LPSTR lpszOutputString, int nOu
         lpszOutputString[min(uInputString.Length/2,nOutStringLen-1)] = '\0';
         return TRUE;
     }
-       else
-               lpszOutputString[0] = '\0';
+    else
+        lpszOutputString[0] = '\0';
     return FALSE;
 }  // UnicodeStringToANSI
 
@@ -541,57 +578,57 @@ DWORD APIENTRY NPLogonNotify(
        LPVOID StationHandle,
        LPWSTR *lpLogonScript)
 {
-       char uname[MAX_USERNAME_LENGTH]="";
-       char password[MAX_PASSWORD_LENGTH]="";
-       char logonDomain[MAX_DOMAIN_LENGTH]="";
-       char cell[256]="<non-integrated logon>";
-       char homePath[MAX_PATH]="";
+    char uname[MAX_USERNAME_LENGTH]="";
+    char password[MAX_PASSWORD_LENGTH]="";
+    char logonDomain[MAX_DOMAIN_LENGTH]="";
+    char cell[256]="<non-integrated logon>";
+    char homePath[MAX_PATH]="";
 
-       MSV1_0_INTERACTIVE_LOGON *IL;
+    MSV1_0_INTERACTIVE_LOGON *IL;
 
-       DWORD code;
+    DWORD code;
 
-       int pw_exp;
-       char *reason;
-       char *ctemp;
+    int pw_exp;
+    char *reason;
+    char *ctemp;
 
-       BOOLEAN interactive;
-       BOOLEAN flag;
-       DWORD LSPtype, LSPsize;
-       HKEY NPKey;
+    BOOLEAN interactive;
+    BOOLEAN flag;
+    DWORD LSPtype, LSPsize;
+    HKEY NPKey;
 
-       HWND hwndOwner = (HWND)StationHandle;
+    HWND hwndOwner = (HWND)StationHandle;
 
-       BOOLEAN afsWillAutoStart;
+    BOOLEAN afsWillAutoStart;
 
     BOOLEAN uppercased_name = TRUE;
 
-       LogonOptions_t opt; /* domain specific logon options */
-       int retryInterval;
-       int sleepInterval;
+    LogonOptions_t opt; /* domain specific logon options */
+    int retryInterval;
+    int sleepInterval;
 
     /* Make sure the AFS Libraries are initialized */
     AfsLogonInit();
 
     /* Initialize Logon Script to none */
-       *lpLogonScript=NULL;
+    *lpLogonScript=NULL;
     
-       /* TODO: We should check the value of lpAuthentInfoType before assuming that it is
-                MSV1_0_INTERACTIVE_LOGON though for our purposes KERB_INTERACTIVE_LOGON is
-                        co-incidentally equivalent. */
-       IL = (MSV1_0_INTERACTIVE_LOGON *) lpAuthentInfo;
+    /* TODO: We should check the value of lpAuthentInfoType before assuming that it is
+       MSV1_0_INTERACTIVE_LOGON though for our purposes KERB_INTERACTIVE_LOGON is
+       co-incidentally equivalent. */
+    IL = (MSV1_0_INTERACTIVE_LOGON *) lpAuthentInfo;
 
-       /* Are we interactive? */
-       interactive = (wcscmp(lpStationName, L"WinSta0") == 0);
+    /* Are we interactive? */
+    interactive = (wcscmp(lpStationName, L"WinSta0") == 0);
 
-       /* Convert from Unicode to ANSI */
+    /* Convert from Unicode to ANSI */
 
-       /*TODO: Use SecureZeroMemory to erase passwords */
-       UnicodeStringToANSI(IL->UserName, uname, MAX_USERNAME_LENGTH);
-       UnicodeStringToANSI(IL->Password, password, MAX_PASSWORD_LENGTH);
-       UnicodeStringToANSI(IL->LogonDomainName, logonDomain, MAX_DOMAIN_LENGTH);
+    /*TODO: Use SecureZeroMemory to erase passwords */
+    UnicodeStringToANSI(IL->UserName, uname, MAX_USERNAME_LENGTH);
+    UnicodeStringToANSI(IL->Password, password, MAX_PASSWORD_LENGTH);
+    UnicodeStringToANSI(IL->LogonDomainName, logonDomain, MAX_DOMAIN_LENGTH);
 
-       /* Make sure AD-DOMANS sent from login that is sent to us is striped */
+    /* Make sure AD-DOMANS sent from login that is sent to us is striped */
     ctemp = strchr(uname, '@');
     if (ctemp) *ctemp = 0;
 
@@ -603,60 +640,60 @@ DWORD APIENTRY NPLogonNotify(
         }
     }
 
-       (void) RegOpenKeyEx(HKEY_LOCAL_MACHINE, REG_CLIENT_PARMS_KEY,
-                        0, KEY_QUERY_VALUE, &NPKey);
-       LSPsize=sizeof(TraceOption);
-       RegQueryValueEx(NPKey, REG_CLIENT_TRACE_OPTION_PARM, NULL,
+    (void) RegOpenKeyEx(HKEY_LOCAL_MACHINE, REG_CLIENT_PARMS_KEY,
+                         0, KEY_QUERY_VALUE, &NPKey);
+    LSPsize=sizeof(TraceOption);
+    RegQueryValueEx(NPKey, REG_CLIENT_TRACE_OPTION_PARM, NULL,
                      &LSPtype, (LPBYTE)&TraceOption, &LSPsize);
 
-       RegCloseKey (NPKey);
+    RegCloseKey (NPKey);
 
-       /*
-        * Get Logon options
-        */
+    /*
+     * Get Logon options
+     */
 
-       GetDomainLogonOptions( lpLogonId, uname, logonDomain, &opt );
-       retryInterval = opt.retryInterval;
-       sleepInterval = opt.sleepInterval;
-       *lpLogonScript = opt.logonScript;
+    GetDomainLogonOptions( lpLogonId, uname, logonDomain, &opt );
+    retryInterval = opt.retryInterval;
+    sleepInterval = opt.sleepInterval;
+    *lpLogonScript = opt.logonScript;
 
-       DebugEvent("Got logon script: %S",opt.logonScript);
+    DebugEvent("Got logon script: %S",opt.logonScript);
 
-       afsWillAutoStart = AFSWillAutoStart();
+    afsWillAutoStart = AFSWillAutoStart();
 
-       DebugEvent("LogonOption[%x], Service AutoStart[%d]",
+    DebugEvent("LogonOption[%x], Service AutoStart[%d]",
                 opt.LogonOption,afsWillAutoStart);
     
     /* Check for zero length password if integrated logon*/
-       if ( ISLOGONINTEGRATED(opt.LogonOption) )  {
+    if ( ISLOGONINTEGRATED(opt.LogonOption) )  {
         if ( password[0] == 0 ) {
             DebugEvent("Password is the empty string");
             code = GT_PW_NULL;
             reason = "zero length password is illegal";
             code=0;
-        }
+        }       
 
         /* Get cell name if doing integrated logon.  
-                  We might overwrite this if we are logging into an AD realm and we find out that
-                  the user's home dir is in some other cell. */
+           We might overwrite this if we are logging into an AD realm and we find out that
+           the user's home dir is in some other cell. */
         DebugEvent("About to call cm_GetRootCellName(%s)",cell);
-               code = cm_GetRootCellName(cell);
-               if (code < 0) { 
+        code = cm_GetRootCellName(cell);
+        if (code < 0) { 
             DebugEvent("Unable to obtain Root Cell");
-                       code = KTC_NOCELL;
-                       reason = "unknown cell";
-                       code=0;
-               } else {
+            code = KTC_NOCELL;
+            reason = "unknown cell";
+            code=0;
+        } else {
             DebugEvent("Cell is %s",cell);
-        }
+        }       
 
-               /* We get the user's home directory path, if applicable, though we can't lookup the
-                  cell right away because the client service may not have started yet. This call
-                  also sets the AD_REALM flag in opt.flags if applicable. */
-               if(ISREMOTE(opt.flags)) {
+        /* We get the user's home directory path, if applicable, though we can't lookup the
+           cell right away because the client service may not have started yet. This call
+           also sets the AD_REALM flag in opt.flags if applicable. */
+        if(ISREMOTE(opt.flags)) {
             DebugEvent("Is Remote");
-                       GetAdHomePath(homePath,MAX_PATH,lpLogonId,&opt);
-        }
+            GetAdHomePath(homePath,MAX_PATH,lpLogonId,&opt);
+        }       
     }
 
     /* loop until AFS is started. */
@@ -665,30 +702,30 @@ DWORD APIENTRY NPLogonNotify(
                     opt.LogonOption,afsWillAutoStart);
 
         if(ISADREALM(opt.flags)) {
-                       code = GetFileCellName(homePath,cell,256);
-                       if(!code) {
-                               DebugEvent("profile path [%s] is in cell [%s]",homePath,cell);
-                       }
-                       /* Don't bail out if GetFileCellName failed.
-                        * The home dir may not be in AFS after all. 
-                        */
-               } else
-               code=0;
+            code = GetFileCellName(homePath,cell,256);
+            if(!code) {
+                DebugEvent("profile path [%s] is in cell [%s]",homePath,cell);
+            }
+            /* Don't bail out if GetFileCellName failed.
+             * The home dir may not be in AFS after all. 
+             */
+        } else
+            code=0;
                
         /* if Integrated Logon  */
         if (ISLOGONINTEGRATED(opt.LogonOption))
-               {                       
-                       if ( KFW_is_available() ) {
+        {                      
+            if ( KFW_is_available() ) {
                 code = KFW_AFS_get_cred(uname, cell, password, 0, opt.smbName, &reason);
-                               DebugEvent("KFW_AFS_get_cred  uname=[%s] smbname=[%s] cell=[%s] code=[%d]",uname,opt.smbName,cell,code);
-                       }
-                       else {
+                DebugEvent("KFW_AFS_get_cred  uname=[%s] smbname=[%s] cell=[%s] code=[%d]",uname,opt.smbName,cell,code);
+            }
+            else {
                 code = ka_UserAuthenticateGeneral2(KA_USERAUTH_VERSION+KA_USERAUTH_AUTHENT_LOGON,
-                                                uname, "", cell, password, opt.smbName, 0, &pw_exp, 0,
-                                                &reason);
-                               DebugEvent("AFS AfsLogon - (INTEGRATED only)ka_UserAuthenticateGeneral2","Code[%x]",
-                                                       code);
-                       }
+                                                    uname, "", cell, password, opt.smbName, 0, &pw_exp, 0,
+                                                    &reason);
+                DebugEvent("AFS AfsLogon - (INTEGRATED only)ka_UserAuthenticateGeneral2","Code[%x]",
+                            code);
+            }       
             if ( code && code != KTC_NOCM && code != KTC_NOCMRPC && uppercased_name ) {
                 for ( ctemp = uname; *ctemp ; ctemp++) {
                     *ctemp = tolower(*ctemp);
@@ -696,27 +733,27 @@ DWORD APIENTRY NPLogonNotify(
                 uppercased_name = FALSE;
                 continue;
             }
-               }
-               else {  
+        }
+        else {  
             /*JUST check to see if its running*/
-                   if (IsServiceRunning())
+            if (IsServiceRunning())
                 break;
-                   code = KTC_NOCM;
-                   if (!afsWillAutoStart)
+            code = KTC_NOCM;
+            if (!afsWillAutoStart)
                 break;
-               }
+        }
 
-               /* is service started yet?*/
+        /* is service started yet?*/
         DebugEvent("AFS AfsLogon - ka_UserAuthenticateGeneral2","Code[%x] uname[%s] Cell[%s]",
-                   code,uname,cell);
+                    code,uname,cell);
 
-               /* If we've failed because the client isn't running yet and the
+        /* If we've failed because the client isn't running yet and the
          * client is set to autostart (and therefore it makes sense for
          * us to wait for it to start) then sleep a while and try again. 
          * If the error was something else, then give up. */
-               if (code != KTC_NOCM && code != KTC_NOCMRPC || !afsWillAutoStart)
-                       break;
-               
+        if (code != KTC_NOCM && code != KTC_NOCMRPC || !afsWillAutoStart)
+            break;
+
         /* If the retry interval has expired and we still aren't
          * logged in, then just give up if we are not in interactive
          * mode or the failSilently flag is set, otherwise let the
@@ -725,11 +762,11 @@ DWORD APIENTRY NPLogonNotify(
             reason = "AFS not running";
             if (!interactive || opt.failSilently)
                 break;
-                       flag = MessageBox(hwndOwner,
+            flag = MessageBox(hwndOwner,
                                "AFS is still starting.  Retry?",
                                "AFS Logon",
                                MB_ICONQUESTION | MB_RETRYCANCEL);
-                       if (flag == IDCANCEL)
+            if (flag == IDCANCEL)
                 break;
 
             /* Wait just a little while and try again */
@@ -737,9 +774,9 @@ DWORD APIENTRY NPLogonNotify(
         }
 
         if (retryInterval < sleepInterval)
-                       sleepInterval = retryInterval;
+            sleepInterval = retryInterval;
 
-               Sleep(sleepInterval * 1000);
+        Sleep(sleepInterval * 1000);
 
         retryInterval -= sleepInterval;
     }
@@ -749,15 +786,15 @@ DWORD APIENTRY NPLogonNotify(
     if ( KFW_is_available() )
         KFW_AFS_destroy_tickets_for_cell(cell);
 
-       if (code) {
+    if (code) {
         char msg[128];
         HANDLE h;
         char *ptbuf[1];
 
-               StringCbPrintf(msg, sizeof(msg), "Integrated login failed: %s", reason);
+        StringCbPrintf(msg, sizeof(msg), "Integrated login failed: %s", reason);
 
-               if (ISLOGONINTEGRATED(opt.LogonOption) && interactive && !opt.failSilently)
-                       MessageBox(hwndOwner, msg, "AFS Logon", MB_OK);
+        if (ISLOGONINTEGRATED(opt.LogonOption) && interactive && !opt.failSilently)
+            MessageBox(hwndOwner, msg, "AFS Logon", MB_OK);
 
         h = RegisterEventSource(NULL, AFS_LOGON_EVENT_NAME);
         ptbuf[0] = msg;
@@ -766,24 +803,24 @@ DWORD APIENTRY NPLogonNotify(
         DeregisterEventSource(h);
            
         code = MapAuthError(code);
-               SetLastError(code);
+        SetLastError(code);
 
-               if (ISLOGONINTEGRATED(opt.LogonOption) && (code!=0))
-               {
-                       if (*lpLogonScript)
-                               LocalFree(*lpLogonScript);
-                       *lpLogonScript = NULL;
-                       if (!afsWillAutoStart)  // its not running, so if not autostart or integrated logon then just skip
-                               code = 0;
+        if (ISLOGONINTEGRATED(opt.LogonOption) && (code!=0))
+        {
+            if (*lpLogonScript)
+                LocalFree(*lpLogonScript);
+            *lpLogonScript = NULL;
+            if (!afsWillAutoStart)     // its not running, so if not autostart or integrated logon then just skip
+                code = 0;
 
-               }
-       }
+        }
+    }
 
-       if(opt.smbName) free(opt.smbName);
+    if(opt.smbName) free(opt.smbName);
 
-       DebugEvent("AFS AfsLogon - Exit","Return Code[%x]",code);
-       return code;
-}
+    DebugEvent("AFS AfsLogon - Exit","Return Code[%x]",code);
+    return code;
+}       
 
 DWORD APIENTRY NPPasswordChangeNotify(
        LPCWSTR lpAuthentInfoType,
@@ -797,8 +834,8 @@ DWORD APIENTRY NPPasswordChangeNotify(
     /* Make sure the AFS Libraries are initialized */
     AfsLogonInit();
 
-       DebugEvent0("AFS AfsLogon - NPPasswordChangeNotify");
-       return 0;
+    DebugEvent0("AFS AfsLogon - NPPasswordChangeNotify");
+    return 0;
 }
 
 #include <userenv.h>
@@ -837,27 +874,27 @@ typedef struct _WLX_NOTIFICATION_INFO {
 
 VOID AFS_Startup_Event( PWLX_NOTIFICATION_INFO pInfo )
 {
-       DWORD LSPtype, LSPsize;
-       HKEY NPKey;
+    DWORD LSPtype, LSPsize;
+    HKEY NPKey;
 
     /* Make sure the AFS Libraries are initialized */
     AfsLogonInit();
 
     (void) RegOpenKeyEx(HKEY_LOCAL_MACHINE, REG_CLIENT_PARMS_KEY,
                         0, KEY_QUERY_VALUE, &NPKey);
-       LSPsize=sizeof(TraceOption);
-       RegQueryValueEx(NPKey, REG_CLIENT_TRACE_OPTION_PARM, NULL,
+    LSPsize=sizeof(TraceOption);
+    RegQueryValueEx(NPKey, REG_CLIENT_TRACE_OPTION_PARM, NULL,
                      &LSPtype, (LPBYTE)&TraceOption, &LSPsize);
 
-       RegCloseKey (NPKey);
+    RegCloseKey (NPKey);
     DebugEvent0("AFS_Startup_Event");
 }
 
 VOID AFS_Logoff_Event( PWLX_NOTIFICATION_INFO pInfo )
 {
     DWORD code;
-    TCHAR profileDir[256] = TEXT("");
-    DWORD  len = 256;
+    TCHAR profileDir[1024] = TEXT("");
+    DWORD  len = 1024;
     PTOKEN_USER  tokenUser = NULL;
     DWORD  retLen;
     HANDLE hToken;
@@ -885,8 +922,10 @@ VOID AFS_Logoff_Event( PWLX_NOTIFICATION_INFO pInfo )
     if (QueryAdHomePathFromSid( profileDir, sizeof(profileDir), tokenUser->User.Sid, pInfo->Domain)) {
         WCHAR Domain[64]=L"";
         GetLocalShortDomain(Domain, sizeof(Domain));
-        if (QueryAdHomePathFromSid( profileDir, sizeof(profileDir), tokenUser->User.Sid, Domain))
-            GetUserProfileDirectory(pInfo->hToken, profileDir, &len);
+        if (QueryAdHomePathFromSid( profileDir, sizeof(profileDir), tokenUser->User.Sid, Domain)) {
+            if (NetUserGetProfilePath(pInfo->Domain, pInfo->UserName, profileDir, len))
+                GetUserProfileDirectory(pInfo->hToken, profileDir, &len);
+        }
     }
     
     if (strlen(profileDir)) {
index 740ec3ec64b3603288b6491271873ead7b3a254b..ac4cc02a517fd5de2961bc57a81000b08a7fc228 100644 (file)
@@ -101,7 +101,8 @@ int cm_HaveAccessRights(struct cm_scache *scp, struct cm_user *up, long rights,
         /* fall through */
         
 done:
-       if (didLock) lock_ReleaseMutex(&aclScp->mx);
+    if (didLock) 
+        lock_ReleaseMutex(&aclScp->mx);
         cm_ReleaseSCache(aclScp);
         return code;
 }
index e8580339cdda66f08f84edb3f4a4163e3c3323a1..e0ee133fdd2a35d065648753801f132d40a29e91 100644 (file)
@@ -491,11 +491,14 @@ long buf_AddBuffers(long nbuffers)
  */
 long buf_SetNBuffers(long nbuffers)
 {
-       if (nbuffers < 10) return CM_ERROR_INVAL;
-        if (nbuffers == buf_nbuffers) return 0;
+    if (nbuffers < 10) 
+        return CM_ERROR_INVAL;
+    if (nbuffers == buf_nbuffers) 
+        return 0;
         else if (nbuffers > buf_nbuffers)
                return buf_AddBuffers(nbuffers - buf_nbuffers);
-        else return CM_ERROR_INVAL;
+    else 
+        return CM_ERROR_INVAL;
 }
 
 /* release a buffer.  Buffer must be referenced, but unlocked. */
@@ -652,8 +655,7 @@ void buf_Recycle(cm_buf_t *bp)
         * have any lock conflicts, so we can grab the buffer lock out of
         * order in the locking hierarchy.
         */
-       osi_Log2(buf_logp,
-               "buf_Recycle recycles 0x%x, off 0x%x",
+    osi_Log2( buf_logp, "buf_Recycle recycles 0x%x, off 0x%x",
                bp, bp->offset.LowPart);
 
        osi_assert(bp->refCount == 0);
@@ -1296,7 +1298,6 @@ long buf_Truncate(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp,
                        }
 
                         lock_ReleaseWrite(&buf_globalLock);
-
                 }
                
                 lock_ReleaseMutex(&scp->mx);
index 8840aae6607f0aab3462c80c91f143e3f6b0d6e8..8826e1d74d430a836d2d742544c5397bd6a56fb0 100644 (file)
@@ -72,7 +72,7 @@ typedef struct cm_buf {
                                 */
         struct cm_buf *allp;   /* next in all list */
        osi_mutex_t mx;         /* mutex protecting structure except refcount */
-        int refCount;          /* reference count */
+    int refCount;              /* reference count (buf_globalLock) */
         long idCounter;                /* counter for softrefs; bumped at each recycle */
         long dirtyCounter;     /* bumped at each dirty->clean transition */
 #ifdef notdef
index c84b367b3062177ba2be5fea99a7944aabbed95e..950a2dbe70ef7015eb69ce460b915966b45b7ca8 100644 (file)
@@ -90,33 +90,34 @@ void cm_RecordRacingRevoke(cm_fid_t *fidp, long cancelFlags)
 
 /*
  * When we lose a callback, may have to send change notification replies.
+ * Do not call with a lock on the scp.
  */
 void cm_CallbackNotifyChange(cm_scache_t *scp)
 {
     osi_Log2(afsd_logp, "CallbackNotifyChange FileType %d Flags %lX",
               scp->fileType, scp->flags);
 
-       if (scp->fileType == CM_SCACHETYPE_DIRECTORY) {
-               if (scp->flags & CM_SCACHEFLAG_ANYWATCH)
-                       smb_NotifyChange(0,
-                        FILE_NOTIFY_GENERIC_DIRECTORY_FILTER,
-                        scp, NULL, NULL, TRUE);
-       } else {
-               cm_fid_t tfid;
-               cm_scache_t *dscp;
-
-               tfid.cell = scp->fid.cell;
-               tfid.volume = scp->fid.volume;
-               tfid.vnode = scp->parentVnode;
-               tfid.unique = scp->parentUnique;
-               dscp = cm_FindSCache(&tfid);
-               if (dscp &&
-                       dscp->flags & CM_SCACHEFLAG_ANYWATCH)
-                       smb_NotifyChange(0,
-                        FILE_NOTIFY_GENERIC_FILE_FILTER,
-                        dscp, NULL, NULL, TRUE);
-               if (dscp) cm_ReleaseSCache(dscp);
-       }
+    if (scp->fileType == CM_SCACHETYPE_DIRECTORY) {
+        if (scp->flags & CM_SCACHEFLAG_ANYWATCH)
+            smb_NotifyChange(0,
+                             FILE_NOTIFY_GENERIC_DIRECTORY_FILTER,
+                             scp, NULL, NULL, TRUE);
+    } else {
+        cm_fid_t tfid;
+        cm_scache_t *dscp;
+
+        tfid.cell = scp->fid.cell;
+        tfid.volume = scp->fid.volume;
+        tfid.vnode = scp->parentVnode;
+        tfid.unique = scp->parentUnique;
+        dscp = cm_FindSCache(&tfid);
+        if (dscp &&
+             dscp->flags & CM_SCACHEFLAG_ANYWATCH)
+            smb_NotifyChange( 0,
+                              FILE_NOTIFY_GENERIC_FILE_FILTER,
+                              dscp,   NULL, NULL, TRUE);
+        if (dscp) cm_ReleaseSCache(dscp);
+    }
 }
 
 /* called with no locks held for every file ID that is revoked directly by
@@ -635,11 +636,13 @@ int cm_HaveCallback(cm_scache_t *scp)
   int fdc, fgc;
 
     if (cm_freelanceEnabled && 
-        scp->fid.cell==AFS_FAKE_ROOT_CELL_ID &&
-        scp->fid.volume==AFS_FAKE_ROOT_VOL_ID) {       // if it's something on /afs
-       if (!(scp->fid.vnode==0x1 && scp->fid.unique==0x1))     // if it's not root.afs
+         scp->fid.cell==AFS_FAKE_ROOT_CELL_ID && scp->fid.volume==AFS_FAKE_ROOT_VOL_ID) {
+        /* if it's something on /afs */
+        if (!(scp->fid.vnode==0x1 && scp->fid.unique==0x1)) {
+            /* if it's not root.afs */
            return 1;
-       else {
+        }
+
            lock_ObtainMutex(&cm_Freelance_Lock);
            fdc = cm_fakeDirCallback;
            fgc = cm_fakeGettingCallback;
@@ -659,12 +662,12 @@ int cm_HaveCallback(cm_scache_t *scp)
            }
            return 0;
        }
-    }
 #endif
 
     if (scp->cbServerp != NULL)
        return 1;
-    else return 0;
+    else 
+        return 0;
 }
 
 /* need to detect a broken callback that races with our obtaining a callback.
@@ -708,6 +711,7 @@ void cm_EndCallbackGrantingCall(cm_scache_t *scp, cm_callbackRequest_t *cbrp,
        cm_racingRevokes_t *revp;               /* where we are */
        cm_racingRevokes_t *nrevp;              /* where we'll be next */
         int freeFlag;
+    cm_server_t * serverp = 0;
 
        lock_ObtainWrite(&cm_callbackLock);
        if (flags & CM_CALLBACK_MAINTAINCOUNT) {
@@ -716,13 +720,23 @@ void cm_EndCallbackGrantingCall(cm_scache_t *scp, cm_callbackRequest_t *cbrp,
        else {
                osi_assert(cm_activeCallbackGrantingCalls-- > 0);
        }
-        if (cm_activeCallbackGrantingCalls == 0) freeFlag = 1;
-        else freeFlag = 0;
+    if (cm_activeCallbackGrantingCalls == 0) 
+        freeFlag = 1;
+    else 
+        freeFlag = 0;
 
        /* record the callback; we'll clear it below if we really lose it */
+    if (cbrp) {
        if (scp) {
+            if (scp->cbServerp != cbrp->serverp) {
+                serverp = scp->cbServerp;
+            }
                scp->cbServerp = cbrp->serverp;
                scp->cbExpires = cbrp->startTime + cbp->ExpirationTime;
+        } else {
+            serverp = cbrp->serverp;
+        }
+        cbrp->serverp = NULL;
        }
 
        /* a callback was actually revoked during our granting call, so
@@ -737,7 +751,7 @@ void cm_EndCallbackGrantingCall(cm_scache_t *scp, cm_callbackRequest_t *cbrp,
                  * callback-granting call, and if this fid is the right fid,
                  * then clear the callback.
                  */
-                if (scp && cbrp->callbackCount != cm_callbackCount
+        if (scp && cbrp && cbrp->callbackCount != cm_callbackCount
                                && revp->callbackCount > cbrp->callbackCount
              && (( scp->fid.volume == revp->fid.volume &&
                                  scp->fid.vnode == revp->fid.vnode &&
@@ -769,6 +783,12 @@ void cm_EndCallbackGrantingCall(cm_scache_t *scp, cm_callbackRequest_t *cbrp,
        if (freeFlag) cm_racingRevokesp = NULL;
 
        lock_ReleaseWrite(&cm_callbackLock);
+
+    if ( serverp ) {
+        lock_ObtainWrite(&cm_serverLock);
+        cm_FreeServer(serverp);
+        lock_ReleaseWrite(&cm_serverLock);
+    }
 }
 
 /* if flags is 1, we want to force the code to make one call, anyway.
@@ -799,10 +819,11 @@ long cm_GetCallback(cm_scache_t *scp, struct cm_user *userp,
              scp->fid.volume==AFS_FAKE_ROOT_VOL_ID &&
              scp->fid.unique==0x1 &&
              scp->fid.vnode==0x1) {
+            
             // Start by indicating that we're in the process
             // of fetching the callback
-
             lock_ObtainMutex(&cm_Freelance_Lock);
+            osi_Log0(afsd_logp,"cm_getGetCallback fakeGettingCallback=1");
             cm_fakeGettingCallback = 1;
             lock_ReleaseMutex(&cm_Freelance_Lock);
 
@@ -811,8 +832,11 @@ long cm_GetCallback(cm_scache_t *scp, struct cm_user *userp,
 
             // Indicate that the callback is not done
             lock_ObtainMutex(&cm_Freelance_Lock);
+            osi_Log0(afsd_logp,"cm_getGetCallback fakeDirCallback=2");
             cm_fakeDirCallback = 2;
+
             // Indicate that we're no longer fetching the callback
+            osi_Log0(afsd_logp,"cm_getGetCallback fakeGettingCallback=0");
             cm_fakeGettingCallback = 0;
             lock_ReleaseMutex(&cm_Freelance_Lock);
 
@@ -861,7 +885,7 @@ long cm_GetCallback(cm_scache_t *scp, struct cm_user *userp,
             cm_MergeStatus(scp, &afsStatus, &volSync, userp, 0);
                }   
         else
-            cm_EndCallbackGrantingCall(NULL, NULL, NULL, 0);
+            cm_EndCallbackGrantingCall(NULL, &cbr, NULL, 0);
 
         /* now check to see if we got an error */
         if (code) return code;
@@ -871,29 +895,30 @@ long cm_GetCallback(cm_scache_t *scp, struct cm_user *userp,
 /* called periodically by cm_daemon to shut down use of expired callbacks */
 void cm_CheckCBExpiration(void)
 {
-       int i;
-        cm_scache_t *scp;
-        long now;
+    int i;
+    cm_scache_t *scp;
+    long now;
         
     osi_Log0(afsd_logp, "CheckCBExpiration");
 
-       now = osi_Time();
-       lock_ObtainWrite(&cm_scacheLock);
-        for(i=0; i<cm_hashTableSize; i++) {
-               for(scp = cm_hashTablep[i]; scp; scp=scp->nextp) {
-                       scp->refCount++;
-                       lock_ReleaseWrite(&cm_scacheLock);
-                       lock_ObtainMutex(&scp->mx);
-                       if (scp->cbServerp && now > scp->cbExpires) {
-                osi_Log1(afsd_logp, "Discarding SCache scp %x", scp);
-                               cm_DiscardSCache(scp);
-                        }
-                       lock_ReleaseMutex(&scp->mx);
-                       lock_ObtainWrite(&cm_scacheLock);
-                        osi_assert(scp->refCount-- > 0);
-                }
+    now = osi_Time();
+    lock_ObtainWrite(&cm_scacheLock);
+    for(i=0; i<cm_hashTableSize; i++) {
+        for(scp = cm_hashTablep[i]; scp; scp=scp->nextp) {
+            scp->refCount++;
+            lock_ReleaseWrite(&cm_scacheLock);
+            if (scp->cbExpires > 0 && (scp->cbServerp == NULL || now > scp->cbExpires)) {
+                osi_Log1(afsd_logp, "Callback Expiration Discarding SCache scp %x", scp);
+                cm_CallbackNotifyChange(scp);
+                lock_ObtainMutex(&scp->mx);
+                cm_DiscardSCache(scp);
+                lock_ReleaseMutex(&scp->mx);
+            }
+            lock_ObtainWrite(&cm_scacheLock);
+            osi_assert(scp->refCount-- > 0);
         }
-        lock_ReleaseWrite(&cm_scacheLock);
+    }
+    lock_ReleaseWrite(&cm_scacheLock);
 }
 
 /* debug interface: not implemented */
index d556c9ea88382b24a3858112394e9c29f8d8db56..3acc6f19e5d50bd96b533536bd9c7622aff912c9 100644 (file)
@@ -64,4 +64,6 @@ extern long cm_GetCallback(struct cm_scache *, struct cm_user *,
 
 extern void cm_CheckCBExpiration(void);
 
+extern osi_rwlock_t cm_callbackLock;
+
 #endif /*  _CM_CALLBACK_H_ENV__ */
index d51e4e1da59b389dd6e2a674d5784ac0838dc188..e82ff96635a0e547acffc51bdba6bcf45ce89e0b 100644 (file)
@@ -105,14 +105,14 @@ cm_cell_t *cm_GetCell_Gen(char *namep, char *newnamep, long flags)
 
         code = cm_SearchCellFile(namep, fullname, cm_AddCellProc, cp);
                if (code) {
-            afsi_log("in cm_GetCell_gen cm_SearchCellFile(%s) returns code= %d fullname= %s", 
+            osi_Log3(afsd_logp,"in cm_GetCell_gen cm_SearchCellFile(%s) returns code= %d fullname= %s", 
                       namep, code, fullname);
 
 #ifdef AFS_AFSDB_ENV
             if (cm_dnsEnabled /*&& cm_DomainValid(namep)*/) {
                 code = cm_SearchCellByDNS(namep, fullname, &ttl, cm_AddCellProc, cp);
                 if ( code ) {
-                    afsi_log("in cm_GetCell_gen cm_SearchCellByDNS(%s) returns code= %d fullname= %s", 
+                    osi_Log3(afsd_logp,"in cm_GetCell_gen cm_SearchCellByDNS(%s) returns code= %d fullname= %s", 
                              namep, code, fullname);
                     if (dns_expired) {
                         cp->flags |= CM_CELLFLAG_VLSERVER_INVALID;
index 90542fdbd4118b066d3a9c5bb309942204c0b4ed..a7ee8c3864ccf800c022a8807728a3b92a357e79 100644 (file)
@@ -94,7 +94,6 @@ void cm_InitReq(cm_req_t *reqp)
 #else
         gettimeofday(&reqp->startTime, NULL);
 #endif
 }
 
 static long cm_GetServerList(struct cm_fid *fidp, struct cm_user *userp,
@@ -144,7 +143,7 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp,
        cm_serverRef_t * serversp,
        cm_callbackRequest_t *cbrp, long errorCode)
 {
-       cm_server_t *serverp;
+    cm_server_t *serverp = 0;
     cm_serverRef_t **serverspp = 0;
        cm_serverRef_t *tsrp;
        cm_ucell_t *ucellp;
@@ -163,8 +162,21 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp,
                serverp = connp->serverp;
 
        /* Update callback pointer */
-    if (cbrp && errorCode == 0) 
-        cbrp->serverp = connp->serverp;
+    if (cbrp && serverp && errorCode == 0) {
+        if (cbrp->serverp) {
+            if ( cbrp->serverp != serverp ) {
+                lock_ObtainWrite(&cm_serverLock);
+                cm_PutServerNoLock(cbrp->serverp);
+                cm_GetServerNoLock(serverp);
+                lock_ReleaseWrite(&cm_serverLock);
+            }
+        } else {
+            cm_GetServer(serverp);
+        }
+        lock_ObtainWrite(&cm_callbackLock);
+        cbrp->serverp = serverp;
+        lock_ReleaseWrite(&cm_callbackLock);
+    }
 
        /* If not allowed to retry, don't */
        if (reqp->flags & CM_REQ_NORETRY)
@@ -398,7 +410,7 @@ long cm_ConnByMServers(cm_serverRef_t *serversp, cm_user_t *usersp,
        lock_ObtainWrite(&cm_serverLock);
     for (tsrp = serversp; tsrp; tsrp=tsrp->next) {
         tsp = tsrp->server;
-        tsp->refCount++;
+        cm_GetServerNoLock(tsp);
         lock_ReleaseWrite(&cm_serverLock);
         if (!(tsp->flags & CM_SERVERFLAG_DOWN)) {
             allDown = 0;
@@ -422,7 +434,6 @@ long cm_ConnByMServers(cm_serverRef_t *serversp, cm_user_t *usersp,
                     rx_SetConnDeadTime((*connpp)->callp, timeLeft);
                     rx_SetConnHardDeadTime((*connpp)->callp, (u_short) hardTimeLeft);
                     lock_ReleaseMutex(&(*connpp)->mx);
-
                     return 0;
                 }
                 if (firstError == 0) 
@@ -430,7 +441,7 @@ long cm_ConnByMServers(cm_serverRef_t *serversp, cm_user_t *usersp,
             }
                } 
         lock_ObtainWrite(&cm_serverLock);
-        osi_assert(tsp->refCount-- > 0);
+        cm_PutServerNoLock(tsp);
     }   
 
        lock_ReleaseWrite(&cm_serverLock);
@@ -462,6 +473,7 @@ void cm_GCConnections(cm_server_t *serverp)
                userp = tcp->userp;
                if (userp && tcp->refCount == 0 && (userp->vcRefs == 0)) {
                        /* do the deletion of this guy */
+            cm_PutServer(tcp->serverp);
             cm_ReleaseUser(userp);
             *lcpp = tcp->nextp;
                        rx_DestroyConnection(tcp->callp);
@@ -532,11 +544,14 @@ long cm_ConnByServer(cm_server_t *serverp, cm_user_t *userp, cm_conn_t **connpp)
        lock_ObtainMutex(&userp->mx);
        lock_ObtainWrite(&cm_connLock);
        for(tcp = serverp->connsp; tcp; tcp=tcp->nextp) {
-               if (tcp->userp == userp) break;
+        if (tcp->userp == userp) 
+            break;
     }
+    
        /* find ucell structure */
     ucellp = cm_GetUCell(userp, serverp->cellp);
        if (!tcp) {
+        cm_GetServer(serverp);
                tcp = malloc(sizeof(*tcp));
         memset(tcp, 0, sizeof(*tcp));
         tcp->nextp = serverp->connsp;
index 305aba53797950412a5dc602cbf65c3bd45a5d14..9ecb90c69bdd90bec449010fa4d8ab8e2f0c6154 100644 (file)
@@ -95,15 +95,15 @@ void cm_QueueBKGRequest(cm_scache_t *scp, cm_bkgProc_t *procp, long p1, long p2,
 /* periodic check daemon */
 void cm_Daemon(long parm)
 {
-    long now;
-       long lastLockCheck;
-    long lastVolCheck;
-    long lastCBExpirationCheck;
-       long lastDownServerCheck;
-       long lastUpServerCheck;
-       long lastTokenCacheCheck;
+    unsigned long now;
+       unsigned long lastLockCheck;
+    unsigned long lastVolCheck;
+    unsigned long lastCBExpirationCheck;
+       unsigned long lastDownServerCheck;
+       unsigned long lastUpServerCheck;
+       unsigned long lastTokenCacheCheck;
        char thostName[200];
-       long code;
+       unsigned long code;
        struct hostent *thp;
 
        /* ping all file servers, up or down, with unauthenticated connection,
index 512876930c788f198fce662fc7d16e892c7fe6f5..56400e8298268597dce5d1d7b716bf7de100f7f6 100644 (file)
@@ -15,7 +15,9 @@
 #include <winsock2.h>
 #include <nb30.h>
 #endif /* !DJGPP */
+#ifdef COMMENT
 #include <malloc.h>
+#endif
 #include <string.h>
 #include <stdlib.h>
 #include <osi.h>
@@ -407,8 +409,7 @@ long cm_CheckFetchRange(cm_scache_t *scp, osi_hyper_t *startBasep, long length,
     while(length > 0) {
                /* get callback so we can do a meaningful dataVersion comparison */
         code = cm_SyncOp(scp, NULL, up, reqp, 0,
-                         CM_SCACHESYNC_NEEDCALLBACK
-                         | CM_SCACHESYNC_GETSTATUS);
+                         CM_SCACHESYNC_NEEDCALLBACK | CM_SCACHESYNC_GETSTATUS);
                if (code) {
                        scp->flags &= ~CM_SCACHEFLAG_PREFETCHING;
                        lock_ReleaseMutex(&scp->mx);
@@ -836,8 +837,8 @@ long cm_SetupFetchBIOD(cm_scache_t *scp, osi_hyper_t *offsetp,
        biop->reserved = 0;
 
        /* first lookup the file's length, so we know when to stop */
-    code = cm_SyncOp(scp, NULL, up, reqp, 0, CM_SCACHESYNC_NEEDCALLBACK
-                     | CM_SCACHESYNC_GETSTATUS);
+    code = cm_SyncOp(scp, NULL, up, reqp, 0, 
+                     CM_SCACHESYNC_NEEDCALLBACK | CM_SCACHESYNC_GETSTATUS);
     if (code) 
         return code;
         
@@ -1073,8 +1074,7 @@ void cm_ReleaseBIOD(cm_bulkIO_t *biop, int isStore)
             if (bufp->flags & CM_BUF_WAITING) {
                                osi_Wakeup((long) bufp);
             }
-                       bufp->flags &= ~(CM_BUF_WAITING | CM_BUF_WRITING
-                             | CM_BUF_DIRTY);
+            bufp->flags &= ~(CM_BUF_WAITING | CM_BUF_WRITING | CM_BUF_DIRTY);
         }
 
         lock_ReleaseMutex(&bufp->mx);
index ce2f0b60e9dcba537c88479f1680d7c73d042a8e..1443b66778c17d1e06a2dc22be0e39f3b7c037cb 100644 (file)
@@ -11,7 +11,7 @@
 #define __CM_DIR_ENV__ 1
 
 #define CM_DIR_PAGESIZE                2048            /* bytes per page */
-#define CM_DIR_NHASHENT                128             /* entries in the hash tbl */
+#define CM_DIR_NHASHENT                256             /* entries in the hash tbl == NHSIZE */
 #define CM_DIR_MAXPAGES                128             /* max pages in a dir */
 #define CM_DIR_BIGMAXPAGES     1023            /* new big max pages */
 #define CM_DIR_EPP             64              /* dir entries per page */
@@ -63,6 +63,7 @@ typedef struct cm_dirEntry {
        char name[16];
 } cm_dirEntry_t;
 
+#ifdef UNUSED
 typedef struct cm_dirXEntry {
        /* A directory extension entry. */
        char name[32];
@@ -79,6 +80,7 @@ typedef struct cm_dirPage1 {
        cm_pageHeader_t header;
        cm_dirEntry_t entry[1];
 } cm_dirPage1_t;
+#endif /* UNUSED */
 
 extern int cm_NameEntries(char *namep, size_t *lenp);
 
index 5bfa220be0b99cddc807a347767c1a30774bb9bd..ea501caafc014120e6be9f6b81353964a69f3ec5 100644 (file)
 #include <osi.h>
 #include "afsd.h"
 
-osi_rwlock_t cm_dnlcLock;
+static osi_rwlock_t cm_dnlcLock;
 
-cm_dnlcstats_t dnlcstats;      /* dnlc statistics */
-int cm_useDnlc = 1;            /* yes, start using the dnlc */
-int cm_debugDnlc = 0;          /* debug dnlc */
+static cm_dnlcstats_t dnlcstats;       /* dnlc statistics */
+static int cm_useDnlc = 1;     /* yes, start using the dnlc */
+static int cm_debugDnlc = 0;   /* debug dnlc */
 
 
 /* Hash table invariants:
  *     1.  If nameHash[i] is NULL, list is empty
  *     2.  A single element in a hash bucket has itself as prev and next.
  */
-struct nc      *ncfreelist = (struct nc *)0;
+static struct nc *ncfreelist = (struct nc *)0;
 static struct nc nameCache[NCSIZE];
-struct nc*     nameHash[NHSIZE];
-
+static struct nc *nameHash[NHSIZE];
 
 #ifndef DJGPP
 #define dnlcNotify(x,debug){                    \
@@ -59,7 +58,6 @@ struct nc*    nameHash[NHSIZE];
 #define dnlcNotify(x,debug)
 #endif /* !DJGPP */
 
-
 static struct nc * 
 GetMeAnEntry() 
 {
index aadfb9c53243e8a7b9e62980805800eea59606f8..fcb9ee1dc3c3c2a6fe26303d10318790552fbf37 100644 (file)
@@ -9,9 +9,9 @@
 
 #include <ctype.h>
 
-#define        CM_AFSNCNAMESIZE        36 /* multiple of 4 */
-#define         NCSIZE                         300
-#define         NHSIZE                         256 /* must be power of 2== NHASHENT */
+#define        CM_AFSNCNAMESIZE        40  /* multiple of 8 (for 64-bit) */
+#define         NCSIZE                         512
+#define         NHSIZE                         256 /* must be power of 2 == CM_DIR_NHASHENT */
 
 
 struct nc {
index ddbd0e6a66ae384586dd59cbcbbbd6149825da35..f0caaf3db9f98bd5abf84a93caa53c03f1730522 100644 (file)
@@ -272,6 +272,7 @@ void cm_InitFakeRootDir() {
        }
        
        // we know the fakeDir is setup properly, so we claim that we have callback
+    osi_Log0(afsd_logp,"cm_InitFakeRootDir fakeDirCallback=1");
        cm_fakeDirCallback=1;
 
        // when we get here, we've set up everything! done!
@@ -512,7 +513,7 @@ long cm_InitLocalMountPoints() {
             fprintf(fp,"%s#%s:root.cell.\n",rootCellName,rootCellName);
             fprintf(fp,".%s%%%s:root.cell.\n",rootCellName,rootCellName);
             fclose(fp);
-            fopen(hdir, "r");
+            fp = fopen(hdir, "r");
         } else {
             fputs("0\n", fp);
             fclose(fp);
index 538a60c91ed9b1e1ed68ec2be5ab7ca6629a8d02..169861875c5050a8403ff862ccc0e373c40bd021 100644 (file)
@@ -1060,8 +1060,10 @@ long cm_IoctlGetCell(struct smb_ioctl *ioctlp, struct cm_user *userp)
                ioctlp->outDatap = cp;
        }
 
-       if (tcellp) return 0;
-       else return CM_ERROR_NOMORETOKENS;      /* mapped to EDOM */
+    if (tcellp) 
+        return 0;
+    else 
+        return CM_ERROR_NOMORETOKENS;  /* mapped to EDOM */
 }
 
 extern long cm_AddCellProc(void *rockp, struct sockaddr_in *addrp, char *namep);
index 54d6e75a7928aafb3b555c752966531d68aed18b..b1d29854c10647fae4b0257f682e339103bcb43f 100644 (file)
@@ -56,7 +56,8 @@ void cm_AdjustLRU(cm_scache_t *scp)
                cm_scacheLRULastp = (cm_scache_t *) osi_QPrev(&scp->q);
        osi_QRemove((osi_queue_t **) &cm_scacheLRUFirstp, &scp->q);
        osi_QAdd((osi_queue_t **) &cm_scacheLRUFirstp, &scp->q);
-       if (!cm_scacheLRULastp) cm_scacheLRULastp = scp;
+    if (!cm_scacheLRULastp) 
+        cm_scacheLRULastp = scp;
 }
 
 /* called with cm_scacheLock write-locked; find a vnode to recycle.
@@ -73,7 +74,8 @@ cm_scache_t *cm_GetNewSCache(void)
                for (scp = cm_scacheLRULastp;
                     scp;
                     scp = (cm_scache_t *) osi_QPrev(&scp->q)) {
-                 if (scp->refCount == 0) break;
+            if (scp->refCount == 0) 
+                break;
                }
                 
                 if (scp) {
@@ -85,7 +87,8 @@ cm_scache_t *cm_GetNewSCache(void)
                                for (tscp = *lscpp;
                                     tscp;
                                     lscpp = &tscp->nextp, tscp = *lscpp) {
-                                 if (tscp == scp) break;
+                    if (tscp == scp) 
+                        break;
                                 }
                                 osi_assertx(tscp, "afsd: scache hash screwup");
                                 *lscpp = scp->nextp;
@@ -108,7 +111,10 @@ cm_scache_t *cm_GetNewSCache(void)
                        scp->bulkStatProgress = hzero;
 
                         /* discard callback */
+            if (scp->cbServerp) {
+                cm_PutServer(scp->cbServerp);
                         scp->cbServerp = NULL;
+            }
                         scp->cbExpires = 0;
 
                        /* remove from dnlc */
@@ -164,7 +170,8 @@ cm_scache_t *cm_GetNewSCache(void)
        
         /* and put it in the LRU queue */
         osi_QAdd((osi_queue_t **) &cm_scacheLRUFirstp, &scp->q);
-        if (!cm_scacheLRULastp) cm_scacheLRULastp = scp;
+    if (!cm_scacheLRULastp) 
+        cm_scacheLRULastp = scp;
         cm_currentSCaches++;
        cm_dnlcPurgedp(scp); /* make doubly sure that this is not in dnlc */
        cm_dnlcPurgevp(scp); 
@@ -174,10 +181,14 @@ cm_scache_t *cm_GetNewSCache(void)
 /* like strcmp, only for fids */
 int cm_FidCmp(cm_fid_t *ap, cm_fid_t *bp)
 {
-        if (ap->vnode != bp->vnode) return 1;
-       if (ap->volume != bp->volume) return 1;
-        if (ap->unique != bp->unique) return 1;
-        if (ap->cell != bp->cell) return 1;
+    if (ap->vnode != bp->vnode) 
+        return 1;
+    if (ap->volume != bp->volume) 
+        return 1;
+    if (ap->unique != bp->unique) 
+        return 1;
+    if (ap->cell != bp->cell) 
+        return 1;
         return 0;
 }
 
@@ -240,16 +251,24 @@ long cm_GetSCache(cm_fid_t *fidp, cm_scache_t **outScpp, cm_user_t *userp,
        long hash;
     cm_scache_t *scp;
     long code;
-    cm_volume_t *volp;
+    cm_volume_t *volp = 0;
     cm_cell_t *cellp;
-       char* mp;
+    char* mp = 0;
        int special; // yj: boolean variable to test if file is on root.afs
        int isRoot;
+    extern cm_fid_t cm_rootFid;
         
     hash = CM_SCACHE_HASH(fidp);
         
        osi_assert(fidp->cell != 0);
 
+    if (fidp->cell== cm_rootFid.cell && 
+         fidp->volume==cm_rootFid.volume &&
+         fidp->vnode==0x0 && fidp->unique==0x0)
+    {
+        osi_Log0(afsd_logp,"cm_getSCache called with root cell/volume and vnode=0 and unique=0");
+    }
+
        // yj: check if we have the scp, if so, we don't need
        // to do anything else
     lock_ObtainWrite(&cm_scacheLock);
@@ -281,16 +300,20 @@ long cm_GetSCache(cm_fid_t *fidp, cm_scache_t **outScpp, cm_user_t *userp,
        if (cm_freelanceEnabled && isRoot) {
                osi_Log0(afsd_logp,"cm_getSCache Freelance and isRoot");
           /* freelance: if we are trying to get the root scp for the first
-             time, we will just put in a place holder entry. */
+         * time, we will just put in a place holder entry. 
+         */
                volp = NULL;
        }
          
        if (cm_freelanceEnabled && special) {
                osi_Log0(afsd_logp,"cm_getSCache Freelance and special");
+        if (fidp->vnode > 1) {
            lock_ObtainMutex(&cm_Freelance_Lock);
                mp =(cm_localMountPoints+fidp->vnode-2)->mountPointStringp;
                lock_ReleaseMutex(&cm_Freelance_Lock);
-               
+        } else {
+            mp = "";
+        }
                scp = cm_GetNewSCache();
                
                scp->fid = *fidp;
@@ -326,7 +349,6 @@ long cm_GetSCache(cm_fid_t *fidp, cm_scache_t **outScpp, cm_user_t *userp,
                lock_ReleaseWrite(&cm_scacheLock);
                /*afsi_log("   getscache done");*/
                return 0;
-
        }
        // end of yj code
 #endif /* AFS_FREELANCE_CLIENT */
@@ -352,6 +374,7 @@ long cm_GetSCache(cm_fid_t *fidp, cm_scache_t **outScpp, cm_user_t *userp,
                        scp->refCount++;
             cm_AdjustLRU(scp);
             lock_ReleaseWrite(&cm_scacheLock);
+            if (volp)
             cm_PutVolume(volp);
             *outScpp = scp;
                        return 0;
@@ -384,6 +407,13 @@ long cm_GetSCache(cm_fid_t *fidp, cm_scache_t **outScpp, cm_user_t *userp,
        cm_hashTablep[hash] = scp;
     scp->flags |= CM_SCACHEFLAG_INHASH;
        scp->refCount = 1;
+
+       /* XXX - The following fields in the cm_scache are 
+        * uninitialized:
+        *   fileType
+        *   parentVnode
+        *   parentUnique
+        */
     lock_ReleaseWrite(&cm_scacheLock);
         
     /* now we have a held scache entry; just return it */
@@ -590,12 +620,14 @@ long cm_SyncOp(cm_scache_t *scp, cm_buf_t *bufp, cm_user_t *up, cm_req_t *reqp,
 
                // yj: modified this so that callback only checked if we're
                // not checking something on /afs
+        /* fix the conditional to match the one in cm_HaveCallback */
                if (  (flags & CM_SCACHESYNC_NEEDCALLBACK)
 #ifdef AFS_FREELANCE_CLIENT
-                       && (!cm_freelanceEnabled || !(!(scp->fid.vnode==0x1 &&
-                                                        scp->fid.unique==0x1) &&
-                                                        scp->fid.cell==AFS_FAKE_ROOT_CELL_ID &&
-                                                        scp->fid.volume==AFS_FAKE_ROOT_VOL_ID))
+             && (!cm_freelanceEnabled || 
+                  !(scp->fid.vnode==0x1 && scp->fid.unique==0x1) ||
+                  scp->fid.cell!=AFS_FAKE_ROOT_CELL_ID ||
+                  scp->fid.volume!=AFS_FAKE_ROOT_VOL_ID ||
+                                 cm_fakeDirCallback < 2)
 #endif /* AFS_FREELANCE_CLIENT */
                    ) {
                        if (!cm_HaveCallback(scp)) {
@@ -656,7 +688,8 @@ sleep:
                if (bufLocked) lock_ReleaseMutex(&bufp->mx);
         osi_SleepM((long) &scp->flags, &scp->mx);
         osi_Log0(afsd_logp, "CM SyncOp woke!");
-        if (bufLocked) lock_ObtainMutex(&bufp->mx);
+        if (bufLocked) 
+            lock_ObtainMutex(&bufp->mx);
         lock_ObtainMutex(&scp->mx);
         } /* big while loop */
         
@@ -807,7 +840,7 @@ void cm_MergeStatus(cm_scache_t *scp, AFSFetchStatus *statusp, AFSVolSync *volp,
        if (cm_freelanceEnabled && scp == cm_rootSCachep) {
                osi_Log0(afsd_logp,"cm_MergeStatus Freelance cm_rootSCachep");
                statusp->InterfaceVersion = 0x1;
-               statusp->FileType = 0x2;
+        statusp->FileType = CM_SCACHETYPE_DIRECTORY;
                statusp->LinkCount = scp->linkCount;
                statusp->Length = cm_fakeDirSize;
                statusp->DataVersion = cm_fakeDirVersion;
@@ -900,8 +933,10 @@ void cm_MergeStatus(cm_scache_t *scp, AFSFetchStatus *statusp, AFSVolSync *volp,
                else
                        scp->fileType = CM_SCACHETYPE_SYMLINK;
         }
-        else scp->fileType = 0;        /* invalid */
-
+    else {
+        osi_Log1(afsd_logp, "Merge, Invalid File Type, scp %x", scp);
+        scp->fileType = 0;     /* invalid */
+    }
         /* and other stuff */
         scp->parentVnode = statusp->ParentVnode;
         scp->parentUnique = statusp->ParentUnique;
@@ -927,7 +962,10 @@ void cm_MergeStatus(cm_scache_t *scp, AFSFetchStatus *statusp, AFSVolSync *volp,
 void cm_DiscardSCache(cm_scache_t *scp)
 {
        lock_AssertMutex(&scp->mx);
+    if (scp->cbServerp) {
+        cm_PutServer(scp->cbServerp);
        scp->cbServerp = NULL;
+    }
         scp->cbExpires = 0;
        cm_dnlcPurgedp(scp);
         cm_FreeAllACLEnts(scp);
index d259dc1d0db3b1cd10efe17d7236809a167b543c..aeeeeeeb4b2762fc3cbee61c5be2320d718326f2 100644 (file)
@@ -72,8 +72,8 @@ typedef struct cm_scache {
 
        /* file status */
        int fileType;                   /* file type */
-       unsigned long clientModTime;    /* mtime */
-        unsigned long serverModTime;   /* at server, for concurrent call
+       time_t clientModTime;   /* mtime */
+        time_t serverModTime;  /* at server, for concurrent call
                                         * comparisons */
         osi_hyper_t length;            /* file length */
        cm_prefetch_t prefetch;         /* prefetch info structure */
@@ -97,12 +97,12 @@ typedef struct cm_scache {
                                         * the link contents here.
                                          */
        cm_fid_t *mountRootFidp;        /* mounted on root */
-       unsigned int mountRootGen;      /* time to update mountRootFidp? */
+       time_t    mountRootGen;         /* time to update mountRootFidp? */
        cm_fid_t *dotdotFidp;           /* parent of volume root */
 
        /* callback info */
         struct cm_server *cbServerp;   /* server granting callback */
-        long cbExpires;                        /* time callback expires */
+        time_t cbExpires;              /* time callback expires */
 
        /* access cache */
         long anyAccess;                        /* anonymous user's access */
index fa1a72a6e3078f437aaa8901dc8a2a34da582300..ebe9eb2b80097fc3e25cff8e61cc0226fcd131e3 100644 (file)
@@ -53,7 +53,7 @@ void cm_CheckServers(long flags, cm_cell_t *cellp)
 
         lock_ObtainWrite(&cm_serverLock);
        for(tsp = cm_allServersp; tsp; tsp = tsp->allNextp) {
-               tsp->refCount++;
+        cm_GetServerNoLock(tsp);
                 lock_ReleaseWrite(&cm_serverLock);
 
                /* now process the server */
@@ -120,7 +120,7 @@ void cm_CheckServers(long flags, cm_cell_t *cellp)
                cm_GCConnections(tsp);
 
                 lock_ObtainWrite(&cm_serverLock);
-                osi_assert(tsp->refCount-- > 0);
+        cm_PutServerNoLock(tsp);
         }
         lock_ReleaseWrite(&cm_serverLock);
 }
@@ -135,6 +135,18 @@ void cm_InitServer(void)
         }
 }
 
+void cm_GetServer(cm_server_t *serverp)
+{
+    lock_ObtainWrite(&cm_serverLock);
+    serverp->refCount++;
+    lock_ReleaseWrite(&cm_serverLock);
+}
+
+void cm_GetServerNoLock(cm_server_t *serverp)
+{
+    serverp->refCount++;
+}
+
 void cm_PutServer(cm_server_t *serverp)
 {
        lock_ObtainWrite(&cm_serverLock);
@@ -195,7 +207,8 @@ void cm_SetServerPrefs(cm_server_t * serverp)
                serverp->ipRank += min(serverp->ipRank, rand() % 0x000f);
            } /* and of for loop */
        }
-       else    serverp->ipRank = 10000 + (rand() % 0x00ff); /* VL server */
+    else 
+        serverp->ipRank = 10000 + (rand() % 0x00ff); /* VL server */
 }
 
 cm_server_t *cm_NewServer(struct sockaddr_in *socketp, int type, cm_cell_t *cellp) {
@@ -235,7 +248,8 @@ cm_server_t *cm_FindServer(struct sockaddr_in *addrp, int type)
         }
 
        /* bump ref count if we found the server */
-       if (tsp) tsp->refCount++;
+    if (tsp) 
+        cm_GetServerNoLock(tsp);
 
        /* drop big table lock */
         lock_ReleaseWrite(&cm_serverLock);
@@ -248,9 +262,7 @@ cm_serverRef_t *cm_NewServerRef(cm_server_t *serverp)
 {
        cm_serverRef_t *tsrp;
 
-    lock_ObtainWrite(&cm_serverLock);
-       serverp->refCount++;
-    lock_ReleaseWrite(&cm_serverLock);
+    cm_GetServer(serverp);
        tsrp = malloc(sizeof(*tsrp));
        tsrp->server = serverp;
        tsrp->status = not_busy;
@@ -404,25 +416,26 @@ void cm_RandomizeServer(cm_serverRef_t** list)
 }
 
 /* call cm_FreeServer while holding a write lock on cm_serverLock */
-void cm_FreeServer(cm_server_t* server)
+void cm_FreeServer(cm_server_t* serverp)
 {
-    if (--(server->refCount) == 0)
+    cm_PutServerNoLock(serverp);
+    if (serverp->refCount == 0)
     {
         /* we need to check to ensure that all of the connections
          * for this server have a 0 refCount; otherwise, they will
          * not be garbage collected 
          */
-        cm_GCConnections(server);  /* connsp */
+        cm_GCConnections(serverp);  /* connsp */
 
-        lock_FinalizeMutex(&server->mx);
-        if ( cm_allServersp == server )
-            cm_allServersp = server->allNextp;
+        lock_FinalizeMutex(&serverp->mx);
+        if ( cm_allServersp == serverp )
+            cm_allServersp = serverp->allNextp;
         else {
             cm_server_t *tsp;
 
             for(tsp = cm_allServersp; tsp->allNextp; tsp=tsp->allNextp) {
-                if ( tsp->allNextp == server ) {
-                    tsp->allNextp = server->allNextp;
+                if ( tsp->allNextp == serverp ) {
+                    tsp->allNextp = serverp->allNextp;
                     break;
                 }
             }
index cabaf7c16846e1ae7cff536b1a8069c334392e37..fc766c3169562fdc9010487c06fdab83671dae12 100644 (file)
@@ -74,6 +74,10 @@ extern cm_serverRef_t *cm_NewServerRef(struct cm_server *serverp);
 
 extern long cm_ChecksumServerList(cm_serverRef_t *serversp);
 
+extern void cm_GetServer(cm_server_t *);
+
+extern void cm_GetServerNoLock(cm_server_t *);
+
 extern void cm_PutServer(cm_server_t *);
 
 extern void cm_PutServerNoLock(cm_server_t *);
index ae00d31092f75839908e623527ddc7c9b2399341..22d75dd9ffd0b1743318ca394c12cdeecffac74e 100644 (file)
@@ -1380,7 +1380,8 @@ long cm_NameI(cm_scache_t *rootSCachep, char *pathp, long flags,
                         psp = tempsp;
                         tp = psp->data;
                         cm_ReleaseSCache(tscp);
-                        tscp = linkScp;        /* already held
+                    tscp = linkScp;    
+                    /* already held
                                          * by AssembleLink */
                         /* now, if linkScp is null, that's
                          * AssembleLink's way of telling us that
@@ -1679,7 +1680,7 @@ void cm_TryBulkStat(cm_scache_t *dscp, osi_hyper_t *offsetp, cm_user_t *userp,
                 } /* all files in the response */
                /* now tell it to drop the count,
                 * after doing the vnode processing above */
-                cm_EndCallbackGrantingCall(NULL, NULL, NULL, 0);
+        cm_EndCallbackGrantingCall(NULL, &cbReq, NULL, 0);
                 
                 filex += filesThisCall;
         }      /* while there are still more files to process */
@@ -1959,7 +1960,7 @@ long cm_Create(cm_scache_t *dscp, char *namep, long flags, cm_attr_t *attrp,
        
         /* make sure we end things properly */
         if (!didEnd)
-               cm_EndCallbackGrantingCall(NULL, NULL, NULL, 0);
+               cm_EndCallbackGrantingCall(NULL, &cbReq, NULL, 0);
 
         return code;
 }
@@ -2075,7 +2076,7 @@ long cm_MakeDir(cm_scache_t *dscp, char *namep, long flags, cm_attr_t *attrp,
        
         /* make sure we end things properly */
         if (!didEnd)
-               cm_EndCallbackGrantingCall(NULL, NULL, NULL, 0);
+               cm_EndCallbackGrantingCall(NULL, &cbReq, NULL, 0);
        
         /* and return error code */
         return code;
index 2e35b362c2cfc59889c87c894f4bb53c964c375f..c784a354513d8d9a5f38f7cd09a9d55e695a265b 100644 (file)
@@ -175,7 +175,8 @@ long cm_GetVolumeByID(cm_cell_t *cellp, long volumeID, cm_user_t *userp,
         }
 
        /* hold the volume if we found it */
-        if (volp) volp->refCount++;
+    if (volp) 
+        volp->refCount++;
         lock_ReleaseWrite(&cm_volumeLock);
         
        /* return it held */
@@ -316,7 +317,8 @@ cm_serverRef_t **cm_GetVolServers(cm_volume_t *volp, unsigned long volume)
         serverspp = &volp->roServersp;
        else if (volume == volp->bkID)
         serverspp = &volp->bkServersp;
-       else osi_panic("bad volume ID in cm_GetVolServers", __FILE__, __LINE__);
+    else 
+        osi_panic("bad volume ID in cm_GetVolServers", __FILE__, __LINE__);
         
     for (current = *serverspp; current; current = current->next)
         current->refCount++;
@@ -370,7 +372,6 @@ void cm_CheckVolumes(void)
         lock_ReleaseWrite(&cm_volumeLock);
 
        /* We should also refresh cached mount points */
-
 }
 
 /*
index ac32533db397734efd3e65f7b77c58cd1c088d0d..5e960c56a19ad30bad13e5a3b869e4d9fa27bbd5 100644 (file)
@@ -583,6 +583,8 @@ char *AclToString(acl)
     return mydata;
 }
 
+#define AFSCLIENT_ADMIN_GROUPNAME "AFS Client Admins"
+
 BOOL IsAdmin (void)
 {
     static BOOL fAdmin = FALSE;
@@ -590,20 +592,54 @@ BOOL IsAdmin (void)
 
     if (!fTested)
     {
-        /* Obtain the SID for BUILTIN\Administrators. If this is Windows NT,
-         * expect this call to succeed; if it does not, we can presume that
-         * it's not NT and therefore the user always has administrative
-         * privileges.
+        /* Obtain the SID for the AFS client admin group.  If the group does
+         * not exist, then assume we have AFS client admin privileges.
          */
         PSID psidAdmin = NULL;
-        SID_IDENTIFIER_AUTHORITY auth = SECURITY_NT_AUTHORITY;
+        DWORD dwSize, dwSize2;
+        char pszAdminGroup[ MAX_COMPUTERNAME_LENGTH + sizeof(AFSCLIENT_ADMIN_GROUPNAME) + 2 ];
+        char *pszRefDomain = NULL;
+        SID_NAME_USE snu = SidTypeGroup;
+
+        dwSize = sizeof(pszAdminGroup);
+
+        if (!GetComputerName(pszAdminGroup, &dwSize)) {
+            /* Can't get computer name.  We return false in this case.
+               Retain fAdmin and fTested. This shouldn't happen.*/
+            return FALSE;
+        }
 
         fTested = TRUE;
 
-        if (!AllocateAndInitializeSid (&auth, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &psidAdmin))
+        dwSize = 0;
+        dwSize2 = 0;
+
+        strcat(pszAdminGroup,"\\");
+        strcat(pszAdminGroup, AFSCLIENT_ADMIN_GROUPNAME);
+
+        LookupAccountName(NULL, pszAdminGroup, NULL, &dwSize, NULL, &dwSize2, &snu);
+        /* that should always fail. */
+
+        if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) {
+            /* if we can't find the group, then we allow the operation */
             fAdmin = TRUE;
-        else
-        {
+            return TRUE;
+        }
+
+        if (dwSize == 0 || dwSize2 == 0) {
+            /* Paranoia */
+            fAdmin = TRUE;
+            return TRUE;
+        }
+
+        psidAdmin = (PSID)malloc(dwSize); memset(psidAdmin,0,dwSize);
+        pszRefDomain = (char *)malloc(dwSize2);
+
+        if (!LookupAccountName(NULL, pszAdminGroup, psidAdmin, &dwSize, pszRefDomain, &dwSize2, &snu)) {
+            /* We can't lookup the group now even though we looked it up earlier.  
+               Could this happen? */
+            fAdmin = TRUE;
+        } else {
             /* Then open our current ProcessToken */
             HANDLE hToken;
 
@@ -624,13 +660,14 @@ BOOL IsAdmin (void)
                 if (GetTokenInformation (hToken, TokenGroups, pGroups, dwSize, &dwSize))
                 {
                     /* Look through the list of group SIDs and see if any of them
-                     * matches the Administrator group SID.
+                     * matches the AFS Client Admin group SID.
                      */
                     size_t iGroup = 0;
                     for (; (!fAdmin) && (iGroup < pGroups->GroupCount); ++iGroup)
                     {
-                        if (EqualSid (psidAdmin, pGroups->Groups[ iGroup ].Sid))
+                        if (EqualSid (psidAdmin, pGroups->Groups[ iGroup ].Sid)) {
                             fAdmin = TRUE;
+                        }
                     }
                 }
 
@@ -639,8 +676,8 @@ BOOL IsAdmin (void)
             }
         }
 
-        if (psidAdmin)
-            FreeSid (psidAdmin);
+        free(psidAdmin);
+        free(pszRefDomain);
     }
 
     return fAdmin;
@@ -1657,7 +1694,7 @@ register struct cmd_syndesc *as; {
     if ( checkserv.tinterval != 0 ) {
 #ifdef WIN32
         if ( !IsAdmin() ) {
-            fprintf (stderr,"Permission denied: requires Administrator access.\n");
+            fprintf (stderr,"Permission denied: requires AFS Client Administrator access.\n");
             return EACCES;
         }
 #else /* WIN32 */
@@ -1769,7 +1806,7 @@ register struct cmd_syndesc *as; {
     
 #ifdef WIN32
     if ( !IsAdmin() ) {
-        fprintf (stderr,"Permission denied: requires Administrator access.\n");
+        fprintf (stderr,"Permission denied: requires AFS Client Administrator access.\n");
         return EACCES;
     }
 #else /* WIN32 */
@@ -1883,7 +1920,7 @@ register struct cmd_syndesc *as; {
 
 #ifdef WIN32
     if ( !IsAdmin() ) {
-        fprintf (stderr,"Permission denied: requires Administrator access.\n");
+        fprintf (stderr,"Permission denied: requires AFS Client Administrator access.\n");
         return EACCES;
     }
 #else /* WIN32 */
@@ -2104,7 +2141,7 @@ register struct cmd_syndesc *as; {
     if (ti) {
 #ifdef WIN32
     if ( !IsAdmin() ) {
-        fprintf (stderr,"Permission denied: requires Administrator access.\n");
+        fprintf (stderr,"Permission denied: requires AFS Client Administrator access.\n");
         return EACCES;
     }
 #else /* WIN32 */
@@ -2171,7 +2208,7 @@ register struct cmd_syndesc *as; {
     
 #ifdef WIN32
     if ( !IsAdmin() ) {
-        fprintf (stderr,"Permission denied: requires Administrator access.\n");
+        fprintf (stderr,"Permission denied: requires AFS Client Administrator access.\n");
         return EACCES;
     }
 #else /* WIN32 */
@@ -2311,7 +2348,7 @@ register struct cmd_syndesc *as; {
 
 #ifdef WIN32
     if ( !IsAdmin() ) {
-        fprintf (stderr,"Permission denied: requires Administrator access.\n");
+        fprintf (stderr,"Permission denied: requires AFS Client Administrator access.\n");
         return EACCES;
     }
 #else /* WIN32 */
@@ -2567,7 +2604,7 @@ register struct cmd_syndesc *as; {
 
 #ifdef WIN32
     if ( !IsAdmin() ) {
-        fprintf (stderr,"Permission denied: requires Administrator access.\n");
+        fprintf (stderr,"Permission denied: requires AFS Client Administrator access.\n");
         return EACCES;
     }
 #else /* WIN32 */
@@ -2724,7 +2761,7 @@ static TraceCmd(struct cmd_syndesc *asp)
     
 #ifdef WIN32
     if ( !IsAdmin() ) {
-        fprintf (stderr,"Permission denied: requires Administrator access.\n");
+        fprintf (stderr,"Permission denied: requires AFS Client Administrator access.\n");
         return EACCES;
     }
 #else /* WIN32 */
@@ -2780,7 +2817,7 @@ struct cmd_syndesc *as; {
     
 #ifdef WIN32
     if ( !IsAdmin() ) {
-        fprintf (stderr,"Permission denied: requires Administrator access.\n");
+        fprintf (stderr,"Permission denied: requires AFS Client Administrator access.\n");  
         return EACCES;
     }
 #else /* WIN32 */
@@ -2845,7 +2882,7 @@ static afs_int32 SetCryptCmd(as)
  
 #ifdef WIN32
     if ( !IsAdmin() ) {
-        fprintf (stderr,"Permission denied: requires Administrator access.\n");
+        fprintf (stderr,"Permission denied: requires AFS Client Administrator access.\n");
         return EACCES;
     }
 #else /* WIN32 */
@@ -3239,20 +3276,20 @@ static MemDumpCmd(struct cmd_syndesc *asp)
 
 static CSCPolicyCmd(struct cmd_syndesc *asp)
 {
-       struct cmd_item *ti;
-       char *share = NULL;
+    struct cmd_item *ti;
+    char *share = NULL;
     HKEY hkCSCPolicy;
 
-       for(ti=asp->parms[0].items; ti;ti=ti->next) {
-               share = ti->data;
-               if (share)
-               {
-                       break;
-               }
-       }
+    for(ti=asp->parms[0].items; ti;ti=ti->next) {
+        share = ti->data;
+        if (share)
+        {
+            break;
+        }
+    }
 
-       if (share)
-       {
+    if (share)
+    {
         char *policy;
 
         RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
@@ -3265,40 +3302,44 @@ static CSCPolicyCmd(struct cmd_syndesc *asp)
                         &hkCSCPolicy,
                         NULL );
 
-        if ( !IsAdmin() || hkCSCPolicy == NULL ) {
+        if ( hkCSCPolicy == NULL ) {
             fprintf (stderr,"Permission denied: requires Administrator access.\n");
-            if ( hkCSCPolicy )
-                RegCloseKey(hkCSCPolicy);
+            return EACCES;
+        }
+
+        if ( !IsAdmin() ) {
+            fprintf (stderr,"Permission denied: requires AFS Client Administrator access.\n");
+            RegCloseKey(hkCSCPolicy);
             return EACCES;
         }
 
         policy = "manual";
                
-               if (asp->parms[1].items)
-                       policy = "manual";
-               if (asp->parms[2].items)
-                       policy = "programs";
-               if (asp->parms[3].items)
-                       policy = "documents";
-               if (asp->parms[4].items)
-                       policy = "disable";
+        if (asp->parms[1].items)
+            policy = "manual";
+        if (asp->parms[2].items)
+            policy = "programs";
+        if (asp->parms[3].items)
+            policy = "documents";
+        if (asp->parms[4].items)
+            policy = "disable";
                
         RegSetValueEx( hkCSCPolicy, share, 0, REG_SZ, policy, strlen(policy)+1);
                
-               printf("CSC policy on share \"%s\" changed to \"%s\".\n\n", share, policy);
-               printf("Close all applications that accessed files on this share or restart AFS Client for the change to take effect.\n"); 
-       }
-       else
-       {
+        printf("CSC policy on share \"%s\" changed to \"%s\".\n\n", share, policy);
+        printf("Close all applications that accessed files on this share or restart AFS Client for the change to take effect.\n"); 
+    }
+    else
+    {
         DWORD dwIndex, dwPolicies;
-               char policyName[256];
-               DWORD policyNameLen;
+        char policyName[256];
+        DWORD policyNameLen;
         char policy[256];
         DWORD policyLen;
         DWORD dwType;
 
-               /* list current csc policies */
-               
+        /* list current csc policies */
+
         RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
                         "SOFTWARE\\OpenAFS\\Client\\CSCPolicy",
                         0, 
@@ -3323,7 +3364,7 @@ static CSCPolicyCmd(struct cmd_syndesc *asp)
                          NULL   /* lpftLastWriteTime */
                          );
                
-               printf("Current CSC policies:\n");
+        printf("Current CSC policies:\n");
         for ( dwIndex = 0; dwIndex < dwPolicies; dwIndex ++ ) {
 
             policyNameLen = sizeof(policyName);
@@ -3331,10 +3372,10 @@ static CSCPolicyCmd(struct cmd_syndesc *asp)
             RegEnumValue( hkCSCPolicy, dwIndex, policyName, &policyNameLen, NULL,
                           &dwType, policy, &policyLen);
 
-                       printf("  %s = %s\n", policyName, policy);
-               }
-       }
+            printf("  %s = %s\n", policyName, policy);
+        }
+    }
 
     RegCloseKey(hkCSCPolicy);
-       return (0);
+    return (0);
 }
index 2dc856ffbae661184093056f457194f4bcb0eeb2..7d0f37d2ce109b270fda0e1b218710534cc4fc30 100644 (file)
@@ -43,12 +43,12 @@ smb_vc_t *active_vcp = NULL;
 /* TODO; logout mechanism needs to be thread-safe */
 char *loggedOutName = NULL;
 smb_user_t *loggedOutUserp = NULL;
-unsigned long loggedOutTime;
+time_t loggedOutTime;
 int loggedOut = 0;
 int smbShutdownFlag = 0;
 
 int smb_LogoffTokenTransfer;
-unsigned long smb_LogoffTransferTimeout;
+time_t smb_LogoffTransferTimeout;
 
 DWORD last_msg_time = 0;
 
@@ -432,7 +432,7 @@ static int ExtractBits(WORD bits, short start, short len)
 }
 
 #ifndef DJGPP
-void ShowUnixTime(char *FuncName, afs_uint32 unixTime)
+void ShowUnixTime(char *FuncName, time_t unixTime)
 {
        FILETIME ft;
        WORD wDate, wTime;
@@ -583,12 +583,12 @@ smb_CalculateNowTZ()
 }
 
 #ifndef DJGPP
-void smb_LargeSearchTimeFromUnixTime(FILETIME *largeTimep, afs_uint32 unixTime)
+void smb_LargeSearchTimeFromUnixTime(FILETIME *largeTimep, time_t unixTime)
 {
        struct tm *ltp;
        SYSTEMTIME stm;
        struct tm localJunk;
-       long ersatz_unixTime;
+       time_t ersatz_unixTime;
 
        /*
         * Must use kludge-GMT instead of real GMT.
@@ -623,7 +623,7 @@ void smb_LargeSearchTimeFromUnixTime(FILETIME *largeTimep, afs_uint32 unixTime)
        SystemTimeToFileTime(&stm, largeTimep);
 }
 #else /* DJGPP */
-void smb_LargeSearchTimeFromUnixTime(FILETIME *largeTimep, afs_uint32 unixTime)
+void smb_LargeSearchTimeFromUnixTime(FILETIME *largeTimep, time_t unixTime)
 {
        /* unixTime: seconds since 1/1/1970 00:00:00 GMT */
        /* FILETIME: 100ns intervals since 1/1/1601 00:00:00 ??? */
@@ -645,7 +645,7 @@ void smb_LargeSearchTimeFromUnixTime(FILETIME *largeTimep, afs_uint32 unixTime)
 #endif /* !DJGPP */
 
 #ifndef DJGPP
-void smb_UnixTimeFromLargeSearchTime(afs_uint32 *unixTimep, FILETIME *largeTimep)
+void smb_UnixTimeFromLargeSearchTime(time_t *unixTimep, FILETIME *largeTimep)
 {
        SYSTEMTIME stm;
        struct tm lt;
@@ -668,7 +668,7 @@ void smb_UnixTimeFromLargeSearchTime(afs_uint32 *unixTimep, FILETIME *largeTimep
        _timezone = save_timezone;
 }
 #else /* DJGPP */
-void smb_UnixTimeFromLargeSearchTime(afs_uint32 *unixTimep, FILETIME *largeTimep)
+void smb_UnixTimeFromLargeSearchTime(time_t *unixTimep, FILETIME *largeTimep)
 {
        /* unixTime: seconds since 1/1/1970 00:00:00 GMT */
        /* FILETIME: 100ns intervals since 1/1/1601 00:00:00 GMT? */
@@ -689,32 +689,33 @@ void smb_UnixTimeFromLargeSearchTime(afs_uint32 *unixTimep, FILETIME *largeTimep
 }
 #endif /* !DJGPP */
 
-void smb_SearchTimeFromUnixTime(long *dosTimep, afs_uint32 unixTime)
+void smb_SearchTimeFromUnixTime(long *dosTimep, time_t unixTime)
 {
-       struct tm *ltp;
-       int dosDate;
-       int dosTime;
-       struct tm localJunk;
-
-       ltp = localtime((time_t*) &unixTime);
-
-       /* if we fail, make up something */
-       if (!ltp) {
-               ltp = &localJunk;
-               localJunk.tm_year = 89 - 20;
-               localJunk.tm_mon = 4;
-               localJunk.tm_mday = 12;
-               localJunk.tm_hour = 0;
-               localJunk.tm_min = 0;
-               localJunk.tm_sec = 0;
-       }       
-
-       dosDate = ((ltp->tm_year-80)<<9) | ((ltp->tm_mon+1) << 5) | (ltp->tm_mday);
-       dosTime = (ltp->tm_hour<<11) | (ltp->tm_min << 5) | (ltp->tm_sec / 2);
-       *dosTimep = (dosDate<<16) | dosTime;
+    struct tm *ltp;
+    int dosDate;
+    int dosTime;
+    struct tm localJunk;
+    time_t t = unixTime;
+
+    ltp = localtime((time_t*) &t);
+
+    /* if we fail, make up something */
+    if (!ltp) {
+        ltp = &localJunk;
+        localJunk.tm_year = 89 - 20;
+        localJunk.tm_mon = 4;
+        localJunk.tm_mday = 12;
+        localJunk.tm_hour = 0;
+        localJunk.tm_min = 0;
+        localJunk.tm_sec = 0;
+    }  
+
+    dosDate = ((ltp->tm_year-80)<<9) | ((ltp->tm_mon+1) << 5) | (ltp->tm_mday);
+    dosTime = (ltp->tm_hour<<11) | (ltp->tm_min << 5) | (ltp->tm_sec / 2);
+    *dosTimep = (dosDate<<16) | dosTime;
 }      
 
-void smb_UnixTimeFromSearchTime(afs_uint32 *unixTimep, long searchTime)
+void smb_UnixTimeFromSearchTime(time_t *unixTimep, time_t searchTime)
 {
        unsigned short dosDate;
        unsigned short dosTime;
@@ -734,12 +735,12 @@ void smb_UnixTimeFromSearchTime(afs_uint32 *unixTimep, long searchTime)
        *unixTimep = mktime(&localTm);
 }
 
-void smb_DosUTimeFromUnixTime(afs_uint32 *dosUTimep, afs_uint32 unixTime)
+void smb_DosUTimeFromUnixTime(time_t *dosUTimep, time_t unixTime)
 {
        *dosUTimep = unixTime - smb_localZero;
 }
 
-void smb_UnixTimeFromDosUTime(afs_uint32 *unixTimep, afs_uint32 dosTime)
+void smb_UnixTimeFromDosUTime(time_t *unixTimep, time_t dosTime)
 {
 #ifndef DJGPP
        *unixTimep = dosTime + smb_localZero;
@@ -2592,7 +2593,7 @@ long smb_ReceiveNegotiate(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
        char protocol_array[10][1024];  /* protocol signature of the client */
     int caps;                       /* capabilities */
     time_t unixTime;
-       long dosTime;
+       time_t dosTime;
        TIME_ZONE_INFORMATION tzi;
 
     osi_Log1(smb_logp, "SMB receive negotiate; %d + 1 ongoing ops",
@@ -3169,7 +3170,7 @@ long smb_ApplyDirListPatches(smb_dirListPatch_t **dirPatchespp,
        long code = 0;
        cm_scache_t *scp;
        char *dptr;
-       long dosTime;
+       time_t dosTime;
        u_short shortTemp;
        char attr;
        smb_dirListPatch_t *patchp;
@@ -3801,7 +3802,7 @@ long smb_ReceiveCoreSetFileAttributes(smb_vc_t *vcp, smb_packet_t *inp, smb_pack
        unsigned short attribute;
        cm_attr_t attr;
        cm_scache_t *newScp;
-       long dosTime;
+       time_t dosTime;
        cm_user_t *userp;
        int caseFold;
        char *tidPathp;
@@ -3900,7 +3901,7 @@ long smb_ReceiveCoreGetFileAttributes(smb_vc_t *vcp, smb_packet_t *inp, smb_pack
        long code = 0;
        cm_scache_t *rootScp;
        cm_scache_t *newScp, *dscp;
-       long dosTime;
+       time_t dosTime;
        int attrs;
        cm_user_t *userp;
        int caseFold;
@@ -4062,7 +4063,7 @@ long smb_ReceiveCoreOpen(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
        long code = 0;
     cm_user_t *userp;
     cm_scache_t *scp;
-    long dosTime;
+    time_t dosTime;
     int caseFold;
        cm_space_t *spacep;
        char *tidPathp;
index 0f72f37c265b984cadaca0d4fca5d214c0366eb0..4f9bd33fd425de06d25cd264a161e566dc381f35 100644 (file)
@@ -153,7 +153,7 @@ typedef struct smb_vc {
     struct smb_user *usersp;   /* the first child in the user session list */
     struct smb_fid *fidsp;             /* the first child in the open file list */
        struct smb_user *justLoggedOut; /* ready for profile upload? */
-       unsigned long logoffTime;       /* tick count when logged off */
+       time_t logoffTime;      /* tick count when logged off */
        /*struct cm_user *logonDLLUser; /* integrated logon user */
        unsigned char errorCount;
     char rname[17];
@@ -316,7 +316,7 @@ typedef struct smb_dirSearch {
         int refCount;                  /* reference count */
         long cookie;                   /* value returned to the caller */
         struct cm_scache *scp;         /* vnode of the dir we're searching */
-        long lastTime;                 /* last time we used this */
+        time_t lastTime;               /* last time we used this */
         long flags;                    /* flags (see below);
                                         * locked by smb_globalLock */
         unsigned short attribute;      /* search attribute
@@ -339,8 +339,10 @@ typedef struct smb_dirListPatch {
 } smb_dirListPatch_t;
 
 /* dirListPatch Flags */
-#define SMB_DIRLISTPATCH_DOTFILE 1  /* the file referenced is a dot file 
-                                                                          Note: will not be set if smb_hideDotFiles is false */
+#define SMB_DIRLISTPATCH_DOTFILE 1  
+/* the file referenced is a dot file
+ * Note: will not be set if smb_hideDotFiles is false 
+ */
 
 /* waiting lock list elements */
 typedef struct smb_waitingLock {
@@ -348,7 +350,7 @@ typedef struct smb_waitingLock {
        smb_vc_t *vcp;
        smb_packet_t *inp;
        smb_packet_t *outp;
-       u_long timeRemaining;
+       time_t timeRemaining;
        void *lockp;
 } smb_waitingLock_t;
 
@@ -378,17 +380,17 @@ extern void smb_Init(osi_log_t *logp, char *smbNamep, int useV3, int LANadapt,
 #endif
   );
 
-extern void smb_LargeSearchTimeFromUnixTime(FILETIME *largeTimep, afs_uint32 unixTime);
+extern void smb_LargeSearchTimeFromUnixTime(FILETIME *largeTimep, time_t unixTime);
 
-extern void smb_UnixTimeFromLargeSearchTime(afs_uint32 *unixTimep, FILETIME *largeTimep);
+extern void smb_UnixTimeFromLargeSearchTime(time_t *unixTimep, FILETIME *largeTimep);
 
-extern void smb_SearchTimeFromUnixTime(long *dosTimep, afs_uint32 unixTime);
+extern void smb_SearchTimeFromUnixTime(time_t *dosTimep, time_t unixTime);
 
-extern void smb_UnixTimeFromSearchTime(afs_uint32 *unixTimep, long searchTime);
+extern void smb_UnixTimeFromSearchTime(time_t *unixTimep, time_t searchTime);
 
-extern void smb_DosUTimeFromUnixTime(afs_uint32 *dosUTimep, afs_uint32 unixTime);
+extern void smb_DosUTimeFromUnixTime(time_t *dosUTimep, time_t unixTime);
 
-extern void smb_UnixTimeFromDosUTime(afs_uint32 *unixTimep, afs_uint32 dosUTime);
+extern void smb_UnixTimeFromDosUTime(time_t *unixTimep, time_t dosUTime);
 
 extern smb_vc_t *smb_FindVC(unsigned short lsn, int flags, int lana);
 
@@ -474,7 +476,7 @@ extern void smb_HoldVC(smb_vc_t *vcp);
 /* some globals, too */
 extern char *smb_localNamep;
 extern int loggedOut;
-extern unsigned long loggedOutTime;
+extern time_t loggedOutTime;
 extern char *loggedOutName;
 extern smb_user_t *loggedOutUserp;
 
@@ -485,7 +487,7 @@ extern osi_rwlock_t smb_globalLock;
 extern osi_rwlock_t smb_rctLock;
 
 extern int smb_LogoffTokenTransfer;
-extern unsigned long smb_LogoffTransferTimeout;
+extern time_t smb_LogoffTransferTimeout;
 
 extern int smb_maxVCPerServer; /* max # of VCs per server */
 extern int smb_maxMpxRequests; /* max # of mpx requests */
index 3968598212844855c9e0a14cc296b3abec153203..5b43ef969c249de316807bc46c66d4bf93be457d 100644 (file)
@@ -3029,7 +3029,6 @@ long smb_ApplyV3DirListPatches(cm_scache_t *dscp,
                                *((u_long *)dptr) = SMB_ATTR_HIDDEN;
                 }
                            dptr += 4;
-
             } else {
                 /* 1969-12-31 23:59:58 +00*/
                 dosTime = 0xEBBFBF7D;
@@ -3066,11 +3065,10 @@ long smb_ApplyV3DirListPatches(cm_scache_t *dscp,
 
                 /* merge in hidden (dot file) attribute */
                 if ( patchp->flags & SMB_DIRLISTPATCH_DOTFILE ) {
-                    attr == SMB_ATTR_HIDDEN;
+                    attr = SMB_ATTR_HIDDEN;
                                *dptr++ = attr & 0xff;
                                *dptr++ = (attr >> 8) & 0xff;
                 }
-
             }
                        continue;
         }
@@ -5863,211 +5861,211 @@ void smb_NotifyChange(DWORD action, DWORD notifyFilter,
        cm_scache_t *dscp, char *filename, char *otherFilename,
        BOOL isDirectParent)
 {
-       smb_packet_t *watch, *lastWatch, *nextWatch;
-       ULONG parmSlot, parmCount, parmOffset, dataOffset, nameLen;
-       char *outData, *oldOutData;
-       ULONG filter;
-       USHORT fid, wtree;
-       ULONG maxLen;
-       BOOL twoEntries = FALSE;
-       ULONG otherNameLen, oldParmCount = 0;
-       DWORD otherAction;
-       smb_vc_t *vcp;
-       smb_fid_t *fidp;
+    smb_packet_t *watch, *lastWatch, *nextWatch;
+    ULONG parmSlot, parmCount, parmOffset, dataOffset, nameLen;
+    char *outData, *oldOutData;
+    ULONG filter;
+    USHORT fid, wtree;
+    ULONG maxLen;
+    BOOL twoEntries = FALSE;
+    ULONG otherNameLen, oldParmCount = 0;
+    DWORD otherAction;
+    smb_vc_t *vcp;
+    smb_fid_t *fidp;
 
-       /* Get ready for rename within directory */
-       if (action == FILE_ACTION_RENAMED_OLD_NAME && otherFilename != NULL) {
-               twoEntries = TRUE;
-               otherAction = FILE_ACTION_RENAMED_NEW_NAME;
-       }
+    /* Get ready for rename within directory */
+    if (action == FILE_ACTION_RENAMED_OLD_NAME && otherFilename != NULL) {
+        twoEntries = TRUE;
+        otherAction = FILE_ACTION_RENAMED_NEW_NAME;
+    }
 
     osi_Log2(smb_logp,"in smb_NotifyChange for file [%s] dscp [%x]",
-              osi_LogSaveString(smb_logp,filename),dscp);
-
-       lock_ObtainMutex(&smb_Dir_Watch_Lock);
-       watch = smb_Directory_Watches;
-       while (watch) {
-               filter = smb_GetSMBParm(watch, 19)
-                               | (smb_GetSMBParm(watch, 20) << 16);
-               fid = smb_GetSMBParm(watch, 21);
-               wtree = smb_GetSMBParm(watch, 22) & 0xffff;  /* TODO: should this be 0xff ? */
-               maxLen = smb_GetSMBOffsetParm(watch, 5, 1)
-                               | (smb_GetSMBOffsetParm(watch, 6, 1) << 16);
-               vcp = watch->vcp;
-
-               /*
-                * Strange hack - bug in NT Client and NT Server that we
-                * must emulate?
-                */
-               if (filter == 3 && wtree)
-                       filter = 0x17;
+             osi_LogSaveString(smb_logp,filename),dscp);
+
+    lock_ObtainMutex(&smb_Dir_Watch_Lock);
+    watch = smb_Directory_Watches;
+    while (watch) {
+        filter = smb_GetSMBParm(watch, 19)
+            | (smb_GetSMBParm(watch, 20) << 16);
+        fid = smb_GetSMBParm(watch, 21);
+        wtree = smb_GetSMBParm(watch, 22) & 0xffff;  /* TODO: should this be 0xff ? */
+        maxLen = smb_GetSMBOffsetParm(watch, 5, 1)
+            | (smb_GetSMBOffsetParm(watch, 6, 1) << 16);
+        vcp = watch->vcp;
+
+        /*
+         * Strange hack - bug in NT Client and NT Server that we
+         * must emulate?
+         */
+        if (filter == 3 && wtree)
+            filter = 0x17;
 
-               fidp = smb_FindFID(vcp, fid, 0);
+        fidp = smb_FindFID(vcp, fid, 0);
         if (!fidp) {
             osi_Log1(smb_logp," no fidp for fid[%d]",fid);
-               lastWatch = watch;
-               watch = watch->nextp;
-               continue;
-        }
-               if (fidp->scp != dscp
-                   || (filter & notifyFilter) == 0
-                   || (!isDirectParent && !wtree)) {
+            lastWatch = watch;
+            watch = watch->nextp;
+            continue;
+        }       
+        if (fidp->scp != dscp
+             || (filter & notifyFilter) == 0
+             || (!isDirectParent && !wtree)) {
             osi_Log1(smb_logp," passing fidp->scp[%x]", fidp->scp);
             smb_ReleaseFID(fidp);
-                       lastWatch = watch;
-                       watch = watch->nextp;
-                       continue;
-               }
-               smb_ReleaseFID(fidp);
+            lastWatch = watch;
+            watch = watch->nextp;
+            continue;
+        }
+        smb_ReleaseFID(fidp);
 
-               osi_Log4(smb_logp,
-                        "Sending Change Notification for fid %d filter 0x%x wtree %d file %s",
-                        fid, filter, wtree, osi_LogSaveString(smb_logp, filename));
+        osi_Log4(smb_logp,
+                  "Sending Change Notification for fid %d filter 0x%x wtree %d file %s",
+                  fid, filter, wtree, osi_LogSaveString(smb_logp, filename));
 
-               nextWatch = watch->nextp;
-               if (watch == smb_Directory_Watches)
-                       smb_Directory_Watches = nextWatch;
-               else
-                       lastWatch->nextp = nextWatch;
+        nextWatch = watch->nextp;
+        if (watch == smb_Directory_Watches)
+            smb_Directory_Watches = nextWatch;
+        else
+            lastWatch->nextp = nextWatch;
 
-               /* Turn off WATCHED flag in dscp */
-               lock_ObtainMutex(&dscp->mx);
-               if (wtree)
-                       dscp->flags &= ~CM_SCACHEFLAG_WATCHEDSUBTREE;
-               else
-                       dscp->flags &= ~CM_SCACHEFLAG_WATCHED;
-               lock_ReleaseMutex(&dscp->mx);
+        /* Turn off WATCHED flag in dscp */
+        lock_ObtainMutex(&dscp->mx);
+        if (wtree)
+            dscp->flags &= ~CM_SCACHEFLAG_WATCHEDSUBTREE;
+        else
+            dscp->flags &= ~CM_SCACHEFLAG_WATCHED;
+        lock_ReleaseMutex(&dscp->mx);
 
-               /* Convert to response packet */
-               ((smb_t *) watch)->reb = 0x80;
-               ((smb_t *) watch)->wct = 0;
+        /* Convert to response packet */
+        ((smb_t *) watch)->reb = 0x80;
+        ((smb_t *) watch)->wct = 0;
 
-               /* out parms */
-               if (filename == NULL)
-                       parmCount = 0;
-               else {
-                       nameLen = strlen(filename);
-                       parmCount = 3*4 + nameLen*2;
-                       parmCount = (parmCount + 3) & ~3;       /* pad to 4 */
-                       if (twoEntries) {
-                               otherNameLen = strlen(otherFilename);
-                               oldParmCount = parmCount;
-                               parmCount += 3*4 + otherNameLen*2;
-                               parmCount = (parmCount + 3) & ~3; /* pad to 4 */
-                       }
-                       if (maxLen < parmCount)
-                               parmCount = 0;  /* not enough room */
-               }
-               parmOffset = 8*4 + 39;
-               parmOffset += 1;                        /* pad to 4 */
-               dataOffset = parmOffset + parmCount;
-
-               parmSlot = 1;
-               watch->oddByte = 1;
-               /* Total Parameter Count */
-               smb_SetSMBParmLong(watch, parmSlot, parmCount); parmSlot += 2;
-               /* Total Data Count */
-               smb_SetSMBParmLong(watch, parmSlot, 0); parmSlot += 2;
-               /* Parameter Count */
-               smb_SetSMBParmLong(watch, parmSlot, parmCount); parmSlot += 2;
-               /* Parameter Offset */
-               smb_SetSMBParmLong(watch, parmSlot, parmOffset); parmSlot += 2;
-               /* Parameter Displacement */
-               smb_SetSMBParmLong(watch, parmSlot, 0); parmSlot += 2;
-               /* Data Count */
-               smb_SetSMBParmLong(watch, parmSlot, 0); parmSlot += 2;
-               /* Data Offset */
-               smb_SetSMBParmLong(watch, parmSlot, dataOffset); parmSlot += 2;
-               /* Data Displacement */
-               smb_SetSMBParmLong(watch, parmSlot, 0); parmSlot += 2;
-               smb_SetSMBParmByte(watch, parmSlot, 0); /* Setup Count */
-               smb_SetSMBDataLength(watch, parmCount + 1);
-
-               if (parmCount != 0) {
-                       outData = smb_GetSMBData(watch, NULL);
-                       outData++;      /* round to get to parmOffset */
-                       oldOutData = outData;
-                       *((DWORD *)outData) = oldParmCount; outData += 4;
-                                       /* Next Entry Offset */
-                       *((DWORD *)outData) = action; outData += 4;
-                                       /* Action */
-                       *((DWORD *)outData) = nameLen*2; outData += 4;
-                                       /* File Name Length */
-                       mbstowcs((WCHAR *)outData, filename, nameLen);
-                                       /* File Name */
-                       if (twoEntries) {
-                               outData = oldOutData + oldParmCount;
-                               *((DWORD *)outData) = 0; outData += 4;
-                                       /* Next Entry Offset */
-                               *((DWORD *)outData) = otherAction; outData += 4;
-                                       /* Action */
-                               *((DWORD *)outData) = otherNameLen*2;
-                               outData += 4;   /* File Name Length */
-                               mbstowcs((WCHAR *)outData, otherFilename,
-                                        otherNameLen); /* File Name */
-                       }
-               }
+        /* out parms */
+        if (filename == NULL)
+            parmCount = 0;
+        else {
+            nameLen = strlen(filename);
+            parmCount = 3*4 + nameLen*2;
+            parmCount = (parmCount + 3) & ~3;  /* pad to 4 */
+            if (twoEntries) {
+                otherNameLen = strlen(otherFilename);
+                oldParmCount = parmCount;
+                parmCount += 3*4 + otherNameLen*2;
+                parmCount = (parmCount + 3) & ~3; /* pad to 4 */
+            }
+            if (maxLen < parmCount)
+                parmCount = 0; /* not enough room */
+        }
+        parmOffset = 8*4 + 39;
+        parmOffset += 1;                       /* pad to 4 */
+        dataOffset = parmOffset + parmCount;
 
-               /*
-                * If filename is null, we don't know the cause of the
-                * change notification.  We return zero data (see above),
-                * and set error code to NT_STATUS_NOTIFY_ENUM_DIR
-                * (= 0x010C).  We set the error code here by hand, without
-                * modifying wct and bcc.
-                */
-               if (filename == NULL) {
-                       ((smb_t *) watch)->rcls = 0x0C;
-                       ((smb_t *) watch)->reh = 0x01;
-                       ((smb_t *) watch)->errLow = 0;
-                       ((smb_t *) watch)->errHigh = 0;
-                       /* Set NT Status codes flag */
-                       ((smb_t *) watch)->flg2 |= 0x4000;
-               }
+        parmSlot = 1;
+        watch->oddByte = 1;
+        /* Total Parameter Count */
+        smb_SetSMBParmLong(watch, parmSlot, parmCount); parmSlot += 2;
+        /* Total Data Count */
+        smb_SetSMBParmLong(watch, parmSlot, 0); parmSlot += 2;
+        /* Parameter Count */
+        smb_SetSMBParmLong(watch, parmSlot, parmCount); parmSlot += 2;
+        /* Parameter Offset */
+        smb_SetSMBParmLong(watch, parmSlot, parmOffset); parmSlot += 2;
+        /* Parameter Displacement */
+        smb_SetSMBParmLong(watch, parmSlot, 0); parmSlot += 2;
+        /* Data Count */
+        smb_SetSMBParmLong(watch, parmSlot, 0); parmSlot += 2;
+        /* Data Offset */
+        smb_SetSMBParmLong(watch, parmSlot, dataOffset); parmSlot += 2;
+        /* Data Displacement */
+        smb_SetSMBParmLong(watch, parmSlot, 0); parmSlot += 2;
+        smb_SetSMBParmByte(watch, parmSlot, 0);        /* Setup Count */
+        smb_SetSMBDataLength(watch, parmCount + 1);
+
+        if (parmCount != 0) {
+            outData = smb_GetSMBData(watch, NULL);
+            outData++; /* round to get to parmOffset */
+            oldOutData = outData;
+            *((DWORD *)outData) = oldParmCount; outData += 4;
+            /* Next Entry Offset */
+            *((DWORD *)outData) = action; outData += 4;
+            /* Action */
+            *((DWORD *)outData) = nameLen*2; outData += 4;
+            /* File Name Length */
+            mbstowcs((WCHAR *)outData, filename, nameLen);
+            /* File Name */
+            if (twoEntries) {
+                outData = oldOutData + oldParmCount;
+                *((DWORD *)outData) = 0; outData += 4;
+                /* Next Entry Offset */
+                *((DWORD *)outData) = otherAction; outData += 4;
+                /* Action */
+                *((DWORD *)outData) = otherNameLen*2;
+                outData += 4;  /* File Name Length */
+                mbstowcs((WCHAR *)outData, otherFilename,
+                          otherNameLen);       /* File Name */
+            }       
+        }       
+
+        /*
+         * If filename is null, we don't know the cause of the
+         * change notification.  We return zero data (see above),
+         * and set error code to NT_STATUS_NOTIFY_ENUM_DIR
+         * (= 0x010C).  We set the error code here by hand, without
+         * modifying wct and bcc.
+         */
+        if (filename == NULL) {
+            ((smb_t *) watch)->rcls = 0x0C;
+            ((smb_t *) watch)->reh = 0x01;
+            ((smb_t *) watch)->errLow = 0;
+            ((smb_t *) watch)->errHigh = 0;
+            /* Set NT Status codes flag */
+            ((smb_t *) watch)->flg2 |= 0x4000;
+        }
 
-               smb_SendPacket(vcp, watch);
+        smb_SendPacket(vcp, watch);
         smb_ReleaseVC(vcp);
-               smb_FreePacket(watch);
-               watch = nextWatch;
-       }
-       lock_ReleaseMutex(&smb_Dir_Watch_Lock);
-}
+        smb_FreePacket(watch);
+        watch = nextWatch;
+    }
+    lock_ReleaseMutex(&smb_Dir_Watch_Lock);
+}       
 
 long smb_ReceiveNTCancel(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
 {
-       unsigned char *replyWctp;
-       smb_packet_t *watch, *lastWatch;
-       USHORT fid, watchtree;
-       smb_fid_t *fidp;
-       cm_scache_t *scp;
-
-       osi_Log0(smb_logp, "SMB3 receive NT cancel");
+    unsigned char *replyWctp;
+    smb_packet_t *watch, *lastWatch;
+    USHORT fid, watchtree;
+    smb_fid_t *fidp;
+    cm_scache_t *scp;
 
-       lock_ObtainMutex(&smb_Dir_Watch_Lock);
-       watch = smb_Directory_Watches;
-       while (watch) {
-               if (((smb_t *)watch)->uid == ((smb_t *)inp)->uid
-                   && ((smb_t *)watch)->pid == ((smb_t *)inp)->pid
-                   && ((smb_t *)watch)->mid == ((smb_t *)inp)->mid
-                   && ((smb_t *)watch)->tid == ((smb_t *)inp)->tid) {
-                       if (watch == smb_Directory_Watches)
-                               smb_Directory_Watches = watch->nextp;
-                       else
-                               lastWatch->nextp = watch->nextp;
-                       lock_ReleaseMutex(&smb_Dir_Watch_Lock);
+    osi_Log0(smb_logp, "SMB3 receive NT cancel");
+
+    lock_ObtainMutex(&smb_Dir_Watch_Lock);
+    watch = smb_Directory_Watches;
+    while (watch) {
+        if (((smb_t *)watch)->uid == ((smb_t *)inp)->uid
+             && ((smb_t *)watch)->pid == ((smb_t *)inp)->pid
+             && ((smb_t *)watch)->mid == ((smb_t *)inp)->mid
+             && ((smb_t *)watch)->tid == ((smb_t *)inp)->tid) {
+            if (watch == smb_Directory_Watches)
+                smb_Directory_Watches = watch->nextp;
+            else
+                lastWatch->nextp = watch->nextp;
+            lock_ReleaseMutex(&smb_Dir_Watch_Lock);
 
-                       /* Turn off WATCHED flag in scp */
-                       fid = smb_GetSMBParm(watch, 21);
-                       watchtree = smb_GetSMBParm(watch, 22) & 0xffff;
+            /* Turn off WATCHED flag in scp */
+            fid = smb_GetSMBParm(watch, 21);
+            watchtree = smb_GetSMBParm(watch, 22) & 0xffff;
 
             if (vcp != watch->vcp)
                 osi_Log2(smb_logp, "smb_ReceiveNTCancel: vcp %x not equal to watch vcp %x", 
-                         vcp, watch->vcp);
+                          vcp, watch->vcp);
 
-                       fidp = smb_FindFID(vcp, fid, 0);
+            fidp = smb_FindFID(vcp, fid, 0);
             if (fidp) {
                 osi_Log3(smb_logp, "Cancelling change notification for fid %d wtree %d file %s", 
-                         fid, watchtree,
-                         osi_LogSaveString(smb_logp, (fidp)?fidp->NTopen_wholepathp:""));
+                          fid, watchtree,
+                          osi_LogSaveString(smb_logp, (fidp)?fidp->NTopen_wholepathp:""));
 
                 scp = fidp->scp;
                 lock_ObtainMutex(&scp->mx);
@@ -6081,28 +6079,28 @@ long smb_ReceiveNTCancel(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
                 osi_Log2(smb_logp,"NTCancel unable to resolve fid [%d] in vcp[%x]", fid,vcp);
             }
 
-                       /* assume STATUS32; return 0xC0000120 (CANCELED) */
-                       replyWctp = watch->wctp;
-                       *replyWctp++ = 0;
-                       *replyWctp++ = 0;
-                       *replyWctp++ = 0;
-                       ((smb_t *)watch)->rcls = 0x20;
-                       ((smb_t *)watch)->reh = 0x1;
-                       ((smb_t *)watch)->errLow = 0;
-                       ((smb_t *)watch)->errHigh = 0xC0;
-                       ((smb_t *)watch)->flg2 |= 0x4000;
-                       smb_SendPacket(vcp, watch);
+            /* assume STATUS32; return 0xC0000120 (CANCELED) */
+            replyWctp = watch->wctp;
+            *replyWctp++ = 0;
+            *replyWctp++ = 0;
+            *replyWctp++ = 0;
+            ((smb_t *)watch)->rcls = 0x20;
+            ((smb_t *)watch)->reh = 0x1;
+            ((smb_t *)watch)->errLow = 0;
+            ((smb_t *)watch)->errHigh = 0xC0;
+            ((smb_t *)watch)->flg2 |= 0x4000;
+            smb_SendPacket(vcp, watch);
             if (watch->vcp)
                 smb_ReleaseVC(watch->vcp);
-                       smb_FreePacket(watch);
-                       return 0;
-               }
-               lastWatch = watch;
-               watch = watch->nextp;
-       }
-       lock_ReleaseMutex(&smb_Dir_Watch_Lock);
+            smb_FreePacket(watch);
+            return 0;
+        }
+        lastWatch = watch;
+        watch = watch->nextp;
+    }
+    lock_ReleaseMutex(&smb_Dir_Watch_Lock);
 
-       return 0;
+    return 0;
 }
 
 void smb3_Init()
index e8409e92b1bd6d3223e0a3f503b3d7df96ec89fe..e9e1dc14a7b68da927ff883926be1d13fdd03e48 100644 (file)
@@ -181,6 +181,7 @@ void ViceIDToUsername(char *username, char *realm_of_user, char *realm_of_cell,
 {
     static char lastcell[MAXCELLCHARS+1] = { 0 };
     static char confname[512] = { 0 };
+    char username_copy[BUFSIZ];
        long viceId;                    /* AFS uid of user */
 #ifdef ALLOW_REGISTER
     afs_int32 id;
@@ -248,7 +249,12 @@ void ViceIDToUsername(char *username, char *realm_of_user, char *realm_of_cell,
 #else /* ALLOW_REGISTER */
             if ((*status == 0) && (viceId != ANONYMOUSID))
 #endif /* ALLOW_REGISTER */
-                sprintf (username, "AFS ID %d", (int) viceId);
+            {
+#ifdef AFS_ID_TO_NAME
+                strncpy(username_copy, username, BUFSIZ);
+                snprintf (username, BUFSIZ, "%s (AFS ID %d)", username_copy, (int) viceId);
+#endif /* AFS_ID_TO_NAME */
+            }
 #ifdef ALLOW_REGISTER
             } else if (strcmp(realm_of_user, realm_of_cell) != 0) {
                 if (dflag) {
@@ -263,6 +269,7 @@ void ViceIDToUsername(char *username, char *realm_of_user, char *realm_of_cell,
                     printf("%s: unable to obtain tokens for cell %s "
                             "(status: %d).\n", progname, cell_to_use, status);
                     *status = AKLOG_TOKEN;
+                return ;
                 }
 
                 /*
@@ -274,6 +281,7 @@ void ViceIDToUsername(char *username, char *realm_of_user, char *realm_of_cell,
 
                 if ((*status = pr_Initialize(1L, confname, aserver->cell, 0))) {
                     printf("Error %d\n", status);
+                return;
                 }
 
                 if ((*status = pr_CreateUser(username, &id))) {
@@ -283,7 +291,10 @@ void ViceIDToUsername(char *username, char *realm_of_user, char *realm_of_cell,
                 } else {
                     printf("created cross-cell entry for %s at %s\n",
                             username, cell_to_use);
-                    sprintf(username, "AFS ID %d", (int) id);
+#ifdef AFS_ID_TO_NAME
+                strncpy(username_copy, username, BUFSIZ);
+                snprintf (username, BUFSIZ, "%s (AFS ID %d)", username_copy, (int) viceId);
+#endif /* AFS_ID_TO_NAME */
                 }
             }
         }
@@ -432,7 +443,6 @@ static char *afs_realm_of_cell(struct afsconf_cell *cellconfig)
                        *s++ = c;
                }
                *s++ = 0;
-
        }
        return krbrlm;
 }
@@ -690,8 +700,7 @@ static int auth_to_cell(krb5_context context, char *cell, char *realm)
         memcpy(&atoken.sessionKey, v5cred->keyblock.contents, v5cred->keyblock.length);
         atoken.ticketLen = v5cred->ticket.length;
         memcpy(atoken.ticket, v5cred->ticket.data, atoken.ticketLen);
-    } else 
-    {
+    } else {
         strcpy (username, c.pname);
         if (c.pinst[0])
         {
@@ -734,8 +743,7 @@ static int auth_to_cell(krb5_context context, char *cell, char *realm)
                                        progname, status);
                                return(AKLOG_KERBEROS);
                        }
-               } else 
-               {
+        } else {
                        if ((status = krb_get_tf_realm(TKT_FILE, realm_of_user)) != KSUCCESS)
                        {
                                fprintf(stderr, "%s: Couldn't determine realm of user: %s)",
@@ -762,6 +770,7 @@ static int auth_to_cell(krb5_context context, char *cell, char *realm)
        */
        strncpy(aclient.name, username, MAXKTCNAMELEN - 1);
        strcpy(aclient.instance, "");
+    
     if (usev5) {
         int len = min(v5cred->client->realm.length,MAXKTCNAMELEN - 1);
         strncpy(aclient.cell, v5cred->client->realm.data, len);
@@ -1222,8 +1231,7 @@ int main(int argc, char *argv[])
                for (cur_node = cells.first; cur_node; cur_node = cur_node->next)
                {
                        memcpy(&cellinfo, cur_node->data, sizeof(cellinfo));
-                       if (status = auth_to_cell(
-                               context, 
+            if (status = auth_to_cell(context, 
                                cellinfo.cell, cellinfo.realm))
                                somethingswrong++;
                }
@@ -1231,8 +1239,7 @@ int main(int argc, char *argv[])
                /* Then, log to all paths in the paths list */
                for (cur_node = paths.first; cur_node; cur_node = cur_node->next)
                {
-                       if (status = auth_to_path(
-                               context, 
+            if (status = auth_to_path(context, 
                                cur_node->data))
                                somethingswrong++;
                }
index 350004bbe811eb6611801ad8ef22f1ddc668cc6c..2681847e8edda05fd0135cd8f9cc69ae490eb9f5 100644 (file)
@@ -447,7 +447,7 @@ void QueryDriveMapList_ReadMappings (PDRIVEMAPLIST pList)
 {
     HKEY hkMappings;
     RegCreateKeyEx( HKEY_CURRENT_USER,
-                    "SOFTWARE\\OpenAFS\\Client\\Mappings",
+                    cszSECTION_MAPPINGS,
                     0, 
                     "AFS", 
                     REG_OPTION_NON_VOLATILE,
@@ -480,13 +480,20 @@ void QueryDriveMapList_ReadMappings (PDRIVEMAPLIST pList)
 
         RegEnumValue( hkMappings, dwIndex, drive, &driveLen, NULL,
                       &dwType, (LPBYTE)mapping, &mappingLen);
+        if ( dwType == REG_EXPAND_SZ ) {
+            TCHAR buf[MAX_PATH];
+            DWORD dummyLen = ExpandEnvironmentStrings(buf, mapping, MAX_PATH);
+            if (dummyLen > MAX_PATH)
+                continue;
+            _tcsncpy(mapping, buf, MAX_PATH);
+        }
 
-       DRIVEMAP DriveMap;
-       memset (&DriveMap, 0x00, sizeof(DRIVEMAP));
-       DriveMap.chDrive = toupper(*drive);
-       DriveMap.fPersistent = TRUE;
-       if ((DriveMap.chDrive < chDRIVE_A) || (DriveMap.chDrive > chDRIVE_Z))
-           continue;
+        DRIVEMAP DriveMap;
+        memset (&DriveMap, 0x00, sizeof(DRIVEMAP));
+        DriveMap.chDrive = toupper(*drive);
+        DriveMap.fPersistent = TRUE;
+        if ((DriveMap.chDrive < chDRIVE_A) || (DriveMap.chDrive > chDRIVE_Z))
+            continue;
 
        if (mapping[0] != TEXT('\0'))
        {
@@ -541,7 +548,7 @@ void WriteDriveMappings (PDRIVEMAPLIST pList)
 {
     HKEY hkMappings;
     RegCreateKeyEx( HKEY_CURRENT_USER, 
-                    "SOFTWARE\\OpenAFS\\Client\\Mappings",
+                    cszSECTION_MAPPINGS,
                     0, 
                     "AFS", 
                     REG_OPTION_NON_VOLATILE,
@@ -587,7 +594,7 @@ void WriteDriveMappings (PDRIVEMAPLIST pList)
            if (!pList->aDriveMap[iDrive].fPersistent)
                lstrcat (szRHS, TEXT("*"));
 
-           RegSetValueEx( hkMappings, szLHS, 0, REG_SZ, (const BYTE *)szRHS, lstrlen(szRHS) + 1);
+           RegSetValueEx( hkMappings, szLHS, 0, REG_EXPAND_SZ, (const BYTE *)szRHS, lstrlen(szRHS) + 1);
        }
    }
    RegCloseKey( hkMappings );
index c2c1aca5382ae6c6062d459c1524df8b074d343d..2013b7b9ca831db98a94dec056dc4ea405b4a648 100644 (file)
@@ -50,63 +50,103 @@ BOOL IsWindowsNT (void)
  *
  */
 
+#define AFSCLIENT_ADMIN_GROUPNAME "AFS Client Admins"
+
 BOOL IsAdmin (void)
 {
-   static BOOL fAdmin = FALSE;
-   static BOOL fTested = FALSE;
-   if (!fTested)
-      {
-      fTested = TRUE;
-
-      // Obtain the SID for BUILTIN\Administrators. If this is Windows NT,
-      // expect this call to succeed; if it does not, we can presume that
-      // it's not NT and therefore the user always has administrative
-      // privileges.
-      //
-      PSID psidAdmin = NULL;
-      SID_IDENTIFIER_AUTHORITY auth = SECURITY_NT_AUTHORITY;
-      if (!AllocateAndInitializeSid (&auth, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &psidAdmin))
-         fAdmin = TRUE;
-      else
-         {
-
-         // Then open our current ProcessToken
-         //
-         HANDLE hToken;
-         if (OpenProcessToken (GetCurrentProcess(), TOKEN_QUERY, &hToken))
+    static BOOL fAdmin = FALSE;
+    static BOOL fTested = FALSE;
+
+    if (!fTested)
+    {
+        /* Obtain the SID for the AFS client admin group.  If the group does
+         * not exist, then assume we have AFS client admin privileges.
+         */
+        PSID psidAdmin = NULL;
+        DWORD dwSize, dwSize2;
+        char pszAdminGroup[ MAX_COMPUTERNAME_LENGTH + sizeof(AFSCLIENT_ADMIN_GROUPNAME) + 2 ];
+        char *pszRefDomain = NULL;
+        SID_NAME_USE snu = SidTypeGroup;
+
+        dwSize = sizeof(pszAdminGroup);
+
+        if (!GetComputerName(pszAdminGroup, &dwSize)) {
+            /* Can't get computer name.  We return false in this case.
+               Retain fAdmin and fTested. This shouldn't happen.*/
+            return FALSE;
+        }
+
+        fTested = TRUE;
+
+        dwSize = 0;
+        dwSize2 = 0;
+
+        strcat(pszAdminGroup,"\\");
+        strcat(pszAdminGroup, AFSCLIENT_ADMIN_GROUPNAME);
+
+        LookupAccountName(NULL, pszAdminGroup, NULL, &dwSize, NULL, &dwSize2, &snu);
+        /* that should always fail. */
+
+        if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) {
+            /* if we can't find the group, then we allow the operation */
+            fAdmin = TRUE;
+            return TRUE;
+        }
+
+        if (dwSize == 0 || dwSize2 == 0) {
+            /* Paranoia */
+            fAdmin = TRUE;
+            return TRUE;
+        }
+
+        psidAdmin = (PSID) malloc(dwSize); memset(psidAdmin,0,dwSize);
+        pszRefDomain = (char *)malloc(dwSize2);
+
+        if (!LookupAccountName(NULL, pszAdminGroup, psidAdmin, &dwSize, pszRefDomain, &dwSize2, &snu)) {
+            /* We can't lookup the group now even though we looked it up earlier.  
+               Could this happen? */
+            fAdmin = TRUE;
+        } else {
+            /* Then open our current ProcessToken */
+            HANDLE hToken;
+
+            if (OpenProcessToken (GetCurrentProcess(), TOKEN_QUERY, &hToken))
             {
-
-            // We'll have to allocate a chunk of memory to store the list of
-            // groups to which this user belongs; find out how much memory
-            // we'll need.
-            //
-            DWORD dwSize = 0;
-            GetTokenInformation (hToken, TokenGroups, NULL, dwSize, &dwSize);
+                /* We'll have to allocate a chunk of memory to store the list of
+                 * groups to which this user belongs; find out how much memory
+                 * we'll need.
+                 */
+                DWORD dwSize = 0;
+                PTOKEN_GROUPS pGroups;
+                
+                GetTokenInformation (hToken, TokenGroups, NULL, dwSize, &dwSize);
             
-            // Allocate that buffer, and read in the list of groups.
-            //
-            PTOKEN_GROUPS pGroups = (PTOKEN_GROUPS)Allocate (dwSize);
-            if (GetTokenInformation (hToken, TokenGroups, pGroups, dwSize, &dwSize))
-               {
-               // Look through the list of group SIDs and see if any of them
-               // matches the Administrator group SID.
-               //
-               for (size_t iGroup = 0; (!fAdmin) && (iGroup < pGroups->GroupCount); ++iGroup)
-                  {
-                  if (EqualSid (psidAdmin, pGroups->Groups[ iGroup ].Sid))
-                     fAdmin = TRUE;
-                  }
-               }
-
-            if (pGroups)
-               Free (pGroups);
+                pGroups = (PTOKEN_GROUPS)malloc(dwSize);
+                
+                /* Allocate that buffer, and read in the list of groups. */
+                if (GetTokenInformation (hToken, TokenGroups, pGroups, dwSize, &dwSize))
+                {
+                    /* Look through the list of group SIDs and see if any of them
+                     * matches the AFS Client Admin group SID.
+                     */
+                    size_t iGroup = 0;
+                    for (; (!fAdmin) && (iGroup < pGroups->GroupCount); ++iGroup)
+                    {
+                        if (EqualSid (psidAdmin, pGroups->Groups[ iGroup ].Sid)) {
+                            fAdmin = TRUE;
+                        }
+                    }
+                }
+
+                if (pGroups)
+                    free(pGroups);
             }
-         }
+        }
 
-      if (psidAdmin)
-         FreeSid (psidAdmin);
-      }
+        free(psidAdmin);
+        free(pszRefDomain);
+    }
 
-   return fAdmin;
+    return fAdmin;
 }
 
index d1a45a723d55cb73ed743a0e6fadb4a1c719f799..2d640dcd106f01a0b2e6eed1d1613e7d370dbce0 100644 (file)
@@ -305,25 +305,26 @@ ObtainTokensFromUserIfNeeded(HWND hWnd)
     strcpy(aserver.cell, rootcell);
 
     rc = ktc_GetToken(&aserver, &atoken, sizeof(atoken), &aclient);
+    if ( rc == 0 ) {
+        GetLocalTime (&stNow);
+        SystemTimeToFileTime (&stNow, &ftNow);
+        llNow = (((LONGLONG)ftNow.dwHighDateTime) << 32) + (LONGLONG)(ftNow.dwLowDateTime);
+        llNow /= c100ns1SECOND;
 
-    GetLocalTime (&stNow);
-    SystemTimeToFileTime (&stNow, &ftNow);
-    llNow = (((LONGLONG)ftNow.dwHighDateTime) << 32) + (LONGLONG)(ftNow.dwLowDateTime);
-    llNow /= c100ns1SECOND;
-
-    TimeToSystemTime (&stExpires, atoken.endTime);
-    SystemTimeToFileTime (&stExpires, &ftExpires);
-    llExpires = (((LONGLONG)ftExpires.dwHighDateTime) << 32) + (LONGLONG)(ftExpires.dwLowDateTime);
-    llExpires /= c100ns1SECOND;
+        TimeToSystemTime (&stExpires, atoken.endTime);
+        SystemTimeToFileTime (&stExpires, &ftExpires);
+        llExpires = (((LONGLONG)ftExpires.dwHighDateTime) << 32) + (LONGLONG)(ftExpires.dwLowDateTime);
+        llExpires /= c100ns1SECOND;
 
-    if (!rc && (llNow < llExpires))
-        goto cleanup;
+        if (llNow < llExpires)
+            goto cleanup;
 
-    if ( IsDebuggerPresent() ) {
-        char message[256];
-        sprintf(message,"ObtainTokensFromUserIfNeeded: %d  now = %ul  endTime = %ul\n",
-                 rc, llNow, llExpires);
-        OutputDebugString(message);
+        if ( IsDebuggerPresent() ) {
+            char message[256];
+            sprintf(message,"ObtainTokensFromUserIfNeeded: %d  now = %ul  endTime = %ul\n",
+                     rc, llNow, llExpires);
+            OutputDebugString(message);
+        }
     }
 
 #ifdef USE_FSPROBE
index 6865a63c59ad39816a81bca3a1a865d91e0065ef..2c1cb0fb2ff1b499d72e30bbc30eccb8fac563ec 100644 (file)
@@ -1477,7 +1477,7 @@ BOOL GetTokenInfo(CStringArray& tokenInfo)
 {
        int cellNum;
        int rc;
-       int current_time;
+       time_t current_time;
        time_t tokenExpireTime;
        char *expireString;
        char userName[100];
index c37b74839aeecfa2b1f6abd14738ad121fd75827..8bc89c0a01723dc06eefdb782b6b4de47107436a 100644 (file)
@@ -104,7 +104,9 @@ LARGE_INTEGER ExtendedLargeIntegerDivide(LARGE_INTEGER a, unsigned long b, unsig
     if (b == 0) { return result; }
     if (b == 1) { *remainder = 0; return a; }
 
-       a1=(a.HighPart << 32) | a.LowPart;
+    a1 = a.HighPart;
+    a1 <<= 32;
+    a1 |= a.LowPart;
        q1=a1/b;
        r1=a1-(q1*b);
        if (r1 > ULONG_MAX) /*XXX */;
@@ -127,8 +129,12 @@ LARGE_INTEGER LargeIntegerDivide(LARGE_INTEGER a, LARGE_INTEGER b, LARGE_INTEGER
                return a; 
        }
 
-       a1=(a.HighPart << 32) | a.LowPart;
-       b1=(b.HighPart << 32) | a.LowPart;
+    a1 = a.HighPart;
+    a1 <<= 32;
+    a1 |= a.LowPart;
+    b1 = b.HighPart;
+    b1 <<= 32;
+    b1 |= b.LowPart;
        q1=a1/b1;
        r1=a1-(q1*b1);
        result.HighPart=q1 >> 32;
diff --git a/src/WINNT/install/NSIS/AdminGroup.cpp b/src/WINNT/install/NSIS/AdminGroup.cpp
new file mode 100644 (file)
index 0000000..e3adcac
--- /dev/null
@@ -0,0 +1,89 @@
+#include<windows.h>
+#include<string.h>
+#include<stdio.h>
+#include<lm.h>
+
+#pragma comment(lib,"netapi32.lib")
+
+#define AFSCLIENT_ADMIN_GROUPNAMEW L"AFS Client Admins"
+#define AFSCLIENT_ADMIN_COMMENTW L"AFS Client Administrators"
+
+UINT createAfsAdminGroup(void) {
+    LOCALGROUP_INFO_1 gInfo;
+    DWORD dwError;
+    NET_API_STATUS status;
+
+    gInfo.lgrpi1_name = AFSCLIENT_ADMIN_GROUPNAMEW;
+    gInfo.lgrpi1_comment = AFSCLIENT_ADMIN_COMMENTW;
+    status = NetLocalGroupAdd(NULL, 1, (LPBYTE) &gInfo, &dwError);
+
+    return status;
+}
+
+UINT initializeAfsAdminGroup(void) {
+    PSID psidAdmin = NULL;
+    SID_IDENTIFIER_AUTHORITY auth = SECURITY_NT_AUTHORITY;
+    NET_API_STATUS status;
+    LOCALGROUP_MEMBERS_INFO_0 *gmAdmins = NULL;
+    DWORD dwNEntries, dwTEntries;
+
+    status = NetLocalGroupGetMembers(NULL, L"Administrators", 0, (LPBYTE *) &gmAdmins, MAX_PREFERRED_LENGTH, &dwNEntries, &dwTEntries, NULL);
+    if(status)
+        return status;
+
+    status = NetLocalGroupAddMembers(NULL, AFSCLIENT_ADMIN_GROUPNAMEW, 0, (LPBYTE) gmAdmins, dwNEntries);
+
+    NetApiBufferFree( gmAdmins );
+
+    return status;
+}
+
+UINT removeAfsAdminGroup(void) {
+    NET_API_STATUS status;
+    status = NetLocalGroupDel(NULL, AFSCLIENT_ADMIN_GROUPNAMEW);
+    return status;
+}
+
+void showUsage(char * progname) {
+    printf(
+        "Usage: %s [-create | -remove]\n"
+        "  -create : Create AFS Client Admins group and populate it with\n"
+        "            the members of the Administrators group\n"
+        "  -remove : Remove the AFS Client Admins group\n"
+        , progname);
+}
+
+int main(int argc, char ** argv) {
+
+    UINT rv = 0;
+
+    if(argc < 2) {
+        showUsage(argv[0]);
+        return 1;
+    }
+
+    if(stricmp(argv[1], "-create")) {
+        rv = createAfsAdminGroup();
+        if(rv) {
+            if(rv != ERROR_ALIAS_EXISTS) {
+            fprintf(stderr, "%s: Can't create AFS Client Admin group. NetApi error %u\n", rv);
+            } else {
+                /* The group already exists. (Preserved config from a
+                   prior install). */
+                rv = 0;
+            }
+        } else {
+            rv = initializeAfsAdminGroup();
+            if(rv)
+                fprintf(stderr, "%s: Can't populate AFS Client Admin group. NetApi error %u\n", rv);
+        }
+    } else if(stricmp(argv[1], "-remove")) {
+        removeAfsAdminGroup();
+        rv = 0;
+    } else {
+        showUsage(argv[0]);
+        rv = 0;
+    }
+
+    return rv;
+}
\ No newline at end of file
index 7b320be66297b635a47ec495af734a6f96a12136..e3b5f5a6ae29e0f776c74c1664ba276c4c1352d9 100644 (file)
@@ -1,4 +1,4 @@
->grand.central.org      #GCO Public CellServDB 29 Jun 2004
+>grand.central.org      #GCO Public CellServDB 17 Aug 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
 >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
 >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.105.174                   #voronoi.sbp.ri.cmu.edu
+128.2.105.175                   #nihao.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
 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
+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.73.9                      #pg2-srv.wam.umd.edu
-129.2.128.54                    #avw-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
index b90525f31fb812aa59a1c7866d55e370a8c838bf..69a67918f4c7cc74e9765b9443ee9ed0f00eb70d 100644 (file)
@@ -22,6 +22,12 @@ $(OUT)\Killer.obj: Killer.cpp
 $(EXEDIR)\Killer.exe: $(OUT)\Killer.obj
       $(EXECONLINK) $(OUT)\Killer.obj
 
+$(OUT)\AdminGroup.obj: AdminGroup.cpp
+      $(C2OBJ) AdminGroup.cpp
+
+$(EXEDIR)\AdminGroup.exe: $(OUT)\AdminGroup.obj
+      $(EXECONLINK) $(OUT)\AdminGroup.obj
+
 prebuild:
 !IF ("$(AFSDEV_BUILDTYPE)" == "FREE")
 !IF ("$(AFSVER_CL)"=="1310")
@@ -81,7 +87,7 @@ prebuild:
 build: prebuild
    "C:\Program Files\NSIS\makensis.exe" /DINCLUDEDIR=$(OUT) OpenAFS.nsi
 
-install: $(OUT)\Service.obj $(EXEDIR)\Service.exe $(OUT)\Killer.obj $(EXEDIR)\Killer.exe build
+install: $(OUT)\Service.obj $(EXEDIR)\Service.exe $(OUT)\Killer.obj $(EXEDIR)\Killer.exe $(EXEDIR)\AdminGroup.exe build
 
 #clean:
 #   $(DEL) $(OUT)\Service.obj
index 658a9e68d61eb9ea469a3f6da2fc17d4c863b53a..9c53ae3bada68945d3b7afdd7b6510e09c32a1df 100644 (file)
@@ -550,6 +550,10 @@ Section "AFS Client" secClient
   ; Get AFS CellServDB file
   Call afs.GetCellServDB
 
+  GetTempFileName $R0
+  File /oname=$R0 "${AFS_WININSTALL_DIR}\AdminGroup.exe"
+  nsExec::Exec '$R0 -create'
+
 !ifdef INSTALL_KFW
   ; Include Kerberos for Windows files in the installer...
   SetOutPath "$INSTDIR\kfw\bin\"
@@ -625,7 +629,7 @@ Section "AFS Client" secClient
   ReadINIStr $R1 $2 "Field 13" "State"
   StrCmp $R1 "1" +1 +2
   StrCpy $R2 "$R2-S"
-  
   WriteRegStr HKLM "SOFTWARE\OpenAFS\Client" "AfscredsShortcutParams" "$R2"
   
   CreateShortCut "$SMPROGRAMS\OpenAFS\Client\Authentication.lnk" "$INSTDIR\Client\Program\afscreds.exe" "$R2"
@@ -1699,6 +1703,10 @@ StartRemove:
 !ENDIF
   Delete "$INSTDIR\Client\afsdns.ini"
   
+  GetTempFileName $R0
+  File /oname=$R0 "${AFS_WININSTALL_DIR}\AdminGroup.exe"
+  nsExec::Exec '$R0 -remove'
+
   SkipDel:
   Delete "$WINDIR\afsd_init.log"
   Delete "$INSTDIR\Uninstall.exe"
index 6d43dc846f0d13759792d0945b2616420f29e87a..e3b5f5a6ae29e0f776c74c1664ba276c4c1352d9 100644 (file)
@@ -1,4 +1,4 @@
->grand.central.org      #GCO Public CellServDB 11 May 2004
+>grand.central.org      #GCO Public CellServDB 17 Aug 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
 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
+>uni-bonn.de            #University of Bonn, Computing Center
 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
+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
 >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
+134.155.97.204                  #afsdb1.uni-mannheim.de
+134.155.97.205                  #afsdb2.uni-mannheim.de
+134.155.97.206                  #afsdb3.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
+>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
 >andrew.cmu.edu         #Carnegie Mellon University - Computing Services Cell
 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.105.174                   #voronoi.sbp.ri.cmu.edu
+128.2.105.175                   #nihao.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
 >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
+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.73.3                      #babylon.umd.edu
-129.2.128.53                    #egypt.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.73.9                      #pg2-srv.wam.umd.edu
-129.2.128.54                    #avw-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.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
+141.211.211.53                  #gerow.lsa.umich.edu
+141.211.211.72                  #collines.lsa.umich.edu
+141.211.211.153                 #hodges.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
 >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.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.6.107                     #vice3.oc7.org
 128.2.122.140                   #vice2.oc7.org
 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
 >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
index 7b320be66297b635a47ec495af734a6f96a12136..e3b5f5a6ae29e0f776c74c1664ba276c4c1352d9 100644 (file)
@@ -1,4 +1,4 @@
->grand.central.org      #GCO Public CellServDB 29 Jun 2004
+>grand.central.org      #GCO Public CellServDB 17 Aug 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
 >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
 >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.105.174                   #voronoi.sbp.ri.cmu.edu
+128.2.105.175                   #nihao.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
 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
+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.73.9                      #pg2-srv.wam.umd.edu
-129.2.128.54                    #avw-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
index 8b2c5014565fdb0858c36067d43bf3fa6b6e1528..0dff735c0c4e7f047562488c05b1639f705ce77e 100644 (file)
@@ -16,7 +16,7 @@ WIXINCLUDES = \
        registry.wxi \
        lang\$(LANG)\ui.wxi
 
-WIXOBJ = $(OJT)\openafs-$(LANG).wixobj
+WIXOBJ = $(OUT)\openafs-$(LANG).wixobj
 
 LANGUAGES=en_US de_DE es_ES ja_JP ko_KR pt_BR zh_CN zh_TW
 
@@ -53,6 +53,7 @@ $(WIXOBJ): openafs.wxs $(WIXINCLUDES)
                -dVersionMajor=$(AFSPRODUCT_VER_MAJOR)  \
                -dVersionMinor=$(AFSPRODUCT_VER_MINOR)  \
                -dVersionPatch=$(AFSPRODUCT_VER_PATCH)  \
+               -dProductCode=$(AFSPRODUCT_VER_GUID)    \
                "-dDestDir=$(DESTDIR)\\" \
                -dCellDbFile=CellServDB \
                -v0 \
index 7d03602a185568d5e2c0e1bde64f14d464295718..eab1ce09706837e80424ac3043b5403c66da38d5 100644 (file)
@@ -1,4 +1,4 @@
-# rcsid : $Id: NTMakefile,v 1.2 2004/06/23 07:48:23 jaltman Exp $
+# rcsid : $Id: NTMakefile,v 1.2.2.1 2004/08/23 15:55:09 jaltman Exp $
 
 RELDIR=WINNT\install\wix\custom
 !INCLUDE ..\..\..\..\config\NTMakefile.$(SYS_NAME)
@@ -14,10 +14,12 @@ DLLEXPORTS=\
        -EXPORT:ConfigureClientService \
        -EXPORT:ConfigureServerService \
        -EXPORT:AbortMsiImmediate \
-       -EXPORT:UninstallNsisInstallation
+       -EXPORT:UninstallNsisInstallation \
+        -EXPORT:CreateAFSClientAdminGroup \
+        -EXPORT:RemoveAFSClientAdminGroup
 
 DLLLIBFILES=\
-       msi.lib advapi32.lib
+       msi.lib advapi32.lib netapi32.lib
 
 LINK=link
 
index 5783720fb90d76daa4f8a2b7507551f636789bb0..0b4099cb3cbd2fb38ae6e2c1a3a156e0c7e712f2 100644 (file)
@@ -31,7 +31,7 @@ SOFTWARE.
 *         are noted in the comments section of each of the
 *         functions.
 *
-* rcsid: $Id: afscustom.cpp,v 1.2 2004/06/23 03:55:13 jaltman Exp $
+* rcsid: $Id: afscustom.cpp,v 1.2.2.1 2004/08/23 15:55:09 jaltman Exp $
 **************************************************************/
 
 // Only works for Win2k and above
@@ -376,3 +376,71 @@ _cleanup:
        }
        return rv;
 }
+
+/* Create or remove the 'AFS Client Admins' group.  Initially
+   it will hold members of the Administrator group. */
+
+MSIDLLEXPORT CreateAFSClientAdminGroup( MSIHANDLE hInstall ) {
+    UINT rv;
+    rv = createAfsAdminGroup();
+    if(rv) {
+        if(rv == ERROR_ALIAS_EXISTS) {
+            /* The group already exists, probably from a previous
+               installation.  We let things be. */
+            return ERROR_SUCCESS;
+        }
+
+        ShowMsiError( hInstall, ERR_GROUP_CREATE_FAILED, rv );
+        return rv;
+    }
+
+    rv = initializeAfsAdminGroup();
+    if(rv)
+        ShowMsiError( hInstall, ERR_GROUP_MEMBER_FAILED, rv );
+    return rv;
+}
+
+MSIDLLEXPORT RemoveAFSClientAdminGroup( MSIHANDLE hInstall ) {
+    removeAfsAdminGroup();
+    return ERROR_SUCCESS;
+}
+
+#define AFSCLIENT_ADMIN_GROUPNAMEW L"AFS Client Admins"
+#define AFSCLIENT_ADMIN_COMMENTW L"AFS Client Administrators"
+
+UINT createAfsAdminGroup(void) {
+    LOCALGROUP_INFO_1 gInfo;
+    DWORD dwError;
+    NET_API_STATUS status;
+
+    gInfo.lgrpi1_name = AFSCLIENT_ADMIN_GROUPNAMEW;
+    gInfo.lgrpi1_comment = AFSCLIENT_ADMIN_COMMENTW;
+    status = NetLocalGroupAdd(NULL, 1, (LPBYTE) &gInfo, &dwError);
+
+    return status;
+}
+
+UINT initializeAfsAdminGroup(void) {
+    PSID psidAdmin = NULL;
+    SID_IDENTIFIER_AUTHORITY auth = SECURITY_NT_AUTHORITY;
+    NET_API_STATUS status;
+    LOCALGROUP_MEMBERS_INFO_0 *gmAdmins = NULL;
+    DWORD dwNEntries, dwTEntries;
+
+    status = NetLocalGroupGetMembers(NULL, L"Administrators", 0, (LPBYTE *) &gmAdmins, MAX_PREFERRED_LENGTH, &dwNEntries, &dwTEntries, NULL);
+    if(status)
+        return status;
+
+    status = NetLocalGroupAddMembers(NULL, AFSCLIENT_ADMIN_GROUPNAMEW, 0, (LPBYTE) gmAdmins, dwNEntries);
+
+    NetApiBufferFree( gmAdmins );
+
+    return status;
+}
+
+UINT removeAfsAdminGroup(void) {
+    NET_API_STATUS status;
+    status = NetLocalGroupDel(NULL, AFSCLIENT_ADMIN_GROUPNAMEW);
+    return status;
+}
+
index 8dcda8a484f043ceaf8694217fabf61af9632e77..b04f046374fd20adefdfa9f466bc7bdd124959ca 100644 (file)
@@ -27,7 +27,7 @@ SOFTWARE.
  *
  * Declarations for OpenAFS MSI setup tools
  *
- * rcsid : $Id: afscustom.h,v 1.2 2004/06/23 03:55:13 jaltman Exp $
+ * rcsid : $Id: afscustom.h,v 1.2.2.1 2004/08/23 15:55:09 jaltman Exp $
  */
 
 #ifndef __afsMsiTools_H__
@@ -38,6 +38,7 @@ SOFTWARE.
 #include<msiquery.h>
 #include<stdio.h>
 #include<string.h>
+#include<lm.h>
 
 #define MSIDLLEXPORT UINT __stdcall
 
@@ -63,12 +64,17 @@ SOFTWARE.
 #define ERR_SCS_FAILED 4003
 #define ERR_ABORT 4004
 #define ERR_NSS_FAILED 4005
+#define ERR_GROUP_CREATE_FAILED 4006
+#define ERR_GROUP_MEMBER_FAILED 4007
 
 /* non-exported */
 int npi_CheckAndAddRemove( LPTSTR, LPTSTR, int );
 DWORD InstNetProvider(MSIHANDLE, int);
 void ShowMsiError(MSIHANDLE, DWORD, DWORD);
 DWORD ConfigService(int);
+UINT createAfsAdminGroup(void);
+UINT initializeAfsAdminGroup(void);
+UINT removeAfsAdminGroup(void);
 
 /* exported */
 MSIDLLEXPORT InstallNetProvider( MSIHANDLE );
@@ -77,5 +83,7 @@ MSIDLLEXPORT ConfigureClientService( MSIHANDLE );
 MSIDLLEXPORT ConfigureServerService( MSIHANDLE );
 MSIDLLEXPORT AbortMsiImmediate( MSIHANDLE );
 MSIDLLEXPORT UninstallNsisInstallation( MSIHANDLE hInstall );
+MSIDLLEXPORT CreateAFSClientAdminGroup( MSIHANDLE hInstall );
+MSIDLLEXPORT RemoveAFSClientAdminGroup( MSIHANDLE hInstall );
 
 #endif /*__afsMsiTools_H__*/
index 431741e73262e78e6402074a1229ae4acac966c5..273b9042ccff229c203b3e5baf9aadc27db9a67a 100644 (file)
@@ -92,7 +92,7 @@
                 <ComponentRef Id="cmf_rxdebug_EXE" />
                 <ComponentRef Id="cmf_backup_EXE" />
                 <ComponentRef Id="cmf_aklog_EXE" />
-
+                
                 <!-- Runtime -->
                 <?include runtime.wxi?>
             </Feature>
index 041187751d73a294a42453295acd50aef3a08bf1..0a61cca5d45e1b3f322d3840b42fb696580cb408 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <Include>
-    <Directory Id="SystemFolder">
+    <Directory Id="SystemFolder" SourceName="System" LongSource="System">
         <Component Id="cmf_afslogon_DLL" Guid="123197FE-4F53-4035-8D51-FCFB6B50A777">
             <File Id="fileafslogon_DLL" Name="afslogon.dll" LongName="afslogon.dll" KeyPath="yes" DiskId="1" src="$(var.ClientDir)afslogon.dll" />
             <Registry Id="reg_afslogon01" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" Action="createKeyAndRemoveKeyOnUninstall" />
@@ -17,9 +17,9 @@
         </Component>
     <?endif?>
     </Directory>
-    <Directory Id="ProgramFilesFolder" Name=".">
+    <Directory Id="ProgramFilesFolder">
         <Directory Id="AFSDIR" Name="OpenAFS" SourceName=".">
-            <Directory Id="dirCommon" Name="Common" LongName="Common" SourceName=".">
+            <Directory Id="dirCommon" Name="Common" LongName="Common" SourceName="Common">
                 <Component Id="cmp_CommonDir" Guid="C86B03A1-AE97-48B1-A77B-1B2395F1E117" KeyPath="yes">
                     <Environment Id="envCommon" Name="PATH" Action="create" System="yes" Permanent="no" Part="last" Separator=";" Value="[AFSDIR]Common" />
                     <CreateFolder />
                     <File Id="fileafs_shl_ext_1033_DLL" Name="ashl1033.dll" LongName="afs_shl_ext_1033.dll" KeyPath="yes" DiskId="1" src="$(var.ClientDir)\afs_shl_ext_1033.dll"/>
                 </Component>
 
-                <Directory Id="dirCommon_en_US" Name="en_US" LongName="en_US" SourceName="." src="$(var.SrcDir)\WINNT\doc\help\en_US\">
+                <Directory Id="dirCommon_en_US" Name="en_US" LongName="en_US" SourceName="en_US" src="$(var.SrcDir)\WINNT\doc\help\en_US\">
                     <Component Id="cmf_afs_nt_HLP_en_US" Guid="A59FF1E3-984F-47E0-8A65-590A01B6E1C4">
                         <File Id="fileafs_nt_HLP_en_US" Name="afs-nt.hlp" LongName="afs-nt.hlp" KeyPath="yes" DiskId="1">
                                                        <Shortcut Id="scClientHelp_en_US" Directory="dirShortCut" Name="CliHelp.lnk" LongName="Client Help.lnk" Description="$(loc.StrHlpFileDesc)" Icon="ico_Help" IconIndex="0" Show="normal" WorkingDirectory="dirCommon" />
           <?endif?>
             </Directory> <!-- /common -->
             
-            <Directory Id="dirControl_Center" Name="Contr" LongName="Control Center" SourceName=".">
+            <Directory Id="dirControl_Center" Name="Contr" LongName="Control Center" SourceName="ControlC" LongSource="Control Center">
                 <Component Id="cmf_TaAfsServerManager_EXE" Guid="B890FB93-2EFD-44B6-8CB3-7A6AFABFF029">
                     <File Id="fileTaAfsServerManager_EXE" Name="TaAfsSvM.exe" LongName="TaAfsServerManager.exe" KeyPath="yes" DiskId="1" src="$(var.ServerDir)\TaAfsServerManager.exe">
                                                <Shortcut Id="scServerManager" Directory="dirShortCut" Name="SvrMgr.lnk" LongName="Server Manager.lnk" Description="$(loc.StrSvrMgrDesc)" Icon="ico_ServerManager" IconIndex="0" Show="normal" WorkingDirectory="dirCommon" />
             </Component>
          <?endif?>
 
-            <Directory Id="dirDocumentation" Name="Docum" LongName="Documentation" SourceName=".">
+            <Directory Id="dirDocumentation" Name="Docum" LongName="Documentation" SourceName="Docs">
                                <!-- The following directory and everything below it is language dependent. -->
-                <Directory Id="dirDoc_$(var.Language)" Name="$(var.Language)" LongName="$(var.Language)" SourceName=".">
-                    <Directory Id="dirHtml_$(var.Language)" Name="Html" LongName="Html" SourceName="." src="$(var.SrcDir)\WINNT\doc\install\Documentation\$(var.Language)\html\">
+                <Directory Id="dirDoc_$(var.Language)" Name="$(var.Language)" LongName="$(var.Language)" SourceName="$(var.Language)">
+                    <Directory Id="dirHtml_$(var.Language)" Name="Html" LongName="Html" SourceName="html" src="$(var.SrcDir)\WINNT\doc\install\Documentation\$(var.Language)\html\">
                         <Component Id="cmf_index2_HTM_$(var.Language)" Guid="$(var.DocHtmlIndexGuid)">
                             <File Id="fileindex2_HTM_$(var.Language)" Name="index.htm" LongName="index.htm" KeyPath="yes" DiskId="1">
                                                                <Shortcut Id="scDoc_$(var.Language)" Directory="dirShortCut" Name="Doc$(var.Language).lnk" LongName="Documentation ($(var.Language)).lnk" Description="$(loc.StrDocLnkDesc)" Icon="ico_Help" IconIndex="0" Show="normal" WorkingDirectory="dirCommon" />
                             <File Id="filetop_GIF_$(var.Language)" Name="top.gif" LongName="top.gif" DiskId="1" />
                             <File Id="file$(var.Language)_RTF" Name="$(var.Language).rtf" LongName="$(var.Language).rtf" KeyPath="yes" DiskId="1" src="$(var.SrcDir)\WINNT\license\lang\$(var.Language).rtf"/>
                         </Component>
-                        <Directory Id="dirCmdRef_$(var.Language)" Name="CmdRef" LongName="CmdRef" SourceName="." src="$(var.SrcDir)\WINNT\doc\install\Documentation\$(var.Language)\html\CmdRef\">
+                        <Directory Id="dirCmdRef_$(var.Language)" Name="CmdRef" LongName="CmdRef" SourceName="CmdRef" src="$(var.SrcDir)\WINNT\doc\install\Documentation\$(var.Language)\html\CmdRef\">
                             <Component Id="cmp_Cmd_Ref_$(var.Language)" Guid="$(var.DocHtmlCmdRefGuid)">
                                 <File Id="fileauarf000_HTM_$(var.Language)" Name="auarf000.htm" LongName="auarf000.htm" KeyPath="yes" DiskId="1" />
                                 <File Id="fileauarf002_HTM_$(var.Language)" Name="auarf002.htm" LongName="auarf002.htm" DiskId="1" />
                                 <File Id="fileauarf284_HTM_$(var.Language)" Name="auarf284.htm" LongName="auarf284.htm" DiskId="1" />
                             </Component>
                         </Directory> <!-- CmdRef -->
-                        <Directory Id="dirInstallGd_$(var.Language)" Name="InstalGd" LongName="InstallGd" SourceName="." src="$(var.SrcDir)\WINNT\doc\install\Documentation\$(var.Language)\html\InstallGd\">
+                        <Directory Id="dirInstallGd_$(var.Language)" Name="InstalGd" LongName="InstallGd" SourceName="InstGd" LongSource="InstallGuide" src="$(var.SrcDir)\WINNT\doc\install\Documentation\$(var.Language)\html\InstallGd\">
                             <Component Id="cmp_Install_Guide_$(var.Language)" Guid="$(var.DocHtmlInstallGuid)">
                                 <File Id="fileawqbg000_HTM_$(var.Language)" Name="awqbg000.htm" LongName="awqbg000.htm" KeyPath="yes" DiskId="1" />
                                 <File Id="fileawqbg002_HTM_$(var.Language)" Name="awqbg002.htm" LongName="awqbg002.htm" DiskId="1" />
                                 <File Id="fileawqbg004_HTM_$(var.Language)" Name="awqbg004.htm" LongName="awqbg004.htm" DiskId="1" />
                             </Component>
                         </Directory> <!-- InstallGd -->
-                        <Directory Id="dirSysAdminGd_$(var.Language)" Name="SysAd" LongName="SysAdminGd" SourceName="." src="$(var.SrcDir)\WINNT\doc\install\Documentation\$(var.Language)\html\SysAdminGd\">
+                        <Directory Id="dirSysAdminGd_$(var.Language)" Name="SysAd" LongName="SysAdminGd" SourceName="SysAdm" LongSource="SysAdminGd" src="$(var.SrcDir)\WINNT\doc\install\Documentation\$(var.Language)\html\SysAdminGd\">
                             <Component Id="cmp_Sys_Admin_Guide_$(var.Language)" Guid="$(var.DocHtmlSysAdminGuid)">
                                 <File Id="fileauagd000_HTM_$(var.Language)" Name="auagd.htm" LongName="auagd000.htm" KeyPath="yes" DiskId="1" />
                                 <File Id="fileauagd002_HTM_$(var.Language)" Name="auagd~2.htm" LongName="auagd002.htm" DiskId="1" />
                                 <File Id="filecachmgr_GIF_$(var.Language)" Name="cachm.gif" LongName="cachmgr.gif" DiskId="1" />
                             </Component>
                         </Directory> <!-- Sys Admin guide -->
-                        <Directory Id="dirReleaseNotes_$(var.Language)" Name="Relea" LongName="ReleaseNotes" SourceName="." src="$(var.SrcDir)\WINNT\doc\install\Documentation\$(var.Language)\html\ReleaseNotes\">
+                        <Directory Id="dirReleaseNotes_$(var.Language)" Name="Relea" LongName="ReleaseNotes" SourceName="Relea" LongSource="ReleaseNotes" src="$(var.SrcDir)\WINNT\doc\install\Documentation\$(var.Language)\html\ReleaseNotes\">
                             <Component Id="cmp_Release_Notes_$(var.Language)" Guid="$(var.DocHtmlRelNotesGuid)">
                                 <File Id="fileawrns000_HTM_$(var.Language)" Name="awrns.htm" LongName="awrns000.htm" KeyPath="yes" DiskId="1" />
                                 <File Id="fileawrns002_HTM_$(var.Language)" Name="awrns~2.htm" LongName="awrns002.htm" DiskId="1" />
                 </Directory> <!-- $(var.Language) -->
             </Directory> <!-- Documentation -->
 
-            <Directory Id="dirClient" Name="Client" LongName="Client" SourceName=".">
+            <Directory Id="dirClient" Name="Client" LongName="Client" SourceName="Client">
                 <Component Id="efl_CellServDB" Guid="8E69FDAB-08C5-4927-B1AA-57FCEEB065F2" NeverOverwrite="yes" Permanent="yes">
                     <File Id="file_CellServDB" Name="CelSrvDB" LongName="CellServDB" KeyPath="yes" DiskId="1" src="$(var.CellDbFile)"/>
                     <Condition>OLDCELLSERVDB = ""</Condition>
                     <CopyFile Id="copy_CellServDB" Delete="yes" DestinationDirectory="dirClient" DestinationName="CellServ|CellServDB" SourceDirectory="WindowsFolder" SourceName="afsdcell.ini" />
                     <Condition>OLDCELLSERVDB &lt;&gt; ""</Condition>
                 </Component>
-                <Directory Id="dirProgram" Name="Program" LongName="Program" SourceName="." src="$(var.ClientDir)">
+                <Directory Id="dirProgram" Name="Program" LongName="Program" SourceName="Program" src="$(var.ClientDir)">
                     <Component Id="cmf_afsshare_EXE" Guid="E972DA35-E950-4736-AE48-E6DDCE8C97D0">
                         <File Id="fileafsshare_EXE" Name="afsshare.exe" LongName="afsshare.exe" KeyPath="yes" DiskId="1" />
                     </Component>
                     <Component Id="cmf_afsd_service_EXE" Guid="37A90054-505D-4C57-B489-7EF4D97B86F6">
                         <File Id="fileafsd_service_EXE" Name="afsd_svc.exe" LongName="afsd_service.exe" KeyPath="yes" DiskId="1" />
                         <ServiceControl Id="TransarcAFSDaemon" Name="TransarcAFSDaemon" Stop="both" Remove="both" Wait="yes" />
-                        <ServiceInstall Id="svc_Client" Name="TransarcAFSDaemon" DisplayName="OpenAFS Client" Type="ownProcess" Start="auto" ErrorControl="normal" Description="Provides access to files and directories stored in AFS">
+                        <ServiceInstall Id="svc_Client" Name="TransarcAFSDaemon" DisplayName="OpenAFS Client" Type="ownProcess" Start="auto" ErrorControl="normal" Description="Provides access to files and directories stored in AFS" Interactive="yes">
                                                        <!-- ServiceConfig doesn't currently do what you think it does.
                                                             We instead use a custom action to set the service failure actions.
                             <ServiceConfig FirstFailureActionType="restart" RestartServiceDelayInSeconds="10" SecondFailureActionType="restart" ThirdFailureActionType="none"/>
                     </Component>
                 <?endif?>
                     
-                    <Directory Id="dirSample" Name="Sampl" LongName="Sample" SourceName=".">
+                    <Directory Id="dirSample" Name="Sampl" LongName="Sample" SourceName="Sample">
                         <Component Id="cmp_SDK_Sample" Guid="F9373E95-F410-4AA5-AA79-07C11EE00334">
                             <File Id="filetoken_C" Name="token.c" LongName="token.c" KeyPath="yes" DiskId="1" src="$(var.SrcDir)WINNT\afsd\sample\token.c"/>
                         </Component>
                     </Directory>
-                    <Directory Id="dirInclude" Name="Include" LongName="Include" SourceName=".">
+                    <Directory Id="dirInclude" Name="Include" LongName="Include" SourceName="Include">
                         <Component Id="cmp_SDK_Include" Guid="9B12B216-B104-4E49-BE31-4042F2CBD318">
                             <File Id="filebasic_H" Name="basic.h" LongName="basic.h" DiskId="1" src="$(var.IncDir)basic.h" /> 
                             <File Id="filecrypt_H" Name="crypt.h" LongName="crypt.h" DiskId="1" src="$(var.IncDir)crypt.h" /> 
                             <File Id="fileubik_H" Name="ubik.h" LongName="ubik.h" DiskId="1" src="$(var.IncDir)ubik.h" /> 
                             <File Id="fileubik_int_H" Name="ubik_int.h" LongName="ubik_int.h" DiskId="1" src="$(var.IncDir)ubik_int.h" /> 
                         </Component>
-                        <Directory Id="dirIncludeAfs" Name="afs" LongName="afs" SourceName=".">
+                        <Directory Id="dirIncludeAfs" Name="afs" LongName="afs" SourceName="afs">
                             <Component Id="cmp_SDK_Include_afs" Guid="692D18AD-4901-4124-8B1F-5D414E65A7D0">
                                 <File Id="fileacl_H" Name="acl.h" LongName="acl.h" DiskId="1" src="$(var.IncDir)afs\acl.h" /> 
                                 <File Id="fileafscbint_H" Name="afscbint.h" LongName="afscbint.h" DiskId="1" src="$(var.IncDir)afs\afscbint.h" /> 
                                 <File Id="filevolume_H" Name="volume.h" LongName="volume.h" DiskId="1" src="$(var.IncDir)afs\volume.h" />
                             </Component>
                         </Directory>
-                        <Directory Id="dirIncludeRx" Name="rx" LongName="rx" SourceName=".">
+                        <Directory Id="dirIncludeRx" Name="rx" LongName="rx" SourceName="rx">
                             <Component Id="cmp_SDK_Include_rx" Guid="2E215D10-C080-42A3-B692-AFF94C7A1A2B">
                                 <File Id="fileasn1_err_H" Name="asn1_err.h" LongName="asn1_err.h" DiskId="1" src="$(var.IncDir)rx\asn1_err.h" /> 
                                 <File Id="filefcrypt_H" Name="fcrypt.h" LongName="fcrypt.h" DiskId="1" src="$(var.IncDir)rx\fcrypt.h" /> 
                                 <File Id="filexdr_prototypes_H" Name="XDR_PR~1.h" LongName="xdr_prototypes.h" DiskId="1" src="$(var.IncDir)rx\xdr_prototypes.h" /> 
                             </Component>
                         </Directory>
-                        <Directory Id="dirIncludeWinnt" Name="WINNT" LongName="WINNT" SourceName=".">
+                        <Directory Id="dirIncludeWinnt" Name="WINNT" LongName="WINNT" SourceName="WINNT">
                             <Component Id="cmp_SDK_Include_Winnt" Guid="BAAF0193-5C33-4EC1-9D40-DD4595F176E6">
                                 <File Id="fileafsapplib_H" Name="AFSAPP~1.h" LongName="afsapplib.h" DiskId="1" src="$(var.IncDir)WINNT\afsapplib.h" /> 
                                 <File Id="fileafsclass_H" Name="afsclass.h" LongName="afsclass.h" DiskId="1" src="$(var.IncDir)WINNT\afsclass.h" /> 
                             </Component>
                         </Directory>
                     </Directory>
-                    <Directory Id="dirLib" Name="lib" LongName="lib" SourceName=".">
+                    <Directory Id="dirLib" Name="lib" LongName="lib" SourceName="lib">
                         <Component Id="cmp_SDK_Lib" Guid="71BC1B4E-4C4C-4FF8-8DDA-C6AB2BE22142">
                             <File Id="fileafsauthent_LIB" Name="AFSAUT~1.lib" LongName="afsauthent.lib" DiskId="1" src="$(var.LibDir)afsauthent.lib" /> 
                             <File Id="fileafsdes_LIB" Name="afsdes.lib" LongName="afsdes.lib" DiskId="1" src="$(var.LibDir)afsdes.lib" /> 
                             <File Id="filecm_config_OBJ" Name="CM_CON~1.obj" LongName="cm_config.obj" DiskId="1" src="$(var.LibDir)cm_config.obj" /> 
                             <File Id="filecm_dns_OBJ" Name="cm_dns.obj" LongName="cm_dns.obj" DiskId="1" src="$(var.LibDir)cm_dns.obj" /> 
                         </Component>
-                        <Directory Id="dirLibAfs" Name="afs" LongName="afs" SourceName=".">
+                        <Directory Id="dirLibAfs" Name="afs" LongName="afs" SourceName="afs">
                             <Component Id="cmp_SDK_Lib_Afs" Guid="CD671A64-D491-4363-A7AD-645482B481BE">
                                 <File Id="fileafsacl_LIB" Name="afsacl.lib" LongName="afsacl.lib" DiskId="1" src="$(var.LibDir)afs\afsacl.lib" /> 
                                 <File Id="fileafsadminutil_LIB" Name="AFSADM~1.lib" LongName="afsadminutil.lib" DiskId="1" src="$(var.LibDir)afs\afsadminutil.lib" /> 
                     </Directory>
                 </Directory> <!-- /Program -->
             </Directory> <!-- /Client -->
-            <Directory Id="dirServer" Name="Server" LongName="Server" SourceName=".">
-                <Directory Id="dirusr" Name="usr" LongName="usr" SourceName=".">
-                    <Directory Id="dirafs" Name="afs" LongName="afs" SourceName=".">
-                        <Directory Id="dirbin" Name="bin" LongName="bin" SourceName="." src="$(var.ServerDir)">
+            <Directory Id="dirServer" Name="Server" LongName="Server" SourceName="Server">
+                <Directory Id="dirusr" Name="usr" LongName="usr" SourceName="usr">
+                    <Directory Id="dirafs" Name="afs" LongName="afs" SourceName="afs">
+                        <Directory Id="dirbin" Name="bin" LongName="bin" SourceName="bin" src="$(var.ServerDir)">
                             <Component Id="cmf_vlserver_EXE" Guid="F6A43B78-EE17-4483-AA81-4B6C6957977D">
                                 <File Id="filevlserver_EXE" Name="vlser.exe" LongName="vlserver.exe" KeyPath="yes" DiskId="1" />
                             </Component>
                             <Component Id="cmf_bosctlsvc_EXE" Guid="8F6F62A8-BB6D-46C1-BA80-4F207AA24F0D">
                                 <File Id="filebosctlsvc_EXE" Name="bosct.exe" LongName="bosctlsvc.exe" KeyPath="yes" DiskId="1" />
                                 <ServiceControl Id="TransarcAFSServer" Name="TransarcAFSServer" Stop="both" Remove="both" Wait="yes" />
-                                <ServiceInstall Id="svc_Server" Name="TransarcAFSServer" DisplayName="OpenAFS Server" Type="ownProcess" Start="auto" ErrorControl="normal" Description="Manages AFS server processes">
+                                <ServiceInstall Id="svc_Server" Name="TransarcAFSServer" DisplayName="OpenAFS Server" Type="ownProcess" Start="auto" ErrorControl="normal" Description="Manages AFS server processes" Interactive="yes">
                                                                        <!-- ServiceConfig does nothing 
                                     <ServiceConfig FirstFailureActionType="restart" RestartServiceDelayInSeconds="5" SecondFailureActionType="restart" ThirdFailureActionType="none"/>
                                     -->
index 1c342f2afe331f51c16c07766f35cfe0012dcd9e..45c12734188b3b40e885ad9ee87b2dc4e3502c7b 100644 (file)
     <String Id="StrCfgWzdDesc">Server Configuration Wizard</String>
 
     <String Id="StrLaunchCond">OpenAFS for Windows is currently only packaged for Windows 2000,XP and 2003</String>
+    <String Id="AdminRequired">Installation of OpenAFS for Windows requires administrative privileges</String>
 
        <String Id="ErrNPIFailed">Installation of Network Provider failed.  System error [2]</String>
        <String Id="ErrSCCFailed">Configuration of client service failed.  System error [2]</String>
        <String Id="ErrSCSFailed">Configuration of server service failed.  System error [2]</String>
        <String Id="ErrAbort">Installation aborted : [2]</String>
        <String Id="ErrNsisFailed">Uninstallation of the NSIS installation of OpenAFS failed with code [2]</String>
+       <String Id="ErrCantCreateGroup">Can't create AFS Client Admin group.  NET_API_Error [2]</String>
+       <String Id="ErrCantAddMembers">Can't add members to AFS Client Admin group. NET_API_Error [2]</String>
        
        <String Id="ActInstallLoopback">Installing loopback adapter</String>
        <String Id="ActRemoveLoopback">Removing existing loopback adapter</String>
index feade40532ff7a720246809c81c126df06eae409..4e458dc52d1ebd4e75504ca8034e2e2f0fcdf051 100644 (file)
       <Dialog Id="AdminWelcomeDlg" Width="370" Height="270" Title="[ProductName] [Setup]" NoMinimize="yes">
         <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="[ButtonText_Next]">
           <Publish Property="InstallMode" Value="Server Image">1</Publish>
-          <Publish Event="NewDialog" Value="AdminRegistrationDlg">1</Publish>
+          <Publish Event="NewDialog" Value="AdminInstallPointDlg">1</Publish>
         </Control>
         <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="[ButtonText_Cancel]">
           <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
          <Error Id="4003">$(loc.ErrSCSFailed)</Error>
          <Error Id="4004">$(loc.ErrAbort)</Error>
          <Error Id="4005">$(loc.ErrNsisFailed)</Error>
+         <Error Id="4006">$(loc.ErrCantCreateGroup)</Error>
+         <Error Id="4007">$(loc.ErrCantAddMembers)</Error>
          <ProgressText Action="RemoveLoopback" Template="[1]:([2])([3])([4])">$(loc.ActRemoveLoopback)</ProgressText>
          <ProgressText Action="InstallLoopback" Template="[1]:([2])([3])([4])">$(loc.ActInstallLoopback)</ProgressText>
          <ProgressText Action="RemoveNetProvider">$(loc.ActRemoveNetProvider)</ProgressText>
index d82090eb31a3697cb454ae6cb2fb7ac98f176e47..af0fdde4d8664672b9fba063d75afc6550d897f0 100644 (file)
     <?define ProductName="OpenAFS for Windows"?>
     
     <!-- Localized packages should have different product codes -->
-    <?define ProductCode="CCAF9E14-976E-46C0-8A1B-A218EAB7ADC5"?>
+    <!-- Each product release should have a different product code -->
+    <?ifndef ProductCode?>
+        <?define ProductCode="????????-????-????-????-????????????"?>
+    <?endif?>
     
     <!-- Same goes for localized components -->
     <?define DocHtmlIndexGuid="B656CA5A-5179-42D8-8972-2F128AEDE751"?>
index df94cd5058240be11d4bc99fb4d6dc8d7707f840..2ca393c78845bb860362943f09d341385dc9bd1c 100644 (file)
          />
         
         <!-- Launch conditions -->
-        <Condition
-         Message="$(loc.StrLaunchCond)">
+        <Condition Message="$(loc.StrLaunchCond)">
          <![CDATA[VersionNT >= 500]]>
         </Condition>
+        <Condition Message="$(loc.AdminRequired)">Privileged</Condition>
+        
         
         <!-- Global Properties -->
         <?include property.wxi?>
                 BinaryKey="BIN_afsCustom"
                 DllEntry="UninstallNsisInstallation"
                 Execute="immediate" />
+               <CustomAction
+                Id="CreateAFSAdminGroup"
+                BinaryKey="BIN_afsCustom"
+                DllEntry="CreateAFSClientAdminGroup"
+                Impersonate="no"
+                Execute="deferred" />
+               <CustomAction
+                Id="RemoveAFSAdminGroup"
+                BinaryKey="BIN_afsCustom"
+                DllEntry="RemoveAFSClientAdminGroup"
+                Impersonate="no"
+                Execute="deferred" />
+               <CustomAction
+                Id="RollbackAFSAdminGroup"
+                BinaryKey="BIN_afsCustom"
+                DllEntry="RemoveAFSClientAdminGroup"
+                Impersonate="no"
+                Execute="rollback" />
                <CustomAction
                 Id="AbortInstallationA"
                 BinaryKey="BIN_afsCustom"
                        <Custom Action="RemoveNetProvider" After="InstallNetProvider">&amp;feaClient=2</Custom>
                        <Custom Action="ConfigureClient" After="InstallServices">&amp;feaClient=3</Custom>
                        <Custom Action="ConfigureServer" After="ConfigureClient">&amp;feaServer=3</Custom>
+                       <!-- <Custom Action="RemoveAFSAdminGroup" Before="">&amp;feaClient=2</Custom> -->
+                       <Custom Action="RollbackAFSAdminGroup" Before="CreateAFSAdminGroup">&amp;feaClient=3</Custom>
+                       <Custom Action="CreateAFSAdminGroup" Before="CreateFolders">&amp;feaClient=3</Custom>
             <ScheduleReboot After="PublishProduct">&amp;feaClient=3 OR &amp;feaServer=3 OR &amp;feaClient=2 OR &amp;feaServer=2</ScheduleReboot>
         </InstallExecuteSequence>
 
index 6dfea7db4ae90ebd1cdd8245de0377a5a7ed3d01..d3edf9eef10a3e5b2cc77770cf47005f218c469a 100644 (file)
     </Property>
     
     <Property Id="ABORTREASON">$(loc.StrNsisAbortReason)</Property>
-
+    
     <Property Id="OLDCELLSERVDB">
       <DirectorySearch Id="dsOldCellServDB" Path="[WindowsFolder]" >
         <FileSearch Id="fsOldCellServDB" Name="afsdcell.ini" />
index 9266497db0389104957e1bbbeccd0de4194e0aeb..fcc86ac1450ff520c77bcb19ff22f0c4d6a31610 100644 (file)
             empty.  Due to a bug in Windows Installer, when a feature is empty (i.e. contains no components)
             its install state is set as NULL, instead of Local or Absent.  This prevents the feature from
             being removed when the product is uninstalled. This is just a flag component to add to the
-            loopback feature so that it is not empty. -->    
+            loopback feature so that it is not empty. -->
     <Component Id="rcm_Loopback" Guid="9F9BBDA3-208C-4F93-B81F-313E031B6DDA">
         <Registry Root="HKLM" Key="SOFTWARE\OpenAFS\Client" Name="LoopbackInstalled" Type="integer" Value="1" Id="reg_Loopback1" KeyPath="yes" />
     </Component>
index ab3d37ba0077fc27ac6b681a9f1bbc2da4d13274..e3b5f5a6ae29e0f776c74c1664ba276c4c1352d9 100644 (file)
->andrew.cmu.edu                #Carnegie Mellon University - Computing Services
-128.2.10.11                    #vice11.fs.andrew.cmu.edu
-128.2.10.12                    #vice12.fs.andrew.cmu.edu
-128.2.10.2                     #vice2.fs.andrew.cmu.edu
-128.2.10.28                    #vice28.fs.andrew.cmu.edu
-128.2.10.7                     #vice7.fs.andrew.cmu.edu
->cs.cmu.edu            #Carnegie Mellon University - School of Comp. Sci.
-128.2.206.130                  #cucumber.srv.cs.cmu.edu
-128.2.222.199                  #papaya.srv.cs.cmu.edu
-128.2.242.86                   #lemon.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
->athena.mit.edu                #MIT/Athena cell
-18.70.0.6                      #prill.mit.edu.
-18.145.0.25                    #agamemnon.mit.edu.
-18.159.0.34                    #chimera.mit.edu.
->dev.mit.edu           #MIT/IS Development cell
-18.86.0.28                     #wham.mit.edu.
-18.86.0.50                     #hum.mit.edu.
-18.86.0.51                     #rattle.mit.edu.
->net.mit.edu           #MIT/Network Group cell
-18.72.1.38                     #gracie.mit.edu.
-18.72.0.26                     #cetus.mit.edu.
->sipb.mit.edu          #MIT/SIPB cell
-18.181.0.19                    #reynelda.mit.edu.
-18.181.0.23                    #ronald-ann.mit.edu.
-18.181.0.22                    #rosebud.mit.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
->umr.edu               #University of Missouri - Rolla
-131.151.1.59                   #afs1.umr.edu
-131.151.1.70                   #afs6.umr.edu
-131.151.1.146                  #afs5.umr.edu
->dementia.org          #Dementia Unlimited
-128.2.35.149                   #alycia.dementia.org
-128.2.120.216                  #meredith.dementia.org
+>grand.central.org      #GCO Public CellServDB 17 Aug 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            #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
+>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
+>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
+>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.105.174                   #voronoi.sbp.ri.cmu.edu
+128.2.105.175                   #nihao.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
+>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.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.54.132                  #curtis.admin.lsa.umich.edu
+141.211.211.53                  #gerow.lsa.umich.edu
+141.211.211.72                  #collines.lsa.umich.edu
+141.211.211.153                 #hodges.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
+>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.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.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
index 93d015ab1c31c7a5db3ea7f7a600b14f3b744ad2..20193bbd00c30003ae7343dbe2476c0ca70a4939 100644 (file)
@@ -37,7 +37,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/AIX/osi_config.c,v 1.8 2003/07/15 23:14:16 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/AIX/osi_config.c,v 1.8.2.1 2004/08/25 07:16:15 shadow Exp $");
 
 #include "sys/limits.h"
 #include "sys/types.h"
@@ -147,7 +147,14 @@ afs_config(cmd, uiop)
         */
        if (err == ENOENT)
            err = 0;
-       else if (!err) {
+#ifndef AFS_AIX51_ENV
+       else
+#endif
+       if (!err) {
+#ifdef AFS_AIX51_ENV
+           if (err = unpin(&afs_callout_lock))
+               err = 0;
+#endif
            if (err = unpincode(afs_config))
                err = 0;
 
index cf5c75e6d9ebe73af01b0a99578f413cdc68227b..ba7754dddc12df1a2a8012cc5774a1ce1161f7ad 100644 (file)
@@ -17,7 +17,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/AIX/osi_inode.c,v 1.8 2003/07/15 23:14:17 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/AIX/osi_inode.c,v 1.8.2.1 2004/08/25 07:16:15 shadow Exp $");
 
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
 #include "afsincludes.h"       /* Afs-based standard headers */
@@ -236,13 +236,13 @@ igetinode(dev, vfsp, inode, vpp, perror)
        ip = 0;
        goto out;
     }
-    IREAD_UNLOCK(ip);
     if (vpp) {
        if (nvfsp)
            *vpp = ip->i_gnode.gn_vnode;
        else
            setuerror(iptovp(vfsp, ip, vpp));
     }
+    IREAD_UNLOCK(ip);
   out:
     return ip;
 }
index 6b051fced18082fac115d34275214558a42ed086..2a0c4fb5a55e30b54c458949f256c7ae361f6372 100644 (file)
@@ -14,7 +14,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/AIX/osi_vfsops.c,v 1.11 2003/07/15 23:14:17 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/AIX/osi_vfsops.c,v 1.11.2.1 2004/08/25 07:16:15 shadow Exp $");
 
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
 #include "afsincludes.h"       /* Afs-based standard headers */
@@ -34,6 +34,7 @@ extern struct afs_exporter *afs_nfsexporter;
 struct vfs *afs_globalVFS = 0;
 struct vcache *afs_globalVp = 0;
 
+extern int afs_cold_shutdown;
 
 static int afs_root_nolock(struct vfs *afsp, struct vnode **avpp);
 
@@ -81,6 +82,10 @@ afs_mount(afsp, path, data)
     afsp->vfs_mntdover->v_mvfsp = afsp;
     afsp->vfs_mdata->vmt_flags |= MNT_REMOTE;
 
+#ifdef AFS_AIX51_ENV
+    afsp->vfs_count = 1;
+    afsp->vfs_mntd->v_count = 1;
+#endif
 #ifdef AFS_AIX_IAUTH_ENV
     if (afs_iauth_register() < 0)
        afs_warn("Can't register AFS iauth interface.\n");
@@ -97,6 +102,7 @@ afs_unmount(struct vfs *afsp, int flag)
     AFS_STATCNT(afs_unmount);
 
     afs_globalVFS = 0;
+    afs_cold_shutdown = 1;
     afs_shutdown();
 
     AFS_VFSUNLOCK();
index 19ded0dd0b31f6ada431dc88a638c31835bfd61d..a066c9b41271242ba2efa38ef34fcbd5e2d75ede 100644 (file)
@@ -14,7 +14,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/IRIX/osi_idbg.c,v 1.6 2003/07/15 23:14:23 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/IRIX/osi_idbg.c,v 1.6.2.1 2004/08/25 07:09:34 shadow Exp $");
 
 #ifdef AFS_SGI62_ENV
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
@@ -55,9 +55,9 @@ char *tab_vcache[] = {
 int
 idbg_prafsnode(OSI_VC_DECL(avc))
 {
-    OSI_VC_CONVERT(avc)
+    OSI_VC_CONVERT(avc);
 
-       AFS_GLOCK();
+    AFS_GLOCK();
     qprintf("   Len %d DV %d Date %d Own %d Grp %d Mode 0%o Lnk %d\n",
            avc->m.Length, avc->m.DataVersion, avc->m.Date, avc->m.Owner,
            avc->m.Group, avc->m.Mode, avc->m.LinkCount);
index c17eeb158585f1dfb87dc5008b10f0067c0f6d6f..c069b3617a51cf88ec8c7e795e30ca9a8890dcf3 100644 (file)
@@ -374,19 +374,19 @@ extern long afs_global_owner;
 #undef OSI_VN_DECL
 #define OSI_VN_DECL(V)  bhv_desc_t *bhv_##V
 #undef OSI_VN_CONVERT
-#define OSI_VN_CONVERT(V) struct vnode * V = (struct vnode*)BHV_TO_VNODE(bhv_##V);
+#define OSI_VN_CONVERT(V) struct vnode * V = (struct vnode*)BHV_TO_VNODE(bhv_##V)
 #undef OSI_VC_ARG
 #define OSI_VC_ARG(V) bhv_##V
 #undef OSI_VC_DECL
 #define OSI_VC_DECL(V)  bhv_desc_t *bhv_##V
 #undef OSI_VC_CONVERT
-#define OSI_VC_CONVERT(V) struct vcache * V = VTOAFS(BHV_TO_VNODE(bhv_##V));
+#define OSI_VC_CONVERT(V) struct vcache * V = VTOAFS(BHV_TO_VNODE(bhv_##V))
 #undef OSI_VFS_ARG
 #define OSI_VFS_ARG(V) bhv_##V
 #undef OSI_VFS_DECL
 #define OSI_VFS_DECL(V)  bhv_desc_t *bhv_##V
 #undef OSI_VFS_CONVERT
-#define OSI_VFS_CONVERT(V) struct vfs * V = (struct vfs*)bhvtovfs(bhv_##V);
+#define OSI_VFS_CONVERT(V) struct vfs * V = (struct vfs*)bhvtovfs(bhv_##V)
 #endif /* AFS_SGI64_ENV */
 
 
index 3164d7b92557a928e7ee0561b830bc956873f72b..0670623d074c4eeee02458080b312afc59ca9efb 100644 (file)
@@ -14,7 +14,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/IRIX/osi_vfsops.c,v 1.13 2003/07/15 23:14:23 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/IRIX/osi_vfsops.c,v 1.13.2.1 2004/08/25 07:09:34 shadow Exp $");
 
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
 #include "afsincludes.h"       /* Afs-based standard headers */
@@ -213,9 +213,9 @@ afs_unmount(OSI_VFS_ARG(afsp), flags, cr)
     register struct afs_q *tq;
     struct afs_q *uq;
     int error, fv_slept;
-    OSI_VFS_CONVERT(afsp)
+    OSI_VFS_CONVERT(afsp);
 
-       AFS_STATCNT(afs_unmount);
+    AFS_STATCNT(afs_unmount);
 
     if (!suser())
        return EPERM;
@@ -272,9 +272,9 @@ afs_root(OSI_VFS_ARG(afsp), avpp)
     register afs_int32 code = 0;
     struct vrequest treq;
     register struct vcache *tvp = 0;
-    OSI_VFS_CONVERT(afsp)
+    OSI_VFS_CONVERT(afsp);
 
-       AFS_STATCNT(afs_root);
+    AFS_STATCNT(afs_root);
     if (afs_globalVp && (afs_globalVp->states & CStatd)) {
        tvp = afs_globalVp;
     } else {
@@ -314,9 +314,9 @@ afs_statfs(OSI_VFS_ARG(afsp), abp, avp)
      struct statvfs *abp;
      struct vnode *avp;                /* unused */
 {
-    OSI_VFS_CONVERT(afsp)
+    OSI_VFS_CONVERT(afsp);
 
-       AFS_STATCNT(afs_statfs);
+    AFS_STATCNT(afs_statfs);
     abp->f_bsize = afsp->vfs_bsize;
     abp->f_frsize = afsp->vfs_bsize;
     /* Fake a high number below to satisfy programs that use the statfs
@@ -379,9 +379,9 @@ afs_sync(OSI_VFS_DECL(afsp),
     register struct afs_q *tq;
     struct afs_q *uq;
     int s;
-    OSI_VFS_CONVERT(afsp)
+    OSI_VFS_CONVERT(afsp);
 
-       error = lasterr = 0;
+    error = lasterr = 0;
     /*
      * if not interested in vnodes, skip all this
      */
@@ -528,9 +528,9 @@ afs_vget(OSI_VFS_DECL(afsp), vnode_t ** avcp, struct fid * fidp)
     afs_fid2_t *afid2;
 #endif
 
-    OSI_VFS_CONVERT(afsp)
+    OSI_VFS_CONVERT(afsp);
 
-       AFS_STATCNT(afs_vget);
+    AFS_STATCNT(afs_vget);
 
     *avcp = NULL;
 
index 796d34c78635a3adec42f3f2ad866a8855729209..37301249520239062ab6a9b323e7b0a48fc91be9 100644 (file)
@@ -14,7 +14,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/IRIX/osi_vnodeops.c,v 1.14 2003/07/15 23:14:23 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/IRIX/osi_vnodeops.c,v 1.14.2.1 2004/08/25 07:09:34 shadow Exp $");
 
 #ifdef AFS_SGI62_ENV
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
@@ -158,7 +158,7 @@ afs_frlock(OSI_VN_DECL(vp), int cmd, struct flock *lfp, int flag,
           cred_t * cr)
 {
     int error;
-    OSI_VN_CONVERT(vp)
+    OSI_VN_CONVERT(vp);
 #ifdef AFS_SGI65_ENV
     struct flid flid;
     int pid;
@@ -276,9 +276,9 @@ OSI_VC_DECL(avc);
      struct cred *cr;
 {
     int code;
-    OSI_VC_CONVERT(avc)
+    OSI_VC_CONVERT(avc);
 
-       osi_Assert(avc->v.v_count > 0);
+    osi_Assert(avc->v.v_count > 0);
     if (avc->v.v_type != VREG)
        return EISDIR;
 
@@ -313,9 +313,9 @@ OSI_VC_DECL(avc);
      struct cred *cr;
 {
     int code;
-    OSI_VC_CONVERT(avc)
+    OSI_VC_CONVERT(avc);
 
-       osi_Assert(avc->v.v_count > 0);
+    osi_Assert(avc->v.v_count > 0);
     if (avc->v.v_type != VREG)
        return EISDIR;
 
@@ -712,9 +712,9 @@ OSI_VC_DECL(avc);
     int bsize;                 /* server's block size in bytes */
     off_t off;
     size_t rem, cnt;
-    OSI_VC_CONVERT(avc)
+    OSI_VC_CONVERT(avc);
 
-       bsize = AFSBSIZE;
+    bsize = AFSBSIZE;
     off = offset % bsize;      /* offset into block */
     bmv->bn = BTOBBT(offset - off);
     bmv->offset = bmv->bn;
@@ -765,7 +765,7 @@ OSI_VC_DECL(avc);
     iovec_t aiovec;
     int error;
     struct cred *cr;
-    OSI_VC_CONVERT(avc)
+    OSI_VC_CONVERT(avc);
     vnode_t *vp = (vnode_t *) avc;
 
     /*
@@ -892,7 +892,7 @@ OSI_VC_DECL(avc);
      u_int flags;
      struct cred *cr;
 {
-    OSI_VC_CONVERT(avc)
+    OSI_VC_CONVERT(avc);
     struct vnode *vp = AFSTOV(avc);
 
     if (vp->v_flag & VNOMAP)
@@ -923,7 +923,7 @@ OSI_VC_DECL(avc);
      u_int flags;
      struct cred *acred;
 {
-    OSI_VC_CONVERT(avc)
+    OSI_VC_CONVERT(avc);
     struct vnode *vp = AFSTOV(avc);
     register struct brequest *tb;
     struct vrequest treq;
@@ -1019,7 +1019,7 @@ OSI_VC_DECL(avc);
      struct cred *cr;
 #endif
 {
-    OSI_VC_CONVERT(avc)
+    OSI_VC_CONVERT(avc);
     struct vnode *vp = AFSTOV(avc);
     struct vrequest treq;
     int error;
@@ -1077,7 +1077,7 @@ OSI_VC_DECL(avc);
      struct ucred *acred;
 {
     int s;
-    OSI_VC_CONVERT(avc)
+    OSI_VC_CONVERT(avc);
     vnode_t *vp = (vnode_t *) avc;
     int mapcnt = avc->mapcnt;  /* We just clear off this many. */
 
@@ -1217,7 +1217,7 @@ afs_reclaim(OSI_VC_DECL(avc), int flag)
 void
 afs_rwlock(OSI_VN_DECL(vp), AFS_RWLOCK_T flag)
 {
-    OSI_VN_CONVERT(vp)
+    OSI_VN_CONVERT(vp);
     struct vcache *avc = VTOAFS(vp);
 
     if (OSI_GET_LOCKID() == avc->vc_rwlockid) {
@@ -1233,7 +1233,7 @@ afs_rwlock(OSI_VN_DECL(vp), AFS_RWLOCK_T flag)
 void
 afs_rwunlock(OSI_VN_DECL(vp), AFS_RWLOCK_T flag)
 {
-    OSI_VN_CONVERT(vp)
+    OSI_VN_CONVERT(vp);
     struct vcache *avc = VTOAFS(vp);
 
     AFS_ASSERT_GLOCK();
@@ -1275,9 +1275,9 @@ afs_fid2(OSI_VC_DECL(avc), struct fid *fidp)
 {
     struct cell *tcell;
     afs_fid2_t *afid = (afs_fid2_t *) fidp;
-    OSI_VC_CONVERT(avc)
+    OSI_VC_CONVERT(avc);
 
-       osi_Assert(sizeof(fid_t) >= sizeof(afs_fid2_t));
+    osi_Assert(sizeof(fid_t) >= sizeof(afs_fid2_t));
     afid->af_len = sizeof(afs_fid2_t) - sizeof(afid->af_len);
 
     tcell = afs_GetCell(avc->fid.Cell, READ_LOCK);
index fc86e54ff42eaa52ad3f1732b1aaafab9697bf3e..03cc0658217e2db8c9fb8ad4ade0758deda19dfc 100644 (file)
@@ -15,7 +15,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/LINUX/osi_module.c,v 1.52 2004/06/21 21:46:17 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/LINUX/osi_module.c,v 1.52.2.1 2004/08/25 07:03:36 shadow Exp $");
 
 #include "afs/sysincludes.h"
 #include "afsincludes.h"
@@ -47,18 +47,25 @@ asmlinkage int (*sys_settimeofdayp) (struct timeval * tv,
 #endif
 asmlinkage long (*sys_setgroupsp) (int gidsetsize, gid_t * grouplist);
 #ifdef EXPORTED_SYS_CALL_TABLE
-#ifdef AFS_SPARC64_LINUX20_ENV
-extern unsigned int sys_call_table[];  /* changed to uint because SPARC64 has syscaltable of 32bit items */
+#if defined(AFS_SPARC64_LINUX20_ENV) || defined(AFS_S390X_LINUX24_ENV)
+extern unsigned int sys_call_table[];  /* changed to uint because SPARC64 and S390X have syscalltable of 32bit items */
 #else
 extern void *sys_call_table[]; /* safer for other linuces */
 #endif
 #else /* EXPORTED_SYS_CALL_TABLE */
-#ifdef AFS_SPARC64_LINUX20_ENV
-static unsigned int *sys_call_table;   /* changed to uint because SPARC64 has syscaltable of 32bit items */
+#if defined(AFS_SPARC64_LINUX20_ENV) || defined(AFS_S390X_LINUX24_ENV)
+static unsigned int *sys_call_table;   /* changed to uint because SPARC64 and S390X have syscalltable of 32bit items */
 #else
 static void **sys_call_table;  /* safer for other linuces */
 #endif
 #endif
+
+#if defined(AFS_S390X_LINUX24_ENV)
+#define _S(x) ((x)<<1)
+#else
+#define _S(x) x
+#endif
+
 extern struct file_system_type afs_fs_type;
 
 static long get_page_offset(void);
@@ -76,7 +83,7 @@ unsigned long afs_linux_page_offset = 0;      /* contains the PAGE_OFFSET value */
 /* Since sys_ni_syscall is not exported, I need to cache it in order to restore
  * it.
  */
-#ifdef AFS_SPARC64_LINUX20_ENV
+#if defined(AFS_SPARC64_LINUX20_ENV) || defined(AFS_S390X_LINUX24_ENV)
 static unsigned int afs_ni_syscall = 0;
 #else
 static void *afs_ni_syscall = 0;
@@ -208,7 +215,7 @@ asmlinkage int (*sys_setgroups32p) (int gidsetsize,
                                    __kernel_gid32_t * grouplist);
 #endif /* AFS_LINUX24_ENV */
 
-#ifdef AFS_SPARC64_LINUX20_ENV
+#if defined(AFS_SPARC64_LINUX20_ENV) || defined(AFS_S390X_LINUX24_ENV)
 #define POINTER2SYSCALL (unsigned int)(unsigned long)
 #define SYSCALL2POINTER (void *)(long)
 #else
@@ -365,7 +372,7 @@ init_module(void)
        printf("Failed to find address of sys_call_table\n");
     } else {
        printf("Found sys_call_table at %x\n", sys_call_table);
-#ifdef AFS_SPARC64_LINUX20_ENV
+#if defined(AFS_SPARC64_LINUX20_ENV) || defined(AFS_S390X_LINUX24_ENV)
        error cant support this yet.;
 #endif /* AFS_SPARC64_LINUX20_ENV */
 #endif /* EXPORTED_SYS_CALL_TABLE */
@@ -435,7 +442,7 @@ init_module(void)
 
        /* Initialize pointers to kernel syscalls. */
 #if !defined(AFS_LINUX24_ENV)
-       sys_settimeofdayp = SYSCALL2POINTER sys_call_table[__NR_settimeofday];
+       sys_settimeofdayp = SYSCALL2POINTER sys_call_table[_S(__NR_settimeofday)];
 #endif /* AFS_IA64_LINUX20_ENV */
 
        /* setup AFS entry point. */
@@ -443,7 +450,7 @@ init_module(void)
 #if defined(AFS_IA64_LINUX20_ENV)
                SYSCALL2POINTER sys_call_table[__NR_afs_syscall - 1024]
 #else
-               SYSCALL2POINTER sys_call_table[__NR_afs_syscall]
+               SYSCALL2POINTER sys_call_table[_S(__NR_afs_syscall)]
 #endif
                == afs_syscall) {
            printf("AFS syscall entry point already in use!\n");
@@ -454,8 +461,8 @@ init_module(void)
        sys_call_table[__NR_afs_syscall - 1024] =
                POINTER2SYSCALL((struct fptr *)afs_syscall_stub)->ip;
 #else /* AFS_IA64_LINUX20_ENV */
-       afs_ni_syscall = sys_call_table[__NR_afs_syscall];
-       sys_call_table[__NR_afs_syscall] = POINTER2SYSCALL afs_syscall;
+       afs_ni_syscall = sys_call_table[_S(__NR_afs_syscall)];
+       sys_call_table[_S(__NR_afs_syscall)] = POINTER2SYSCALL afs_syscall;
 #ifdef AFS_SPARC64_LINUX20_ENV
        afs_ni_syscall32 = sys_call_table32[__NR_afs_syscall];
        sys_call_table32[__NR_afs_syscall] = POINTER2SYSCALL afs_syscall32;
@@ -486,8 +493,8 @@ init_module(void)
     sys_call_table[__NR_setgroups - 1024] =
        POINTER2SYSCALL((struct fptr *)afs_xsetgroups_stub)->ip;
 #else /* AFS_IA64_LINUX20_ENV */
-    sys_setgroupsp = SYSCALL2POINTER sys_call_table[__NR_setgroups];
-    sys_call_table[__NR_setgroups] = POINTER2SYSCALL afs_xsetgroups;
+    sys_setgroupsp = SYSCALL2POINTER sys_call_table[_S(__NR_setgroups)];
+    sys_call_table[_S(__NR_setgroups)] = POINTER2SYSCALL afs_xsetgroups;
 #ifdef AFS_SPARC64_LINUX20_ENV
     sys32_setgroupsp = SYSCALL2POINTER sys_call_table32[__NR_setgroups];
     sys_call_table32[__NR_setgroups] = POINTER2SYSCALL afs32_xsetgroups;
@@ -548,8 +555,8 @@ cleanup_module(void)
        POINTER2SYSCALL((struct fptr *)sys_setgroupsp)->ip;
     sys_call_table[__NR_afs_syscall - 1024] = afs_ni_syscall;
 #else /* AFS_IA64_LINUX20_ENV */
-    sys_call_table[__NR_setgroups] = POINTER2SYSCALL sys_setgroupsp;
-    sys_call_table[__NR_afs_syscall] = afs_ni_syscall;
+    sys_call_table[_S(__NR_setgroups)] = POINTER2SYSCALL sys_setgroupsp;
+    sys_call_table[_S(__NR_afs_syscall)] = afs_ni_syscall;
 # ifdef AFS_SPARC64_LINUX20_ENV
     sys_call_table32[__NR_setgroups] = POINTER2SYSCALL sys32_setgroupsp;
     sys_call_table32[__NR_afs_syscall] = afs_ni_syscall32;
index d6db79dfd8cd30e512a16f3cbc3cbf2e355acaa2..7e985af7be242c247c86cc4240742c1e69af64c1 100644 (file)
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/LINUX/osi_vnodeops.c,v 1.81 2004/07/21 22:23:38 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/LINUX/osi_vnodeops.c,v 1.81.2.2 2004/08/25 07:10:39 shadow Exp $");
 
 #include "afs/sysincludes.h"
 #include "afsincludes.h"
 #include "afs/afs_stats.h"
 #include "afs/afs_osidnlc.h"
 #include "h/mm.h"
+#ifdef HAVE_MM_INLINE_H
+#include "h/mm_inline.h"
+#endif
 #include "h/pagemap.h"
 #if defined(AFS_LINUX24_ENV)
 #include "h/smp_lock.h"
@@ -1085,6 +1088,12 @@ afs_linux_lookup(struct inode *dip, struct dentry *dp)
            printk
                ("afs_linux_lookup: ip->i_mode 0x%x  dp->d_name.name %s  code %d\n",
                 ip->i_mode, dp->d_name.name, code);
+#ifdef STRUCT_INODE_HAS_I_SECURITY
+       if (ip->i_security == NULL) {
+           if (security_inode_alloc(ip))
+               panic("afs_linux_lookup: Cannot allocate inode security");
+       }
+#endif
 #else
        if (S_ISDIR(ip->i_mode))
            ip->i_op = &afs_dir_iops;
index b6f6cfb97d5cde9d9ebd7bd0771539fd134611c1..bd9cb997f3e032266adf2082e3fbdb17b79de910 100644 (file)
@@ -15,7 +15,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/UKERNEL/afs_usrops.c,v 1.27 2004/05/20 19:15:04 kolya Exp $");
+    ("$Header: /cvs/openafs/src/afs/UKERNEL/afs_usrops.c,v 1.27.2.1 2004/08/25 07:15:34 shadow Exp $");
 
 
 #ifdef UKERNEL
@@ -1702,7 +1702,7 @@ uafs_Init(char *rn, char *mountDirParam, char *confDirParam,
     {
        /* parse multihomed address files */
        char reason[1024];
-       st = parseNetFiles(buffer, maskbuffer, mtubuffer, MAXIPADDRS, reason,
+       st = parseNetFiles((afs_uint32*)buffer,(afs_uint32*) maskbuffer, (afs_uint32*)mtubuffer, MAXIPADDRS, reason,
                           AFSDIR_CLIENT_NETINFO_FILEPATH,
                           AFSDIR_CLIENT_NETRESTRICT_FILEPATH);
        if (st > 0)
@@ -2265,7 +2265,7 @@ uafs_LookupName(char *path, struct usr_vnode *parentVp,
            /*
             * We need execute permission to search a directory
             */
-           code = afs_access(vp, VEXEC, u.u_cred);
+           code = afs_access(VTOAFS(vp), VEXEC, u.u_cred);
            if (code != 0) {
                VN_RELE(vp);
                afs_osi_Free(tmpPath, strlen(path) + 1);
@@ -2638,6 +2638,8 @@ uafs_open_r(char *path, int flags, int mode)
     struct usr_vattr attrs;
     char *nameP;
 
+    struct vcache* vc;
+
     if (uafs_IsRoot(path)) {
        fileP = afs_RootVnode;
        VN_HOLD(fileP);
@@ -2680,10 +2682,11 @@ uafs_open_r(char *path, int flags, int mode)
                attrs.va_size = 0;
            }
            fileP = NULL;
+           vc=VTOAFS(fileP);
            code =
-               afs_create(dirP, nameP, &attrs,
+               afs_create(VTOAFS(dirP), nameP, &attrs,
                           (flags & O_EXCL) ? usr_EXCL : usr_NONEXCL, mode,
-                          &fileP, u.u_cred);
+                          &vc, u.u_cred);
            VN_RELE(dirP);
            if (code != 0) {
                errno = code;
@@ -2710,7 +2713,7 @@ uafs_open_r(char *path, int flags, int mode)
            }
            if (!fileMode)
                fileMode = VREAD;       /* since O_RDONLY is 0 */
-           code = afs_access(fileP, fileMode, u.u_cred);
+           code = afs_access(VTOAFS(fileP), fileMode, u.u_cred);
            if (code != 0) {
                VN_RELE(fileP);
                errno = code;
@@ -2720,7 +2723,7 @@ uafs_open_r(char *path, int flags, int mode)
            /*
             * Get the file attributes, all we need is the size
             */
-           code = afs_getattr(fileP, &attrs, u.u_cred);
+           code = afs_getattr(VTOAFS(fileP), &attrs, u.u_cred);
            if (code != 0) {
                VN_RELE(fileP);
                errno = code;
@@ -2762,7 +2765,7 @@ uafs_open_r(char *path, int flags, int mode)
     if ((flags & O_TRUNC) && (attrs.va_size != 0)) {
        usr_vattr_null(&attrs);
        attrs.va_size = 0;
-       code = afs_setattr(fileP, &attrs, u.u_cred);
+       code = afs_setattr(VTOAFS(fileP), &attrs, u.u_cred);
        if (code != 0) {
            VN_RELE(fileP);
            errno = code;
@@ -2770,10 +2773,11 @@ uafs_open_r(char *path, int flags, int mode)
        }
     }
 
+    vc=VTOAFS(fileP);  
     /*
      * do the open
      */
-    code = afs_open(&fileP, openFlags, u.u_cred);
+    code = afs_open(&vc, openFlags, u.u_cred);
     if (code != 0) {
        VN_RELE(fileP);
        errno = code;
@@ -2869,7 +2873,7 @@ uafs_write_r(int fd, char *buf, int len)
      * do the write
      */
 
-    code = afs_write(fileP, &uio, afs_FileFlags[fd], u.u_cred, 0);
+    code = afs_write(VTOAFS(fileP), &uio, afs_FileFlags[fd], u.u_cred, 0);
     if (code) {
        errno = code;
        return -1;
@@ -2925,7 +2929,7 @@ uafs_read_r(int fd, char *buf, int len)
     /*
      * do the read
      */
-    code = afs_read(fileP, &uio, u.u_cred, 0, &bufP, 0);
+    code = afs_read(VTOAFS(fileP), &uio, u.u_cred, 0, &bufP, 0);
     if (code) {
        errno = code;
        return -1;
@@ -2951,7 +2955,7 @@ uafs_GetAttr(struct usr_vnode *vp, struct stat *stats)
     /*
      * Get the attributes
      */
-    code = afs_getattr(vp, &attrs, u.u_cred);
+    code = afs_getattr(VTOAFS(vp), &attrs, u.u_cred);
     if (code != 0) {
        return code;
     }
@@ -3102,7 +3106,7 @@ uafs_chmod_r(char *path, int mode)
     }
     usr_vattr_null(&attrs);
     attrs.va_mode = mode;
-    code = afs_setattr(vp, &attrs, u.u_cred);
+    code = afs_setattr(VTOAFS(vp), &attrs, u.u_cred);
     VN_RELE(vp);
     if (code != 0) {
        errno = code;
@@ -3138,7 +3142,7 @@ uafs_fchmod_r(int fd, int mode)
     }
     usr_vattr_null(&attrs);
     attrs.va_mode = mode;
-    code = afs_setattr(vp, &attrs, u.u_cred);
+    code = afs_setattr(VTOAFS(vp), &attrs, u.u_cred);
     if (code != 0) {
        errno = code;
        return -1;
@@ -3173,7 +3177,7 @@ uafs_truncate_r(char *path, int length)
     }
     usr_vattr_null(&attrs);
     attrs.va_size = length;
-    code = afs_setattr(vp, &attrs, u.u_cred);
+    code = afs_setattr(VTOAFS(vp), &attrs, u.u_cred);
     VN_RELE(vp);
     if (code != 0) {
        errno = code;
@@ -3209,7 +3213,7 @@ uafs_ftruncate_r(int fd, int length)
     }
     usr_vattr_null(&attrs);
     attrs.va_size = length;
-    code = afs_setattr(vp, &attrs, u.u_cred);
+    code = afs_setattr(VTOAFS(vp), &attrs, u.u_cred);
     if (code != 0) {
        errno = code;
        return -1;
@@ -3251,7 +3255,7 @@ uafs_lseek_r(int fd, int offset, int whence)
        newpos = offset;
        break;
     case SEEK_END:
-       code = afs_getattr(vp, &attrs, u.u_cred);
+       code = afs_getattr(VTOAFS(vp), &attrs, u.u_cred);
        if (code != 0) {
            errno = code;
            return -1;
index b0c26711b018dcdf0cdd7b87f68c7f9cdaa9194a..7eeca4fe9ab245d763beb2806643addbe265ea44 100644 (file)
@@ -11,7 +11,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/UKERNEL/osi_vfsops.c,v 1.10 2003/07/15 23:14:29 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/UKERNEL/osi_vfsops.c,v 1.10.2.1 2004/08/25 07:09:34 shadow Exp $");
 
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
 #include "afsincludes.h"       /* Afs-based standard headers */
@@ -75,9 +75,9 @@ afs_root(OSI_VFS_ARG(afsp), avpp)
     register afs_int32 code = 0;
     struct vrequest treq;
     register struct vcache *tvp = 0;
-    OSI_VFS_CONVERT(afsp)
+    OSI_VFS_CONVERT(afsp);
 
-       AFS_STATCNT(afs_root);
+    AFS_STATCNT(afs_root);
     if (afs_globalVp && (afs_globalVp->states & CStatd)) {
        tvp = afs_globalVp;
     } else {
index 81a0d111b70c8494406b20e389c68e1c1352c761..c56bbec47166dfcf8fea679762723f48c5bf506d 100644 (file)
@@ -23,7 +23,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_access.c,v 1.10 2003/07/15 23:14:29 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_access.c,v 1.10.2.1 2004/08/25 07:09:35 shadow Exp $");
 
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
 #include "afsincludes.h"       /* Afs-based standard headers */
@@ -189,9 +189,9 @@ afs_access(OSI_VC_DECL(avc), register afs_int32 amode,
     register afs_int32 code;
     struct vrequest treq;
     struct afs_fakestat_state fakestate;
-    OSI_VC_CONVERT(avc)
+    OSI_VC_CONVERT(avc);
 
-       AFS_STATCNT(afs_access);
+    AFS_STATCNT(afs_access);
     afs_Trace3(afs_iclSetp, CM_TRACE_ACCESS, ICL_TYPE_POINTER, avc,
               ICL_TYPE_INT32, amode, ICL_TYPE_OFFSET,
               ICL_HANDLE_OFFSET(avc->m.Length));
@@ -314,9 +314,9 @@ afs_getRights(OSI_VC_DECL(avc), register afs_int32 arights,
 {
     register afs_int32 code;
     struct vrequest treq;
-    OSI_VC_CONVERT(avc)
+    OSI_VC_CONVERT(avc);
 
-       if (code = afs_InitReq(&treq, acred))
+    if (code = afs_InitReq(&treq, acred))
        return code;
 
     code = afs_VerifyVCache(avc, &treq);
index 682c1d565dcfc559c046c07f9c29bdd3172bc232..aa154054a673b7ae688e3011c26ff31fe8547ab3 100644 (file)
@@ -24,7 +24,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_attrs.c,v 1.27 2003/10/24 06:26:04 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_attrs.c,v 1.27.2.1 2004/08/25 07:09:35 shadow Exp $");
 
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
 #include "afsincludes.h"       /* Afs-based standard headers */
@@ -71,7 +71,7 @@ afs_CopyOutAttrs(register struct vcache *avc, register struct vattr *attrs)
     }
 #if defined(AFS_DARWIN_ENV)
     {
-        extern u_int32_t afs_darwin_realmodes;
+       extern u_int32_t afs_darwin_realmodes;
        if (!afs_darwin_realmodes) {
            /* Mac OS X uses the mode bits to determine whether a file or
             * directory is accessible, and believes them, even though under
@@ -80,13 +80,13 @@ afs_CopyOutAttrs(register struct vcache *avc, register struct vattr *attrs)
             * conservatively.
             */
            if (S_ISDIR(attrs->va_mode)) {
-               /* all access bits need to be set for directories, since even
+               /* all access bits need to be set for directories, since even
                 * a mode 0 directory can still be used normally.
                 */
-               attrs->va_mode |= ACCESSPERMS;
+               attrs->va_mode |= ACCESSPERMS;
            } else {
-               /* for other files, replicate the user bits to group and other */
-               mode_t ubits = (attrs->va_mode & S_IRWXU) >> 6;
+               /* for other files, replicate the user bits to group and other */
+               mode_t ubits = (attrs->va_mode & S_IRWXU) >> 6;
                attrs->va_mode |= ubits | (ubits << 3);
            }
        }
@@ -105,7 +105,7 @@ afs_CopyOutAttrs(register struct vcache *avc, register struct vattr *attrs)
     attrs->va_fsid = avc->v.v_mount->m_stat.f_fsid.val[0];
 #else
 #ifdef AFS_DARWIN70_ENV
-    attrs->va_fsid = avc->v.v_mount->mnt_stat.f_fsid.val[0]; 
+    attrs->va_fsid = avc->v.v_mount->mnt_stat.f_fsid.val[0];
 #else /* ! AFS_DARWIN70_ENV */
     attrs->va_fsid = 1;
 #endif /* AFS_DARWIN70_ENV */
@@ -242,9 +242,9 @@ afs_getattr(OSI_VC_DECL(avc), struct vattr *attrs, struct AFS_UCRED *acred)
     extern struct unixuser *afs_FindUser();
     struct unixuser *au;
     int inited = 0;
-    OSI_VC_CONVERT(avc)
+    OSI_VC_CONVERT(avc);
 
-       AFS_STATCNT(afs_getattr);
+    AFS_STATCNT(afs_getattr);
     afs_Trace2(afs_iclSetp, CM_TRACE_GETATTR, ICL_TYPE_POINTER, avc,
               ICL_TYPE_OFFSET, ICL_HANDLE_OFFSET(avc->m.Length));
 
@@ -474,9 +474,9 @@ afs_setattr(OSI_VC_DECL(avc), register struct vattr *attrs,
     struct AFSStoreStatus astat;
     register afs_int32 code;
     struct afs_fakestat_state fakestate;
-    OSI_VC_CONVERT(avc)
+    OSI_VC_CONVERT(avc);
 
-       AFS_STATCNT(afs_setattr);
+    AFS_STATCNT(afs_setattr);
 #if defined(AFS_SUN5_ENV) || defined(AFS_SGI_ENV) || defined(AFS_LINUX22_ENV)
     afs_Trace4(afs_iclSetp, CM_TRACE_SETATTR, ICL_TYPE_POINTER, avc,
               ICL_TYPE_INT32, attrs->va_mask, ICL_TYPE_OFFSET,
index f3f0334c6b7f37c94b3c012406361c7a9bcded4f..d31d91959fe02266f771f08a78ac367d041a8801 100644 (file)
@@ -17,7 +17,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_create.c,v 1.16 2003/07/15 23:14:30 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_create.c,v 1.16.2.1 2004/08/25 07:09:35 shadow Exp $");
 
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
 #include "afsincludes.h"       /* Afs-based standard headers */
@@ -71,10 +71,11 @@ afs_create(OSI_VC_DECL(adp), char *aname, struct vattr *attrs,
     struct vcache *tvc;
     struct volume *volp = 0;
     struct afs_fakestat_state fakestate;
-    XSTATS_DECLS OSI_VC_CONVERT(adp)
+    XSTATS_DECLS;
+    OSI_VC_CONVERT(adp);
 
 
-      AFS_STATCNT(afs_create);
+    AFS_STATCNT(afs_create);
     if ((code = afs_InitReq(&treq, acred)))
        goto done2;
 
index bae4c0113163b8abad8c5c805d21917d01a32d8e..067e96be6d2a400b525da313e39d404645e8fa9a 100644 (file)
@@ -21,7 +21,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_dirops.c,v 1.14 2003/08/29 22:00:04 rees Exp $");
+    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_dirops.c,v 1.14.2.1 2004/08/25 07:09:35 shadow Exp $");
 
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
 #include "afsincludes.h"       /* Afs-based standard headers */
@@ -47,7 +47,7 @@ afs_mkdir(ndp, attrs)
     struct ucred *acred = ndp->ni_cred;
 #else /* AFS_OSF_ENV */
 afs_mkdir(OSI_VC_ARG(adp), aname, attrs, avcp, acred)
-    OSI_VC_DECL(adp);
+     OSI_VC_DECL(adp);
      register struct vcache **avcp;
      char *aname;
      struct vattr *attrs;
@@ -67,9 +67,10 @@ afs_mkdir(OSI_VC_ARG(adp), aname, attrs, avcp, acred)
     struct AFSVolSync tsync;
     afs_int32 now;
     struct afs_fakestat_state fakestate;
-    XSTATS_DECLS OSI_VC_CONVERT(adp)
+    XSTATS_DECLS;
+    OSI_VC_CONVERT(adp);
 
-      AFS_STATCNT(afs_mkdir);
+    AFS_STATCNT(afs_mkdir);
     afs_Trace2(afs_iclSetp, CM_TRACE_MKDIR, ICL_TYPE_POINTER, adp,
               ICL_TYPE_STRING, aname);
 
@@ -194,7 +195,7 @@ afs_rmdir(OSI_VC_ARG(adp), aname, cdirp, acred)
 #else
 afs_rmdir(adp, aname, acred)
 #endif
-    OSI_VC_DECL(adp);
+     OSI_VC_DECL(adp);
      char *aname;
      struct AFS_UCRED *acred;
 {
@@ -208,9 +209,10 @@ afs_rmdir(adp, aname, acred)
     struct AFSFetchStatus OutDirStatus;
     struct AFSVolSync tsync;
     struct afs_fakestat_state fakestate;
-    XSTATS_DECLS OSI_VC_CONVERT(adp)
+    XSTATS_DECLS;
+    OSI_VC_CONVERT(adp);
 
-      AFS_STATCNT(afs_rmdir);
+    AFS_STATCNT(afs_rmdir);
 
     afs_Trace2(afs_iclSetp, CM_TRACE_RMDIR, ICL_TYPE_POINTER, adp,
               ICL_TYPE_STRING, aname);
index 67aa15f7e1b54083c0c88cb5a9c0991a71080f27..739f055297c5caf890f513ca0fc27313f3f02f08 100644 (file)
@@ -18,7 +18,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_fid.c,v 1.11 2003/07/15 23:14:30 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_fid.c,v 1.11.2.1 2004/08/25 07:09:35 shadow Exp $");
 
 #if !defined(AFS_DUX40_ENV) && !defined(AFS_LINUX20_ENV) && !defined(AFS_DARWIN_ENV) && !defined(AFS_OBSD_ENV)
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
@@ -75,7 +75,7 @@ afs_fid(OSI_VC_ARG(avc), fidpp, credp)
 #else
 afs_fid(OSI_VC_ARG(avc), fidpp)
 #endif                         /* AFS_AIX41_ENV */
-OSI_VC_DECL(avc);
+     OSI_VC_DECL(avc);
 #if    defined(AFS_AIX_ENV) || defined(AFS_OSF_ENV) || defined(AFS_SUN54_ENV)
      struct fid *fidpp;
 #else
@@ -88,9 +88,9 @@ OSI_VC_DECL(avc);
     extern struct vcache *afs_globalVp;
     int SizeOfSmallFid = SIZEOF_SMALLFID;
     int rootvp = 0;
-    OSI_VC_CONVERT(avc)
+    OSI_VC_CONVERT(avc);
 
-       AFS_STATCNT(afs_fid);
+    AFS_STATCNT(afs_fid);
 
     if (afs_shuttingdown)
        return EIO;
index ea9e0572d89a28842cca79ced723afb157d5dabb..f1c7cdc374f6c6381dae87fafa0da443f354b6d5 100644 (file)
@@ -16,7 +16,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_flock.c,v 1.24 2003/07/15 23:14:30 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_flock.c,v 1.24.2.1 2004/08/25 07:09:35 shadow Exp $");
 
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
 #include "afsincludes.h"       /* Afs-based standard headers */
@@ -226,7 +226,8 @@ HandleFlock(register struct vcache *avc, int acom, struct vrequest *areq,
     struct AFSVolSync tsync;
     afs_int32 lockType;
     struct AFS_FLOCK flock;
-    XSTATS_DECLS AFS_STATCNT(HandleFlock);
+    XSTATS_DECLS;
+    AFS_STATCNT(HandleFlock);
     code = 0;                  /* default when we don't make any network calls */
     lockIdSet(&flock, NULL, clid);
 
@@ -804,7 +805,8 @@ GetFlockCount(struct vcache *avc, struct vrequest *areq)
     struct AFSCallBack CallBack;
     struct AFSVolSync tsync;
     int temp;
-    XSTATS_DECLS temp = areq->flags & O_NONBLOCK;
+    XSTATS_DECLS;
+    temp = areq->flags & O_NONBLOCK;
     areq->flags |= O_NONBLOCK;
 
     do {
index db500430b8516eb31851587739a0a119c00a355f..d5c085df38afd43c2010c67c099bb58747893d27 100644 (file)
@@ -17,7 +17,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_link.c,v 1.15 2003/08/29 22:00:04 rees Exp $");
+    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_link.c,v 1.15.2.1 2004/08/25 07:09:35 shadow Exp $");
 
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
 #include "afsincludes.h"       /* Afs-based standard headers */
@@ -46,7 +46,7 @@ afs_link(OSI_VC_ARG(adp), avc, aname, acred)
 #else
 afs_link(avc, OSI_VC_ARG(adp), aname, acred)
 #endif
-    OSI_VC_DECL(adp);
+     OSI_VC_DECL(adp);
      struct vcache *avc;
      char *aname;
      struct AFS_UCRED *acred;
@@ -60,9 +60,10 @@ afs_link(avc, OSI_VC_ARG(adp), aname, acred)
     struct AFSFetchStatus OutFidStatus, OutDirStatus;
     struct AFSVolSync tsync;
     struct afs_fakestat_state vfakestate, dfakestate;
-    XSTATS_DECLS OSI_VC_CONVERT(adp)
+    XSTATS_DECLS;
+    OSI_VC_CONVERT(adp);
 
-      AFS_STATCNT(afs_link);
+    AFS_STATCNT(afs_link);
     afs_Trace3(afs_iclSetp, CM_TRACE_LINK, ICL_TYPE_POINTER, adp,
               ICL_TYPE_POINTER, avc, ICL_TYPE_STRING, aname);
     /* create a hard link; new entry is aname in dir adp */
index 8987c9820987667f2d5e0556285e1a1b85c427da..077608dcc93ef28c624ee386bccd3c83a9481870 100644 (file)
@@ -18,7 +18,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_lookup.c,v 1.50 2004/03/17 06:43:36 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_lookup.c,v 1.50.2.1 2004/08/25 07:09:35 shadow Exp $");
 
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
 #include "afsincludes.h"       /* Afs-based standard headers */
@@ -402,7 +402,7 @@ afs_ENameOK(register char *aname)
 
 static int
 afs_getsysname(register struct vrequest *areq, register struct vcache *adp,
-               register char *bufp, int *num, char **sysnamelist[])
+              register char *bufp, int *num, char **sysnamelist[])
 {
     register struct unixuser *au;
     register afs_int32 error;
@@ -411,29 +411,29 @@ afs_getsysname(register struct vrequest *areq, register struct vcache *adp,
 
     *sysnamelist = afs_sysnamelist;
 
-    if (!afs_nfsexporter) 
-       strcpy(bufp, (*sysnamelist)[0]);
+    if (!afs_nfsexporter)
+       strcpy(bufp, (*sysnamelist)[0]);
     else {
-       au = afs_GetUser(areq->uid, adp->fid.Cell, 0);
-       if (au->exporter) {
-           error = EXP_SYSNAME(au->exporter, (char *)0, sysnamelist, num);
-           if (error) {
-               strcpy(bufp, "@sys");
-               afs_PutUser(au, 0);   
-               return -1;
-           } else {
-               strcpy(bufp, (*sysnamelist)[0]);
-           }
-       } else 
-           strcpy(bufp, afs_sysname);
-       afs_PutUser(au, 0);       
+       au = afs_GetUser(areq->uid, adp->fid.Cell, 0);
+       if (au->exporter) {
+           error = EXP_SYSNAME(au->exporter, (char *)0, sysnamelist, num);
+           if (error) {
+               strcpy(bufp, "@sys");
+               afs_PutUser(au, 0);
+               return -1;
+           } else {
+               strcpy(bufp, (*sysnamelist)[0]);
+           }
+       } else
+           strcpy(bufp, afs_sysname);
+       afs_PutUser(au, 0);
     }
     return 0;
 }
 
 void
-Check_AtSys(register struct vcache *avc, char *aname, 
-            struct sysname_info *state, struct vrequest *areq)
+Check_AtSys(register struct vcache *avc, char *aname,
+           struct sysname_info *state, struct vrequest *areq)
 {
     int num = 0;
     char **sysnamelist[MAXSYSNAME];
@@ -442,7 +442,8 @@ Check_AtSys(register struct vcache *avc, char *aname,
        state->offset = 0;
        state->name = (char *)osi_AllocLargeSpace(AFS_SMALLOCSIZ);
        state->allocked = 1;
-       state->index = afs_getsysname(areq, avc, state->name, &num, sysnamelist);
+       state->index =
+           afs_getsysname(areq, avc, state->name, &num, sysnamelist);
     } else {
        state->offset = -1;
        state->allocked = 0;
@@ -453,54 +454,56 @@ Check_AtSys(register struct vcache *avc, char *aname,
 
 int
 Next_AtSys(register struct vcache *avc, struct vrequest *areq,
-           struct sysname_info *state)
+          struct sysname_info *state)
 {
     int num = afs_sysnamecount;
     char **sysnamelist[MAXSYSNAME];
 
     if (state->index == -1)
-       return 0;       /* No list */
+       return 0;               /* No list */
 
-    /* Check for the initial state of aname != "@sys" in Check_AtSys*/
+    /* Check for the initial state of aname != "@sys" in Check_AtSys */
     if (state->offset == -1 && state->allocked == 0) {
-       register char *tname;
-
-       /* Check for .*@sys */
-       for (tname=state->name; *tname; tname++)
-           /*Move to the end of the string*/;
-
-       if ((tname > state->name + 4) && (AFS_EQ_ATSYS(tname-4))) {
-           state->offset = (tname - 4) - state->name;
-           tname = (char *) osi_AllocLargeSpace(AFS_LRALLOCSIZ);
-           strncpy(tname, state->name, state->offset);
-           state->name = tname;
-           state->allocked = 1;
-            num = 0;
-            state->index = afs_getsysname(areq, avc, state->name+state->offset,
-                                          &num, sysnamelist);
-           return 1;
-       } else
-           return 0; /* .*@sys doesn't match either */
+       register char *tname;
+
+       /* Check for .*@sys */
+       for (tname = state->name; *tname; tname++)
+           /*Move to the end of the string */ ;
+
+       if ((tname > state->name + 4) && (AFS_EQ_ATSYS(tname - 4))) {
+           state->offset = (tname - 4) - state->name;
+           tname = (char *)osi_AllocLargeSpace(AFS_LRALLOCSIZ);
+           strncpy(tname, state->name, state->offset);
+           state->name = tname;
+           state->allocked = 1;
+           num = 0;
+           state->index =
+               afs_getsysname(areq, avc, state->name + state->offset, &num,
+                              sysnamelist);
+           return 1;
+       } else
+           return 0;           /* .*@sys doesn't match either */
     } else {
-       register struct unixuser *au;
-       register afs_int32 error;
-      
-       *sysnamelist = afs_sysnamelist;
-
-       if (afs_nfsexporter) {
-           au = afs_GetUser(areq->uid, avc->fid.Cell, 0);
-           if (au->exporter) {
-               error = EXP_SYSNAME(au->exporter, (char *)0, sysnamelist, num);
-               if (error) {
-                   return 0;
-               }
-           } 
-           afs_PutUser(au, 0); 
-       }
-       if (++(state->index) >= num || !(*sysnamelist)[state->index])
-           return 0;   /* end of list */
+       register struct unixuser *au;
+       register afs_int32 error;
+
+       *sysnamelist = afs_sysnamelist;
+
+       if (afs_nfsexporter) {
+           au = afs_GetUser(areq->uid, avc->fid.Cell, 0);
+           if (au->exporter) {
+               error =
+                   EXP_SYSNAME(au->exporter, (char *)0, sysnamelist, num);
+               if (error) {
+                   return 0;
+               }
+           }
+           afs_PutUser(au, 0);
+       }
+       if (++(state->index) >= num || !(*sysnamelist)[state->index])
+           return 0;           /* end of list */
     }
-    strcpy(state->name+state->offset, (*sysnamelist)[state->index]);
+    strcpy(state->name + state->offset, (*sysnamelist)[state->index]);
     return 1;
 }
 
@@ -509,7 +512,7 @@ extern int BlobScan(ino64_t * afile, afs_int32 ablob);
 #else
 #if defined(AFS_HPUX1123_ENV)
 /* DEE should use the new afs_inode_t  for all */
-extern int BlobScan(ino_t *afile, afs_int32 ablob);
+extern int BlobScan(ino_t * afile, afs_int32 ablob);
 #else
 #if defined AFS_LINUX_64BIT_KERNEL
 extern int BlobScan(long *afile, afs_int32 ablob);
@@ -577,13 +580,13 @@ afs_DoBulkStat(struct vcache *adp, long dirCookie, struct vrequest *areqp)
     struct VenusFid dotdot;
     int flagIndex;             /* First file with bulk fetch flag set */
     int inlinebulk = 0;                /* Did we use InlineBulk RPC or not? */
-    XSTATS_DECLS
-       /* first compute some basic parameters.  We dont want to prefetch more
-        * than a fraction of the cache in any given call, and we want to preserve
-        * a portion of the LRU queue in any event, so as to avoid thrashing
-        * the entire stat cache (we will at least leave some of it alone).
-        * presently dont stat more than 1/8 the cache in any one call.      */
-       nentries = afs_cacheStats / 8;
+    XSTATS_DECLS;
+    /* first compute some basic parameters.  We dont want to prefetch more
+     * than a fraction of the cache in any given call, and we want to preserve
+     * a portion of the LRU queue in any event, so as to avoid thrashing
+     * the entire stat cache (we will at least leave some of it alone).
+     * presently dont stat more than 1/8 the cache in any one call.      */
+    nentries = afs_cacheStats / 8;
 
     /* dont bother prefetching more than one calls worth of info */
     if (nentries > AFSCBMAX)
@@ -1111,7 +1114,7 @@ afs_lookup(adp, aname, avcp, acred, flags)
 afs_lookup(adp, aname, avcp, acred)
 #endif                         /* UKERNEL */
 #endif                         /* SUN5 || SGI */
-OSI_VC_DECL(adp);
+     OSI_VC_DECL(adp);
      struct vcache **avcp;
      char *aname;
      struct AFS_UCRED *acred;
@@ -1125,7 +1128,7 @@ OSI_VC_DECL(adp);
     int pass = 0, hit = 0;
     long dirCookie;
     extern afs_int32 afs_mariner;      /*Writing activity to log? */
-    OSI_VC_CONVERT(adp)
+    OSI_VC_CONVERT(adp);
     afs_hyper_t versionNo;
     int no_read_access = 0;
     struct sysname_info sysState;      /* used only for @sys checking */
index 52ec7901217b496d03721a8b4af22730e2c344a8..a1f351a4213a27d79a01db0ad7d9fee140168689 100644 (file)
@@ -23,7 +23,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_readdir.c,v 1.24 2004/08/09 00:54:05 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_readdir.c,v 1.24.2.1 2004/08/25 07:09:35 shadow Exp $");
 
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
 #include "afsincludes.h"       /* Afs-based standard headers */
@@ -72,8 +72,8 @@ BlobScan(ino64_t * afile, afs_int32 ablob)
 #else
 #if defined(AFS_HPUX1123_ENV)
 /*DEE should use afs_inode_t for all */
-int 
-BlobScan(ino_t *afile, afs_int32 ablob)
+int
+BlobScan(ino_t * afile, afs_int32 ablob)
 #else
 #ifdef AFS_LINUX_64BIT_KERNEL
 int
@@ -509,7 +509,7 @@ afs_readdir2(OSI_VC_ARG(avc), auio, acred)
 afs_readdir(OSI_VC_ARG(avc), auio, acred)
 #endif
 #endif
-    OSI_VC_DECL(avc);
+     OSI_VC_DECL(avc);
      struct uio *auio;
      struct AFS_UCRED *acred;
 {
@@ -525,13 +525,13 @@ afs_readdir(OSI_VC_ARG(avc), auio, acred)
 #if defined(AFS_SGI53_ENV)
     afs_int32 use64BitDirent, dirsiz;
 #endif /* defined(AFS_SGI53_ENV) */
-    OSI_VC_CONVERT(avc)
+    OSI_VC_CONVERT(avc);
 #ifdef AFS_HPUX_ENV
-       /*
-        * XXX All the hacks for alloced sdirEntry and inlining of afs_readdir_move instead of calling
-        * it is necessary for hpux due to stack problems that seem to occur when coming thru the nfs
-        * translator side XXX
-        */
+    /*
+     * XXX All the hacks for alloced sdirEntry and inlining of afs_readdir_move instead of calling
+     * it is necessary for hpux due to stack problems that seem to occur when coming thru the nfs
+     * translator side XXX
+     */
     struct min_direct *sdirEntry =
        (struct min_direct *)osi_AllocSmallSpace(sizeof(struct min_direct));
     afs_int32 rlen;
index c484b466a5c375059f2ebcd9b7479d584f02c07c..9c3c107c18e8f5609db2f044912dcebea4f43f47 100644 (file)
@@ -23,7 +23,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_remove.c,v 1.31 2004/06/23 22:25:06 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_remove.c,v 1.31.2.1 2004/08/25 07:09:35 shadow Exp $");
 
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
 #include "afsincludes.h"       /* Afs-based standard headers */
@@ -110,7 +110,7 @@ afsremove(register struct vcache *adp, register struct dcache *tdc,
     register struct conn *tc;
     struct AFSFetchStatus OutDirStatus;
     struct AFSVolSync tsync;
-    XSTATS_DECLS
+    XSTATS_DECLS;
     do {
        tc = afs_Conn(&adp->fid, treqp, SHARED_LOCK);
        if (tc) {
@@ -228,7 +228,7 @@ afs_remove(ndp)
     struct ucred *acred = ndp->ni_cred;
 #else                          /* AFS_OSF_ENV */
 afs_remove(OSI_VC_ARG(adp), aname, acred)
-OSI_VC_DECL(adp);
+     OSI_VC_DECL(adp);
      char *aname;
      struct AFS_UCRED *acred;
 {
@@ -240,9 +240,9 @@ OSI_VC_DECL(adp);
     register struct vcache *tvc;
     afs_size_t offset, len;
     struct afs_fakestat_state fakestate;
-    OSI_VC_CONVERT(adp)
+    OSI_VC_CONVERT(adp);
 
-       AFS_STATCNT(afs_remove);
+    AFS_STATCNT(afs_remove);
     afs_Trace2(afs_iclSetp, CM_TRACE_REMOVE, ICL_TYPE_POINTER, adp,
               ICL_TYPE_STRING, aname);
 
@@ -279,12 +279,11 @@ OSI_VC_DECL(adp);
 #endif
        return code;
     }
-
 #if 0
     if (adp->mvstat == 2) {
        afs_PutFakeStat(&fakestate);
 #ifdef  AFS_OSF_ENV
-        afs_PutVCache(adp);
+       afs_PutVCache(adp);
        afs_PutVCache(tvc);
 #endif
        return EISDIR;
@@ -402,13 +401,14 @@ OSI_VC_DECL(adp);
        Ttvcr = VREFCOUNT(tvc);
 #ifdef AFS_AIX_ENV
     if (tvc && (VREFCOUNT(tvc) > 2) && tvc->opens > 0
-       && !(tvc->states & CUnlinked)) 
+       && !(tvc->states & CUnlinked))
 #else
 #ifdef AFS_DARWIN14_ENV
-    if (tvc && (VREFCOUNT(tvc) > 1 + DARWIN_REFBASE) && tvc->opens > 0 && !(tvc->states & CUnlinked)) 
+    if (tvc && (VREFCOUNT(tvc) > 1 + DARWIN_REFBASE) && tvc->opens > 0
+       && !(tvc->states & CUnlinked))
 #else
     if (tvc && (VREFCOUNT(tvc) > 1) && tvc->opens > 0
-       && !(tvc->states & CUnlinked)) 
+       && !(tvc->states & CUnlinked))
 #endif
 #endif
     {
@@ -495,10 +495,10 @@ afs_remunlink(register struct vcache *avc, register int doit)
            avc->states &= ~(CUnlinked | CUnlinkedDel);
 
 #ifdef AFS_DARWIN14_ENV
-           if (VREFCOUNT(avc) < 4) {
-               oldref = 4 - VREFCOUNT(avc);
-               VREFCOUNT_SET(avc, 4);
-           }
+           if (VREFCOUNT(avc) < 4) {
+               oldref = 4 - VREFCOUNT(avc);
+               VREFCOUNT_SET(avc, 4);
+           }
 #endif
            ReleaseWriteLock(&avc->lock);
 
@@ -529,7 +529,7 @@ afs_remunlink(register struct vcache *avc, register int doit)
            VREFCOUNT_SET(avc, 0);
 #else
            if (oldref) {
-               int newref = VREFCOUNT(avc) - oldref;
+               int newref = VREFCOUNT(avc) - oldref;
                VREFCOUNT_SET(avc, newref);
            }
 #endif
index 419e68554ede462cb1102f414b8610a02493d341..7019138564ebf00295fac2288a5fd615f80691aa 100644 (file)
@@ -18,7 +18,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_rename.c,v 1.16 2003/08/29 22:00:04 rees Exp $");
+    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_rename.c,v 1.16.2.1 2004/08/25 07:09:35 shadow Exp $");
 
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
 #include "afsincludes.h"       /* Afs-based standard headers */
@@ -46,7 +46,8 @@ afsrename(struct vcache *aodp, char *aname1, struct vcache *andp,
     struct dcache *tdc1, *tdc2;
     struct AFSFetchStatus OutOldDirStatus, OutNewDirStatus;
     struct AFSVolSync tsync;
-    XSTATS_DECLS AFS_STATCNT(afs_rename);
+    XSTATS_DECLS;
+    AFS_STATCNT(afs_rename);
     afs_Trace4(afs_iclSetp, CM_TRACE_RENAME, ICL_TYPE_POINTER, aodp,
               ICL_TYPE_STRING, aname1, ICL_TYPE_POINTER, andp,
               ICL_TYPE_STRING, aname2);
@@ -370,11 +371,11 @@ afs_rename(fndp, tndp)
 #else /* AFS_OSF_ENV */
 #if defined(AFS_SGI_ENV)
 afs_rename(OSI_VC_ARG(aodp), aname1, andp, aname2, npnp, acred)
-     struct pathname *npnp;
+    struct pathname *npnp;
 #else
 afs_rename(OSI_VC_ARG(aodp), aname1, andp, aname2, acred)
 #endif
-    OSI_VC_DECL(aodp);
+     OSI_VC_DECL(aodp);
      struct vcache *andp;
      char *aname1, *aname2;
      struct AFS_UCRED *acred;
@@ -384,9 +385,9 @@ afs_rename(OSI_VC_ARG(aodp), aname1, andp, aname2, acred)
     struct afs_fakestat_state ofakestate;
     struct afs_fakestat_state nfakestate;
     struct vrequest treq;
-    OSI_VC_CONVERT(aodp)
+    OSI_VC_CONVERT(aodp);
 
-       code = afs_InitReq(&treq, acred);
+    code = afs_InitReq(&treq, acred);
     if (code)
        return code;
     afs_InitFakeStat(&ofakestate);
index 4078925b57714b7bc71e903cc930c6ebeae22ed4..ae746ffd2460185b4dda7389b9e4d532b3e9e49e 100644 (file)
@@ -22,7 +22,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_symlink.c,v 1.19 2003/08/26 15:09:28 rees Exp $");
+    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_symlink.c,v 1.19.2.1 2004/08/25 07:09:35 shadow Exp $");
 
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
 #include "afsincludes.h"       /* Afs-based standard headers */
@@ -41,8 +41,7 @@ extern afs_rwlock_t afs_xcbhash;
 
 
 /* don't set CDirty in here because RPC is called synchronously */
-int
-afs_symlink
+int afs_symlink
 #ifdef AFS_OSF_ENV
   (ndp, attrs, atargetName)
      struct nameidata *ndp;
@@ -77,7 +76,8 @@ afs_symlink
     struct AFSVolSync tsync;
     struct volume *volp = 0;
     struct afs_fakestat_state fakestate;
-    XSTATS_DECLS OSI_VC_CONVERT(adp)
+    XSTATS_DECLS;
+    OSI_VC_CONVERT(adp);
 
     AFS_STATCNT(afs_symlink);
     afs_Trace2(afs_iclSetp, CM_TRACE_SYMLINK, ICL_TYPE_POINTER, adp,
@@ -355,7 +355,7 @@ afs_readlink(OSI_VC_ARG(avc), auio, acred)
     struct vrequest treq;
     register char *tp;
     struct afs_fakestat_state fakestat;
-    OSI_VC_CONVERT(avc)
+    OSI_VC_CONVERT(avc);
 
     AFS_STATCNT(afs_readlink);
     afs_Trace1(afs_iclSetp, CM_TRACE_READLINK, ICL_TYPE_POINTER, avc);
index 7fa94c4b6baf0952b6de904f9eea0750108dc7f2..3319259d98114f55e3e5d9d947b541e91833546e 100644 (file)
@@ -21,7 +21,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_write.c,v 1.36 2004/06/24 17:38:25 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/VNOPS/afs_vnop_write.c,v 1.36.2.1 2004/08/25 07:09:35 shadow Exp $");
 
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
 #include "afsincludes.h"       /* Afs-based standard headers */
@@ -824,7 +824,7 @@ afs_close(OSI_VC_ARG(avc), aflags, count, acred)
 #else
 afs_close(OSI_VC_ARG(avc), aflags, acred)
 #endif
-OSI_VC_DECL(avc);
+     OSI_VC_DECL(avc);
      afs_int32 aflags;
      struct AFS_UCRED *acred;
 {
@@ -835,9 +835,9 @@ OSI_VC_DECL(avc);
     struct flid flid;
 #endif
     struct afs_fakestat_state fakestat;
-    OSI_VC_CONVERT(avc)
+    OSI_VC_CONVERT(avc);
 
-       AFS_STATCNT(afs_close);
+    AFS_STATCNT(afs_close);
     afs_Trace2(afs_iclSetp, CM_TRACE_CLOSE, ICL_TYPE_POINTER, avc,
               ICL_TYPE_INT32, aflags);
     code = afs_InitReq(&treq, acred);
@@ -1018,9 +1018,9 @@ OSI_VC_DECL(avc);
 {
     register afs_int32 code;
     struct vrequest treq;
-    OSI_VC_CONVERT(avc)
+    OSI_VC_CONVERT(avc);
 
-       if (avc->vc_error)
+    if (avc->vc_error)
        return avc->vc_error;
 
 #if defined(AFS_SUN5_ENV)
index 49f2c408d0723df027e212756d74154312a0997b..11e4843e5eb1d18f5fd18d58a657648ce7026e89 100644 (file)
@@ -900,7 +900,7 @@ struct afs_fheader {
  */
 #define afs_inode_t ino64_t
 #else
-#if defined(AFS_LINUX_64BIT_KERNEL)
+#if defined(AFS_LINUX_64BIT_KERNEL) && !defined(AFS_S390X_LINUX24_ENV)
 #define afs_inode_t long
 #else
 #if defined(AFS_AIX51_ENV) || defined(AFS_HPUX1123_ENV)
index 26295a8150dfbc92f7fb2d3479464446b8ec98be..c3fc5779b1656eb4b9452580011fc7715a5e71a9 100644 (file)
@@ -11,7 +11,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/afs_call.c,v 1.74 2004/07/29 03:32:56 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/afs_call.c,v 1.74.2.2 2004/08/25 07:16:11 shadow Exp $");
 
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
 #include "afsincludes.h"       /* Afs-based standard headers */
@@ -1148,6 +1148,8 @@ copyin_iparam(caddr_t cmarg, struct iparam *dst)
     if (current->thread.flags & THREAD_IA32)
 #elif defined(AFS_PPC64_LINUX20_ENV)
     if (current->thread.flags & PPC_FLAG_32BIT) 
+#elif defined(AFS_S390X_LINUX20_ENV)
+    if (current->thread.flags & S390_FLAG_31BIT) 
 #else
 #error Not done for this linux version
 #endif
@@ -1526,6 +1528,9 @@ afs_shutdown(void)
 
     afs_termState = AFSOP_STOP_RXCALLBACK;
     rx_WakeupServerProcs();
+#ifdef AFS_AIX51_ENV
+    shutdown_rxkernel();
+#endif
     /* shutdown_rxkernel(); */
     while (afs_termState == AFSOP_STOP_RXCALLBACK)
        afs_osi_Sleep(&afs_termState);
@@ -1596,7 +1601,11 @@ afs_shutdown(void)
     shutdown_rx();
     afs_shutdown_BKG();
     shutdown_bufferpackage();
+#endif
+#ifdef AFS_AIX51_ENV
     shutdown_daemons();
+#endif
+#ifdef notdef
     shutdown_cache();
     shutdown_osi();
     shutdown_osinet();
index 87848b035fc3f601609b002f6ff5cb364dbe353a..a741b78503d53f8c0efe350872321fb02b0bc3e5 100644 (file)
@@ -11,7 +11,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/afs_daemons.c,v 1.28 2004/03/11 19:14:46 rees Exp $");
+    ("$Header: /cvs/openafs/src/afs/afs_daemons.c,v 1.28.2.1 2004/08/25 07:16:11 shadow Exp $");
 
 #ifdef AFS_AIX51_ENV
 #define __FULL_PROTO
@@ -1338,7 +1338,7 @@ shutdown_daemons(void)
 #ifdef AFS_AIX41_ENV
        lock_free(&afs_asyncbuf_lock);
        unpin(&afs_asyncbuf, sizeof(struct buf *));
-       pin(&afs_asyncbuf_cv, sizeof(afs_int32));
+       unpin(&afs_asyncbuf_cv, sizeof(afs_int32));
 #else /* AFS_AIX41_ENV */
        afs_busyq = NULL;
        afs_biodcnt = 0;
index 0a4743e0a2dbc65b7170a39d05c54cf1d77f4406..eb5207dfd8b7ea088cfaa72c09a77badd06f8b82 100644 (file)
@@ -14,7 +14,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/afs_dcache.c,v 1.42 2004/05/08 04:33:07 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/afs_dcache.c,v 1.42.2.1 2004/08/25 07:09:32 shadow Exp $");
 
 #include "afs/sysincludes.h"   /*Standard vendor system headers */
 #include "afsincludes.h"       /*AFS-based standard headers */
@@ -1535,7 +1535,7 @@ afs_GetDCache(register struct vcache *avc, afs_size_t abyte,
     int doReallyAdjustSize = 0;
     int overWriteWholeChunk = 0;
 
-    XSTATS_DECLS
+    XSTATS_DECLS;
 #ifndef AFS_NOSTATS
     struct afs_stats_xferData *xferP;  /* Ptr to this op's xfer struct */
     osi_timeval_t xferStartTime,       /*FS xfer start time */
@@ -2618,7 +2618,7 @@ afs_WriteThroughDSlots(void)
 #define DQTODC(q)      ((struct dcache *)(((char *) (q)) - sizeof(struct afs_q)))
 
     for (tq = DirtyQ.prev; tq != &DirtyQ; tq = QPrev(tq)) {
-        tdc = DQTODC(tq);
+       tdc = DQTODC(tq);
        if (tdc->dflags & DFEntryMod) {
            int wrLock;
 
index 289d5cf0a20201f5db5e172da7fdb291be62f39a..d202c953e07b342ace6ea6d1d30825f134150f67 100644 (file)
@@ -11,7 +11,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/afs_pioctl.c,v 1.81 2004/06/08 17:27:46 rees Exp $");
+    ("$Header: /cvs/openafs/src/afs/afs_pioctl.c,v 1.81.2.1 2004/08/25 07:03:35 shadow Exp $");
 
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
 #ifdef AFS_OBSD_ENV
@@ -269,6 +269,8 @@ copyin_afs_ioctl(caddr_t cmarg, struct afs_ioctl *dst)
     if (current->thread.flags & THREAD_IA32)
 #elif defined(AFS_PPC64_LINUX20_ENV)
     if (current->thread.flags & PPC_FLAG_32BIT)
+#elif defined(AFS_S390X_LINUX20_ENV)
+    if (current->thread.flags & S390_FLAG_31BIT)
 #else
 #error Not done for this linux type
 #endif
index b1f212a3c143661bad1c5f524ea91b1bebc68ffa..efbd1f8fdce5d1a555999f2ec177b13f5df10e1f 100644 (file)
@@ -14,7 +14,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/afs_segments.c,v 1.16 2003/07/15 23:14:13 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/afs_segments.c,v 1.16.2.1 2004/08/25 07:09:32 shadow Exp $");
 
 #include "afs/sysincludes.h"   /*Standard vendor system headers */
 #include "afsincludes.h"       /*AFS-based standard headers */
@@ -47,7 +47,8 @@ afs_StoreMini(register struct vcache *avc, struct vrequest *areq)
     register afs_int32 code;
     register struct rx_call *tcall;
     afs_size_t tlen, xlen = 0;
-    XSTATS_DECLS AFS_STATCNT(afs_StoreMini);
+    XSTATS_DECLS;
+    AFS_STATCNT(afs_StoreMini);
     afs_Trace2(afs_iclSetp, CM_TRACE_STOREMINI, ICL_TYPE_POINTER, avc,
               ICL_TYPE_INT32, avc->m.Length);
     tlen = avc->m.Length;
@@ -305,7 +306,8 @@ afs_StoreAllSegments(register struct vcache *avc, struct vrequest *areq,
            struct conn *tc;
            struct osi_file *tfile;
            struct rx_call *tcall;
-           XSTATS_DECLS for (bytes = 0, j = 0; !code && j <= high; j++) {
+           XSTATS_DECLS;
+           for (bytes = 0, j = 0; !code && j <= high; j++) {
                if (dcList[j]) {
                    ObtainSharedLock(&(dcList[j]->lock), 629);
                    if (!bytes)
index a5055bcc3279e9d9eeb8fe47efd20dc78a24f1ff..89e55e57617dfc139aac001f0566942d90634a8a 100644 (file)
@@ -33,7 +33,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/afs_server.c,v 1.33 2004/06/24 17:38:23 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/afs_server.c,v 1.33.2.1 2004/08/25 07:07:53 shadow Exp $");
 
 #include "afs/stds.h"
 #include "afs/sysincludes.h"   /* Standard vendor system headers */
@@ -1178,8 +1178,7 @@ afsi_SetServerIPRank(sa, ifa)
 #ifdef  IFF_POINTTOPOINT
     /* check for case #4 -- point-to-point link */
     if ((ifa->ia_ifp->if_flags & IFF_POINTOPOINT)
-       && (myDstaddr == serverAddr))
-       ) {
+       && (myDstaddr == serverAddr)) {
        if (ifa->ia_ifp->if_metric >= (MAXDEFRANK - MED) / PPWEIGHT)
            t = MAXDEFRANK;
        else
index fd0693d3f028df375591363696784e8b06c77f04..6f7b0b60aac0ec8733a83b1d5a319781122509fe 100644 (file)
@@ -39,7 +39,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/afs/afs_vcache.c,v 1.65 2004/07/14 04:21:54 shadow Exp $");
+    ("$Header: /cvs/openafs/src/afs/afs_vcache.c,v 1.65.2.3 2004/08/25 07:16:11 shadow Exp $");
 
 #include "afs/sysincludes.h"   /*Standard vendor system headers */
 #include "afsincludes.h"       /*AFS-based standard headers */
@@ -82,7 +82,8 @@ static afs_int32 afs_QueueVCB(struct vcache *avc);
  * Generate an index into the hash table for a given Fid.
  */
 static int
-afs_HashCBRFid(struct AFSFid *fid) {
+afs_HashCBRFid(struct AFSFid *fid)
+{
     return (fid->Volume + fid->Vnode + fid->Unique) % CBRSIZE;
 }
 
@@ -93,7 +94,8 @@ afs_HashCBRFid(struct AFSFid *fid) {
  * Must be called with afs_xvcb held.
  */
 static void
-afs_InsertHashCBR(struct afs_cbr *cbr) {
+afs_InsertHashCBR(struct afs_cbr *cbr)
+{
     int slot = afs_HashCBRFid(&cbr->fid);
 
     cbr->hash_next = afs_cbrHashT[slot];
@@ -371,7 +373,8 @@ afs_FlushVCBs(afs_int32 lockit)
     struct vrequest treq;
     struct conn *tc;
     int safety1, safety2, safety3;
-    XSTATS_DECLS if ((code = afs_InitReq(&treq, afs_osi_credp)))
+    XSTATS_DECLS;
+    if ((code = afs_InitReq(&treq, afs_osi_credp)))
        return code;
     treq.flags |= O_NONBLOCK;
     tfids = afs_osi_Alloc(sizeof(struct AFSFid) * AFS_MAXCBRSCALL);
@@ -545,7 +548,7 @@ afs_RemoveVCB(struct VenusFid *afid)
        ncbr = cbr->hash_next;
 
        if (afid->Fid.Volume == cbr->fid.Volume &&
-           afid->Fid.Vnode  == cbr->fid.Vnode  &&
+           afid->Fid.Vnode == cbr->fid.Vnode &&
            afid->Fid.Unique == cbr->fid.Unique) {
            afs_FreeCBR(cbr);
        }
@@ -656,15 +659,6 @@ afs_TryFlushDcacheChildren(struct vcache *tvc)
     while ((cur = cur->next) != head) {
        dentry = list_entry(cur, struct dentry, d_alias);
 
-       if (ICL_SETACTIVE(afs_iclSetp)) {
-           AFS_GLOCK();
-           afs_Trace3(afs_iclSetp, CM_TRACE_TRYFLUSHDCACHECHILDREN,
-                  ICL_TYPE_POINTER, ip, ICL_TYPE_STRING,
-                  dentry->d_parent->d_name.name, ICL_TYPE_STRING,
-                  dentry->d_name.name);
-           AFS_GUNLOCK();
-       }
-
        if (!list_empty(&dentry->d_hash) && !list_empty(&dentry->d_subdirs))
            __shrink_dcache_parent(dentry);
 
@@ -826,14 +820,15 @@ afs_NewVCache(struct VenusFid *afid, struct server *serverp)
                refpanic("VLRU inconsistent");
            }
 #ifdef AFS_DARWIN_ENV
-           if ((VREFCOUNT(tvc) < DARWIN_REFBASE) || 
-               (VREFCOUNT(tvc) < 1+DARWIN_REFBASE && 
+           if ((VREFCOUNT(tvc) < DARWIN_REFBASE) ||
+               (VREFCOUNT(tvc) < 1 + DARWIN_REFBASE &&
                 UBCINFOEXISTS(&tvc->v))) {
-              VREFCOUNT_SET(tvc, 
-                            DARWIN_REFBASE + (UBCINFOEXISTS(&tvc->v) ? 1 : 0));
+               VREFCOUNT_SET(tvc,
+                             DARWIN_REFBASE +
+                             (UBCINFOEXISTS(&tvc->v) ? 1 : 0));
            }
            if (tvc->opens == 0 && ((tvc->states & CUnlinkedDel) == 0)
-               && VREFCOUNT(tvc) == DARWIN_REFBASE+1 
+               && VREFCOUNT(tvc) == DARWIN_REFBASE + 1
                && UBCINFOEXISTS(&tvc->v)) {
                osi_VM_TryReclaim(tvc, &fv_slept);
                if (fv_slept) {
@@ -854,14 +849,13 @@ afs_NewVCache(struct VenusFid *afid, struct server *serverp)
            }
 #endif
 
-           if (VREFCOUNT(tvc) == 
+           if (VREFCOUNT(tvc) ==
 #ifdef AFS_DARWIN_ENV
                DARWIN_REFBASE
 #else
-               0 
+               0
 #endif
-               && tvc->opens == 0
-               && (tvc->states & CUnlinkedDel) == 0) {
+               && tvc->opens == 0 && (tvc->states & CUnlinkedDel) == 0) {
 #if defined(AFS_XBSD_ENV)
                /*
                 * vgone() reclaims the vnode, which calls afs_FlushVCache(),
@@ -972,14 +966,14 @@ afs_NewVCache(struct VenusFid *afid, struct server *serverp)
        AFS_GLOCK();
        if (tvc->v != NULL) {
            /* I'd like to know if this ever happens...
-              We don't drop global for the rest of this function,
-              so if we do lose the race, the other thread should
-              have found the same vnode and finished initializing
-              the vcache entry.  Is it conceivable that this vcache
-              entry could be recycled during this interval?  If so,
-              then there probably needs to be some sort of additional
-              mutual exclusion (an Embryonic flag would suffice).
-               -GAW */
+            * We don't drop global for the rest of this function,
+            * so if we do lose the race, the other thread should
+            * have found the same vnode and finished initializing
+            * the vcache entry.  Is it conceivable that this vcache
+            * entry could be recycled during this interval?  If so,
+            * then there probably needs to be some sort of additional
+            * mutual exclusion (an Embryonic flag would suffice).
+            * -GAW */
            printf("afs_NewVCache: lost the race\n");
            return (tvc);
        }
@@ -1009,75 +1003,75 @@ afs_NewVCache(struct VenusFid *afid, struct server *serverp)
     tvc->truncPos = AFS_NOTRUNC;       /* don't truncate until we need to */
     hzero(tvc->m.DataVersion); /* in case we copy it into flushDV */
 #if defined(AFS_LINUX22_ENV)
-{
-    struct inode *ip = AFSTOI(tvc);
-    struct address_space *mapping = &ip->i_data;
+    {
+       struct inode *ip = AFSTOI(tvc);
+       struct address_space *mapping = &ip->i_data;
 
 #if defined(AFS_LINUX26_ENV)
-    inode_init_once(ip);
+       inode_init_once(ip);
 #else
-    sema_init(&ip->i_sem, 1);
-    INIT_LIST_HEAD(&ip->i_hash);
-    INIT_LIST_HEAD(&ip->i_dentry);
+       sema_init(&ip->i_sem, 1);
+       INIT_LIST_HEAD(&ip->i_hash);
+       INIT_LIST_HEAD(&ip->i_dentry);
 #if defined(AFS_LINUX24_ENV)
-    sema_init(&ip->i_zombie, 1);
-    init_waitqueue_head(&ip->i_wait);
-    spin_lock_init(&ip->i_data.i_shared_lock);
+       sema_init(&ip->i_zombie, 1);
+       init_waitqueue_head(&ip->i_wait);
+       spin_lock_init(&ip->i_data.i_shared_lock);
 #ifdef STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK
-    spin_lock_init(&ip->i_data.page_lock);
+       spin_lock_init(&ip->i_data.page_lock);
 #endif
-    INIT_LIST_HEAD(&ip->i_data.clean_pages);
-    INIT_LIST_HEAD(&ip->i_data.dirty_pages);
-    INIT_LIST_HEAD(&ip->i_data.locked_pages);
-    INIT_LIST_HEAD(&ip->i_dirty_buffers);
+       INIT_LIST_HEAD(&ip->i_data.clean_pages);
+       INIT_LIST_HEAD(&ip->i_data.dirty_pages);
+       INIT_LIST_HEAD(&ip->i_data.locked_pages);
+       INIT_LIST_HEAD(&ip->i_dirty_buffers);
 #ifdef STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS
-    INIT_LIST_HEAD(&ip->i_dirty_data_buffers);
+       INIT_LIST_HEAD(&ip->i_dirty_data_buffers);
 #endif
 #ifdef STRUCT_INODE_HAS_I_DEVICES
-    INIT_LIST_HEAD(&ip->i_devices);
+       INIT_LIST_HEAD(&ip->i_devices);
 #endif
 #ifdef STRUCT_INODE_HAS_I_TRUNCATE_SEM
-    init_rwsem(&ip->i_truncate_sem);
+       init_rwsem(&ip->i_truncate_sem);
 #endif
 #ifdef STRUCT_INODE_HAS_I_ALLOC_SEM
-    init_rwsem(&ip->i_alloc_sem);
-#endif 
+       init_rwsem(&ip->i_alloc_sem);
+#endif
 
 #else /* AFS_LINUX22_ENV */
-    sema_init(&ip->i_atomic_write, 1);
-    init_waitqueue(&ip->i_wait);
+       sema_init(&ip->i_atomic_write, 1);
+       init_waitqueue(&ip->i_wait);
 #endif
 #endif
 
 #if defined(AFS_LINUX24_ENV)
-    mapping->host = ip;
-    ip->i_mapping = mapping;
+       mapping->host = ip;
+       ip->i_mapping = mapping;
 #ifdef STRUCT_ADDRESS_SPACE_HAS_GFP_MASK
-    ip->i_data.gfp_mask = GFP_HIGHUSER;
+       ip->i_data.gfp_mask = GFP_HIGHUSER;
 #endif
 #if defined(AFS_LINUX26_ENV)
-    mapping_set_gfp_mask(mapping, GFP_HIGHUSER);
-{
-    extern struct backing_dev_info afs_backing_dev_info;
+       mapping_set_gfp_mask(mapping, GFP_HIGHUSER);
+       {
+           extern struct backing_dev_info afs_backing_dev_info;
 
-    mapping->backing_dev_info = &afs_backing_dev_info;
-}
+           mapping->backing_dev_info = &afs_backing_dev_info;
+       }
 #endif
 #endif
 
 #if !defined(AFS_LINUX26_ENV)
-    if (afs_globalVFS)
-       ip->i_dev = afs_globalVFS->s_dev;
+       if (afs_globalVFS)
+           ip->i_dev = afs_globalVFS->s_dev;
 #else
 #ifdef STRUCT_INODE_HAS_I_SECURITY
-    ip->i_security = NULL;
-    if (security_inode_alloc(ip))
-        panic("Cannot allocate inode security");
+       ip->i_security = NULL;
+       if (security_inode_alloc(ip))
+           panic("Cannot allocate inode security");
 #endif
 #endif
-    ip->i_sb = afs_globalVFS;
-    put_inode_on_dummy_list(ip);
-}
+       ip->i_sb = afs_globalVFS;
+       put_inode_on_dummy_list(ip);
+    }
 #endif
 
 #ifdef AFS_OSF_ENV
@@ -1165,7 +1159,7 @@ afs_NewVCache(struct VenusFid *afid, struct server *serverp)
     /* VLISTNONE(&tvc->v); */
     tvc->v.v_freelist.tqe_next = 0;
     tvc->v.v_freelist.tqe_prev = (struct vnode **)0xdeadb;
-    tvc->vrefCount+=DARWIN_REFBASE;
+    tvc->vrefCount += DARWIN_REFBASE;
 #endif
     /*
      * The proper value for mvstat (for root fids) is setup by the caller.
@@ -1266,7 +1260,8 @@ afs_FlushActiveVcaches(register afs_int32 doflocks)
     struct vrequest treq, ureq;
     struct AFSVolSync tsync;
     int didCore;
-    XSTATS_DECLS AFS_STATCNT(afs_FlushActiveVcaches);
+    XSTATS_DECLS;
+    AFS_STATCNT(afs_FlushActiveVcaches);
     ObtainReadLock(&afs_xvcache);
     for (i = 0; i < VCSIZE; i++) {
        for (tvc = afs_vhashT[i]; tvc; tvc = tvc->hnext) {
@@ -1378,7 +1373,7 @@ afs_FlushActiveVcaches(register afs_int32 doflocks)
                }
            }
 #ifdef AFS_DARWIN_ENV
-           if (VREFCOUNT(tvc) == 1+DARWIN_REFBASE 
+           if (VREFCOUNT(tvc) == 1 + DARWIN_REFBASE
                && UBCINFOEXISTS(&tvc->v)) {
                if (tvc->opens)
                    panic("flushactive open, hasubc, but refcnt 1");
@@ -1579,7 +1574,8 @@ afs_WriteVCache(register struct vcache *avc,
     struct conn *tc;
     struct AFSFetchStatus OutStatus;
     struct AFSVolSync tsync;
-    XSTATS_DECLS AFS_STATCNT(afs_WriteVCache);
+    XSTATS_DECLS;
+    AFS_STATCNT(afs_WriteVCache);
     afs_Trace2(afs_iclSetp, CM_TRACE_WVCACHE, ICL_TYPE_POINTER, avc,
               ICL_TYPE_OFFSET, ICL_HANDLE_OFFSET(avc->m.Length));
 
@@ -1743,8 +1739,9 @@ afs_RemoteLookup(register struct VenusFid *afid, struct vrequest *areq,
     afs_uint32 start;
     register struct conn *tc;
     struct AFSFetchStatus OutDirStatus;
-    XSTATS_DECLS if (!name)
-         name = "";            /* XXX */
+    XSTATS_DECLS;
+    if (!name)
+       name = "";              /* XXX */
     do {
        tc = afs_Conn(afid, areq, SHARED_LOCK);
        if (tc) {
@@ -2198,16 +2195,16 @@ afs_GetRootVCache(struct VenusFid *afid, struct vrequest *areq,
 #endif /* AFS_OSF_ENV */
 #ifdef AFS_DARWIN14_ENV
            /* It'd really suck if we allowed duplicate vcaches for the 
-              same fid to happen. Wonder if this will work? */
+            * same fid to happen. Wonder if this will work? */
            struct vnode *vp = AFSTOV(tvc);
-           if (vp->v_flag & (VXLOCK|VORECLAIM|VTERMINATE)) {
-               printf("precluded FindVCache on %x (%d:%d:%d)\n", 
+           if (vp->v_flag & (VXLOCK | VORECLAIM | VTERMINATE)) {
+               printf("precluded FindVCache on %x (%d:%d:%d)\n",
                       vp, tvc->fid.Fid.Volume, tvc->fid.Fid.Vnode,
                       tvc->fid.Fid.Unique);
                simple_lock(&vp->v_interlock);
                SET(vp->v_flag, VTERMWANT);
                simple_unlock(&vp->v_interlock);
-               (void)tsleep((caddr_t)&vp->v_ubcinfo, PINOD, "vget1", 0);
+               (void)tsleep((caddr_t) & vp->v_ubcinfo, PINOD, "vget1", 0);
                printf("VTERMWANT ended on %x\n", vp);
                continue;
            }
@@ -2378,7 +2375,7 @@ afs_FetchStatus(struct vcache * avc, struct VenusFid * afid,
     struct AFSCallBack CallBack;
     struct AFSVolSync tsync;
     struct volume *volp;
-    XSTATS_DECLS
+    XSTATS_DECLS;
     do {
        tc = afs_Conn(afid, areq, SHARED_LOCK);
        avc->quick.stamp = 0;
@@ -3013,12 +3010,12 @@ shutdown_vcache(void)
     }
     afs_cbrSpace = 0;
 
-#if    !defined(AFS_OSF_ENV)
-    afs_osi_Free(Initial_freeVCList, afs_cacheStats * sizeof(struct vcache));
-#endif
 #ifdef  KERNEL_HAVE_PIN
     unpin(Initial_freeVCList, afs_cacheStats * sizeof(struct vcache));
 #endif
+#if    !defined(AFS_OSF_ENV)
+    afs_osi_Free(Initial_freeVCList, afs_cacheStats * sizeof(struct vcache));
+#endif
 #if    !defined(AFS_OSF_ENV)
     freeVCList = Initial_freeVCList = 0;
 #endif
index 06918e74e956a7ab85a5146a2118ea8bbdfb513f..16d25e65d72a65eb93997f950057c68d3846df95 100644 (file)
@@ -15,7 +15,7 @@
 #endif
 
 RCSID
-    ("$Header: /cvs/openafs/src/auth/authcon.c,v 1.13 2003/07/15 23:14:41 shadow Exp $");
+    ("$Header: /cvs/openafs/src/auth/authcon.c,v 1.13.2.1 2004/08/25 07:09:36 shadow Exp $");
 
 #if defined(UKERNEL)
 #include "afs/sysincludes.h"
@@ -72,14 +72,17 @@ afsconf_ServerAuth(adir, astr, aindex)
 {
     register struct rx_securityClass *tclass;
 
-    LOCK_GLOBAL_MUTEX tclass = (struct rx_securityClass *)
+    LOCK_GLOBAL_MUTEX;
+    tclass = (struct rx_securityClass *)
        rxkad_NewServerSecurityObject(0, adir, afsconf_GetKey, NULL);
     if (tclass) {
        *astr = tclass;
        *aindex = 2;            /* kerberos security index */
-       UNLOCK_GLOBAL_MUTEX return 0;
+       UNLOCK_GLOBAL_MUTEX;
+       return 0;
     } else {
-       UNLOCK_GLOBAL_MUTEX return 2;
+       UNLOCK_GLOBAL_MUTEX;
+       return 2;
     }
 }
 #endif /* !defined(UKERNEL) */
@@ -145,8 +148,10 @@ afsconf_ClientAuth(struct afsconf_dir * adir, struct rx_securityClass ** astr,
 {
     afs_int32 rc;
 
-    LOCK_GLOBAL_MUTEX rc = GenericAuth(adir, astr, aindex, rxkad_clear);
-    UNLOCK_GLOBAL_MUTEX return rc;
+    LOCK_GLOBAL_MUTEX;
+    rc = GenericAuth(adir, astr, aindex, rxkad_clear);
+    UNLOCK_GLOBAL_MUTEX;
+    return rc;
 }
 
 /* build a fake ticket for 'afs' using keys from adir, returning an
@@ -161,6 +166,8 @@ afsconf_ClientAuthSecure(adir, astr, aindex)
 {
     afs_int32 rc;
 
-    LOCK_GLOBAL_MUTEX rc = GenericAuth(adir, astr, aindex, rxkad_crypt);
-    UNLOCK_GLOBAL_MUTEX return rc;
+    LOCK_GLOBAL_MUTEX;
+    rc = GenericAuth(adir, astr, aindex, rxkad_crypt);
+    UNLOCK_GLOBAL_MUTEX;
+    return rc;
 }
index cf44199ed6cee886f0b513e39bcb81b772f8f8d7..dc9c9533776fd0bd71b0260010aaddacdcac96dc 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/auth/cellconfig.c,v 1.40 2004/07/22 09:42:40 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/auth/cellconfig.c,v 1.40.2.1 2004/08/25 07:09:36 shadow Exp $");
 
 #include <afs/stds.h>
 #include <afs/pthread_glock.h>
@@ -211,20 +211,21 @@ afsconf_Check(register struct afsconf_dir *adir)
 #ifdef AFS_NT40_ENV
     /* NT client CellServDB has different file name than NT server or Unix */
     if (IsClientConfigDirectory(adir->name)) {
-        if ( !afssw_GetClientCellServDBDir(&p) ) {
-            strcompose(tbuffer, sizeof(tbuffer), p, "/",
-                        AFSDIR_CELLSERVDB_FILE_NTCLIENT, NULL);
-            free(p);
-        } else {
-            int len;
-                       strncpy(tbuffer, adir->name, sizeof(tbuffer));
-                       len = strlen(tbuffer);
-            if ( tbuffer[len-1] != '\\' && tbuffer[len-1] != '/' ) {
-                strncat(tbuffer, "\\", sizeof(tbuffer));
-            }
-            strncat(tbuffer, AFSDIR_CELLSERVDB_FILE_NTCLIENT, sizeof(tbuffer));
-            tbuffer[sizeof(tbuffer)-1] = '\0';
-        }
+       if (!afssw_GetClientCellServDBDir(&p)) {
+           strcompose(tbuffer, sizeof(tbuffer), p, "/",
+                      AFSDIR_CELLSERVDB_FILE_NTCLIENT, NULL);
+           free(p);
+       } else {
+           int len;
+           strncpy(tbuffer, adir->name, sizeof(tbuffer));
+           len = strlen(tbuffer);
+           if (tbuffer[len - 1] != '\\' && tbuffer[len - 1] != '/') {
+               strncat(tbuffer, "\\", sizeof(tbuffer));
+           }
+           strncat(tbuffer, AFSDIR_CELLSERVDB_FILE_NTCLIENT,
+                   sizeof(tbuffer));
+           tbuffer[sizeof(tbuffer) - 1] = '\0';
+       }
     } else {
        strcompose(tbuffer, 256, adir->name, "/", AFSDIR_CELLSERVDB_FILE,
                   NULL);
@@ -260,18 +261,19 @@ afsconf_Touch(register struct afsconf_dir *adir)
     /* NT client CellServDB has different file name than NT server or Unix */
 
     if (IsClientConfigDirectory(adir->name)) {
-        if ( !afssw_GetClientCellServDBDir(&p) ) {
-            strcompose(tbuffer, sizeof(tbuffer), p, "/",
-                        AFSDIR_CELLSERVDB_FILE_NTCLIENT, NULL);
-            free(p);
-        } else {
-            int len = strlen(tbuffer);
-            if ( tbuffer[len-1] != '\\' && tbuffer[len-1] != '/' ) {
-                strncat(tbuffer, "\\", sizeof(tbuffer));
-            }
-            strncat(tbuffer, AFSDIR_CELLSERVDB_FILE_NTCLIENT, sizeof(tbuffer));
-            tbuffer[sizeof(tbuffer)-1] = '\0';
-        }
+       if (!afssw_GetClientCellServDBDir(&p)) {
+           strcompose(tbuffer, sizeof(tbuffer), p, "/",
+                      AFSDIR_CELLSERVDB_FILE_NTCLIENT, NULL);
+           free(p);
+       } else {
+           int len = strlen(tbuffer);
+           if (tbuffer[len - 1] != '\\' && tbuffer[len - 1] != '/') {
+               strncat(tbuffer, "\\", sizeof(tbuffer));
+           }
+           strncat(tbuffer, AFSDIR_CELLSERVDB_FILE_NTCLIENT,
+                   sizeof(tbuffer));
+           tbuffer[sizeof(tbuffer) - 1] = '\0';
+       }
     } else {
        strcompose(tbuffer, 256, adir->name, "/", AFSDIR_CELLSERVDB_FILE,
                   NULL);
@@ -293,9 +295,9 @@ afsconf_Open(register const char *adir)
     register struct afsconf_dir *tdir;
     register afs_int32 code;
 
-    LOCK_GLOBAL_MUTEX
-       /* zero structure and fill in name; rest is done by internal routine */
-       tdir = (struct afsconf_dir *)malloc(sizeof(struct afsconf_dir));
+    LOCK_GLOBAL_MUTEX;
+    /* zero structure and fill in name; rest is done by internal routine */
+    tdir = (struct afsconf_dir *)malloc(sizeof(struct afsconf_dir));
     memset(tdir, 0, sizeof(struct afsconf_dir));
     tdir->name = (char *)malloc(strlen(adir) + 1);
     strcpy(tdir->name, adir);
@@ -317,7 +319,8 @@ afsconf_Open(register const char *adir)
                fp = fopen("/.AFSCONF", "r");
                if (fp == 0) {
                    free(tdir);
-                   UNLOCK_GLOBAL_MUTEX return (struct afsconf_dir *)0;
+                   UNLOCK_GLOBAL_MUTEX;
+                   return (struct afsconf_dir *)0;
                }
                fgets(afs_confdir, 128, fp);
                fclose(fp);
@@ -331,7 +334,8 @@ afsconf_Open(register const char *adir)
                    fp = fopen("/.AFSCONF", "r");
                    if (fp == 0) {
                        free(tdir);
-                       UNLOCK_GLOBAL_MUTEX return (struct afsconf_dir *)0;
+                       UNLOCK_GLOBAL_MUTEX;
+                       return (struct afsconf_dir *)0;
                    }
                }
                fgets(afs_confdir, 128, fp);
@@ -340,7 +344,8 @@ afsconf_Open(register const char *adir)
            len = strlen(afs_confdir);
            if (len == 0) {
                free(tdir);
-               UNLOCK_GLOBAL_MUTEX return (struct afsconf_dir *)0;
+               UNLOCK_GLOBAL_MUTEX;
+               return (struct afsconf_dir *)0;
            }
            if (afs_confdir[len - 1] == '\n') {
                afs_confdir[len - 1] = 0;
@@ -353,10 +358,12 @@ afsconf_Open(register const char *adir)
        if (code) {
            free(tdir->name);
            free(tdir);
-           UNLOCK_GLOBAL_MUTEX return (struct afsconf_dir *)0;
+           UNLOCK_GLOBAL_MUTEX;
+           return (struct afsconf_dir *)0;
        }
     }
-    UNLOCK_GLOBAL_MUTEX return tdir;
+    UNLOCK_GLOBAL_MUTEX;
+    return tdir;
 }
 
 
@@ -434,21 +441,22 @@ afsconf_OpenInternal(register struct afsconf_dir *adir, char *cell,
      */
     if (IsClientConfigDirectory(adir->name)) {
        /* NT client config dir */
-        char * p;
-        if ( !afssw_GetClientCellServDBDir(&p) ) {
-            strcompose(tbuffer, sizeof(tbuffer), p, "/",
-                        AFSDIR_CELLSERVDB_FILE_NTCLIENT, NULL);
-            free(p);
-        } else {
-            int len;
-                       strncpy(tbuffer, adir->name, sizeof(tbuffer));
-                       len = strlen(tbuffer);
-            if ( tbuffer[len-1] != '\\' && tbuffer[len-1] != '/' ) {
-                strncat(tbuffer, "\\", sizeof(tbuffer));
-            }
-            strncat(tbuffer, AFSDIR_CELLSERVDB_FILE_NTCLIENT, sizeof(tbuffer));
-            tbuffer[sizeof(tbuffer)-1] = '\0';
-        }
+       char *p;
+       if (!afssw_GetClientCellServDBDir(&p)) {
+           strcompose(tbuffer, sizeof(tbuffer), p, "/",
+                      AFSDIR_CELLSERVDB_FILE_NTCLIENT, NULL);
+           free(p);
+       } else {
+           int len;
+           strncpy(tbuffer, adir->name, sizeof(tbuffer));
+           len = strlen(tbuffer);
+           if (tbuffer[len - 1] != '\\' && tbuffer[len - 1] != '/') {
+               strncat(tbuffer, "\\", sizeof(tbuffer));
+           }
+           strncat(tbuffer, AFSDIR_CELLSERVDB_FILE_NTCLIENT,
+                   sizeof(tbuffer));
+           tbuffer[sizeof(tbuffer) - 1] = '\0';
+       }
     } else {
        /* NT server config dir */
        strcompose(tbuffer, 256, adir->name, "/", AFSDIR_CELLSERVDB_FILE,
@@ -663,13 +671,16 @@ afsconf_CellApply(struct afsconf_dir *adir,
 {
     register struct afsconf_entry *tde;
     register afs_int32 code;
-    LOCK_GLOBAL_MUTEX for (tde = adir->entries; tde; tde = tde->next) {
+    LOCK_GLOBAL_MUTEX;
+    for (tde = adir->entries; tde; tde = tde->next) {
        code = (*aproc) (&tde->cellInfo, arock, adir);
        if (code) {
-           UNLOCK_GLOBAL_MUTEX return code;
+           UNLOCK_GLOBAL_MUTEX;
+           return code;
        }
     }
-    UNLOCK_GLOBAL_MUTEX return 0;
+    UNLOCK_GLOBAL_MUTEX;
+    return 0;
 }
 
 /* call aproc(entry, arock, adir) for all cell aliases.
@@ -683,13 +694,16 @@ afsconf_CellAliasApply(struct afsconf_dir *adir,
 {
     register struct afsconf_aliasentry *tde;
     register afs_int32 code;
-    LOCK_GLOBAL_MUTEX for (tde = adir->alias_entries; tde; tde = tde->next) {
+    LOCK_GLOBAL_MUTEX;
+    for (tde = adir->alias_entries; tde; tde = tde->next) {
        code = (*aproc) (&tde->aliasInfo, arock, adir);
        if (code) {
-           UNLOCK_GLOBAL_MUTEX return code;
+           UNLOCK_GLOBAL_MUTEX;
+           return code;
        }
     }
-    UNLOCK_GLOBAL_MUTEX return 0;
+    UNLOCK_GLOBAL_MUTEX;
+    return 0;
 }
 
 afs_int32 afsconf_SawCell = 0;
@@ -735,10 +749,11 @@ afsconf_GetAfsdbInfo(char *acellName, char *aservice,
      * replaced with a more fine-grained lock just for the resolver
      * operations.
      */
-    LOCK_GLOBAL_MUTEX len =
-       res_search(acellName, C_IN, T_AFSDB, answer, sizeof(answer));
-    UNLOCK_GLOBAL_MUTEX if (len < 0)
-         return AFSCONF_NOTFOUND;
+    LOCK_GLOBAL_MUTEX;
+    len = res_search(acellName, C_IN, T_AFSDB, answer, sizeof(answer));
+    UNLOCK_GLOBAL_MUTEX;
+    if (len < 0)
+       return AFSCONF_NOTFOUND;
 
     p = answer + sizeof(HEADER);       /* Skip header */
     code = dn_expand(answer, answer + len, p, host, sizeof(host));
@@ -830,14 +845,15 @@ afsconf_GetAfsdbInfo(char *acellName, char *aservice,
     int tservice;
     struct afsconf_entry DNSce;
     afs_int32 cellHostAddrs[AFSMAXCELLHOSTS];
-       char      cellHostNames[AFSMAXCELLHOSTS][MAXHOSTCHARS];
+    char cellHostNames[AFSMAXCELLHOSTS][MAXHOSTCHARS];
     int numServers;
     int rc;
     int ttl;
 
     DNSce.cellInfo.numServers = 0;
     DNSce.next = NULL;
-    rc = getAFSServer(acellName, cellHostAddrs, cellHostNames, &numServers, &ttl);
+    rc = getAFSServer(acellName, cellHostAddrs, cellHostNames, &numServers,
+                     &ttl);
     /* ignore the ttl here since this code is only called by transitory programs
      * like klog, etc. */
     if (rc < 0)
@@ -857,8 +873,10 @@ afsconf_GetAfsdbInfo(char *acellName, char *aservice,
     acellInfo->numServers = numServers;
     strcpy(acellInfo->name, acellName);
     if (aservice) {
-       LOCK_GLOBAL_MUTEX tservice = afsconf_FindService(aservice);
-       UNLOCK_GLOBAL_MUTEX if (tservice < 0) {
+       LOCK_GLOBAL_MUTEX;
+       tservice = afsconf_FindService(aservice);
+       UNLOCK_GLOBAL_MUTEX;
+       if (tservice < 0) {
            return AFSCONF_NOTFOUND;    /* service not found */
        }
        for (i = 0; i < acellInfo->numServers; i++) {
@@ -886,8 +904,9 @@ afsconf_GetCellInfo(struct afsconf_dir *adir, char *acellName, char *aservice,
     int ambig;
     char tbuffer[64];
 
-    LOCK_GLOBAL_MUTEX if (adir)
-         afsconf_Check(adir);
+    LOCK_GLOBAL_MUTEX;
+    if (adir)
+       afsconf_Check(adir);
     if (acellName) {
        tcell = acellName;
        cnLen = strlen(tcell) + 1;
@@ -897,7 +916,8 @@ afsconf_GetCellInfo(struct afsconf_dir *adir, char *acellName, char *aservice,
     } else {
        i = afsconf_GetLocalCell(adir, tbuffer, sizeof(tbuffer));
        if (i) {
-           UNLOCK_GLOBAL_MUTEX return i;
+           UNLOCK_GLOBAL_MUTEX;
+           return i;
        }
        tcell = tbuffer;
     }
@@ -905,7 +925,8 @@ afsconf_GetCellInfo(struct afsconf_dir *adir, char *acellName, char *aservice,
     bestce = (struct afsconf_entry *)0;
     ambig = 0;
     if (!adir) {
-       UNLOCK_GLOBAL_MUTEX return 0;
+       UNLOCK_GLOBAL_MUTEX;
+       return 0;
     }
 
     /* Look through the list of aliases */
@@ -936,20 +957,22 @@ afsconf_GetCellInfo(struct afsconf_dir *adir, char *acellName, char *aservice,
        if (aservice) {
            tservice = afsconf_FindService(aservice);
            if (tservice < 0) {
-               UNLOCK_GLOBAL_MUTEX return AFSCONF_NOTFOUND;    /* service not found */
+               UNLOCK_GLOBAL_MUTEX;
+               return AFSCONF_NOTFOUND;        /* service not found */
            }
            for (i = 0; i < acellInfo->numServers; i++) {
                acellInfo->hostAddr[i].sin_port = tservice;
            }
        }
        acellInfo->timeout = 0;
-       UNLOCK_GLOBAL_MUTEX return 0;
+       UNLOCK_GLOBAL_MUTEX;
+       return 0;
     } else {
-       UNLOCK_GLOBAL_MUTEX
+       UNLOCK_GLOBAL_MUTEX;
 #ifdef AFS_AFSDB_ENV
-           return afsconf_GetAfsdbInfo(tcell, aservice, acellInfo);
+       return afsconf_GetAfsdbInfo(tcell, aservice, acellInfo);
 #else
-           return AFSCONF_NOTFOUND;
+       return AFSCONF_NOTFOUND;
 #endif /* AFS_AFSDB_ENV */
     }
 }
@@ -962,14 +985,14 @@ afsconf_GetLocalCell(register struct afsconf_dir *adir, char *aname,
     char *afscell_path;
     afs_int32 code = 0;
 
-    LOCK_GLOBAL_MUTEX
-       /*
-        * If a cell switch was specified in a command, then it should override the 
-        * AFSCELL variable.  If a cell was specified, then the afsconf_SawCell flag
-        * is set and the cell name in the adir structure is used.
-        * Read the AFSCELL var each time: in case it changes (unsetenv AFSCELL).
-        */
-       if (!afsconf_SawCell && (afscell_path = getenv("AFSCELL"))) {
+    LOCK_GLOBAL_MUTEX;
+    /*
+     * If a cell switch was specified in a command, then it should override the 
+     * AFSCELL variable.  If a cell was specified, then the afsconf_SawCell flag
+     * is set and the cell name in the adir structure is used.
+     * Read the AFSCELL var each time: in case it changes (unsetenv AFSCELL).
+     */
+    if (!afsconf_SawCell && (afscell_path = getenv("AFSCELL"))) {
        if (!afsconf_showcell) {
            fprintf(stderr, "Note: Operation is performed on cell %s\n",
                    afscell_path);
@@ -984,17 +1007,20 @@ afsconf_GetLocalCell(register struct afsconf_dir *adir, char *aname,
            code = AFSCONF_UNKNOWN;
     }
 
-    UNLOCK_GLOBAL_MUTEX return (code);
+    UNLOCK_GLOBAL_MUTEX;
+    return (code);
 }
 
 int
 afsconf_Close(struct afsconf_dir *adir)
 {
-    LOCK_GLOBAL_MUTEX afsconf_CloseInternal(adir);
+    LOCK_GLOBAL_MUTEX;
+    afsconf_CloseInternal(adir);
     if (adir->name)
        free(adir->name);
     free(adir);
-    UNLOCK_GLOBAL_MUTEX return 0;
+    UNLOCK_GLOBAL_MUTEX;
+    return 0;
 }
 
 static int
@@ -1060,9 +1086,9 @@ afsconf_IntGetKeys(struct afsconf_dir *adir)
     }
 #endif /* AFS_NT40_ENV */
 
-    LOCK_GLOBAL_MUTEX
-       /* compute the key name and other setup */
-       strcompose(tbuffer, 256, adir->name, "/", AFSDIR_KEY_FILE, NULL);
+    LOCK_GLOBAL_MUTEX;
+    /* compute the key name and other setup */
+    strcompose(tbuffer, 256, adir->name, "/", AFSDIR_KEY_FILE, NULL);
     tstr = (struct afsconf_keys *)malloc(sizeof(struct afsconf_keys));
     adir->keystr = tstr;
 
@@ -1070,13 +1096,15 @@ afsconf_IntGetKeys(struct afsconf_dir *adir)
     fd = open(tbuffer, O_RDONLY);
     if (fd < 0) {
        tstr->nkeys = 0;
-       UNLOCK_GLOBAL_MUTEX return 0;
+       UNLOCK_GLOBAL_MUTEX;
+       return 0;
     }
     code = read(fd, tstr, sizeof(struct afsconf_keys));
     close(fd);
     if (code < sizeof(afs_int32)) {
        tstr->nkeys = 0;
-       UNLOCK_GLOBAL_MUTEX return 0;
+       UNLOCK_GLOBAL_MUTEX;
+       return 0;
     }
 
     /* convert key structure to host order */
@@ -1084,7 +1112,8 @@ afsconf_IntGetKeys(struct afsconf_dir *adir)
     for (fd = 0; fd < tstr->nkeys; fd++)
        tstr->key[fd].kvno = ntohl(tstr->key[fd].kvno);
 
-    UNLOCK_GLOBAL_MUTEX return 0;
+    UNLOCK_GLOBAL_MUTEX;
+    return 0;
 }
 
 /* get keys structure */
@@ -1093,12 +1122,15 @@ afsconf_GetKeys(struct afsconf_dir *adir, struct afsconf_keys *astr)
 {
     register afs_int32 code;
 
-    LOCK_GLOBAL_MUTEX code = afsconf_Check(adir);
+    LOCK_GLOBAL_MUTEX;
+    code = afsconf_Check(adir);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return AFSCONF_FAILURE;
+       UNLOCK_GLOBAL_MUTEX;
+       return AFSCONF_FAILURE;
     }
     memcpy(astr, adir->keystr, sizeof(struct afsconf_keys));
-    UNLOCK_GLOBAL_MUTEX return 0;
+    UNLOCK_GLOBAL_MUTEX;
+    return 0;
 }
 
 /* get latest key */
@@ -1112,9 +1144,11 @@ afsconf_GetLatestKey(struct afsconf_dir * adir, afs_int32 * avno, char *akey)
     struct afsconf_key *bestk;
     register afs_int32 code;
 
-    LOCK_GLOBAL_MUTEX code = afsconf_Check(adir);
+    LOCK_GLOBAL_MUTEX;
+    code = afsconf_Check(adir);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return AFSCONF_FAILURE;
+       UNLOCK_GLOBAL_MUTEX;
+       return AFSCONF_FAILURE;
     }
     maxa = adir->keystr->nkeys;
 
@@ -1133,9 +1167,11 @@ afsconf_GetLatestKey(struct afsconf_dir * adir, afs_int32 * avno, char *akey)
            memcpy(akey, bestk->key, 8);        /* copy out latest key */
        if (avno)
            *avno = bestk->kvno;        /* and kvno to caller */
-       UNLOCK_GLOBAL_MUTEX return 0;
+       UNLOCK_GLOBAL_MUTEX;
+       return 0;
     }
-    UNLOCK_GLOBAL_MUTEX return AFSCONF_NOTFOUND;       /* didn't find any keys */
+    UNLOCK_GLOBAL_MUTEX;
+    return AFSCONF_NOTFOUND;   /* didn't find any keys */
 }
 
 /* get a particular key */
@@ -1146,20 +1182,24 @@ afsconf_GetKey(struct afsconf_dir *adir, afs_int32 avno, char *akey)
     register struct afsconf_key *tk;
     register afs_int32 code;
 
-    LOCK_GLOBAL_MUTEX code = afsconf_Check(adir);
+    LOCK_GLOBAL_MUTEX;
+    code = afsconf_Check(adir);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return AFSCONF_FAILURE;
+       UNLOCK_GLOBAL_MUTEX;
+       return AFSCONF_FAILURE;
     }
     maxa = adir->keystr->nkeys;
 
     for (tk = adir->keystr->key, i = 0; i < maxa; i++, tk++) {
        if (tk->kvno == avno) {
            memcpy(akey, tk->key, 8);
-           UNLOCK_GLOBAL_MUTEX return 0;
+           UNLOCK_GLOBAL_MUTEX;
+           return 0;
        }
     }
 
-    UNLOCK_GLOBAL_MUTEX return AFSCONF_NOTFOUND;
+    UNLOCK_GLOBAL_MUTEX;
+    return AFSCONF_NOTFOUND;
 }
 
 /* save the key structure in the appropriate file */
@@ -1202,18 +1242,21 @@ afsconf_AddKey(struct afsconf_dir *adir, afs_int32 akvno, char akey[8],
     register afs_int32 i;
     int foundSlot;
 
-    LOCK_GLOBAL_MUTEX tk = adir->keystr;
+    LOCK_GLOBAL_MUTEX;
+    tk = adir->keystr;
 
     if (akvno != 999) {
        if (akvno < 0 || akvno > 255) {
-           UNLOCK_GLOBAL_MUTEX return ERANGE;
+           UNLOCK_GLOBAL_MUTEX;
+           return ERANGE;
        }
     }
     foundSlot = 0;
     for (i = 0, tkey = tk->key; i < tk->nkeys; i++, tkey++) {
        if (tkey->kvno == akvno) {
            if (!overwrite) {
-               UNLOCK_GLOBAL_MUTEX return AFSCONF_KEYINUSE;
+               UNLOCK_GLOBAL_MUTEX;
+               return AFSCONF_KEYINUSE;
            }
            foundSlot = 1;
            break;
@@ -1221,7 +1264,8 @@ afsconf_AddKey(struct afsconf_dir *adir, afs_int32 akvno, char akey[8],
     }
     if (!foundSlot) {
        if (tk->nkeys >= AFSCONF_MAXKEYS) {
-           UNLOCK_GLOBAL_MUTEX return AFSCONF_FULL;
+           UNLOCK_GLOBAL_MUTEX;
+           return AFSCONF_FULL;
        }
        tkey = &tk->key[tk->nkeys++];
     }
@@ -1229,7 +1273,8 @@ afsconf_AddKey(struct afsconf_dir *adir, afs_int32 akvno, char akey[8],
     memcpy(tkey->key, akey, 8);
     i = SaveKeys(adir);
     afsconf_Touch(adir);
-    UNLOCK_GLOBAL_MUTEX return i;
+    UNLOCK_GLOBAL_MUTEX;
+    return i;
 }
 
 /* this proc works by sliding the other guys down, rather than using a funny
@@ -1243,7 +1288,8 @@ afsconf_DeleteKey(struct afsconf_dir *adir, afs_int32 akvno)
     register int i;
     int foundFlag = 0;
 
-    LOCK_GLOBAL_MUTEX tk = adir->keystr;
+    LOCK_GLOBAL_MUTEX;
+    tk = adir->keystr;
 
     for (i = 0, tkey = tk->key; i < tk->nkeys; i++, tkey++) {
        if (tkey->kvno == akvno) {
@@ -1252,7 +1298,8 @@ afsconf_DeleteKey(struct afsconf_dir *adir, afs_int32 akvno)
        }
     }
     if (!foundFlag) {
-       UNLOCK_GLOBAL_MUTEX return AFSCONF_NOTFOUND;
+       UNLOCK_GLOBAL_MUTEX;
+       return AFSCONF_NOTFOUND;
     }
 
     /* otherwise slide the others down.  i and tkey point at the guy to delete */
@@ -1263,5 +1310,6 @@ afsconf_DeleteKey(struct afsconf_dir *adir, afs_int32 akvno)
     tk->nkeys--;
     i = SaveKeys(adir);
     afsconf_Touch(adir);
-    UNLOCK_GLOBAL_MUTEX return i;
+    UNLOCK_GLOBAL_MUTEX;
+    return i;
 }
index e2b3eb2776bd06839ccd9a00bdd016e18a2d10a7..74e602468a16c1b284312fa7cf119c06c31be495 100644 (file)
@@ -17,7 +17,7 @@
 #endif
 
 RCSID
-    ("$Header: /cvs/openafs/src/auth/ktc.c,v 1.15 2004/04/14 23:26:13 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/auth/ktc.c,v 1.15.2.1 2004/08/25 07:09:36 shadow Exp $");
 
 #if defined(UKERNEL)
 #include "afs/sysincludes.h"
@@ -424,9 +424,9 @@ ktc_SetToken(aserver, atoken, aclient, flags)
 {
     int ncode, ocode;
 
-    LOCK_GLOBAL_MUTEX
+    LOCK_GLOBAL_MUTEX;
 #ifdef AFS_KERBEROS_ENV
-       if (!lcell[0])
+    if (!lcell[0])
        ktc_LocalCell();
 
     if (                       /*!strcmp(aclient->cell, lcell) && this would only store local creds */
@@ -453,7 +453,8 @@ ktc_SetToken(aserver, atoken, aclient, flags)
        }
        afs_tf_close();
 #ifdef NO_AFS_CLIENT
-       UNLOCK_GLOBAL_MUTEX return ncode;
+       UNLOCK_GLOBAL_MUTEX;
+       return ncode;
 #endif /* NO_AFS_CLIENT */
     }
 #endif
@@ -466,7 +467,8 @@ ktc_SetToken(aserver, atoken, aclient, flags)
     } else
        ocode = 0;
     if (ncode && ocode) {
-       UNLOCK_GLOBAL_MUTEX if (ocode == -1)
+       UNLOCK_GLOBAL_MUTEX;
+       if (ocode == -1)
            ocode = errno;
        else if (ocode == KTC_PIOCTLFAIL)
            ocode = errno;
@@ -479,7 +481,8 @@ ktc_SetToken(aserver, atoken, aclient, flags)
        return KTC_PIOCTLFAIL;
     }
 #endif /* NO_AFS_CLIENT */
-    UNLOCK_GLOBAL_MUTEX return 0;
+    UNLOCK_GLOBAL_MUTEX;
+    return 0;
 }
 
 /* get token, given server we need and token buffer.  aclient will eventually
@@ -502,9 +505,9 @@ ktc_GetToken(aserver, atoken, atokenLen, aclient)
     int tktLen;                        /* server ticket length */
     char found = 0;
 
-    LOCK_GLOBAL_MUTEX
+    LOCK_GLOBAL_MUTEX;
 #ifndef NO_AFS_CLIENT
-       TRY_KERNEL(KTC_GETTOKEN_OP, aserver, aclient, atoken, atokenLen);
+    TRY_KERNEL(KTC_GETTOKEN_OP, aserver, aclient, atoken, atokenLen);
 #endif /* NO_AFS_CLIENT */
 
 #ifdef AFS_KERBEROS_ENV
@@ -527,7 +530,8 @@ ktc_GetToken(aserver, atoken, atokenLen, aclient)
                       min(atokenLen, sizeof(struct ktc_token)));
                if (aclient)
                    *aclient = local_tokens[i].client;
-               UNLOCK_GLOBAL_MUTEX return 0;
+               UNLOCK_GLOBAL_MUTEX;
+               return 0;
            }
 #ifdef AFS_KERBEROS_ENV
        if (!afs_tf_init(ktc_tkt_string(), R_TKT_FIL)) {
@@ -557,13 +561,15 @@ ktc_GetToken(aserver, atoken, atokenLen, aclient)
                           min(atokenLen, sizeof(struct ktc_token)));
 
                    afs_tf_close();
-                   UNLOCK_GLOBAL_MUTEX return 0;
+                   UNLOCK_GLOBAL_MUTEX;
+                   return 0;
                }
            }
        }
        afs_tf_close();
 #endif
-       UNLOCK_GLOBAL_MUTEX return KTC_NOENT;
+       UNLOCK_GLOBAL_MUTEX;
+       return KTC_NOENT;
     }
 #ifndef NO_AFS_CLIENT
     for (index = 0; index < 200; index++) {    /* sanity check in case pioctl fails */
@@ -577,7 +583,8 @@ ktc_GetToken(aserver, atoken, atokenLen, aclient)
        if (code) {
            /* failed to retrieve specified token */
            if (code < 0 && errno == EDOM) {
-               UNLOCK_GLOBAL_MUTEX return KTC_NOENT;
+               UNLOCK_GLOBAL_MUTEX;
+               return KTC_NOENT;
            }
        } else {
            /* token retrieved; parse buffer */
@@ -595,7 +602,8 @@ ktc_GetToken(aserver, atoken, atokenLen, aclient)
            /* get size of clear token and verify */
            memcpy(&temp, tp, sizeof(afs_int32));
            if (temp != sizeof(struct ClearToken)) {
-               UNLOCK_GLOBAL_MUTEX return KTC_ERROR;
+               UNLOCK_GLOBAL_MUTEX;
+               return KTC_ERROR;
            }
            tp += sizeof(afs_int32);
 
@@ -618,7 +626,8 @@ ktc_GetToken(aserver, atoken, atokenLen, aclient)
                maxLen =
                    atokenLen - sizeof(struct ktc_token) + MAXKTCTICKETLEN;
                if (maxLen < tktLen) {
-                   UNLOCK_GLOBAL_MUTEX return KTC_TOOBIG;
+                   UNLOCK_GLOBAL_MUTEX;
+                   return KTC_TOOBIG;
                }
 
                /* set return values */
@@ -645,13 +654,15 @@ ktc_GetToken(aserver, atoken, atokenLen, aclient)
                        sprintf(aclient->name, "Unix UID %d", ct.ViceId);
                    }
                }
-               UNLOCK_GLOBAL_MUTEX return 0;
+               UNLOCK_GLOBAL_MUTEX;
+               return 0;
            }
        }
     }
 #endif /* NO_AFS_CLIENT */
 
-    UNLOCK_GLOBAL_MUTEX if ((code < 0) && (errno == EINVAL))
+    UNLOCK_GLOBAL_MUTEX;
+    if ((code < 0) && (errno == EINVAL))
        return KTC_NOPIOCTL;
     return KTC_PIOCTLFAIL;     /* probable cause */
 }
@@ -666,10 +677,12 @@ ktc_ForgetToken(aserver)
 {
     int rc;
 
-    LOCK_GLOBAL_MUTEX TRY_KERNEL(KTC_FORGETTOKEN_OP, aserver, 0, 0, 0);
+    LOCK_GLOBAL_MUTEX;
+    TRY_KERNEL(KTC_FORGETTOKEN_OP, aserver, 0, 0, 0);
 
     rc = ktc_ForgetAllTokens();        /* bogus, but better */
-    UNLOCK_GLOBAL_MUTEX return rc;
+    UNLOCK_GLOBAL_MUTEX;
+    return rc;
 }
 #endif /* NO_AFS_CLIENT */
 
@@ -689,9 +702,9 @@ ktc_ListTokens(aprevIndex, aindex, aserver)
 
     memset(tbuffer, 0, sizeof(tbuffer));
 
-    LOCK_GLOBAL_MUTEX
+    LOCK_GLOBAL_MUTEX;
 #ifndef NO_AFS_CLIENT
-       TRY_KERNEL(KTC_LISTTOKENS_OP, aserver, aprevIndex, aindex, 0);
+    TRY_KERNEL(KTC_LISTTOKENS_OP, aserver, aprevIndex, aindex, 0);
 #endif /* NO_AFS_CLIENT */
 
     index = aprevIndex;
@@ -708,20 +721,23 @@ ktc_ListTokens(aprevIndex, aindex, aserver)
        if (afs_tf_init(ktc_tkt_string(), R_TKT_FIL)
            || afs_tf_get_pname(tbuffer) || afs_tf_get_pinst(tbuffer)) {
            afs_tf_close();
-           UNLOCK_GLOBAL_MUTEX return KTC_NOENT;
+           UNLOCK_GLOBAL_MUTEX;
+           return KTC_NOENT;
        }
 
        for (i = 214; i < index; i++) {
            if (afs_tf_get_cred(&cprincipal, &ctoken)) {
                afs_tf_close();
-               UNLOCK_GLOBAL_MUTEX return KTC_NOENT;
+               UNLOCK_GLOBAL_MUTEX;
+               return KTC_NOENT;
            }
        }
 
       again:
        if (afs_tf_get_cred(&cprincipal, &ctoken)) {
            afs_tf_close();
-           UNLOCK_GLOBAL_MUTEX return KTC_NOENT;
+           UNLOCK_GLOBAL_MUTEX;
+           return KTC_NOENT;
        }
        index++;
 
@@ -743,7 +759,8 @@ ktc_ListTokens(aprevIndex, aindex, aserver)
        *aserver = cprincipal;
        *aindex = index;
        afs_tf_close();
-       UNLOCK_GLOBAL_MUTEX return 0;
+       UNLOCK_GLOBAL_MUTEX;
+       return 0;
     }
 #endif
 
@@ -753,15 +770,16 @@ ktc_ListTokens(aprevIndex, aindex, aserver)
            if (local_tokens[index - 123].valid) {
                *aserver = local_tokens[index - 123].server;
                *aindex = index + 1;
-               UNLOCK_GLOBAL_MUTEX return 0;
+               UNLOCK_GLOBAL_MUTEX;
+               return 0;
            }
            index++;
        }
-       UNLOCK_GLOBAL_MUTEX
+       UNLOCK_GLOBAL_MUTEX;
 #ifdef AFS_KERBEROS_ENV
-           return ktc_ListTokens(214, aindex, aserver);
+       return ktc_ListTokens(214, aindex, aserver);
 #else
-           return KTC_NOENT;
+       return KTC_NOENT;
 #endif
     }
 
@@ -776,9 +794,11 @@ ktc_ListTokens(aprevIndex, aindex, aserver)
            if (index < 123) {
                int rc;
                rc = ktc_ListTokens(123, aindex, aserver);
-               UNLOCK_GLOBAL_MUTEX return rc;
+               UNLOCK_GLOBAL_MUTEX;
+               return rc;
            } else {
-               UNLOCK_GLOBAL_MUTEX return KTC_NOENT;
+               UNLOCK_GLOBAL_MUTEX;
+               return KTC_NOENT;
            }
        }
        if (code == 0)
@@ -787,7 +807,8 @@ ktc_ListTokens(aprevIndex, aindex, aserver)
        index++;
     }
     if (code < 0) {
-       UNLOCK_GLOBAL_MUTEX if (errno == EINVAL)
+       UNLOCK_GLOBAL_MUTEX;
+       if (errno == EINVAL)
            return KTC_NOPIOCTL;
        return KTC_PIOCTLFAIL;
     }
@@ -803,7 +824,8 @@ ktc_ListTokens(aprevIndex, aindex, aserver)
     tp += temp;                        /* skip ticket for now */
     memcpy(&temp, tp, sizeof(afs_int32));      /* get size of clear token */
     if (temp != sizeof(struct ClearToken)) {
-       UNLOCK_GLOBAL_MUTEX return KTC_ERROR;
+       UNLOCK_GLOBAL_MUTEX;
+       return KTC_ERROR;
     }
     tp += sizeof(afs_int32);   /* skip length */
     tp += temp;                        /* skip clear token itself */
@@ -813,7 +835,8 @@ ktc_ListTokens(aprevIndex, aindex, aserver)
     aserver->instance[0] = 0;
     strcpy(aserver->name, "afs");
 #endif /* NO_AFS_CLIENT */
-    UNLOCK_GLOBAL_MUTEX return 0;
+    UNLOCK_GLOBAL_MUTEX;
+    return 0;
 }
 
 /* discard all tokens from this user's cache */
@@ -854,9 +877,9 @@ ktc_ForgetAllTokens()
 {
     int ncode, ocode;
 
-    LOCK_GLOBAL_MUTEX
+    LOCK_GLOBAL_MUTEX;
 #ifdef AFS_KERBEROS_ENV
-    (void) afs_tf_dest_tkt();
+    (void)afs_tf_dest_tkt();
 #endif
 
     ncode = NewForgetAll();
@@ -866,11 +889,13 @@ ktc_ForgetAllTokens()
            ocode = errno;
        else if (ocode == KTC_PIOCTLFAIL)
            ocode = errno;
-       UNLOCK_GLOBAL_MUTEX if (ocode == EINVAL)
+       UNLOCK_GLOBAL_MUTEX;
+       if (ocode == EINVAL)
            return KTC_NOPIOCTL;
        return KTC_PIOCTLFAIL;
     }
-    UNLOCK_GLOBAL_MUTEX return 0;
+    UNLOCK_GLOBAL_MUTEX;
+    return 0;
 }
 
 /* ktc_OldPioctl - returns a boolean true if the kernel supports only the old
@@ -879,14 +904,15 @@ ktc_ForgetAllTokens()
 ktc_OldPioctl()
 {
     int rc;
-    LOCK_GLOBAL_MUTEX
+    LOCK_GLOBAL_MUTEX;
 #ifdef KERNEL_KTC_COMPAT
-       CHECK_KERNEL;
+    CHECK_KERNEL;
     rc = (kernelKTC != 1);     /* old style interface */
 #else
-       rc = 1;
+    rc = 1;
 #endif
-    UNLOCK_GLOBAL_MUTEX return rc;
+    UNLOCK_GLOBAL_MUTEX;
+    return rc;
 }
 
 
@@ -1415,7 +1441,8 @@ ktc_tkt_string()
 {
     char *env;
 
-    LOCK_GLOBAL_MUTEX if (!*krb_ticket_string) {
+    LOCK_GLOBAL_MUTEX;
+    if (!*krb_ticket_string) {
        if (env = getenv("KRBTKFILE")) {
            (void)strncpy(krb_ticket_string, env,
                          sizeof(krb_ticket_string) - 1);
@@ -1426,7 +1453,8 @@ ktc_tkt_string()
            (void)sprintf(krb_ticket_string, "%s%d", TKT_ROOT, getuid());
        }
     }
-    UNLOCK_GLOBAL_MUTEX return krb_ticket_string;
+    UNLOCK_GLOBAL_MUTEX;
+    return krb_ticket_string;
 }
 
 /*
@@ -1445,10 +1473,11 @@ ktc_set_tkt_string(val)
      char *val;
 {
 
-    LOCK_GLOBAL_MUTEX(void) strncpy(krb_ticket_string, val,
-                                   sizeof(krb_ticket_string) - 1);
+    LOCK_GLOBAL_MUTEX;
+    (void)strncpy(krb_ticket_string, val, sizeof(krb_ticket_string) - 1);
     krb_ticket_string[sizeof(krb_ticket_string) - 1] = '\0';
-    UNLOCK_GLOBAL_MUTEX return;
+    UNLOCK_GLOBAL_MUTEX;
+    return;
 }
 
 /*
@@ -1615,7 +1644,8 @@ ktc_newpag()
     int numenv;
     char **newenv, **senv, **denv;
 
-    LOCK_GLOBAL_MUTEX if (stat("/ticket", &sbuf) == -1) {
+    LOCK_GLOBAL_MUTEX;
+    if (stat("/ticket", &sbuf) == -1) {
        prefix = "/tmp/tkt";
     }
 
@@ -1641,7 +1671,8 @@ ktc_newpag()
     strcat(*denv, fname);
     *++denv = 0;
     environ = newenv;
-UNLOCK_GLOBAL_MUTEX}
+    UNLOCK_GLOBAL_MUTEX;
+}
 
 /*
  * BLETCH!  We have to invoke the entire afsconf package just to
index f25528db38aa1207307e65c7bf01aad595bf36ed..f610b9c34df95200ad99397cea210135fcc9af85 100644 (file)
@@ -13,7 +13,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/auth/ktc_nt.c,v 1.17 2004/07/08 13:24:00 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/auth/ktc_nt.c,v 1.17.2.1 2004/08/25 07:09:36 shadow Exp $");
 
 #include <afs/stds.h>
 #include <stdio.h>
@@ -49,7 +49,7 @@ static char AFSConfigKeyName[] =
     "SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\Parameters";
 
 static char AFSGlobalKTCMutexName[] = "Global\\AFS_KTC_Mutex";
-static char AFSKTCMutexName[]       = "AFS_KTC_Mutex";
+static char AFSKTCMutexName[] = "AFS_KTC_Mutex";
 
 /*
  * Support for RPC's to send and receive session keys
@@ -351,35 +351,32 @@ ktc_SetToken(struct ktc_principal *server, struct ktc_token *token,
 
 #ifndef AFS_WIN95_ENV
     ktcMutex = CreateMutex(NULL, TRUE, AFSGlobalKTCMutexName);
-    if ( ktcMutex == NULL )
-        return KTC_PIOCTLFAIL;
-    if ( GetLastError() == ERROR_ALREADY_EXISTS ) {
-        if ( WaitForSingleObject( ktcMutex, INFINITE) != WAIT_OBJECT_0 ) {
-            CloseHandle(ktcMutex);
-            return KTC_PIOCTLFAIL;
-        }
+    if (ktcMutex == NULL)
+       return KTC_PIOCTLFAIL;
+    if (GetLastError() == ERROR_ALREADY_EXISTS) {
+       if (WaitForSingleObject(ktcMutex, INFINITE) != WAIT_OBJECT_0) {
+           CloseHandle(ktcMutex);
+           return KTC_PIOCTLFAIL;
+       }
     }
 
     /* RPC to send session key */
     status = send_key(uuid, token->sessionKey.data);
     if (status != RPC_S_OK) {
-        if (status == 1)
-            strcpy(rpcErr, "RPC failure in AFS gateway");
-        else
-            DceErrorInqText(status, rpcErr);
-        if (status == RPC_S_SERVER_UNAVAILABLE ||
-            status == EPT_S_NOT_REGISTERED) 
-        {
-            ReleaseMutex(ktcMutex);
-            CloseHandle(ktcMutex);
-            return KTC_NOCMRPC;
-        }
-        else 
-        {
-            ReleaseMutex(ktcMutex);
-            CloseHandle(ktcMutex);
-            return KTC_RPC;
-        }
+       if (status == 1)
+           strcpy(rpcErr, "RPC failure in AFS gateway");
+       else
+           DceErrorInqText(status, rpcErr);
+       if (status == RPC_S_SERVER_UNAVAILABLE ||
+           status == EPT_S_NOT_REGISTERED) {
+           ReleaseMutex(ktcMutex);
+           CloseHandle(ktcMutex);
+           return KTC_NOCMRPC;
+       } else {
+           ReleaseMutex(ktcMutex);
+           CloseHandle(ktcMutex);
+           return KTC_RPC;
+       }
     }
 #endif /* AFS_WIN95_ENV */
 
@@ -397,17 +394,17 @@ ktc_SetToken(struct ktc_principal *server, struct ktc_token *token,
 #endif /* AFS_WIN95_ENV */
 
     if (code) {
-        if (code == -1) {
-            if (errno == ESRCH)
-                return KTC_NOCELL;
-            else if (errno == ENODEV)
-                return KTC_NOCM;
-            else if (errno == EINVAL)
-                return KTC_INVAL;
-            else
-                return KTC_PIOCTLFAIL;
-        } else
-            return KTC_PIOCTLFAIL;
+       if (code == -1) {
+           if (errno == ESRCH)
+               return KTC_NOCELL;
+           else if (errno == ENODEV)
+               return KTC_NOCM;
+           else if (errno == EINVAL)
+               return KTC_INVAL;
+           else
+               return KTC_PIOCTLFAIL;
+       } else
+           return KTC_PIOCTLFAIL;
     }
 
     return 0;
@@ -454,40 +451,39 @@ ktc_GetToken(struct ktc_principal *server, struct ktc_token *token,
     iob.out = tbuffer;
     iob.out_size = sizeof(tbuffer);
 
-#ifndef AFS_WIN95_ENV          
+#ifndef AFS_WIN95_ENV
     ktcMutex = CreateMutex(NULL, TRUE, AFSGlobalKTCMutexName);
-    if ( ktcMutex == NULL )
-        return KTC_PIOCTLFAIL;
-    if ( GetLastError() == ERROR_ALREADY_EXISTS ) {
-        if ( WaitForSingleObject( ktcMutex, INFINITE) != WAIT_OBJECT_0 ) {
-            CloseHandle(ktcMutex);
-            return KTC_PIOCTLFAIL;
-        }
+    if (ktcMutex == NULL)
+       return KTC_PIOCTLFAIL;
+    if (GetLastError() == ERROR_ALREADY_EXISTS) {
+       if (WaitForSingleObject(ktcMutex, INFINITE) != WAIT_OBJECT_0) {
+           CloseHandle(ktcMutex);
+           return KTC_PIOCTLFAIL;
+       }
     }
 #endif /* AFS_WIN95_ENV */
 
     code = pioctl(0, VIOCNEWGETTOK, &iob, 0);
     if (code) {
 #ifndef AFS_WIN95_ENV
-        ReleaseMutex(ktcMutex);
-        CloseHandle(ktcMutex);
+       ReleaseMutex(ktcMutex);
+       CloseHandle(ktcMutex);
 #endif /* AFS_WIN95_ENV */
-        if (code == -1) {
-            if (errno == ESRCH)
-                return KTC_NOCELL;
-            else if (errno == ENODEV)
-                return KTC_NOCM;
-            else if (errno == EINVAL)
-                return KTC_INVAL;
-            else if (errno == EDOM)
-                return KTC_NOENT;
-            else
-                return KTC_PIOCTLFAIL;
-        } else
-            return KTC_PIOCTLFAIL;
-    }                                                             
-
-#ifndef AFS_WIN95_ENV          
+       if (code == -1) {
+           if (errno == ESRCH)
+               return KTC_NOCELL;
+           else if (errno == ENODEV)
+               return KTC_NOCM;
+           else if (errno == EINVAL)
+               return KTC_INVAL;
+           else if (errno == EDOM)
+               return KTC_NOENT;
+           else
+               return KTC_PIOCTLFAIL;
+       } else
+           return KTC_PIOCTLFAIL;
+    }
+#ifndef AFS_WIN95_ENV
     /* get rid of RPC for win95 build */
     /* RPC to receive session key */
     status = receive_key(uuid, token->sessionKey.data);
@@ -496,15 +492,15 @@ ktc_GetToken(struct ktc_principal *server, struct ktc_token *token,
     CloseHandle(ktcMutex);
 
     if (status != RPC_S_OK) {
-        if (status == 1)
-            strcpy(rpcErr, "RPC failure in AFS gateway");
-        else
-            DceErrorInqText(status, rpcErr);
-        if (status == RPC_S_SERVER_UNAVAILABLE
-             || status == EPT_S_NOT_REGISTERED)
-            return KTC_NOCMRPC;
-        else 
-            return KTC_RPC;
+       if (status == 1)
+           strcpy(rpcErr, "RPC failure in AFS gateway");
+       else
+           DceErrorInqText(status, rpcErr);
+       if (status == RPC_S_SERVER_UNAVAILABLE
+           || status == EPT_S_NOT_REGISTERED)
+           return KTC_NOCMRPC;
+       else
+           return KTC_RPC;
     }
 #endif /* AFS_WIN95_ENV */
 
@@ -539,12 +535,12 @@ ktc_GetToken(struct ktc_principal *server, struct ktc_token *token,
     /* user name is here */
 
     /* check that ticket will fit 
-        * this compares the size of the ktc_token allocated by the app
-        * which might be smaller than the current definition of MAXKTCTICKETLEN
-        */
-       maxLen = tokenLen - sizeof(struct ktc_token) + MAXKTCTICKETLEN;
-       if (maxLen < ticketLen)
-               return KTC_TOOBIG;
+     * this compares the size of the ktc_token allocated by the app
+     * which might be smaller than the current definition of MAXKTCTICKETLEN
+     */
+    maxLen = tokenLen - sizeof(struct ktc_token) + MAXKTCTICKETLEN;
+    if (maxLen < ticketLen)
+       return KTC_TOOBIG;
 
     /* set return values */
     memcpy(token->ticket, ticketP, ticketLen);
@@ -580,15 +576,15 @@ ktc_ListTokens(int cellNum, int *cellNumP, struct ktc_principal *server)
     int code;
     HANDLE ktcMutex = NULL;
 
-#ifndef AFS_WIN95_ENV          
+#ifndef AFS_WIN95_ENV
     ktcMutex = CreateMutex(NULL, TRUE, AFSGlobalKTCMutexName);
-    if ( ktcMutex == NULL )
-        return KTC_PIOCTLFAIL;
-    if ( GetLastError() == ERROR_ALREADY_EXISTS ) {
-        if ( WaitForSingleObject( ktcMutex, INFINITE) != WAIT_OBJECT_0 ) {
-            CloseHandle(ktcMutex);
-            return KTC_PIOCTLFAIL;
-        }
+    if (ktcMutex == NULL)
+       return KTC_PIOCTLFAIL;
+    if (GetLastError() == ERROR_ALREADY_EXISTS) {
+       if (WaitForSingleObject(ktcMutex, INFINITE) != WAIT_OBJECT_0) {
+           CloseHandle(ktcMutex);
+           return KTC_PIOCTLFAIL;
+       }
     }
 #endif /* AFS_WIN95_ENV */
 
@@ -607,8 +603,8 @@ ktc_ListTokens(int cellNum, int *cellNumP, struct ktc_principal *server)
     code = pioctl(0, VIOCGETTOK, &iob, 0);
 
 #ifndef AFS_WIN95_ENV
-        ReleaseMutex(ktcMutex);
-        CloseHandle(ktcMutex);
+    ReleaseMutex(ktcMutex);
+    CloseHandle(ktcMutex);
 #endif /* AFS_WIN95_ENV */
 
     if (code) {
@@ -675,16 +671,15 @@ ktc_ForgetToken(struct ktc_principal *server)
     if (strcmp(server->name, "afs")) {
        return ForgetOneLocalToken(server);
     }
-
-#ifndef AFS_WIN95_ENV          
+#ifndef AFS_WIN95_ENV
     ktcMutex = CreateMutex(NULL, TRUE, AFSGlobalKTCMutexName);
-    if ( ktcMutex == NULL )
-        return KTC_PIOCTLFAIL;
-    if ( GetLastError() == ERROR_ALREADY_EXISTS ) {
-        if ( WaitForSingleObject( ktcMutex, INFINITE) != WAIT_OBJECT_0 ) {
-            CloseHandle(ktcMutex);
-            return KTC_PIOCTLFAIL;
-        }
+    if (ktcMutex == NULL)
+       return KTC_PIOCTLFAIL;
+    if (GetLastError() == ERROR_ALREADY_EXISTS) {
+       if (WaitForSingleObject(ktcMutex, INFINITE) != WAIT_OBJECT_0) {
+           CloseHandle(ktcMutex);
+           return KTC_PIOCTLFAIL;
+       }
     }
 #endif /* AFS_WIN95_ENV */
 
@@ -731,15 +726,15 @@ ktc_ForgetAllTokens()
 
     (void)ForgetLocalTokens();
 
-#ifndef AFS_WIN95_ENV          
+#ifndef AFS_WIN95_ENV
     ktcMutex = CreateMutex(NULL, TRUE, AFSGlobalKTCMutexName);
-    if ( ktcMutex == NULL )
-        return KTC_PIOCTLFAIL;
-    if ( GetLastError() == ERROR_ALREADY_EXISTS ) {
-        if ( WaitForSingleObject( ktcMutex, INFINITE) != WAIT_OBJECT_0 ) {
-            CloseHandle(ktcMutex);
-            return KTC_PIOCTLFAIL;
-        }
+    if (ktcMutex == NULL)
+       return KTC_PIOCTLFAIL;
+    if (GetLastError() == ERROR_ALREADY_EXISTS) {
+       if (WaitForSingleObject(ktcMutex, INFINITE) != WAIT_OBJECT_0) {
+           CloseHandle(ktcMutex);
+           return KTC_PIOCTLFAIL;
+       }
     }
 #endif /* AFS_WIN95_ENV */
 
@@ -790,7 +785,8 @@ SetLocalToken(struct ktc_principal *aserver, struct ktc_token *atoken,
     int found = -1;
     int i;
 
-    LOCK_GLOBAL_MUTEX for (i = 0; i < MAXLOCALTOKENS; i++)
+    LOCK_GLOBAL_MUTEX;
+    for (i = 0; i < MAXLOCALTOKENS; i++)
        if (local_tokens[i].valid) {
            if ((strcmp(local_tokens[i].server.name, aserver->name) == 0)
                && (strcmp(local_tokens[i].server.instance, aserver->instance)
@@ -802,7 +798,8 @@ SetLocalToken(struct ktc_principal *aserver, struct ktc_token *atoken,
        } else if (found == -1)
            found = i;          /* remember empty slot but keep looking for a match */
     if (found == -1) {
-       UNLOCK_GLOBAL_MUTEX return KTC_NOENT;
+       UNLOCK_GLOBAL_MUTEX;
+       return KTC_NOENT;
     }
     memcpy(&local_tokens[found].token, atoken, sizeof(struct ktc_token));
     memcpy(&local_tokens[found].server, aserver,
@@ -810,7 +807,8 @@ SetLocalToken(struct ktc_principal *aserver, struct ktc_token *atoken,
     memcpy(&local_tokens[found].client, aclient,
           sizeof(struct ktc_principal));
     local_tokens[found].valid = 1;
-    UNLOCK_GLOBAL_MUTEX return 0;
+    UNLOCK_GLOBAL_MUTEX;
+    return 0;
 }
 
 
@@ -820,7 +818,8 @@ GetLocalToken(struct ktc_principal *aserver, struct ktc_token *atoken,
 {
     int i;
 
-    LOCK_GLOBAL_MUTEX for (i = 0; i < MAXLOCALTOKENS; i++)
+    LOCK_GLOBAL_MUTEX;
+    for (i = 0; i < MAXLOCALTOKENS; i++)
        if (local_tokens[i].valid
            && (strcmp(local_tokens[i].server.name, aserver->name) == 0)
            && (strcmp(local_tokens[i].server.instance, aserver->instance) ==
@@ -830,9 +829,11 @@ GetLocalToken(struct ktc_principal *aserver, struct ktc_token *atoken,
                   min(atokenLen, sizeof(struct ktc_token)));
            memcpy(aclient, &local_tokens[i].client,
                   sizeof(struct ktc_principal));
-           UNLOCK_GLOBAL_MUTEX return 0;
+           UNLOCK_GLOBAL_MUTEX;
+           return 0;
        }
-    UNLOCK_GLOBAL_MUTEX return KTC_NOENT;
+    UNLOCK_GLOBAL_MUTEX;
+    return KTC_NOENT;
 }
 
 
@@ -841,12 +842,14 @@ ForgetLocalTokens()
 {
     int i;
 
-    LOCK_GLOBAL_MUTEX for (i = 0; i < MAXLOCALTOKENS; i++) {
+    LOCK_GLOBAL_MUTEX;
+    for (i = 0; i < MAXLOCALTOKENS; i++) {
        local_tokens[i].valid = 0;
        memset(&local_tokens[i].token.sessionKey, 0,
               sizeof(struct ktc_encryptionKey));
     }
-    UNLOCK_GLOBAL_MUTEX return 0;
+    UNLOCK_GLOBAL_MUTEX;
+    return 0;
 }
 
 
@@ -855,7 +858,8 @@ ForgetOneLocalToken(struct ktc_principal *aserver)
 {
     int i;
 
-    LOCK_GLOBAL_MUTEX for (i = 0; i < MAXLOCALTOKENS; i++) {
+    LOCK_GLOBAL_MUTEX;
+    for (i = 0; i < MAXLOCALTOKENS; i++) {
        if (local_tokens[i].valid
            && (strcmp(local_tokens[i].server.name, aserver->name) == 0)
            && (strcmp(local_tokens[i].server.instance, aserver->instance) ==
@@ -864,8 +868,10 @@ ForgetOneLocalToken(struct ktc_principal *aserver)
            local_tokens[i].valid = 0;
            memset(&local_tokens[i].token.sessionKey, 0,
                   sizeof(struct ktc_encryptionKey));
-           UNLOCK_GLOBAL_MUTEX return 0;
+           UNLOCK_GLOBAL_MUTEX;
+           return 0;
        }
     }
-    UNLOCK_GLOBAL_MUTEX return KTC_NOENT;
+    UNLOCK_GLOBAL_MUTEX;
+    return KTC_NOENT;
 }
index a17fce6aff19a977cc6700846d6224bdee5976f0..f234e4c2ddf169791f65c530a9afa4f8665a077e 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/auth/userok.c,v 1.12 2003/12/07 22:49:17 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/auth/userok.c,v 1.12.2.1 2004/08/25 07:09:36 shadow Exp $");
 
 #include <afs/stds.h>
 #include <afs/pthread_glock.h>
@@ -54,9 +54,10 @@ afsconf_CheckAuth(adir, acall)
      register struct rx_call *acall;
      register struct afsconf_dir *adir;
 {
-    LOCK_GLOBAL_MUTEX return ((afsconf_SuperUser(adir, acall, NULL) == 0) ?
-                             10029 : 0);
-UNLOCK_GLOBAL_MUTEX}
+    LOCK_GLOBAL_MUTEX;
+    return ((afsconf_SuperUser(adir, acall, NULL) == 0) ? 10029 : 0);
+    UNLOCK_GLOBAL_MUTEX;
+}
 #endif /* !defined(UKERNEL) */
 
 static int
@@ -77,8 +78,10 @@ afsconf_GetNoAuthFlag(adir)
 {
     int rc;
 
-    LOCK_GLOBAL_MUTEX rc = GetNoAuthFlag(adir);
-    UNLOCK_GLOBAL_MUTEX return rc;
+    LOCK_GLOBAL_MUTEX;
+    rc = GetNoAuthFlag(adir);
+    UNLOCK_GLOBAL_MUTEX;
+    return rc;
 }
 
 void
@@ -88,7 +91,8 @@ afsconf_SetNoAuthFlag(adir, aflag)
 {
     register afs_int32 code;
 
-    LOCK_GLOBAL_MUTEX if (aflag == 0) {
+    LOCK_GLOBAL_MUTEX;
+    if (aflag == 0) {
        /* turn off noauth flag */
        code = (unlink(AFSDIR_SERVER_NOAUTH_FILEPATH) ? errno : 0);
        osi_audit(NoAuthDisableEvent, code, AUD_END);
@@ -103,7 +107,8 @@ afsconf_SetNoAuthFlag(adir, aflag)
        } else
            osi_audit(NoAuthEnableEvent, errno, AUD_END);
     }
-UNLOCK_GLOBAL_MUTEX}
+    UNLOCK_GLOBAL_MUTEX;
+}
 
 /* deletes a user from the UserList file */
 int
@@ -122,8 +127,9 @@ afsconf_DeleteUser(adir, auser)
     struct stat tstat;
     register afs_int32 code;
 
-    LOCK_GLOBAL_MUTEX strcompose(tbuffer, sizeof tbuffer, adir->name, "/",
-                                AFSDIR_ULIST_FILE, NULL);
+    LOCK_GLOBAL_MUTEX;
+    strcompose(tbuffer, sizeof tbuffer, adir->name, "/",
+              AFSDIR_ULIST_FILE, NULL);
 #ifndef AFS_NT40_ENV
     {
        /*
@@ -140,18 +146,21 @@ afsconf_DeleteUser(adir, auser)
 #endif /* AFS_NT40_ENV */
     tf = fopen(tbuffer, "r");
     if (!tf) {
-       UNLOCK_GLOBAL_MUTEX return -1;
+       UNLOCK_GLOBAL_MUTEX;
+       return -1;
     }
     code = stat(tbuffer, &tstat);
     if (code < 0) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
     strcpy(nbuffer, tbuffer);
     strcat(nbuffer, ".NXX");
     nf = fopen(nbuffer, "w+");
     if (!nf) {
        fclose(tf);
-       UNLOCK_GLOBAL_MUTEX return EIO;
+       UNLOCK_GLOBAL_MUTEX;
+       return EIO;
     }
     flag = 0;
     found = 0;
@@ -185,8 +194,9 @@ afsconf_DeleteUser(adir, auser)
        unlink(nbuffer);
 
     /* finally, decide what to return to the caller */
-    UNLOCK_GLOBAL_MUTEX if (flag)
-         return EIO;           /* something mysterious went wrong */
+    UNLOCK_GLOBAL_MUTEX;
+    if (flag)
+       return EIO;             /* something mysterious went wrong */
     if (!found)
        return ENOENT;          /* entry wasn't found, no changes made */
     return 0;                  /* everything was fine */
@@ -207,11 +217,13 @@ afsconf_GetNthUser(adir, an, abuffer, abufferLen)
     register int flag;
     register afs_int32 code;
 
-    LOCK_GLOBAL_MUTEX strcompose(tbuffer, sizeof tbuffer, adir->name, "/",
-                                AFSDIR_ULIST_FILE, NULL);
+    LOCK_GLOBAL_MUTEX;
+    strcompose(tbuffer, sizeof tbuffer, adir->name, "/",
+              AFSDIR_ULIST_FILE, NULL);
     tf = fopen(tbuffer, "r");
     if (!tf) {
-       UNLOCK_GLOBAL_MUTEX return 1;
+       UNLOCK_GLOBAL_MUTEX;
+       return 1;
     }
     flag = 1;
     while (1) {
@@ -228,7 +240,8 @@ afsconf_GetNthUser(adir, an, abuffer, abufferLen)
     if (flag == 0)
        strcpy(abuffer, tname);
     fclose(tf);
-    UNLOCK_GLOBAL_MUTEX return flag;
+    UNLOCK_GLOBAL_MUTEX;
+    return flag;
 }
 
 /* returns true iff user is in the UserList file */
@@ -275,15 +288,18 @@ afsconf_AddUser(adir, aname)
     register afs_int32 code;
     char tbuffer[256];
 
-    LOCK_GLOBAL_MUTEX if (FindUser(adir, aname)) {
-       UNLOCK_GLOBAL_MUTEX return EEXIST;      /* already in the list */
+    LOCK_GLOBAL_MUTEX;
+    if (FindUser(adir, aname)) {
+       UNLOCK_GLOBAL_MUTEX;
+       return EEXIST;          /* already in the list */
     }
 
     strcompose(tbuffer, sizeof tbuffer, adir->name, "/", AFSDIR_ULIST_FILE,
               NULL);
     tf = fopen(tbuffer, "a+");
     if (!tf) {
-       UNLOCK_GLOBAL_MUTEX return EIO;
+       UNLOCK_GLOBAL_MUTEX;
+       return EIO;
     }
     fprintf(tf, "%s\n", aname);
     code = 0;
@@ -291,7 +307,8 @@ afsconf_AddUser(adir, aname)
        code = EIO;
     if (fclose(tf))
        code = EIO;
-    UNLOCK_GLOBAL_MUTEX return code;
+    UNLOCK_GLOBAL_MUTEX;
+    return code;
 }
 
 /* special CompFindUser routine that builds up a princ and then
@@ -352,23 +369,28 @@ afsconf_SuperUser(adir, acall, namep)
     register afs_int32 code;
     int flag;
 
-    LOCK_GLOBAL_MUTEX if (!adir) {
-       UNLOCK_GLOBAL_MUTEX return 0;
+    LOCK_GLOBAL_MUTEX;
+    if (!adir) {
+       UNLOCK_GLOBAL_MUTEX;
+       return 0;
     }
 
     if (afsconf_GetNoAuthFlag(adir)) {
        if (namep)
            strcpy(namep, "<NoAuth>");
-       UNLOCK_GLOBAL_MUTEX return 1;
+       UNLOCK_GLOBAL_MUTEX;
+       return 1;
     }
 
     tconn = rx_ConnectionOf(acall);
     code = rx_SecurityClassOf(tconn);
     if (code == 0) {
-       UNLOCK_GLOBAL_MUTEX return 0;   /* not authenticated at all, answer is no */
+       UNLOCK_GLOBAL_MUTEX;
+       return 0;               /* not authenticated at all, answer is no */
     } else if (code == 1) {
        /* bcrypt tokens */
-       UNLOCK_GLOBAL_MUTEX return 0;   /* not supported any longer */
+       UNLOCK_GLOBAL_MUTEX;
+       return 0;               /* not supported any longer */
     } else if (code == 2) {
        char tname[MAXKTCNAMELEN];      /* authentication from ticket */
        char tinst[MAXKTCNAMELEN];
@@ -388,7 +410,8 @@ afsconf_SuperUser(adir, acall, namep)
            rxkad_GetServerInfo(acall->conn, NULL, &exp, tname, tinst, tcell,
                                NULL);
        if (code) {
-           UNLOCK_GLOBAL_MUTEX return 0;       /* bogus connection/other error */
+           UNLOCK_GLOBAL_MUTEX;
+           return 0;           /* bogus connection/other error */
        }
 
        /* don't bother checking anything else if tix have expired */
@@ -397,7 +420,8 @@ afsconf_SuperUser(adir, acall, namep)
 #else
        if (exp < FT_ApproxTime()) {
 #endif
-           UNLOCK_GLOBAL_MUTEX return 0;       /* expired tix */
+           UNLOCK_GLOBAL_MUTEX;
+           return 0;           /* expired tix */
        }
 
        /* generate lowercased version of cell name */
@@ -467,8 +491,10 @@ afsconf_SuperUser(adir, acall, namep)
 
        if (namep)
            strcpy(namep, uname);
-       UNLOCK_GLOBAL_MUTEX return flag;
+       UNLOCK_GLOBAL_MUTEX;
+       return flag;
     } else {                   /* some other auth type */
-       UNLOCK_GLOBAL_MUTEX return 0;   /* mysterious, just say no */
+       UNLOCK_GLOBAL_MUTEX;
+       return 0;               /* mysterious, just say no */
     }
 }
index 9cde1a001c940fead801a532b5a2f2f220ea657e..e6aeb8880b326027236ff230b9180ad5d5c7e6ea 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/auth/writeconfig.c,v 1.10 2003/12/07 22:49:17 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/auth/writeconfig.c,v 1.10.2.1 2004/08/25 07:09:36 shadow Exp $");
 
 #include <afs/pthread_glock.h>
 #include <afs/afsutil.h>
@@ -115,35 +115,40 @@ afsconf_SetExtendedCellInfo(adir, apath, acellInfo, clones)
     register FILE *tf;
     register afs_int32 i;
 
-    LOCK_GLOBAL_MUTEX
-       /* write ThisCell file */
-       strcompose(tbuffer, 1024, apath, "/", AFSDIR_THISCELL_FILE, NULL);
+    LOCK_GLOBAL_MUTEX;
+    /* write ThisCell file */
+    strcompose(tbuffer, 1024, apath, "/", AFSDIR_THISCELL_FILE, NULL);
 
     fd = open(tbuffer, O_RDWR | O_CREAT | O_TRUNC, 0666);
     if (fd < 0) {
-       UNLOCK_GLOBAL_MUTEX return errno;
+       UNLOCK_GLOBAL_MUTEX;
+       return errno;
     }
     i = strlen(acellInfo->name);
     code = write(fd, acellInfo->name, i);
     if (code != i) {
-       UNLOCK_GLOBAL_MUTEX return AFSCONF_FAILURE;
+       UNLOCK_GLOBAL_MUTEX;
+       return AFSCONF_FAILURE;
     }
     if (close(fd) < 0) {
-       UNLOCK_GLOBAL_MUTEX return errno;
+       UNLOCK_GLOBAL_MUTEX;
+       return errno;
     }
 
     /* make sure we have both name and address for each host, looking up other
      * if need be */
     code = VerifyEntries(acellInfo);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
 
     /* write CellServDB */
     strcompose(tbuffer, 1024, apath, "/", AFSDIR_CELLSERVDB_FILE, NULL);
     tf = fopen(tbuffer, "w");
     if (!tf) {
-       UNLOCK_GLOBAL_MUTEX return AFSCONF_NOTFOUND;
+       UNLOCK_GLOBAL_MUTEX;
+       return AFSCONF_NOTFOUND;
     }
     fprintf(tf, ">%s   #Cell name\n", acellInfo->name);
     for (i = 0; i < acellInfo->numServers; i++) {
@@ -162,7 +167,8 @@ afsconf_SetExtendedCellInfo(adir, apath, acellInfo, clones)
     }
     if (ferror(tf)) {
        fclose(tf);
-       UNLOCK_GLOBAL_MUTEX return AFSCONF_FAILURE;
+       UNLOCK_GLOBAL_MUTEX;
+       return AFSCONF_FAILURE;
     }
     code = fclose(tf);
 
@@ -173,7 +179,8 @@ afsconf_SetExtendedCellInfo(adir, apath, acellInfo, clones)
     if (adir)
        adir->timeRead = 0;
 
-    UNLOCK_GLOBAL_MUTEX if (code == EOF)
+    UNLOCK_GLOBAL_MUTEX;
+    if (code == EOF)
        return AFSCONF_FAILURE;
     return 0;
 }
index 65524417384b99eaf3296995e1129ce29315afb0..3184b4f8e8cb5db538b0681bf4ce4c16b4bced7f 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/bozo/bos.c,v 1.20 2003/12/07 22:49:18 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/bozo/bos.c,v 1.20.2.1 2004/08/25 07:03:36 shadow Exp $");
 
 #include <afs/stds.h>
 #include <stdlib.h>
@@ -145,7 +145,8 @@ DateOf(atime)
 {
     static char tbuffer[30];
     register char *tp;
-    tp = ctime((time_t *) & atime);
+    time_t t = (time_t) atime;
+    tp = ctime(&t);
     if (tp) {
        strcpy(tbuffer, tp);
        tbuffer[24] = 0;        /* get rid of new line */
index 63c14a5da17dbe2d49e2f36b647342cc23a9a6ba..1c4a748ee057968ed8ec174554f66fe345d22bc2 100644 (file)
@@ -123,4 +123,26 @@ extern afs_int32 xbsa_DeleteObject(struct butx_transactionInfo *info,
                                   char *objectSpaceName, char *pathName);
 
 #endif /*xbsa */
+
+
+/* XBSA Global Parameters */
+
+#ifdef XBSA_TCMAIN
+#define XBSA_EXT
+#else
+#define XBSA_EXT extern
+#endif
+
+XBSA_EXT afs_int32 xbsaType;
+#ifdef xbsa
+XBSA_EXT struct butx_transactionInfo butxInfo;
+
+#define rpc_c_protect_level_default 0
+XBSA_EXT afs_uint32 dumpRestAuthnLevel;
+XBSA_EXT char *xbsaObjectOwner;
+XBSA_EXT char *appObjectOwner;
+XBSA_EXT char *adsmServerName;
+XBSA_EXT char *xbsaSecToken;
+XBSA_EXT char *xbsalGName;
+#endif /*xbsa*/
 #endif /* OPENAFS_BUTC_XBSA_H */
index 6d711120d1762e39e47472396297c66c0d6cac32..181260cdccf24b8292c6649b20181ea3c6ce3bec 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/butc/tcmain.c,v 1.14 2003/11/29 21:37:56 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/butc/tcmain.c,v 1.14.2.1 2004/08/25 07:12:37 shadow Exp $");
 
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -55,6 +55,7 @@ RCSID
 #include "error_macros.h"
 #include <afs/budb_errs.h>
 #include "afs/butx.h"
+#define XBSA_TCMAIN
 #include "butc_xbsa.h"
 
 #define N_SECURITY_OBJECTS 3
@@ -92,20 +93,6 @@ char *closecallout;
 char *restoretofile;
 int forcemultiple;
 
-/* XBSA Global Parameters */
-afs_int32 xbsaType;
-#ifdef xbsa
-struct butx_transactionInfo butxInfo;
-
-#define rpc_c_protect_level_default 0
-afs_uint32 dumpRestAuthnLevel = rpc_c_protect_level_default;
-char *xbsaObjectOwner;
-char *appObjectOwner;
-char *adsmServerName;
-char *xbsaSecToken;
-char *xbsalGName;
-#endif
-
 int maxpass;
 #define PASSESMIN  1
 #define PASSESMAX  10
index 1e814ab4a35cde34dc910b08bfd5760329449360..2e6a46825a64a7c56d347ef43f3caa88d01926b7 100644 (file)
@@ -13,7 +13,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/butc/tcprocs.c,v 1.12 2004/07/13 05:52:46 shadow Exp $");
+    ("$Header: /cvs/openafs/src/butc/tcprocs.c,v 1.12.2.1 2004/08/25 07:12:37 shadow Exp $");
 
 #include <sys/types.h>
 #include <errno.h>
@@ -51,20 +51,6 @@ callPermitted(call)
     return 1;
 }
 
-/* XBSA Global Parameters */
-afs_int32 xbsaType;
-#ifdef xbsa
-struct butx_transactionInfo butxInfo;
-
-#define rpc_c_protect_level_default 0
-afs_uint32 dumpRestAuthnLevel = rpc_c_protect_level_default;
-char *xbsaObjectOwner;
-char *appObjectOwner;
-char *adsmServerName;
-char *xbsaSecToken;
-char *xbsalGName;
-#endif
-
 /* -------------------------
  * butc - interface routines - alphabetic order
  * -------------------------
index 8d63731819cf411cec0c2c3e56f09ce5a1f2768e..688b752c3d82eff7d841e35853b2448a3639834f 100644 (file)
@@ -421,6 +421,7 @@ case $AFS_SYSNAME in
                AIX64="#"
                ;;
 
+
        rs_aix51)
                DBG=""
                LEX="lex"
@@ -436,10 +437,24 @@ case $AFS_SYSNAME in
                AIX64=""
                ;;
 
+       rs_aix52)       
+               DBG=""
+               LEX="lex"
+               LIBSYS_AIX_EXP="afsl.exp"
+               MT_CC="xlc_r"
+               MT_CFLAGS='-DAFS_PTHREAD_ENV ${XCFLAGS}'
+               MT_LIBS="-lpthreads"
+               SHLIB_SUFFIX="o"
+               TXLIBS="-lcurses"
+               XCFLAGS="-K -D_NO_PROTO -D_NONSTD_TYPES -D_MBI=void"
+               XLIBS="${LIB_AFSDB} -ldl"
+               SHLIB_LINKER="${MT_CC} -bM:SRE -berok"
+               AIX64=""
+               ;;
        s390_linux22)
                CC="gcc"
                CCOBJ="gcc"
-               LD="gcc"
+               LD="ld"
                KERN_OPTMZ=-O2
                LEX="flex -l"
                MT_CC="$CC"
@@ -456,7 +471,7 @@ case $AFS_SYSNAME in
        s390_linux24)
                CC="gcc"
                CCOBJ="gcc"
-               LD="gcc"
+               LD="ld"
                KERN_OPTMZ=-O2
                LEX="flex -l"
                MT_CC="$CC"
@@ -470,6 +485,23 @@ case $AFS_SYSNAME in
                SHLIB_LINKER="${MT_CC} -shared"
                ;;
 
+       s390x_linux24)
+               CC="gcc"
+               CCOBJ="gcc"
+               LD="ld"
+               KERN_OPTMZ=-O2
+               LEX="flex -l"
+               MT_CC="$CC"
+               MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}'
+               MT_LIBS="-lpthread"
+               PAM_CFLAGS="-O -Dlinux -DLINUX_PAM -fPIC"
+               SHLIB_LDFLAGS="-shared -Xlinker -x"
+               TXLIBS="-lncurses"
+               XCFLAGS="-O -g -D_LARGEFILE64_SOURCE -D__s390x__"
+               YACC="bison -y"
+               SHLIB_LINKER="${MT_CC} -shared"
+               ;;
+
        sgi_62)
                PINSTALL_LIBS=-lmld
                AFSD_LIBS="/usr/lib/libdwarf.a /usr/lib/libelf.a"
index a2300c3fe1c92202df8625babc6d0d5a89dfc093..b32a2a17e3ee9f44a809da6916f910d606a37c4e 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/comerr/error_msg.c,v 1.5 2003/07/15 23:14:53 shadow Exp $");
+    ("$Header: /cvs/openafs/src/comerr/error_msg.c,v 1.5.2.1 2004/08/25 07:09:36 shadow Exp $");
 
 #include "internal.h"
 #include <stdio.h>
@@ -54,9 +54,11 @@ et_mutex_once(void)
 }
 
 #define LOCK_ET_LIST \
-       (et_list_done || pthread_once(&et_list_once, et_mutex_once)); \
-       assert(pthread_mutex_lock(&et_list_mutex)==0);
-#define UNLOCK_ET_LIST assert(pthread_mutex_unlock(&et_list_mutex)==0);
+       do { \
+           (et_list_done || pthread_once(&et_list_once, et_mutex_once)); \
+           assert(pthread_mutex_lock(&et_list_mutex)==0); \
+       } while (0)
+#define UNLOCK_ET_LIST assert(pthread_mutex_unlock(&et_list_mutex)==0)
 #else
 #define LOCK_ET_LIST
 #define UNLOCK_ET_LIST
@@ -131,16 +133,19 @@ error_message(afs_int32 code)
        else
            goto oops;
     }
-    LOCK_ET_LIST for (et = _et_list; et; et = et->next) {
+    LOCK_ET_LIST;
+    for (et = _et_list; et; et = et->next) {
        if (et->table->base == table_num) {
            /* This is the right table */
            if (et->table->n_msgs <= offset)
                goto oops;
-           UNLOCK_ET_LIST return (et->table->msgs[offset]);
+           UNLOCK_ET_LIST;
+           return (et->table->msgs[offset]);
        }
     }
   oops:
-    UNLOCK_ET_LIST strcpy(buffer, "Unknown code ");
+    UNLOCK_ET_LIST;
+    strcpy(buffer, "Unknown code ");
     if (table_num) {
        strcat(buffer, error_table_name(table_num));
        strcat(buffer, " ");
@@ -168,16 +173,18 @@ add_to_error_table(struct et_list *new_table)
 {
     struct et_list *et;
 
-    LOCK_ET_LIST
-       /*
-        * Protect against adding the same error table twice
-        */
-       for (et = _et_list; et; et = et->next) {
+    LOCK_ET_LIST;
+    /*
+     * Protect against adding the same error table twice
+     */
+    for (et = _et_list; et; et = et->next) {
        if (et->table->base == new_table->table->base) {
-           UNLOCK_ET_LIST return;
+           UNLOCK_ET_LIST;
+           return;
        }
     }
 
     new_table->next = _et_list;
     _et_list = new_table;
-UNLOCK_ET_LIST}
+    UNLOCK_ET_LIST;
+}
index 1bb9000a200d687c3f6aa5f03510f8e70f85b89f..9bf0a49219dbbeeea4c30687132b74596109a073 100644 (file)
@@ -28,7 +28,8 @@
 #
 ####### Special optional defines
 
-!IFNDEF NO_CRTDBG              #don't set _CRTDBG_MAP_ALLOC flag for some module compliations
+!IFNDEF NO_CRTDBG              
+#don't set _CRTDBG_MAP_ALLOC flag for some module compliations
 #_CRTDBG_MAP_ALLOC=1
 !ENDIF
 
@@ -79,8 +80,13 @@ LIB = $(AFSDEV_LIB)
 #define used in WinNT/2000 installation and program version display
 AFSPRODUCT_VER_MAJOR=1
 AFSPRODUCT_VER_MINOR=3
-AFSPRODUCT_VER_PATCH=7000
+AFSPRODUCT_VER_PATCH=7100
 AFSPRODUCT_VER_BUILD=0
+
+# For MSI installer, each major release should have a different GUID
+# http://msdn.microsoft.com/library/en-us/msi/setup/changing_the_product_code.asp
+AFSPRODUCT_VER_GUID=CCAF9E14-976E-46C0-8A1B-A218EAB7ADC5
+
 AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
 AFSPRODUCT_FILE_VERSION=$(AFSPRODUCT_VER_MAJOR),$(AFSPRODUCT_VER_MINOR),$(AFSPRODUCT_VER_PATCH),$(AFSPRODUCT_VER_BUILD)
 # Set CELLNAME_DEFAULT to "your cell name"
@@ -89,7 +95,7 @@ CELLSERVDB_INSTALL=CellServDB.GrandCentral
 CELLSERVDB_WEB=http://grand.central.org/dl/cellservdb/CellServDB
 TARGETOS = WINNT
 
-#              Define defaults folder locations
+# Define defaults folder locations
 DEST=dest
 SRC=src
 OBJ=obj
@@ -244,6 +250,7 @@ afscflags = $(afscflags) /GX
 
 !IF ("$(AFSVER_CL)"!="1200")
 afscdefs = $(afscdefs) /GT /GS
+#/Wp64
 !IF ("$(AFSVER_CL)"!="1400")
 afscdefs = $(afscdefs) /G7
 !ENDIF
index e6ae7ebd1e3491845832f64465d1643ac80f1f07..db042c3b18d43f242d823de9b066dd8b0cfaffe5 100644 (file)
 #define SYS_NAME_ID_s390_linux2         1900
 #define SYS_NAME_ID_s390_linux22        1901
 #define SYS_NAME_ID_s390_linux24        1902
+#define SYS_NAME_ID_s390x_linux2         1903
+#define SYS_NAME_ID_s390x_linux22        1904
+#define SYS_NAME_ID_s390x_linux24        1905
 
 #define SYS_NAME_ID_alpha_linux_2       2000
 #define SYS_NAME_ID_alpha_linux_22      2001
index 7696b3467378720220ad4f3e0cd1ead0f9c3a7ac..747d8f9fb01befdbfc72b6a00841f5669cd791a7 100644 (file)
 /* define if you have redhat buildsystem */
 #undef ENABLE_REDHAT_BUILDSYS
 
+/* define if you have in_systm.h header file */
+#undef HAVE_IN_SYSTM_H
+
+/* define if you have mm_inline.h header file */
+#undef HAVE_MM_INLINE_H
+
+/* define if you have in_systm.h header file */
+#undef HAVE_IN_SYSTM_H
+
 /* define if your linux kernel exports sys_chdir */
 #undef EXPORTED_SYS_CHDIR
 
index 0e27934127234d80ebb7d450607ba4bd8daab3f7..dcd08eb89c30fe9a320a3a235e75f6e990035f3d 100644 (file)
@@ -96,7 +96,7 @@ sub process_libafsdep
        $subdir =~ s|/$||gio;
 
        print "# $dir/$depname\n";
-       open(COMPS, "$dir/$depname");
+       open(COMPS, "$depname");
        while ( defined($file = <COMPS>) )
        {
                my ($destdir, $proj_src,$obj_src);
index 624858094c0e1fb884c48dfb718c38537520a081..c5bf4c976589ee4236560009bc8f083c4ebcff66 100644 (file)
@@ -1,88 +1,21 @@
-#ifndef UKERNEL
-/* This section for kernel libafs compiles only */
-
-#ifndef        AFS_PARAM_H
-#define        AFS_PARAM_H
-
-#ifndef IGNORE_STDS_H
-#include <sys/param.h>
-#endif
+#ifndef        AFS_I386_PARAM_H
+#define        AFS_I386_PARAM_H
 
 #define AFS_X86_XBSD_ENV 1
-
 #define AFS_X86_ENV 1
+#define AFSLITTLE_ENDIAN 1
 
 #define SYS_NAME       "i386_nbsd20"
 #define SYS_NAME_ID    SYS_NAME_ID_i386_nbsd20
 
-#define AFSLITTLE_ENDIAN 1
-
-#endif /* AFS_PARAM_H */
+#ifndef UKERNEL
+/* This section for kernel libafs compiles only */
 
 #else /* !defined(UKERNEL) */
 
 /* This section for user space compiles only */
 
-#ifndef AFS_PARAM_H
-#define AFS_PARAM_H
-
-
-#define UKERNEL                        1       /* user space kernel */
-#define AFS_ENV                        1
-#define AFS_VFSINCL_ENV         1
-#define AFS_NBSD_ENV           1
-#define AFS_NBSD15_ENV         1
-#define AFS_NBSD16_ENV         1
-#define AFS_NBSD20_ENV         1
-#define AFS_NONFSTRANS 1
-#define AFS_KERBEROS_ENV
-
-#define AFS_MOUNT_AFS "afs"    /* The name of the filesystem type. */
-#define AFS_SYSCALL 210
-#define AFS_NAMEI_ENV         1        /* User space interface to file system */
-#define AFS_64BIT_ENV         1
-#define AFS_64BIT_CLIENT      1
-#define AFS_64BIT_IOPS_ENV    1        /* Needed for NAMEI */
-#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_nbsd16"
-#define SYS_NAME_ID    SYS_NAME_ID_i386_nbsd16
-#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
-
-#include <limits.h>
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/mount.h>
-#include <sys/fcntl.h>
-#include <netinet/in.h>
-#include <sys/uio.h>
-#include <sys/socket.h>
+#endif /* !defined(UKERNEL) */
 
-#endif /* AFS_PARAM_H */
+#endif /* AFS_I386_PARAM_H */
 
-#endif /* !defined(UKERNEL) */
index fed9173d6941a76f9b80158f02d9a816bc596822..3bc7f399a2da39bd1fb880af58bf3569b7318e6e 100644 (file)
@@ -1,25 +1,47 @@
-#ifndef UKERNEL
-/* This section for kernel libafs compiles only */
-
+/* NetBSD shared section */
 
 #ifndef        AFS_PARAM_COMMON_H
-#define        AFS_PARAM_COMMON_H
+#define        AFS_PARAM_COMMON_H 1
 
-#ifndef ASSEMBLER
-#include <sys/param.h>
+#define AFS_64BIT_ENV  1
+#define AFS_NAMEI_ENV  1       /* User space interface to file system */
+#define AFS_64BIT_IOPS_ENV 1   /* Needed for NAMEI */
+#define AFS_64BIT_CLIENT 1
+
+#define AFS_MOUNT_AFS "afs"    /* The name of the filesystem type. */
+#define AFS_SYSCALL 210
+
+#ifndef        MOUNT_AFS
+#define        MOUNT_AFS AFS_MOUNT_AFS
 #endif
 
 #define AFS_XBSD_ENV 1         /* {Free,Open,Net}BSD */
 
-#define AFS_64BIT_ENV  1
-#define AFS_NAMEI_ENV     1    /* User space interface to file system */
-#define AFS_64BIT_IOPS_ENV 1   /* Needed for NAMEI */
 #define AFS_NBSD_ENV 1
 #define AFS_NBSD15_ENV 1
 #define AFS_NBSD16_ENV 1
 #define AFS_NBSD20_ENV 1
 #define AFS_NONFSTRANS 1
 #define AFS_KERBEROS_ENV 1
+
+#define AFS_VFSINCL_ENV 1
+
+#define AFS_HAVE_FFS            1      /* Use system's ffs. */
+
+#if    !defined(ASSEMBLER) && !defined(__LANGUAGE_ASSEMBLY__) && !defined(IGNORE_STDS_H)
+#if __NetBSD_Version__ >= 200040000
+#define AFS_HAVE_STATVFS    1  /* System supports statvfs */
+#else
+#define AFS_HAVE_STATVFS    0  /* System doesn't supports statvfs */
+#endif
+#endif
+
+#ifndef UKERNEL
+
+#if    !defined(ASSEMBLER) && !defined(__LANGUAGE_ASSEMBLY__) && !defined(IGNORE_STDS_H)
+#include <sys/param.h>
+#endif
+
 #define FTRUNC O_TRUNC
 
 #define IUPD 0x0010
 
 #define AFS_VM_RDWR_ENV        1
 #define AFS_VFS_ENV    1
-#define AFS_VFSINCL_ENV 1
 #define AFS_GREEDY43_ENV       1
-#define AFS_ENV        1
-
-#define AFS_MOUNT_AFS  "afs"
-#define AFS_SYSCALL 210
-
-
-#ifndef MOUNT_UFS
-#define MOUNT_UFS "ufs"
-#endif
-
-#ifndef        MOUNT_AFS
-#define        MOUNT_AFS AFS_MOUNT_AFS
-#endif
-
-#define AFS_HAVE_FFS            1      /* Use system's ffs. */
-#define AFS_HAVE_STATVFS       0       /* System supports statvfs */
 
 #define AFS_GCPAGS             0       /* if nonzero, garbage collect PAGs */
 #define AFS_USE_GETTIMEOFDAY    1      /* use gettimeofday to implement rx clock */
 #define        VN_RELE(vp)     vrele(((struct vnode *)(vp)))
 #define        VN_HOLD(vp)     VREF(((struct vnode *)(vp)))
 
-#if    !defined(ASSEMBLER) && !defined(__LANGUAGE_ASSEMBLY__)
+#if    !defined(ASSEMBLER) && !defined(__LANGUAGE_ASSEMBLY__) && !defined(IGNORE_STDS_H)
 enum vcexcl { NONEXCL, EXCL };
 
 #ifdef KERNEL
@@ -108,14 +113,50 @@ enum vcexcl { NONEXCL, EXCL };
 #endif
 #endif /* KERNEL */
 
-#endif /* ! ASSEMBLER & ! __LANGUAGE_ASSEMBLY__ */
+#endif /* ! ASSEMBLER & ! __LANGUAGE_ASSEMBLY__ && !defined(IGNORE_STDS_H) */ 
 #endif /* _KERNEL */
 
-#endif /* AFS_PARAM_COMMON_H */
-
 #else /* !defined(UKERNEL) */
 
+
 /* This section for user space compiles only */
 
+#define UKERNEL                        1       /* user space kernel */
+
+#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 */
+
+#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      UIO_SYSSPACE
+#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
+
+#if    !defined(ASSEMBLER) && !defined(__LANGUAGE_ASSEMBLY__) && !defined(IGNORE_STDS_H)
+#include <limits.h>
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/mount.h>
+#include <sys/fcntl.h>
+#include <netinet/in.h>
+#include <sys/uio.h>
+#include <sys/socket.h>
+#endif
 
 #endif /* !defined(UKERNEL) */
+
+#endif /* AFS_PARAM_COMMON_H */
index 1d0ea6ac5ad1a8db7081f0e1486eb2b83f871256..012839488dd2c0ea84252e644123ba4714365eb3 100644 (file)
@@ -1,10 +1,5 @@
-#ifndef UKERNEL
-/* This section for kernel libafs compiles only */
-
-#ifndef        AFS_PARAM_H
-#define        AFS_PARAM_H
-
-#include <sys/param.h>
+#ifndef        AFS_PPC_PARAM_H
+#define        AFS_PPC_PARAM_H
 
 #define SYS_NAME       "macppc_nbsd20"
 #define SYS_NAME_ID    SYS_NAME_ID_macppc_nbsd20
@@ -12,70 +7,4 @@
 #define AFS_PPC_ENV 1
 #define AFSBIG_ENDIAN   1
 
-#endif /* AFS_PARAM_H */
-
-#else /* !defined(UKERNEL) */
-
-/* This section for user space compiles only */
-
-#ifndef AFS_PARAM_H
-#define AFS_PARAM_H
-
-
-#define UKERNEL                        1       /* user space kernel */
-#define AFS_ENV                        1
-#define AFS_VFSINCL_ENV         1
-#define AFS_NBSD_ENV           1
-#define AFS_NBSD15_ENV         1
-#define AFS_NBSD16_ENV         1
-#define AFS_NBSD20_ENV         1
-#define AFS_NONFSTRANS 1
-#define AFS_KERBEROS_ENV
-
-#define AFS_MOUNT_AFS "afs"    /* The name of the filesystem type. */
-#define AFS_SYSCALL 210
-#define AFS_NAMEI_ENV         1        /* User space interface to file system */
-#define AFS_64BIT_IOPS_ENV    1        /* Needed for NAMEI */
-#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_nbsd16"
-#define SYS_NAME_ID    SYS_NAME_ID_i386_nbsd16
-#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
-
-#include <limits.h>
-#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/mount.h>
-#include <sys/fcntl.h>
-#include <netinet/in.h>
-#include <sys/uio.h>
-#include <sys/socket.h>
-
-#endif /* AFS_PARAM_H */
-
-#endif /* !defined(UKERNEL) */
+#endif /* AFS_PCC_PARAM_H */
diff --git a/src/config/param.s390x_linux24.h b/src/config/param.s390x_linux24.h
new file mode 100644 (file)
index 0000000..ed19421
--- /dev/null
@@ -0,0 +1,169 @@
+#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
+
+/* In user space the AFS_LINUX20_ENV should be sufficient. In the kernel,
+ * it's a judgment call. If something is obviously s390 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 AFS_LINUX20_ENV 1
+#define AFS_LINUX22_ENV        1
+#define AFS_LINUX24_ENV        1
+#define AFS_S390_LINUX20_ENV    1
+#define AFS_S390_LINUX22_ENV   1
+#define AFS_S390_LINUX24_ENV   1
+#define AFS_S390X_LINUX20_ENV    1
+#define AFS_S390X_LINUX22_ENV  1
+#define AFS_S390X_LINUX24_ENV  1
+#define AFS_NONFSTRANS 1
+
+#define AFS_MOUNT_AFS "afs"    /* The name of the filesystem type. */
+#define AFS_SYSCALL 137
+#define AFS_64BIT_ENV  1
+#define AFS_64BITPOINTER_ENV  1
+#define AFS_64BIT_CLIENT  1
+#define AFS_64BIT_KERNEL  1
+#define AFS_64BIT_IOPS_ENV  1
+#define AFS_NAMEI_ENV     1    /* User space interface to file system */
+
+#if defined(__KERNEL__) && !defined(KDUMP_KERNEL)
+#include <linux/threads.h>
+
+#include <linux/config.h>
+#ifdef CONFIG_SMP
+#undef CONFIG_SMP
+#endif
+/* Using "AFS_SMP" to map to however many #define's are required to get
+ * MP to compile for Linux
+ */
+#ifdef AFS_SMP
+#define CONFIG_SMP 1
+#ifndef CONFIG_S390_LOCAL_APIC
+#define CONFIG_S390_LOCAL_APIC 1
+#endif
+#ifndef __SMP__
+#define __SMP__
+#endif
+#define AFS_GLOBAL_SUNLOCK
+#endif
+#if defined(MODULE) && defined(CONFIG_MODVERSIONS)
+#define MODVERSIONS
+#include <linux/modversions.h>
+#endif
+#endif /* __KERNEL__  && !DUMP_KERNEL */
+
+#include <afs/afs_sysnames.h>
+
+#define AFS_USERSPACE_IP_ADDR 1
+#define RXK_LISTENER_ENV 1
+#define AFS_GCPAGS       2     /* Set to Userdisabled, allow sysctl to override */
+
+/* Machine / Operating system information */
+#define SYS_NAME       "s390x_linux24"
+#define SYS_NAME_ID    SYS_NAME_ID_s390x_linux24
+#define AFSBIG_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 */
+
+#ifdef KERNEL
+#ifndef MIN
+#define MIN(A,B) ((A) < (B) ? (A) : (B))
+#endif
+#ifndef MAX
+#define MAX(A,B) ((A) > (B) ? (A) : (B))
+#endif
+#endif /* KERNEL */
+
+#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 s390 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_USR_LINUX24_ENV    1
+#define AFS_S390X_LINUX20_ENV    1
+#define AFS_S390X_LINUX22_ENV  1
+#define AFS_S390X_LINUX24_ENV  1
+#define AFS_NONFSTRANS 1
+
+#define AFS_MOUNT_AFS "afs"    /* The name of the filesystem type. */
+#define AFS_SYSCALL 137
+#define AFS_64BIT_ENV  1
+#define AFS_64BIT_CLIENT  1
+#define AFS_64BITPOINTER_ENV  1
+#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       "s390x_linux24"
+#define SYS_NAME_ID    SYS_NAME_ID_s390x_linux24
+#define AFSBIG_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) */
index d47c6b9974937ebf0fe899780c3be229535b8ac9..9c9e98be4295c566ed4e5989f563fc27768efed2 100644 (file)
@@ -94,6 +94,13 @@ make_p:      make_p.o misc.o main.o
 make_s:        make_s.o misc.o main.o 
        ${CC} make_s.o misc.o main.o ${LDFLAGS} -o make_s
 
+crypt.o: crypt.c
+       case ${SYS_NAME} in \
+       rs_aix*)\
+               ${CC} -c ${COMMON_INCL} -o crypt.o crypt.c ;;\
+       *)\
+               ${CC} -c ${CFLAGS} -o crypt.o crypt.c ;;\
+       esac
 #
 # Table/code generation targets
 #
index 11fc1486feedfbcc0634942ec24903df41db2e2e..03d7e90e7a5196911d109534f2bddafdb02276db 100644 (file)
@@ -38,7 +38,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/des/crypt.c,v 1.13 2004/02/03 06:23:37 shadow Exp $");
+    ("$Header: /cvs/openafs/src/des/crypt.c,v 1.13.2.1 2004/08/25 07:03:38 shadow Exp $");
 
 #ifdef AFS_NT40_ENV
 #include <windows.h>
@@ -91,7 +91,7 @@ RCSID
  */
 
 /* XXX shouldn't this be !AFS_64BIT_ENV ? */
-#if !defined(cray) && !defined(AFS_ALPHA_LINUX20_ENV) && !defined(AFS_IA64_LINUX20_ENV) && !defined(AFS_AMD64_LINUX20_ENV) && !defined(AFS_PPC64_LINUX20_ENV)
+#if !defined(cray) && !defined(AFS_ALPHA_LINUX20_ENV) && !defined(AFS_IA64_LINUX20_ENV) && !defined(AFS_AMD64_LINUX20_ENV) && !defined(AFS_PPC64_LINUX20_ENV) & !defined(AFS_S390X_LINUX20_ENV)
 #define        LONG_IS_32_BITS
 #endif
 
index b676932f8d67fa1f412cfb5a7e3d0ca0e21d9ddd..3512e0976cf72c69e6d5c968ecec10831774e303 100644 (file)
@@ -37,7 +37,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/des/des.c,v 1.11 2003/07/15 23:14:59 shadow Exp $");
+    ("$Header: /cvs/openafs/src/des/des.c,v 1.11.2.1 2004/08/25 07:09:37 shadow Exp $");
 
 #ifndef KERNEL
 #include <stdio.h>
@@ -104,25 +104,26 @@ des_ecb_encrypt(afs_uint32 * clear, afs_uint32 * cipher,
 #ifdef DEBUG
     afs_uint32 dbg_tmp[2];
 #endif
-    LOCK_RXKAD_STATS if (encrypt)
-         rxkad_stats.des_encrypts[DES_ENCRYPT]++;
+    LOCK_RXKAD_STATS;
+    if (encrypt)
+       rxkad_stats.des_encrypts[DES_ENCRYPT]++;
     else
        rxkad_stats.des_encrypts[DES_DECRYPT]++;
-    UNLOCK_RXKAD_STATS
-       /*
-        * Use L1,R1 and L2,R2 as two sets of "64-bit" registers always
-        * work from L1,R1 input to L2,R2 output; initialize the cleartext
-        * into registers.
-        */
+    UNLOCK_RXKAD_STATS;
+    /*
+     * Use L1,R1 and L2,R2 as two sets of "64-bit" registers always
+     * work from L1,R1 input to L2,R2 output; initialize the cleartext
+     * into registers.
+     */
 #ifdef MUSTALIGN
 #ifdef DEBUG
-       /*
-        * If the alignment is wrong, the programmer really screwed up --
-        * we aren't even getting the right data type.  His problem.  Keep
-        * this code for debugging.
-        */
-       /* Make sure schedule is ok */
-       if ((afs_int32) schedule & 3) {
+    /*
+     * If the alignment is wrong, the programmer really screwed up --
+     * we aren't even getting the right data type.  His problem.  Keep
+     * this code for debugging.
+     */
+    /* Make sure schedule is ok */
+    if ((afs_int32) schedule & 3) {
        fprintf(stderr, "des.c schedule arg pointer not aligned\n");
        abort();
     }
index 6488fc2d3f45bca740ccf8fb546633932e120f7f..5f70eab6d2d22f04176fffd6a57b398eda74ac45 100644 (file)
@@ -31,7 +31,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/des/key_sched.c,v 1.6 2003/07/15 23:15:00 shadow Exp $");
+    ("$Header: /cvs/openafs/src/des/key_sched.c,v 1.6.2.1 2004/08/25 07:09:37 shadow Exp $");
 
 #include <mit-cpyright.h>
 #include "des_internal.h"
@@ -66,10 +66,11 @@ des_key_sched(register des_cblock k, des_key_schedule schedule)
     n = 0;
     p_char = k_char;
 
-    LOCK_RXKAD_STATS rxkad_stats.des_key_scheds++;
-    UNLOCK_RXKAD_STATS
+    LOCK_RXKAD_STATS;
+    rxkad_stats.des_key_scheds++;
+    UNLOCK_RXKAD_STATS;
 #ifdef lint
-       n = n;                  /* fool it in case of VAXASM */
+    n = n;                     /* fool it in case of VAXASM */
 #endif
 #ifdef DEBUG
     if (des_debug)
index c476107e506dd9995511aff61214a5d1a5864406..ce2d4e2a6973c9d32988d5765debb1c2aed67ba6 100644 (file)
@@ -19,7 +19,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/des/new_rnd_key.c,v 1.13 2003/12/07 22:49:24 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/des/new_rnd_key.c,v 1.13.2.1 2004/08/25 07:09:37 shadow Exp $");
 
 #ifndef KERNEL
 #include <stdio.h>
@@ -54,8 +54,8 @@ static int is_inited = 0;
 
 #include <assert.h>
 pthread_mutex_t des_init_mutex;
-#define LOCK_INIT assert(pthread_mutex_lock(&des_init_mutex)==0);
-#define UNLOCK_INIT assert(pthread_mutex_unlock(&des_init_mutex)==0);
+#define LOCK_INIT assert(pthread_mutex_lock(&des_init_mutex)==0)
+#define UNLOCK_INIT assert(pthread_mutex_unlock(&des_init_mutex)==0)
 #else
 #define LOCK_INIT
 #define UNLOCK_INIT
@@ -75,10 +75,11 @@ pthread_mutex_t des_init_mutex;
 int
 des_random_key(des_cblock key)
 {
-    LOCK_INIT if (!is_inited) {
+    LOCK_INIT;
+    if (!is_inited) {
        des_init_random_number_generator(key);
     }
-    UNLOCK_INIT
+    UNLOCK_INIT;
     do {
        des_generate_random_block(key);
        des_fixup_key_parity(key);
@@ -192,8 +193,8 @@ static unsigned char sequence_number[8];
 
 #include <assert.h>
 pthread_mutex_t des_random_mutex;
-#define LOCK_RANDOM assert(pthread_mutex_lock(&des_random_mutex)==0);
-#define UNLOCK_RANDOM assert(pthread_mutex_unlock(&des_random_mutex)==0);
+#define LOCK_RANDOM assert(pthread_mutex_lock(&des_random_mutex)==0)
+#define UNLOCK_RANDOM assert(pthread_mutex_unlock(&des_random_mutex)==0)
 #else
 #define LOCK_RANDOM
 #define UNLOCK_RANDOM
@@ -216,12 +217,14 @@ des_set_random_generator_seed(des_cblock key)
     register int i;
 
     /* select the new stream: (note errors are not possible here...) */
-    LOCK_RANDOM des_key_sched(key, random_sequence_key.d);
+    LOCK_RANDOM;
+    des_key_sched(key, random_sequence_key.d);
 
     /* "seek" to the start of the stream: */
     for (i = 0; i < 8; i++)
        sequence_number[i] = 0;
-UNLOCK_RANDOM}
+    UNLOCK_RANDOM;
+}
 
 /*
  * des_set_sequence_number: this routine is used to set the sequence number
@@ -234,9 +237,11 @@ UNLOCK_RANDOM}
 static afs_int32
 des_set_sequence_number(des_cblock new_sequence_number)
 {
-    LOCK_RANDOM memcpy((char *)sequence_number, (char *)new_sequence_number,
-                      sizeof(sequence_number));
-    UNLOCK_RANDOM return 0;
+    LOCK_RANDOM;
+    memcpy((char *)sequence_number, (char *)new_sequence_number,
+          sizeof(sequence_number));
+    UNLOCK_RANDOM;
+    return 0;
 }
 
 /*
@@ -252,13 +257,14 @@ des_generate_random_block(des_cblock block)
 {
     int i;
 
-    LOCK_RXKAD_STATS rxkad_stats.des_randoms++;
-    UNLOCK_RXKAD_STATS
-       /*
-        * Encrypt the sequence number to get the new random block:
-        */
-       LOCK_RANDOM des_ecb_encrypt(sequence_number, block,
-                                   random_sequence_key.d, 1);
+    LOCK_RXKAD_STATS;
+    rxkad_stats.des_randoms++;
+    UNLOCK_RXKAD_STATS;
+    /*
+     * Encrypt the sequence number to get the new random block:
+     */
+    LOCK_RANDOM;
+    des_ecb_encrypt(sequence_number, block, random_sequence_key.d, 1);
 
     /*
      * Increment the sequence number as an 8 byte unsigned number with wrap:
@@ -269,5 +275,6 @@ des_generate_random_block(des_cblock block)
        if (sequence_number[i])
            break;
     }
-    UNLOCK_RANDOM return 0;
+    UNLOCK_RANDOM;
+    return 0;
 }
index fc28877f0a629c88f8f8e3b497b222e2436dfd59..7699ee21c406d4a6e935269718f9a5127d931715 100644 (file)
@@ -37,8 +37,8 @@ struct rxkad_stats {
 #include <pthread.h>
 #include <assert.h>
 extern pthread_mutex_t rxkad_stats_mutex;
-#define LOCK_RXKAD_STATS assert(pthread_mutex_lock(&rxkad_stats_mutex)==0);
-#define UNLOCK_RXKAD_STATS assert(pthread_mutex_unlock(&rxkad_stats_mutex)==0);
+#define LOCK_RXKAD_STATS assert(pthread_mutex_lock(&rxkad_stats_mutex)==0)
+#define UNLOCK_RXKAD_STATS assert(pthread_mutex_unlock(&rxkad_stats_mutex)==0)
 #else
 #define LOCK_RXKAD_STATS
 #define UNLOCK_RXKAD_STATS
index 0412e1ea6fadfc68fc1d1c2bc42d6f5df4e6180c..b84ff8f84bb084d6c5c63baa6d41c85db16470ee 100644 (file)
@@ -24,7 +24,17 @@ all: ${TOP_LIBDIR}/export.exp ${TOP_LIBDIR}/export64.exp ${TOP_LIBDIR}/extras.ex
 
 noversion system: install
 
-install: ${DESTDIR}${libdir}/afs/export.exp ${DESTDIR}${libdir}/afs/extras.exp  
+install:    ${DESTDIR}${afskerneldir}/export.ext \
+       ${DESTDIR}${afskerneldir}/export.ext.nonfs \
+       ${DESTDIR}${afskerneldir}/export64.ext.nonfs \
+       ${DESTDIR}${libdir}/afs/export.exp \
+       ${DESTDIR}${libdir}/afs/export64.exp \
+       ${DESTDIR}${libdir}/afs/extras.exp \
+       ${DESTDIR}${afskerneldir}/cfgexport \
+       ${DESTDIR}${afskerneldir}/cfgafs \
+       ${DESTDIR}${afskerneldir}/export64.ext \
+       ${DESTDIR}${afskerneldir}/cfgexport64 \
+       ${DESTDIR}${afskerneldir}/cfgafs64 
 
 export.exp: ${srcdir}/export4.exp ${srcdir}/export5.exp
        case ${SYS_NAME} in \
@@ -152,7 +162,7 @@ ${DEST}/root.client/usr/vice/etc/dkload/cfgexport: cfgexport
 ${DEST}/root.client/usr/vice/etc/dkload/cfgexport64: @AIX64@cfgexport64
 @AIX64@        ${INSTALL} $? $@
 
-${DEST}/root.client/usr/vice/etc/dkload/cfgafs: @AIX64@cfgafs
+${DEST}/root.client/usr/vice/etc/dkload/cfgafs: cfgafs
 @AIX64@        ${INSTALL} $? $@
 
 ${DEST}/root.client/usr/vice/etc/dkload/cfgafs64: @AIX64@cfgafs64
index 338a54dd7f64c2c35a69bf1a2d2de37d9095c820..540bc2a95319ec0dc3970042c637afa685a177a7 100644 (file)
@@ -16,7 +16,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/kauth/admin_tools.c,v 1.16 2003/12/07 22:49:26 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/kauth/admin_tools.c,v 1.16.2.1 2004/08/25 07:03:39 shadow Exp $");
 
 #include <afs/stds.h>
 #include <afs/debug.h>
@@ -818,7 +818,7 @@ SetPassword(struct cmd_syndesc *as, char *arock)
     if (as->parms[3].items)
        sscanf(as->parms[3].items->data, "%d", &kvno);
 
-#ifdef AFS_S390_LINUX20_ENV
+#if defined(AFS_S390_LINUX20_ENV) && !defined(AFS_S390X_LINUX20_ENV)
     code = ubik_Call(KAM_SetPassword, conn, 0, name, instance, kvno, 0, key);
 #else
     code = ubik_Call(KAM_SetPassword, conn, 0, name, instance, kvno, key);
index 70d7e543b1d7d0fba4240b2c209d7ce674481c17..a6962858372cc92b72f769a7a591a67dd0bb1f1e 100644 (file)
@@ -17,7 +17,7 @@
 #endif
 
 RCSID
-    ("$Header: /cvs/openafs/src/kauth/authclient.c,v 1.14 2003/07/15 23:15:16 shadow Exp $");
+    ("$Header: /cvs/openafs/src/kauth/authclient.c,v 1.14.2.2 2004/08/25 07:09:38 shadow Exp $");
 
 #if defined(UKERNEL)
 #include "afs/sysincludes.h"
@@ -83,7 +83,8 @@ ka_ExplicitCell(char *cell, afs_int32 serverList[])
 {
     int i;
 
-    LOCK_GLOBAL_MUTEX ka_ExpandCell(cell, explicit_cell_server_list.name, 0);
+    LOCK_GLOBAL_MUTEX;
+    ka_ExpandCell(cell, explicit_cell_server_list.name, 0);
     for (i = 0; i < MAXHOSTSPERCELL; i++)
        if (serverList[i]) {
            explicit_cell_server_list.numServers = i + 1;
@@ -100,7 +101,8 @@ ka_ExplicitCell(char *cell, afs_int32 serverList[])
            explicit = 1;
        } else
            break;
-UNLOCK_GLOBAL_MUTEX}
+    UNLOCK_GLOBAL_MUTEX;
+}
 
 static int
 myCellLookup(struct afsconf_dir *conf, char *cell, char *service,
@@ -125,8 +127,9 @@ ka_GetServers(char *cell, struct afsconf_cell * cellinfo)
     afs_int32 code;
     char cellname[MAXKTCREALMLEN];
 
-    LOCK_GLOBAL_MUTEX if (cell && !strlen(cell))
-         cell = 0;
+    LOCK_GLOBAL_MUTEX;
+    if (cell && !strlen(cell))
+       cell = 0;
     else
        cell = lcstring(cellname, cell, sizeof(cellname));
 
@@ -137,18 +140,21 @@ ka_GetServers(char *cell, struct afsconf_cell * cellinfo)
        conf = afsconf_Open(AFSDIR_CLIENT_ETC_DIRPATH);
 #endif /* UKERNEL */
        if (!conf) {
-           UNLOCK_GLOBAL_MUTEX return KANOCELLS;
+           UNLOCK_GLOBAL_MUTEX;
+           return KANOCELLS;
        }
     }
     code = myCellLookup(conf, cell, AFSCONF_KAUTHSERVICE, cellinfo);
-    UNLOCK_GLOBAL_MUTEX return code;
+    UNLOCK_GLOBAL_MUTEX;
+    return code;
 }
 
 afs_int32
 ka_GetSecurity(int service, struct ktc_token * token,
               struct rx_securityClass ** scP, int *siP)
 {                              /* security class index */
-    LOCK_GLOBAL_MUTEX *scP = 0;
+    LOCK_GLOBAL_MUTEX;
+    *scP = 0;
     switch (service) {
     case KA_AUTHENTICATION_SERVICE:
     case KA_TICKET_GRANTING_SERVICE:
@@ -166,13 +172,16 @@ ka_GetSecurity(int service, struct ktc_token * token,
        *siP = RX_SCINDEX_KAD;
        break;
     default:
-       UNLOCK_GLOBAL_MUTEX return KABADARGUMENT;
+       UNLOCK_GLOBAL_MUTEX;
+       return KABADARGUMENT;
     }
     if (*scP == 0) {
        printf("Failed gettting security object\n");
-       UNLOCK_GLOBAL_MUTEX return KARXFAIL;
+       UNLOCK_GLOBAL_MUTEX;
+       return KARXFAIL;
     }
-    UNLOCK_GLOBAL_MUTEX return 0;
+    UNLOCK_GLOBAL_MUTEX;
+    return 0;
 }
 
 afs_int32
@@ -190,9 +199,11 @@ ka_SingleServerConn(char *cell, char *server,      /* name of server to contact */
     char sname[MAXHOSTCHARS];
     int snamel;
 
-    LOCK_GLOBAL_MUTEX code = ka_GetServers(cell, &cellinfo);
+    LOCK_GLOBAL_MUTEX;
+    code = ka_GetServers(cell, &cellinfo);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
 
     lcstring(sname, server, sizeof(sname));
@@ -201,23 +212,27 @@ ka_SingleServerConn(char *cell, char *server,     /* name of server to contact */
     for (i = 0; i < cellinfo.numServers; i++) {
        if (strncmp(cellinfo.hostName[i], sname, snamel) == 0) {
            if (match >= 0) {
-               UNLOCK_GLOBAL_MUTEX return KANOCELLS;
+               UNLOCK_GLOBAL_MUTEX;
+               return KANOCELLS;
            } else
                match = i;
        }
     }
     if (match < 0) {
-       UNLOCK_GLOBAL_MUTEX return KANOCELLS;
+       UNLOCK_GLOBAL_MUTEX;
+       return KANOCELLS;
     }
 
     code = rx_Init(0);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
 
     code = ka_GetSecurity(service, token, &sc, &si);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
 #ifdef AFS_PTHREAD_ENV
     serverconns[0] =
@@ -237,8 +252,9 @@ ka_SingleServerConn(char *cell, char *server,       /* name of server to contact */
     *conn = 0;
     code = ubik_ClientInit(serverconns, conn);
     rxs_Release(sc);
-    UNLOCK_GLOBAL_MUTEX if (code)
-         return KAUBIKINIT;
+    UNLOCK_GLOBAL_MUTEX;
+    if (code)
+       return KAUBIKINIT;
     return 0;
 }
 
@@ -253,14 +269,17 @@ ka_AuthSpecificServersConn(int service, struct ktc_token * token,
     int si;                    /* security class index */
     int i;
 
-    LOCK_GLOBAL_MUTEX code = rx_Init(0);
+    LOCK_GLOBAL_MUTEX;
+    code = rx_Init(0);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
 
     code = ka_GetSecurity(service, token, &sc, &si);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
 
     for (i = 0; i < cellinfo->numServers; i++)
@@ -282,8 +301,9 @@ ka_AuthSpecificServersConn(int service, struct ktc_token * token,
     *conn = 0;
     code = ubik_ClientInit(serverconns, conn);
     rxs_Release(sc);
-    UNLOCK_GLOBAL_MUTEX if (code)
-         return KAUBIKINIT;
+    UNLOCK_GLOBAL_MUTEX;
+    if (code)
+       return KAUBIKINIT;
     return 0;
 }
 
@@ -298,19 +318,23 @@ ka_AuthServerConn(char *cell, int service, struct ktc_token * token,
     int i;
     struct afsconf_cell cellinfo;      /* for cell auth server list */
 
-    LOCK_GLOBAL_MUTEX code = ka_GetServers(cell, &cellinfo);
+    LOCK_GLOBAL_MUTEX;
+    code = ka_GetServers(cell, &cellinfo);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
 
     code = rx_Init(0);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
 
     code = ka_GetSecurity(service, token, &sc, &si);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
 
     for (i = 0; i < cellinfo.numServers; i++)
@@ -332,8 +356,9 @@ ka_AuthServerConn(char *cell, int service, struct ktc_token * token,
     *conn = 0;
     code = ubik_ClientInit(serverconns, conn);
     rxs_Release(sc);
-    UNLOCK_GLOBAL_MUTEX if (code)
-         return KAUBIKINIT;
+    UNLOCK_GLOBAL_MUTEX;
+    if (code)
+       return KAUBIKINIT;
     return 0;
 }
 
@@ -501,8 +526,10 @@ ka_Authenticate(char *name, char *instance, char *cell, struct ubik_client * con
     char *ans_label;
     int version;
 
-    LOCK_GLOBAL_MUTEX if ((code = des_key_sched(key, schedule))) {
-       UNLOCK_GLOBAL_MUTEX return KABADKEY;
+    LOCK_GLOBAL_MUTEX;
+    if ((code = des_key_sched(key, schedule))) {
+       UNLOCK_GLOBAL_MUTEX;
+       return KABADKEY;
     }
 
     if (service == KA_MAINTENANCE_SERVICE) {
@@ -512,7 +539,8 @@ ka_Authenticate(char *name, char *instance, char *cell, struct ubik_client * con
        req_label = KA_GETTGT_REQ_LABEL;
        ans_label = KA_GETTGT_ANS_LABEL;
     } else {
-       UNLOCK_GLOBAL_MUTEX return KABADARGUMENT;
+       UNLOCK_GLOBAL_MUTEX;
+       return KABADARGUMENT;
     }
 
     request_time = time(0);
@@ -552,8 +580,9 @@ ka_Authenticate(char *name, char *instance, char *cell, struct ubik_client * con
        }
     }
     if (code) {
-       UNLOCK_GLOBAL_MUTEX if ((code >= KAMINERROR) && (code <= KAMAXERROR))
-             return code;
+       UNLOCK_GLOBAL_MUTEX;
+       if ((code >= KAMINERROR) && (code <= KAMAXERROR))
+           return code;
        return KAUBIKCALL;
     }
     des_pcbc_encrypt(oanswer.SeqBody, oanswer.SeqBody, oanswer.SeqLen,
@@ -571,7 +600,8 @@ ka_Authenticate(char *name, char *instance, char *cell, struct ubik_client * con
                CheckTicketAnswer(&oanswer, request_time + 1, token, &caller,
                                  0, ans_label, pwexpires);
            if (code) {
-               UNLOCK_GLOBAL_MUTEX return code;
+               UNLOCK_GLOBAL_MUTEX;
+               return code;
            }
        }
        break;
@@ -581,13 +611,15 @@ ka_Authenticate(char *name, char *instance, char *cell, struct ubik_client * con
        if ((answer_old.time != request_time + 1)
            || (answer_old.ticket_len < MINKTCTICKETLEN)
            || (answer_old.ticket_len > MAXKTCTICKETLEN)) {
-           UNLOCK_GLOBAL_MUTEX return KABADPROTOCOL;
+           UNLOCK_GLOBAL_MUTEX;
+           return KABADPROTOCOL;
        }
        {
            char *label = ((char *)answer_old.ticket) + answer_old.ticket_len;
 
            if (strncmp(label, ans_label, sizeof(answer_old.label))) {
-               UNLOCK_GLOBAL_MUTEX return KABADPROTOCOL;
+               UNLOCK_GLOBAL_MUTEX;
+               return KABADPROTOCOL;
            }
            token->startTime = start;
            token->endTime = end;
@@ -599,10 +631,12 @@ ka_Authenticate(char *name, char *instance, char *cell, struct ubik_client * con
        }
        break;
     default:
-       UNLOCK_GLOBAL_MUTEX return KAINTERNALERROR;
+       UNLOCK_GLOBAL_MUTEX;
+       return KAINTERNALERROR;
     }
 
-    UNLOCK_GLOBAL_MUTEX return 0;
+    UNLOCK_GLOBAL_MUTEX;
+    return 0;
 }
 
 afs_int32
@@ -624,12 +658,14 @@ ka_GetToken(char *name, char *instance, char *cell, char *cname, char *cinst, st
     int version;
     afs_int32 pwexpires;
 
-    LOCK_GLOBAL_MUTEX aticket.SeqLen = auth_token->ticketLen;
+    LOCK_GLOBAL_MUTEX;
+    aticket.SeqLen = auth_token->ticketLen;
     aticket.SeqBody = auth_token->ticket;
 
     code = des_key_sched(&auth_token->sessionKey, schedule);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return KABADKEY;
+       UNLOCK_GLOBAL_MUTEX;
+       return KABADKEY;
     }
 
     times.start = htonl(start);
@@ -662,8 +698,9 @@ ka_GetToken(char *name, char *instance, char *cell, char *cname, char *cinst, st
        }
     }
     if (code) {
-       UNLOCK_GLOBAL_MUTEX if ((code >= KAMINERROR) && (code <= KAMAXERROR))
-             return code;
+       UNLOCK_GLOBAL_MUTEX;
+       if ((code >= KAMINERROR) && (code <= KAMAXERROR))
+           return code;
        return KAUBIKCALL;
     }
 
@@ -680,7 +717,8 @@ ka_GetToken(char *name, char *instance, char *cell, char *cname, char *cinst, st
                CheckTicketAnswer(&oanswer, 0, token, 0, &server,
                                  KA_GETTICKET_ANS_LABEL, &pwexpires);
            if (code) {
-               UNLOCK_GLOBAL_MUTEX return code;
+               UNLOCK_GLOBAL_MUTEX;
+               return code;
            }
        }
        break;
@@ -693,51 +731,61 @@ ka_GetToken(char *name, char *instance, char *cell, char *cname, char *cinst, st
               sizeof(token->sessionKey));
 
        if (tkt_CheckTimes(token->startTime, token->endTime, time(0)) < 0) {
-           UNLOCK_GLOBAL_MUTEX return KABADPROTOCOL;
+           UNLOCK_GLOBAL_MUTEX;
+           return KABADPROTOCOL;
        }
        if ((token->ticketLen < MINKTCTICKETLEN)
            || (token->ticketLen > MAXKTCTICKETLEN)) {
-           UNLOCK_GLOBAL_MUTEX return KABADPROTOCOL;
+           UNLOCK_GLOBAL_MUTEX;
+           return KABADPROTOCOL;
        }
        strings = answer_old.name;
        len = strlen(strings);  /* check client name */
        if ((len < 1) || (len > MAXKTCNAMELEN)) {
-           UNLOCK_GLOBAL_MUTEX return KABADPROTOCOL;
+           UNLOCK_GLOBAL_MUTEX;
+           return KABADPROTOCOL;
        }
        strings += len + 1;     /* check client instance */
        len = strlen(strings);
        if ((len < 0) || (len > MAXKTCNAMELEN)) {
-           UNLOCK_GLOBAL_MUTEX return KABADPROTOCOL;
+           UNLOCK_GLOBAL_MUTEX;
+           return KABADPROTOCOL;
        }
        strings += len + 1;
        len = strlen(strings);  /* check client cell */
        if ((len < 0) || (len > MAXKTCNAMELEN)) {
-           UNLOCK_GLOBAL_MUTEX return KABADPROTOCOL;
+           UNLOCK_GLOBAL_MUTEX;
+           return KABADPROTOCOL;
        }
        strings += len + 1;
        len = strlen(strings);  /* check server name */
        if ((len < 1) || (len > MAXKTCNAMELEN) || strcmp(name, strings)) {
-           UNLOCK_GLOBAL_MUTEX return KABADPROTOCOL;
+           UNLOCK_GLOBAL_MUTEX;
+           return KABADPROTOCOL;
        }
        strings += len + 1;
        len = strlen(strings);  /* check server instance */
        if ((len < 0) || (len > MAXKTCNAMELEN) || strcmp(instance, strings)) {
-           UNLOCK_GLOBAL_MUTEX return KABADPROTOCOL;
+           UNLOCK_GLOBAL_MUTEX;
+           return KABADPROTOCOL;
        }
        strings += len + 1;
 
        if ((strings - oanswer.SeqBody + token->ticketLen) - oanswer.SeqLen >=
            ENCRYPTIONBLOCKSIZE) {
-           UNLOCK_GLOBAL_MUTEX return KABADPROTOCOL;
+           UNLOCK_GLOBAL_MUTEX;
+           return KABADPROTOCOL;
        }
        memcpy(token->ticket, strings, token->ticketLen);
 
        break;
     default:
-       UNLOCK_GLOBAL_MUTEX return KAINTERNALERROR;
+       UNLOCK_GLOBAL_MUTEX;
+       return KAINTERNALERROR;
     }
 
-    UNLOCK_GLOBAL_MUTEX return 0;
+    UNLOCK_GLOBAL_MUTEX;
+    return 0;
 }
 
 afs_int32
@@ -748,14 +796,15 @@ ka_ChangePassword(char *name, char *instance, struct ubik_client * conn,  /* Ubik
 {
     afs_int32 code;
 
-    LOCK_GLOBAL_MUTEX
-#ifdef AFS_S390_LINUX20_ENV
-       code =
+    LOCK_GLOBAL_MUTEX;
+#if defined(AFS_S390_LINUX20_ENV) && !defined(AFS_S390X_LINUX20_ENV)
+    code =
        ubik_Call_New(KAM_SetPassword, conn, 0, name, instance, 0, 0,
                      *newkey);
 #else
-       code =
+    code =
        ubik_Call_New(KAM_SetPassword, conn, 0, name, instance, 0, *newkey);
 #endif
-    UNLOCK_GLOBAL_MUTEX return code;
+    UNLOCK_GLOBAL_MUTEX;
+    return code;
 }
index 58f0670e45ff09b2be35b466e1b4f4042bf18732..56e82cc126a02b1bbe81e0321960c1eabab53d27 100644 (file)
@@ -15,7 +15,7 @@
 #endif
 
 RCSID
-    ("$Header: /cvs/openafs/src/kauth/client.c,v 1.12 2003/07/15 23:15:16 shadow Exp $");
+    ("$Header: /cvs/openafs/src/kauth/client.c,v 1.12.2.1 2004/08/25 07:09:38 shadow Exp $");
 
 #if defined(UKERNEL)
 #include "afs/sysincludes.h"
@@ -141,7 +141,8 @@ ka_StringToKey(char *str, char *cell,       /* cell for password */
     char realm[MAXKTCREALMLEN];
     afs_int32 code;
 
-    LOCK_GLOBAL_MUTEX code = ka_CellToRealm(cell, realm, 0 /*local */ );
+    LOCK_GLOBAL_MUTEX;
+    code = ka_CellToRealm(cell, realm, 0 /*local */ );
     if (code)                  /* just take his word for it */
        strncpy(realm, cell, sizeof(realm));
     else                       /* for backward compatibility */
@@ -150,7 +151,8 @@ ka_StringToKey(char *str, char *cell,       /* cell for password */
        StringToKey(str, realm, key);
     else
        Andrew_StringToKey(str, realm, key);
-UNLOCK_GLOBAL_MUTEX}
+    UNLOCK_GLOBAL_MUTEX;
+}
 
 /* This prints out a prompt and reads a string from the terminal, turning off
    echoing.  If verify is requested it requests that the string be entered
@@ -168,16 +170,20 @@ ka_ReadPassword(char *prompt, int verify, char *cell,
     char password[BUFSIZ];
     afs_int32 code;
 
-    LOCK_GLOBAL_MUTEX memset(key, 0, sizeof(struct ktc_encryptionKey));
+    LOCK_GLOBAL_MUTEX;
+    memset(key, 0, sizeof(struct ktc_encryptionKey));
     code = read_pw_string(password, sizeof(password), prompt, verify);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return KAREADPW;
+       UNLOCK_GLOBAL_MUTEX;
+       return KAREADPW;
     }
     if (strlen(password) == 0) {
-       UNLOCK_GLOBAL_MUTEX return KANULLPASSWORD;
+       UNLOCK_GLOBAL_MUTEX;
+       return KANULLPASSWORD;
     }
     ka_StringToKey(password, cell, key);
-    UNLOCK_GLOBAL_MUTEX return 0;
+    UNLOCK_GLOBAL_MUTEX;
+    return 0;
 }
 
 /* This performs the backslash quoting defined by AC_ParseLoginName. */
@@ -310,8 +316,10 @@ ka_Init(int flags)
     afs_int32 code;
     static int inited = 0;
 
-    LOCK_GLOBAL_MUTEX if (inited) {
-       UNLOCK_GLOBAL_MUTEX return 0;
+    LOCK_GLOBAL_MUTEX;
+    if (inited) {
+       UNLOCK_GLOBAL_MUTEX;
+       return 0;
     }
     inited++;
     initialize_U_error_table();
@@ -320,8 +328,9 @@ ka_Init(int flags)
     initialize_KTC_error_table();
     initialize_ACFG_error_table();
     code = ka_CellConfig(AFSDIR_CLIENT_ETC_DIRPATH);
-    UNLOCK_GLOBAL_MUTEX if (code)
-         return code;
+    UNLOCK_GLOBAL_MUTEX;
+    if (code)
+       return code;
     return 0;
 }
 
index 6ecca624e40c65dbdfb1deb1d09c5f5fab5d8b23..d1350f9478a3ea66dabbfb04962255190b78cb69 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/kauth/kadatabase.c,v 1.10 2003/12/07 22:49:26 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/kauth/kadatabase.c,v 1.10.2.1 2004/08/25 07:09:38 shadow Exp $");
 
 #include <sys/types.h>
 #ifdef AFS_NT40_ENV
@@ -689,11 +689,12 @@ ka_debugKeyCache(info)
                    (keyCache[i].superseded == NEVERDATE);
                info->kcInfo[j].keycksum = 0;
 #if DEBUG_KEY_CACHE
-        {
-        int k;
-               for (k = 0; k < sizeof(struct ktc_encryptionKey); k++)
-                   info->kcInfo[j].keycksum += ((char *)&keyCache[i].key)[k];
-        }
+               {
+                   int k;
+                   for (k = 0; k < sizeof(struct ktc_encryptionKey); k++)
+                       info->kcInfo[j].keycksum +=
+                           ((char *)&keyCache[i].key)[k];
+               }
 #endif
                strcpy(principal, keyCache[i].name);
                strcat(principal, ".");
index 13e9644ed964b8bdc253045aef6dc0f0ae3a6557..6a3bc61ddc4c41bff2ccfd64729c46c556f73026 100644 (file)
@@ -15,7 +15,7 @@
 #endif
 
 RCSID
-    ("$Header: /cvs/openafs/src/kauth/kalocalcell.c,v 1.8 2003/07/15 23:15:16 shadow Exp $");
+    ("$Header: /cvs/openafs/src/kauth/kalocalcell.c,v 1.8.2.1 2004/08/25 07:09:38 shadow Exp $");
 
 #if defined(UKERNEL)
 #include "afs/pthread_glock.h"
@@ -68,14 +68,17 @@ ka_CellConfig(const char *dir)
     strcpy(cell_name, afs_LclCellName);
     return 0;
 #else /* UKERNEL */
-    LOCK_GLOBAL_MUTEX if (conf)
-         afsconf_Close(conf);
+    LOCK_GLOBAL_MUTEX;
+    if (conf)
+       afsconf_Close(conf);
     conf = afsconf_Open(dir);
     if (!conf) {
-       UNLOCK_GLOBAL_MUTEX return KANOCELLS;
+       UNLOCK_GLOBAL_MUTEX;
+       return KANOCELLS;
     }
     code = afsconf_GetLocalCell(conf, cell_name, sizeof(cell_name));
-    UNLOCK_GLOBAL_MUTEX return code;
+    UNLOCK_GLOBAL_MUTEX;
+    return code;
 #endif /* UKERNEL */
 }
 
@@ -84,8 +87,10 @@ ka_LocalCell(void)
 {
     int code;
 
-    LOCK_GLOBAL_MUTEX if (conf) {
-       UNLOCK_GLOBAL_MUTEX return cell_name;
+    LOCK_GLOBAL_MUTEX;
+    if (conf) {
+       UNLOCK_GLOBAL_MUTEX;
+       return cell_name;
     }
 #ifdef UKERNEL
     conf = afs_cdir;
@@ -99,10 +104,12 @@ ka_LocalCell(void)
     if (!conf || code) {
        printf("** Can't determine local cell name!\n");
        conf = 0;
-       UNLOCK_GLOBAL_MUTEX return 0;
+       UNLOCK_GLOBAL_MUTEX;
+       return 0;
     }
 #endif /* UKERNEL */
-    UNLOCK_GLOBAL_MUTEX return cell_name;
+    UNLOCK_GLOBAL_MUTEX;
+    return cell_name;
 }
 
 int
@@ -113,9 +120,11 @@ ka_ExpandCell(char *cell, char *fullCell, int *alocal)
     char cellname[MAXKTCREALMLEN];
     struct afsconf_cell cellinfo;      /* storage for cell info */
 
-    LOCK_GLOBAL_MUTEX ka_LocalCell();  /* initialize things */
+    LOCK_GLOBAL_MUTEX;
+    ka_LocalCell();            /* initialize things */
     if (!conf) {
-       UNLOCK_GLOBAL_MUTEX return KANOCELLS;
+       UNLOCK_GLOBAL_MUTEX;
+       return KANOCELLS;
     }
 
     if ((cell == 0) || (strlen(cell) == 0)) {
@@ -125,7 +134,8 @@ ka_ExpandCell(char *cell, char *fullCell, int *alocal)
        cell = lcstring(cellname, cell, sizeof(cellname));
        code = afsconf_GetCellInfo(conf, cell, 0, &cellinfo);
        if (code) {
-           UNLOCK_GLOBAL_MUTEX return KANOCELL;
+           UNLOCK_GLOBAL_MUTEX;
+           return KANOCELL;
        }
        cell = cellinfo.name;
     }
@@ -136,7 +146,8 @@ ka_ExpandCell(char *cell, char *fullCell, int *alocal)
        strcpy(fullCell, cell);
     if (alocal)
        *alocal = local;
-    UNLOCK_GLOBAL_MUTEX return 0;
+    UNLOCK_GLOBAL_MUTEX;
+    return 0;
 }
 
 int
@@ -144,7 +155,9 @@ ka_CellToRealm(char *cell, char *realm, int *local)
 {
     int code;
 
-    LOCK_GLOBAL_MUTEX code = ka_ExpandCell(cell, realm, local);
+    LOCK_GLOBAL_MUTEX;
+    code = ka_ExpandCell(cell, realm, local);
     ucstring(realm, realm, MAXKTCREALMLEN);
-    UNLOCK_GLOBAL_MUTEX return code;
+    UNLOCK_GLOBAL_MUTEX;
+    return code;
 }
index 77785bfce593c0cc6a96d91c17f0aec26238c1fe..555e72d0b6cc8709f337e8207b5aa1bf1d14a272 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/kauth/kaprocs.c,v 1.16 2004/04/20 14:56:16 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/kauth/kaprocs.c,v 1.16.2.1 2004/08/25 07:09:38 shadow Exp $");
 
 #include <afs/stds.h>
 #include <errno.h>
@@ -1032,7 +1032,8 @@ PrepareTicketAnswer(oanswer, challenge, ticket, ticketLen, sessionKey, start,
 
     code = KAANSWERTOOLONG;
     if (oanswer->MaxSeqLen <
-       sizeof(struct ka_ticketAnswer) - 5 * MAXKTCNAMELEN - MAXKTCTICKETLEN + ticketLen)
+       sizeof(struct ka_ticketAnswer) - 5 * MAXKTCNAMELEN - MAXKTCTICKETLEN +
+       ticketLen)
        return code;
 
     answer = (struct ka_ticketAnswer *)oanswer->SeqBody;
@@ -1958,7 +1959,8 @@ GetTicket(version, call, kvno, authDomain, aticket, sname, sinstance, atimes,
     case 0:
        code = KAANSWERTOOLONG;
        if (oanswer->MaxSeqLen <
-           sizeof(struct ka_getTicketAnswer) - 5 * MAXKTCNAMELEN - MAXKTCTICKETLEN + ticketLen)
+           sizeof(struct ka_getTicketAnswer) - 5 * MAXKTCNAMELEN -
+           MAXKTCTICKETLEN + ticketLen)
            goto abort;
 
        answer = (struct ka_getTicketAnswer *)oanswer->SeqBody;
index 71d6d6c4bd24b162974e2acc2fcad538e6f7e06c..9d7df4be72b741ac5e12694e6cd9c3c814d383f0 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/kauth/kdb.c,v 1.7 2003/07/15 23:15:16 shadow Exp $");
+    ("$Header: /cvs/openafs/src/kauth/kdb.c,v 1.7.2.1 2004/08/25 07:18:06 shadow Exp $");
 
 #include <fcntl.h>
 #include <sys/types.h>
@@ -50,7 +50,31 @@ cmdproc(register struct cmd_syndesc *as, afs_int32 arock)
        printf("Printing all entries found in %s\n", dbmfile);
        for (key = dbm_firstkey(kdb); key.dptr;
             key = afs_dbm_nextkey(kdb, key), cnt++) {
-           printf("\t%s\n", key.dptr);
+            if (as->parms[2].items) {
+               data = dbm_fetch(kdb, key);
+               if (!data.dptr) {
+                   fprintf(stderr, "%s: no entry exists\n", ti->data);
+                   continue;
+               }
+               if (data.dsize != sizeof(kalog_elt)) {
+                   fprintf(stderr, "%s: data came out corrupt\n", ti->data);
+                   continue;
+               }
+               memcpy(&rdata, data.dptr, sizeof(kalog_elt));
+               if (! as->parms[3].items) {
+                   char *hostName;
+                   hostName = hostutil_GetNameByINet(rdata.host);
+                   printf("%s: last operation from host %s at %s", key.dptr, 
+                          hostName, ctime(&rdata.last_use));
+               } else {
+                   char *hostIP;
+                   hostIP = afs_inet_ntoa(rdata.host);
+                   printf("%s: last operation from host %s at %s", key.dptr, 
+                          hostIP, ctime(&rdata.last_use));
+               }
+            } else {
+               printf("\t%s\n", key.dptr);
+            }
        }
        printf("%d entries were found\n", cnt);
     } else {
@@ -91,6 +115,8 @@ main(int argc, char **argv)
     cmd_AddParm(ts, "-dbmfile", CMD_SINGLE, CMD_OPTIONAL, dbmfile_help);
     cmd_AddParm(ts, "-key", CMD_SINGLE, CMD_OPTIONAL,
                "extract entries that match specified key");
+    cmd_AddParm(ts, "-long", CMD_FLAG, CMD_OPTIONAL, "print long info for each entry");
+    cmd_AddParm(ts, "-numeric", CMD_FLAG, CMD_OPTIONAL, "addresses only");
     code = cmd_Dispatch(argc, argv);
     return code;
 }
index 7f1ba214587b92825c06be888521caf96e162182..ea72c32ea6c14c9d0db6492790bdb8cacafed4b9 100644 (file)
@@ -12,7 +12,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/kauth/kpasswd.c,v 1.14 2004/06/05 20:11:06 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/kauth/kpasswd.c,v 1.14.2.1 2004/08/25 07:09:38 shadow Exp $");
 
 #include <afs/stds.h>
 #include <sys/types.h>
@@ -211,10 +211,10 @@ CommandProc(as, arock)
      char *arock;
      struct cmd_syndesc *as;
 {
-    char name[MAXKTCNAMELEN]="";
-    char instance[MAXKTCNAMELEN]="";
-    char cell[MAXKTCREALMLEN]="";
-    char realm[MAXKTCREALMLEN]="";
+    char name[MAXKTCNAMELEN] = "";
+    char instance[MAXKTCNAMELEN] = "";
+    char cell[MAXKTCREALMLEN] = "";
+    char realm[MAXKTCREALMLEN] = "";
     afs_int32 serverList[MAXSERVERS];
     char *lcell;               /* local cellname */
     int code;
index 3e0c58b4ee4dadfc2d633aadb0c93e269dfedccb..b62e049c748efb4d4e981ba54471036928b8a925 100644 (file)
@@ -11,7 +11,7 @@
 
 #include <mit-cpyright.h>
 
-                                                                                 /* #include <krb_conf.h> *//* removed 890221 */
+                                                                                                                                       /* #include <krb_conf.h> *//* removed 890221 */
 
 #ifndef PROT_DEFS
 #define PROT_DEFS
@@ -60,9 +60,9 @@
 
 /* Routines to create and read packets may be found in prot.c */
 
-                                                                                                /* KTEXT create_auth_reply(); *//* removed 890221 */
-                                                                                                      /* KTEXT create_death_packet(); *//* removed 890221 */
-                                                                           /* KTEXT pkt_cipher(); *//* removed 890221 */
+                                                                                                                                                                /* KTEXT create_auth_reply(); *//* removed 890221 */
+                                                                                                                                                                          /* KTEXT create_death_packet(); *//* removed 890221 */
+                                                                                                                             /* KTEXT pkt_cipher(); *//* removed 890221 */
 
 /* Message types , always leave lsb for byte order */
 
index 396f68091e16c4b2a7fad8d95efaf8c0b5e6439a..305d55fe0aeb99eb15c15d693fb9158988695b6d 100644 (file)
@@ -19,7 +19,7 @@
 #endif
 
 RCSID
-    ("$Header: /cvs/openafs/src/kauth/token.c,v 1.9 2003/07/15 23:15:17 shadow Exp $");
+    ("$Header: /cvs/openafs/src/kauth/token.c,v 1.9.2.1 2004/08/25 07:09:38 shadow Exp $");
 
 #if defined(UKERNEL)
 #include "afs/sysincludes.h"
@@ -65,7 +65,7 @@ RCSID
 
 afs_int32
 ka_GetAuthToken(char *name, char *instance, char *cell,
-               struct ktc_encryptionKey *key, afs_int32 lifetime,
+               struct ktc_encryptionKey * key, afs_int32 lifetime,
                afs_int32 * pwexpires)
 {
     afs_int32 code;
@@ -76,32 +76,38 @@ ka_GetAuthToken(char *name, char *instance, char *cell,
     char realm[MAXKTCREALMLEN];
     struct ktc_principal client, server;
 
-    LOCK_GLOBAL_MUTEX code = ka_ExpandCell(cell, cellname, 0 /*local */ );
+    LOCK_GLOBAL_MUTEX;
+    code = ka_ExpandCell(cell, cellname, 0 /*local */ );
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
     cell = cellname;
 
     /* get an unauthenticated connection to desired cell */
     code = ka_AuthServerConn(cell, KA_AUTHENTICATION_SERVICE, 0, &conn);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
     code =
        ka_Authenticate(name, instance, cell, conn,
                        KA_TICKET_GRANTING_SERVICE, key, now, now + lifetime,
                        &token, pwexpires);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
     code = ubik_ClientDestroy(conn);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
 
     code = ka_CellToRealm(cell, realm, 0 /*local */ );
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
     strcpy(client.name, name);
     strcpy(client.instance, instance);
@@ -110,7 +116,8 @@ ka_GetAuthToken(char *name, char *instance, char *cell,
     strcpy(server.instance, realm);
     strcpy(server.cell, cell);
     code = ktc_SetToken(&server, &token, &client, 0);
-    UNLOCK_GLOBAL_MUTEX return code;
+    UNLOCK_GLOBAL_MUTEX;
+    return code;
 }
 
 afs_int32
@@ -129,9 +136,11 @@ ka_GetServerToken(char *name, char *instance, char *cell, Date lifetime,
     char authDomain[MAXKTCREALMLEN];
     int local;
 
-    LOCK_GLOBAL_MUTEX code = ka_ExpandCell(cell, cellname, 0 /*local */ );
+    LOCK_GLOBAL_MUTEX;
+    code = ka_ExpandCell(cell, cellname, 0 /*local */ );
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
     cell = cellname;
 
@@ -142,13 +151,15 @@ ka_GetServerToken(char *name, char *instance, char *cell, Date lifetime,
        code =
            ktc_GetToken(&server, token, sizeof(struct ktc_token), &client);
        if (!code) {
-           UNLOCK_GLOBAL_MUTEX return 0;
+           UNLOCK_GLOBAL_MUTEX;
+           return 0;
        }
     }
 
     code = ka_CellToRealm(cell, realm, &local);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
 
     /* get TGS ticket for proper realm */
@@ -167,7 +178,8 @@ ka_GetServerToken(char *name, char *instance, char *cell, Date lifetime,
     }
 
     if (code && local) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     } else if (code) {
        /* here we invoke the inter-cell mechanism */
 
@@ -179,13 +191,15 @@ ka_GetServerToken(char *name, char *instance, char *cell, Date lifetime,
            ktc_GetToken(&auth_server, &cell_token, sizeof(cell_token),
                         &client);
        if (code) {
-           UNLOCK_GLOBAL_MUTEX return code;
+           UNLOCK_GLOBAL_MUTEX;
+           return code;
        }
        /* get a connection to the local cell */
        if ((code =
             ka_AuthServerConn(localCell, KA_TICKET_GRANTING_SERVICE, 0,
                               &conn))) {
-           UNLOCK_GLOBAL_MUTEX return code;
+           UNLOCK_GLOBAL_MUTEX;
+           return code;
        }
        /* get foreign auth ticket */
        if ((code =
@@ -193,11 +207,13 @@ ka_GetServerToken(char *name, char *instance, char *cell, Date lifetime,
                         client.instance, conn, now, now + lifetime,
                         &cell_token, "" /* local auth domain */ ,
                         &auth_token))) {
-           UNLOCK_GLOBAL_MUTEX return code;
+           UNLOCK_GLOBAL_MUTEX;
+           return code;
        }
        code = ubik_ClientDestroy(conn);
        if (code) {
-           UNLOCK_GLOBAL_MUTEX return code;
+           UNLOCK_GLOBAL_MUTEX;
+           return code;
        }
        conn = 0;
 
@@ -206,30 +222,36 @@ ka_GetServerToken(char *name, char *instance, char *cell, Date lifetime,
        lcstring(auth_server.cell, localCell, sizeof(auth_server.cell));
        ucstring(authDomain, localCell, sizeof(authDomain));
        if ((code = ktc_SetToken(&auth_server, &auth_token, &client, 0))) {
-           UNLOCK_GLOBAL_MUTEX return code;
+           UNLOCK_GLOBAL_MUTEX;
+           return code;
        }
     }
 
     if ((code =
         ka_AuthServerConn(cell, KA_TICKET_GRANTING_SERVICE, 0, &conn))) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
     if ((code =
         ka_GetToken(name, instance, cell, client.name, client.instance, conn,
                     now, now + lifetime, &auth_token, authDomain, token))) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
     code = ubik_ClientDestroy(conn);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
 
     if ((code =
         ktc_SetToken(&server, token, &client,
                      dosetpag ? AFS_SETTOK_SETPAG : 0))) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
-    UNLOCK_GLOBAL_MUTEX return 0;
+    UNLOCK_GLOBAL_MUTEX;
+    return 0;
 }
 
 afs_int32
@@ -244,9 +266,11 @@ ka_GetAdminToken(char *name, char *instance, char *cell,
     struct ktc_token localToken;
     char cellname[MAXKTCREALMLEN];
 
-    LOCK_GLOBAL_MUTEX code = ka_ExpandCell(cell, cellname, 0 /*local */ );
+    LOCK_GLOBAL_MUTEX;
+    code = ka_ExpandCell(cell, cellname, 0 /*local */ );
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
     cell = cellname;
 
@@ -260,33 +284,38 @@ ka_GetAdminToken(char *name, char *instance, char *cell,
        code =
            ktc_GetToken(&server, token, sizeof(struct ktc_token), &client);
        if (code == 0) {
-           UNLOCK_GLOBAL_MUTEX return 0;
+           UNLOCK_GLOBAL_MUTEX;
+           return 0;
        }
     }
 
     if ((name == 0) || (key == 0)) {
        /* just lookup in cache don't get new one */
-       UNLOCK_GLOBAL_MUTEX return KANOTICKET;
+       UNLOCK_GLOBAL_MUTEX;
+       return KANOTICKET;
     }
 
     /* get an unauthenticated connection to desired cell */
     code = ka_AuthServerConn(cell, KA_AUTHENTICATION_SERVICE, 0, &conn);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
     code =
        ka_Authenticate(name, instance, cell, conn, KA_MAINTENANCE_SERVICE,
                        key, now, now + lifetime, token, 0);
     (void)ubik_ClientDestroy(conn);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
 
     strcpy(client.name, name);
     strcpy(client.instance, instance);
     strncpy(client.cell, cell, sizeof(client.cell));
     code = ktc_SetToken(&server, token, &client, 0);
-    UNLOCK_GLOBAL_MUTEX return code;
+    UNLOCK_GLOBAL_MUTEX;
+    return code;
 }
 
 
@@ -301,9 +330,11 @@ ka_VerifyUserToken(char *name, char *instance, char *cell,
     char cellname[MAXKTCREALMLEN];
     afs_int32 pwexpires;
 
-    LOCK_GLOBAL_MUTEX code = ka_ExpandCell(cell, cellname, 0 /*local */ );
+    LOCK_GLOBAL_MUTEX;
+    code = ka_ExpandCell(cell, cellname, 0 /*local */ );
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
 
     cell = cellname;
@@ -311,7 +342,8 @@ ka_VerifyUserToken(char *name, char *instance, char *cell,
     /* get an unauthenticated connection to desired cell */
     code = ka_AuthServerConn(cell, KA_AUTHENTICATION_SERVICE, 0, &conn);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
 
     code =
@@ -319,8 +351,10 @@ ka_VerifyUserToken(char *name, char *instance, char *cell,
                        KA_TICKET_GRANTING_SERVICE, key, now,
                        now + MAXKTCTICKETLIFETIME, &token, &pwexpires);
     if (code) {
-       UNLOCK_GLOBAL_MUTEX return code;
+       UNLOCK_GLOBAL_MUTEX;
+       return code;
     }
     code = ubik_ClientDestroy(conn);
-    UNLOCK_GLOBAL_MUTEX return code;
+    UNLOCK_GLOBAL_MUTEX;
+    return code;
 }
index 97e629427dbad1ed9b8436fa55350130fbf4b058..95ecea7a9e27fd24eb2faf2a2e9723d0c8e667fe 100644 (file)
@@ -18,7 +18,7 @@
 #endif
 
 RCSID
-    ("$Header: /cvs/openafs/src/kauth/user.c,v 1.11 2003/07/15 23:15:17 shadow Exp $");
+    ("$Header: /cvs/openafs/src/kauth/user.c,v 1.11.2.1 2004/08/25 07:09:38 shadow Exp $");
 
 #if defined(UKERNEL)
 #include "afs/sysincludes.h"
@@ -68,7 +68,7 @@ RCSID
 
 afs_int32
 GetTickets(char *name, char *instance, char *realm,
-          struct ktc_encryptionKey *key, Date lifetime,
+          struct ktc_encryptionKey * key, Date lifetime,
           afs_int32 * pwexpires, afs_int32 flags)
 {
     afs_int32 code;
index 199ca6bd4df6bcbfd4b7b687115c40c433ec19b2..e0a9d00b19059178d5383d2e4a091e1a0bfee061 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/kauth/user_nt.c,v 1.12 2003/11/29 21:38:00 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/kauth/user_nt.c,v 1.12.2.1 2004/08/25 07:09:38 shadow Exp $");
 
 #include <afs/stds.h>
 
@@ -797,7 +797,7 @@ send_recv(pkt, rpkt, f, _to)
        (void)fflush(stdout);
     }
     FD_ZERO(&readfds);
-    FD_SET(f,&readfds);
+    FD_SET(f, &readfds);
     errno = 0;
     /* select - either recv is ready, or timeout */
     /* see if timeout or error or wrong descriptor */
index 7a14a4799124ca918a6957739b2230afa158e653..52abaf380e7f3c9ae9334dbd1353f6800956a932 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/libadmin/adminutil/afs_utilAdmin.c,v 1.7 2003/07/15 23:15:23 shadow Exp $");
+    ("$Header: /cvs/openafs/src/libadmin/adminutil/afs_utilAdmin.c,v 1.7.2.1 2004/08/25 07:09:38 shadow Exp $");
 
 #include <afs/stds.h>
 #include <afs/afs_Admin.h>
@@ -446,7 +446,8 @@ util_AdminServerAddressGetFromName(const char *serverName, int *serverAddress,
     if (num_converted == 4) {
        *serverAddress = (part1 << 24) | (part2 << 16) | (part3 << 8) | part4;
     } else {
-       LOCK_GLOBAL_MUTEX server = gethostbyname(serverName);
+       LOCK_GLOBAL_MUTEX;
+       server = gethostbyname(serverName);
        if (server != NULL) {
            memcpy((void *)serverAddress, (const void *)server->h_addr,
                   sizeof(serverAddress));
@@ -456,7 +457,8 @@ util_AdminServerAddressGetFromName(const char *serverName, int *serverAddress,
            UNLOCK_GLOBAL_MUTEX;
            goto fail_util_AdminServerAddressGetFromName;
        }
-    UNLOCK_GLOBAL_MUTEX}
+       UNLOCK_GLOBAL_MUTEX;
+    }
     rc = 1;
 
   fail_util_AdminServerAddressGetFromName:
index e00794f21be1a815edb2d44610cfefa4c053cfb6..37354318e5e96a72e20d3dff0d2e5e2c07dbf626 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/libadmin/client/afs_clientAdmin.c,v 1.9 2003/07/15 23:15:28 shadow Exp $");
+    ("$Header: /cvs/openafs/src/libadmin/client/afs_clientAdmin.c,v 1.9.2.1 2004/08/25 07:09:39 shadow Exp $");
 
 #include <afs/stds.h>
 #include "afs_clientAdmin.h"
@@ -1956,7 +1956,8 @@ afsclient_AFSServerGetBegin(const void *cellHandle, void **iterationIdP,
      * Iterate over the list and fill in the hostname of each of the servers
      */
 
-    LOCK_GLOBAL_MUTEX for (iserv = 0; iserv < serv->total; iserv++) {
+    LOCK_GLOBAL_MUTEX;
+    for (iserv = 0; iserv < serv->total; iserv++) {
        int addr = htonl(serv->server[iserv].serverAddress[0]);
        host = gethostbyaddr((const char *)&addr, sizeof(int), AF_INET);
        if (host != NULL) {
@@ -1964,8 +1965,8 @@ afsclient_AFSServerGetBegin(const void *cellHandle, void **iterationIdP,
                    AFS_MAX_SERVER_NAME_LEN);
        }
     }
-    UNLOCK_GLOBAL_MUTEX
-       if (IteratorInit
+    UNLOCK_GLOBAL_MUTEX;
+    if (IteratorInit
            (iter, (void *)serv, GetServerRPC, GetServerFromCache, NULL, NULL,
             &tst)) {
        *iterationIdP = (void *)iter;
index 3d95aea33922a6fabf7fee91a28cad25c1a63805..4864ba37d0c464597a417e164497bc942b2b0011 100644 (file)
@@ -61,6 +61,10 @@ DEFINES = $(COMMON_DEFINES)
 CCFLAGS = $(COMMON_KERN_CFLAGS) -fsigned-char
 DEFINES = $(COMMON_DEFINES) -D__s390__ 
 
+<s390x_linux22 s390x_linux24>
+CCFLAGS = $(COMMON_KERN_CFLAGS) -fsigned-char
+DEFINES = $(COMMON_DEFINES) -D__s390x__ 
+
 <sparc_linux22 sparc_linux24>
 LD = ld -m elf32_sparc
 CCFLAGS = $(COMMON_KERN_CFLAGS) -mcpu=v8 -mno-fpu -fcall-used-g5 -fcall-used-g7
@@ -152,6 +156,8 @@ ${COMPDIRS} ${INSTDIRS} ${DESTDIRS}:
        ln -fs ${LINUX_KERNEL_PATH}/include/asm-x86_64 asm
 <s390_linux22 s390_linux24>
        ln -fs ${LINUX_KERNEL_PATH}/include/asm-s390 asm
+<s390x_linux22 s390x_linux24>
+       ln -fs ${LINUX_KERNEL_PATH}/include/asm-s390x asm
 <ppc_linux22 ppc_linux24>
        ln -fs ${LINUX_KERNEL_PATH}/include/asm-ppc asm 
 <ppc64_linux24>
index d8f766b7e9120b12b7b9fd5e53f5f5ab95fd2fe5..ddf03f02bd7af881c2fc49bd7a2309ff713c8668 100644 (file)
        afs_krb_get_lrealm;
        pr_NameToId;
        pr_IdToName;
+       pr_ListMembers;
+       pr_End;
+       pr_SNameToId;
+       afs_get_pag_from_groups;
+       setpag;
 
     local:
        *;
index 221a5494ae1d6fc99d0bb3e2f74d15b109333313..c787ba3fcf3c5030491108b8ca9fde01c48a338f 100644 (file)
@@ -55,15 +55,19 @@ process.o   : process.s process.i386.s process.c
                $(CCOBJ) ${LWP_DBG} ${LWP_OPTMZ} -c -I${TOP_INCDIR} -KPIC -G0  ${srcdir}/process.s;; \
        sgi_61 | sgi_62 | sgi_63 ) \
                $(CCOBJ) ${LWP_DBG} ${LWP_OPTMZ} -c ${XCFLAGS} -I${TOP_INCDIR} -KPIC -G0  ${srcdir}/process.s;; \
-       s390*) \
-               /lib/cpp -P -I${TOP_INCDIR} ${srcdir}/process.s >process.ss; \
+       s390_*) \
+               /lib/cpp -P -I${TOP_INCDIR} ${srcdir}/process.s390.s >process.ss; \
+               ${AS} -ahlns process.ss -o process.o >process.lst; \
+               $(RM) process.ss ;; \
+       s390x_*) \
+               /lib/cpp -P -I${TOP_INCDIR} ${srcdir}/process.s390x.s >process.ss; \
                ${AS} -ahlns process.ss -o process.o >process.lst; \
                $(RM) process.ss ;; \
        *_darwin* ) \
                $(CC) ${LWP_DBG} ${LWP_OPTMZ} -c ${XCFLAGS} -I${TOP_INCDIR} ${srcdir}/process.s;; \
        i386_*bsd*) \
                cp ${srcdir}/process.i386.s process.S ; \
-               ${CCOBJ} -E -I${srcdir} -I${TOP_INCDIR} process.S >process.ss ; \
+               ${CCOBJ} -DIGNORE_STDS_H -E -I${srcdir} -I${TOP_INCDIR} process.S > process.ss ; \
                ${AS} process.ss -o process.o ;  \
                $(RM) -f process.S ;;\
        ncrx86_* | sunx86_*) \
index e1c9a765732b0a1d3e0abc44c062e8276b69edb3..8655c85b46a7f1a1b03b14a94f5ec613719c7058 100644 (file)
@@ -45,8 +45,8 @@
 #ifdef AFS_PTHREAD_ENV
 #include <assert.h>
 #include <pthread.h>
-#define LOCK_LOCK(A) assert(pthread_mutex_lock(&(A)->mutex) == 0);
-#define LOCK_UNLOCK(A) assert(pthread_mutex_unlock(&(A)->mutex) == 0);
+#define LOCK_LOCK(A) assert(pthread_mutex_lock(&(A)->mutex) == 0)
+#define LOCK_UNLOCK(A) assert(pthread_mutex_unlock(&(A)->mutex) == 0)
 #else /* AFS_PTHREAD_ENV */
 #define LOCK_LOCK(A)
 #define LOCK_UNLOCK(A)
@@ -82,88 +82,88 @@ void Lock_Destroy(struct Lock *lock);
 
 #define ObtainReadLock(lock)\
        BEGINMAC \
-           LOCK_LOCK(lock) \
+           LOCK_LOCK(lock); \
            if (!((lock)->excl_locked & WRITE_LOCK) && !(lock)->wait_states)\
                (lock) -> readers_reading++;\
            else\
                Afs_Lock_Obtain(lock, READ_LOCK); \
-           LOCK_UNLOCK(lock) \
+           LOCK_UNLOCK(lock); \
        ENDMAC
 
 #define ObtainReadLockNoBlock(lock, code)\
         BEGINMAC \
-            LOCK_LOCK(lock) \
+            LOCK_LOCK(lock); \
             if (!((lock)->excl_locked & WRITE_LOCK) && !(lock)->wait_states) {\
                 (lock) -> readers_reading++;\
                 code = 0;\
             }\
             else\
                 code = -1; \
-            LOCK_UNLOCK(lock) \
+            LOCK_UNLOCK(lock); \
         ENDMAC
 
 #define ObtainWriteLock(lock)\
        BEGINMAC \
-           LOCK_LOCK(lock) \
+           LOCK_LOCK(lock); \
            if (!(lock)->excl_locked && !(lock)->readers_reading)\
                (lock) -> excl_locked = WRITE_LOCK;\
            else\
                Afs_Lock_Obtain(lock, WRITE_LOCK); \
-           LOCK_UNLOCK(lock) \
+           LOCK_UNLOCK(lock); \
        ENDMAC
 
 #define ObtainWriteLockNoBlock(lock, code)\
         BEGINMAC \
-            LOCK_LOCK(lock) \
+            LOCK_LOCK(lock); \
             if (!(lock)->excl_locked && !(lock)->readers_reading) {\
                 (lock) -> excl_locked = WRITE_LOCK;\
                 code = 0;\
             }\
             else\
                 code = -1; \
-            LOCK_UNLOCK(lock) \
+            LOCK_UNLOCK(lock); \
         ENDMAC
 
 #define ObtainSharedLock(lock)\
        BEGINMAC \
-           LOCK_LOCK(lock) \
+           LOCK_LOCK(lock); \
            if (!(lock)->excl_locked && !(lock)->wait_states)\
                (lock) -> excl_locked = SHARED_LOCK;\
            else\
                Afs_Lock_Obtain(lock, SHARED_LOCK); \
-           LOCK_UNLOCK(lock) \
+           LOCK_UNLOCK(lock); \
        ENDMAC
 
 #define ObtainSharedLockNoBlock(lock, code)\
         BEGINMAC \
-            LOCK_LOCK(lock) \
+            LOCK_LOCK(lock); \
             if (!(lock)->excl_locked && !(lock)->wait_states) {\
                 (lock) -> excl_locked = SHARED_LOCK;\
                 code = 0;\
             }\
             else\
                 code = -1; \
-            LOCK_UNLOCK(lock) \
+            LOCK_UNLOCK(lock); \
         ENDMAC
 
 #define BoostSharedLock(lock)\
        BEGINMAC \
-           LOCK_LOCK(lock) \
+           LOCK_LOCK(lock); \
            if (!(lock)->readers_reading)\
                (lock)->excl_locked = WRITE_LOCK;\
            else\
                Afs_Lock_Obtain(lock, BOOSTED_LOCK); \
-           LOCK_UNLOCK(lock) \
+           LOCK_UNLOCK(lock); \
        ENDMAC
 
 /* this must only be called with a WRITE or boosted SHARED lock! */
 #define UnboostSharedLock(lock)\
        BEGINMAC\
-           LOCK_LOCK(lock) \
+           LOCK_LOCK(lock); \
            (lock)->excl_locked = SHARED_LOCK; \
            if((lock)->wait_states) \
                Afs_Lock_ReleaseR(lock); \
-           LOCK_UNLOCK(lock) \
+           LOCK_UNLOCK(lock); \
        ENDMAC
 
 #ifdef notdef
@@ -177,10 +177,10 @@ void Lock_Destroy(struct Lock *lock);
 
 #define ReleaseReadLock(lock)\
        BEGINMAC\
-           LOCK_LOCK(lock) \
+           LOCK_LOCK(lock); \
            if (!--(lock)->readers_reading && (lock)->wait_states)\
                Afs_Lock_ReleaseW(lock) ; \
-           LOCK_UNLOCK(lock) \
+           LOCK_UNLOCK(lock); \
        ENDMAC
 
 
@@ -195,10 +195,10 @@ void Lock_Destroy(struct Lock *lock);
 
 #define ReleaseWriteLock(lock)\
        BEGINMAC\
-           LOCK_LOCK(lock) \
+           LOCK_LOCK(lock); \
            (lock)->excl_locked &= ~WRITE_LOCK;\
            if ((lock)->wait_states) Afs_Lock_ReleaseR(lock);\
-           LOCK_UNLOCK(lock) \
+           LOCK_UNLOCK(lock); \
        ENDMAC
 
 #ifdef notdef
@@ -213,10 +213,10 @@ void Lock_Destroy(struct Lock *lock);
 /* can be used on shared or boosted (write) locks */
 #define ReleaseSharedLock(lock)\
        BEGINMAC\
-           LOCK_LOCK(lock) \
+           LOCK_LOCK(lock); \
            (lock)->excl_locked &= ~(SHARED_LOCK | WRITE_LOCK);\
            if ((lock)->wait_states) Afs_Lock_ReleaseR(lock);\
-           LOCK_UNLOCK(lock) \
+           LOCK_UNLOCK(lock); \
        ENDMAC
 
 #ifdef notdef
@@ -232,12 +232,12 @@ void Lock_Destroy(struct Lock *lock);
 /* convert a write lock to a read lock */
 #define ConvertWriteToReadLock(lock)\
        BEGINMAC\
-           LOCK_LOCK(lock) \
+           LOCK_LOCK(lock); \
            (lock)->excl_locked &= ~WRITE_LOCK;\
            (lock)->readers_reading++;\
            if ((lock)->wait_states & READ_LOCK) \
                Afs_Lock_WakeupR(lock) ; \
-           LOCK_UNLOCK(lock) \
+           LOCK_UNLOCK(lock); \
        ENDMAC
 
 /* I added this next macro to make sure it is safe to nuke a lock -- Mike K. */
index 20170c2f36ece6a5310d1f7ae522731592180a55..e0b11ed7131395b1968a82b2130f7038ea8678ed 100644 (file)
@@ -17,7 +17,7 @@
 #include <afsconfig.h>
 #include <afs/param.h>
 
-RCSID("$Header: /cvs/openafs/src/lwp/lwp.c,v 1.27 2004/07/28 20:59:58 shadow Exp $");
+RCSID("$Header: /cvs/openafs/src/lwp/lwp.c,v 1.27.2.1 2004/08/25 07:03:40 shadow Exp $");
 
 #include <stdlib.h>
 #include <stdio.h>
@@ -73,6 +73,10 @@ extern char PRE_Block;               /* from preempt.c */
 #define MINFRAME 128
 #define STACK_ALIGN 8
 #else
+#ifdef __s390x__
+#define MINFRAME    160
+#define STACK_ALIGN 8
+#else
 #ifdef __s390__
 #define MINFRAME    96
 #define STACK_ALIGN 8
@@ -80,6 +84,7 @@ extern char PRE_Block;                /* from preempt.c */
 #define STACK_ALIGN 4
 #endif
 #endif
+#endif
 
 /* Debugging macro */
 #ifdef DEBUG
index c3969c507c4839ad9c03497abe8c10fb3795c9a6..951ca0d56001838792779a066b1cf7b593ba6ac8 100644 (file)
@@ -16,8 +16,6 @@
  * "ojala que es correcto!"
  */
 
-#define IGNORE_STDS_H  1
-#include <afs/param.h>
 #include <lwp_elf.h>
 
        .file "process.s"
index 223f2156cbf48094375de8fe158f8fde572241d1..586c2723524872430eebfa34b6e374178432ef09 100644 (file)
@@ -167,93 +167,6 @@ PRE_Block.S:
        .extern PRE_Block[ua]
 
 #endif /* RIOS */
-#if defined(AFS_S390_LINUX20_ENV)
-      /* Linux for S/390 (31 bit)
-       *
-       * Written by Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
-       *
-       *  additional munging by Adam Thornton <adam@sinenomine.net>
-       */
-              .file   "process.s"
-
-              .globl savecontext
-              .type  savecontext,%function
-      /*
-       * savecontext(f, area1, newsp)
-       *      int (*f)();    struct savearea *area1; char *newsp;
-       * f     - r2
-       * area1 - r3
-       * newsp - r4
-       */
-
-       /*
-        * struct savearea {
-        *      char    *topstack;
-        * }
-        */
-
-P_PRE:                   .long   PRE_Block
-P_ABORT:                     .long   abort
-
-savecontext:
-              stm     %r6,%r15,24(%r15)       /* Save our registers */
-              lr      %r1,%r15
-              ahi     %r15,-96                /* Move out of harm's way */
-              st      %r1,0(%r15)
-              bras    %r5,.L0                 /* Get A(A(PRE_Block)) */
-              .long   PRE_Block
-      .L0:
-              l       %r5,0(%r5)              /* Get A(PRE_Block) */
-              mvi     3(%r5),1                /* Set it */
-              lr      %r6,%r3                 /* Get base of savearea */
-              st      %r15,0(%r3)             /* Save stack pointer */
-              ltr     %r4,%r4                 /* If new sp is 0 */
-              jz      .L1                     /* ... don't change sp */
-              lr      %r15,%r4                /* Set new stack pointer */
-      .L1:
-              br      %r2                     /* Call the routine */
-              /* Can't get here....*/
-
-              bras    %r5,.L2
-              .long   abort
-      .L2:
-              l      %r5,0(%r5)
-              balr    %r14,%r5
-
-      .savecontext_end:
-              .size   savecontext,.savecontext_end-savecontext
-
-      /*
-       * returnto(area2)
-       *      struct savearea *area2;
-       *
-       * area2 - r2
-       */
-        .globl  returnto
-        .type   returnto,%function
-returnto:
-        l       %r15,0(%r2)             /* New frame, to get correct pointer*/
-        bras    %r5,.L3                         /* Get A(A(PRE_Block))
-      */
-                 .long          PRE_Block
-      .L3:
-              l       %r5,0(%r5)              /* Get A(PRE_Block) */
-              /*xc      0(4,%r5),0(%r5)         /* Clear it */
-             mvi     3(%r5),0                /* Clear it */ 
-             l       %r15,0(%r15)
-              lm      %r6,%r15,24(%r15)       /* Restore registers */
-              br      %r14                    /* Return */
-
-             /* Can't happen */
-              la      %r2,1234
-              bras    %r5,.L4
-                .long          abort
-      .L4:
-              l       %r5,0(%r5)
-              basr    %r14,%r5
-      .returnto_end:
-              .size   returnto,.returnto_end-returnto
-#endif /* AFS_S390_LINUX20_ENV */
        
 #ifdef mc68000
 /*
diff --git a/src/lwp/process.s390.s b/src/lwp/process.s390.s
new file mode 100644 (file)
index 0000000..660ec1f
--- /dev/null
@@ -0,0 +1,98 @@
+/*
+ * 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
+ *
+ * Linux for S/390 (31 bit)
+ *
+ * Written by Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
+ *
+ *  additional munging by Adam Thornton <adam@sinenomine.net>
+ */
+
+#define        IGNORE_STDS_H   1
+#include <afs/param.h>
+
+              .file   "process.s"
+
+              .globl savecontext
+              .type  savecontext,%function
+      /*
+       * savecontext(f, area1, newsp)
+       *      int (*f)();    struct savearea *area1; char *newsp;
+       * f     - r2
+       * area1 - r3
+       * newsp - r4
+       */
+
+       /*
+        * struct savearea {
+        *      char    *topstack;
+        * }
+        */
+
+P_PRE:                   .long   PRE_Block
+P_ABORT:                     .long   abort
+
+savecontext:
+              stm     %r6,%r15,24(%r15)       /* Save our registers */
+              lr      %r1,%r15
+              ahi     %r15,-96                /* Move out of harm's way */
+              st      %r1,0(%r15)
+              bras    %r5,.L0                 /* Get A(A(PRE_Block)) */
+              .long   PRE_Block
+      .L0:
+              l       %r5,0(%r5)              /* Get A(PRE_Block) */
+              mvi     3(%r5),1                /* Set it */
+              lr      %r6,%r3                 /* Get base of savearea */
+              st      %r15,0(%r3)             /* Save stack pointer */
+              ltr     %r4,%r4                 /* If new sp is 0 */
+              jz      .L1                     /* ... don't change sp */
+              lr      %r15,%r4                /* Set new stack pointer */
+      .L1:
+              br      %r2                     /* Call the routine */
+              /* Can't get here....*/
+
+              bras    %r5,.L2
+              .long   abort
+      .L2:
+              l      %r5,0(%r5)
+              balr    %r14,%r5
+
+      .savecontext_end:
+              .size   savecontext,.savecontext_end-savecontext
+
+      /*
+       * returnto(area2)
+       *      struct savearea *area2;
+       *
+       * area2 - r2
+       */
+        .globl  returnto
+        .type   returnto,%function
+returnto:
+        l       %r15,0(%r2)             /* New frame, to get correct pointer*/
+        bras    %r5,.L3                         /* Get A(A(PRE_Block))
+      */
+                 .long          PRE_Block
+      .L3:
+              l       %r5,0(%r5)              /* Get A(PRE_Block) */
+              /*xc      0(4,%r5),0(%r5)         /* Clear it */
+             mvi     3(%r5),0                /* Clear it */ 
+             l       %r15,0(%r15)
+              lm      %r6,%r15,24(%r15)       /* Restore registers */
+              br      %r14                    /* Return */
+
+             /* Can't happen */
+              la      %r2,1234
+              bras    %r5,.L4
+                .long          abort
+      .L4:
+              l       %r5,0(%r5)
+              basr    %r14,%r5
+      .returnto_end:
+              .size   returnto,.returnto_end-returnto
+
diff --git a/src/lwp/process.s390x.s b/src/lwp/process.s390x.s
new file mode 100644 (file)
index 0000000..e36b7ca
--- /dev/null
@@ -0,0 +1,98 @@
+/*
+ * 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
+ *
+ * Linux for S/390X (64 bit)
+ * by Soewono Effendi <Soewono.Effendi@sysgo.de>
+ * & Horst Birthelmer <Horst.Birthelmer@sysgo.de>
+ *
+ * based on Linux for S/390 (31 bit)
+ * Written by Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
+*/
+
+#define IGNORE_STDS_H  1
+#include <afs/param.h>
+
+              .file   "process.s"
+
+              .globl savecontext
+              .type  savecontext,%function
+      /*
+       * savecontext(f, area1, newsp)
+       *      int (*f)();    struct savearea *area1; char *newsp;
+       * f     - r2
+       * area1 - r3
+       * newsp - r4
+       */
+
+       /*
+        * struct savearea {
+        *      char    *topstack;
+        * }
+        */
+
+P_PRE:                   .long   PRE_Block
+P_ABORT:                     .long   abort
+
+savecontext:
+              stmg     %r6,%r15,48(%r15)       /* Save our registers */
+              lgr      %r1,%r15
+              aghi     %r15,-160
+              stg      %r1,0(%r15)
+              brasl    %r5,.L0                 /* Get A(A(PRE_Block)) */
+              .long   PRE_Block
+      .L0:
+              l       %r5,0(%r5)              /* Get A(PRE_Block) */
+              mvi     3(%r5),1                /* Set it */
+              lgr      %r6,%r3                 /* Get base of savearea */
+              stg      %r15,0(%r3)             /* Save stack pointer */
+              ltgr     %r4,%r4                 /* If new sp is 0 */
+              jz      .L1                     /* ... don't change sp */
+              lgr      %r15,%r4                /* Set new stack pointer */
+      .L1:
+              br      %r2                     /* Call the routine */
+              /* Can't get here....*/
+
+              brasl    %r5,.L2
+              .long   abort
+      .L2:
+              l      %r5,0(%r5)
+              balr    %r14,%r5
+
+      .savecontext_end:
+              .size   savecontext,.savecontext_end-savecontext
+
+      /*
+       * returnto(area2)
+       *      struct savearea *area2;
+       *
+       * area2 - r2
+       */
+        .globl  returnto
+        .type   returnto,%function
+returnto:
+        lg       %r15,0(%r2)             /* New frame, to get correct pointer*/
+        brasl    %r5,.L3                         /* Get A(A(PRE_Block)) */
+                 .long          PRE_Block
+      .L3:
+              l       %r5,0(%r5)              /* Get A(PRE_Block) */
+              /*xc      0(4,%r5),0(%r5)         /* Clear it */
+             mvi     3(%r5),0                /* Clear it */ 
+             lg       %r15,0(%r15)
+              lmg      %r6,%r15,48(%r15)       /* Restore registers */
+              br      %r14                    /* Return */
+
+             /* Can't happen */
+              la      %r2,1234
+              brasl    %r5,.L4
+                .long          abort
+      .L4:
+              l       %r5,0(%r5)
+              basr    %r14,%r5
+      .returnto_end:
+              .size   returnto,.returnto_end-returnto
+
index b0a8abc5c3b44122953bbb4b01c14d067aa511e7..1652d75932c450ea61794a82c9383fb4cad0d4bf 100644 (file)
@@ -11,7 +11,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/rx/AIX/rx_knet.c,v 1.11 2003/07/15 23:16:14 shadow Exp $");
+    ("$Header: /cvs/openafs/src/rx/AIX/rx_knet.c,v 1.11.2.1 2004/08/25 07:16:16 shadow Exp $");
 
 #ifdef AFS_AIX41_ENV
 #include "rx/rx_kcommon.h"
@@ -322,6 +322,7 @@ shutdown_rxkernel(void)
                rxk_portRocks[i] = NULL;
            }
        }
+       del_input_type(0xdead);
     }
 }
 
index ee15e7ea17411ec53f4a3d3604a5a083a870c037..ef4dec3b6f4b49da83f91cbe0a79ee98f31482ed 100644 (file)
@@ -16,7 +16,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/rx/LINUX/rx_knet.c,v 1.23 2004/07/29 02:46:48 shadow Exp $");
+    ("$Header: /cvs/openafs/src/rx/LINUX/rx_knet.c,v 1.23.2.1 2004/08/25 07:41:00 shadow Exp $");
 
 #include <linux/version.h>
 #ifdef AFS_LINUX22_ENV
@@ -37,7 +37,10 @@ rxk_NewSocketHost(afs_uint32 ahost, short aport)
     int code;
 
 
-#ifdef LINUX_KERNEL_IS_SELINUX
+    /* We need a better test for this. if you need it back, tell us
+     * how to detect it. 
+     */
+#if 0/*def LINUX_KERNEL_IS_SELINUX*/
     code = sock_create(AF_INET, SOCK_DGRAM, IPPROTO_UDP, &sockp, 0);
 #else
     code = sock_create(AF_INET, SOCK_DGRAM, IPPROTO_UDP, &sockp);
index 805cf2fdad0eade3e156a5efc18e2c9bf483aac8..612ad30e0e9b3d930e4914c18a8fb6d5eb1321dd 100644 (file)
@@ -17,7 +17,7 @@
 #endif
 
 RCSID
-    ("$Header: /cvs/openafs/src/rx/rx.c,v 1.58 2004/08/04 19:41:53 shadow Exp $");
+    ("$Header: /cvs/openafs/src/rx/rx.c,v 1.58.2.2 2004/08/25 07:13:09 shadow Exp $");
 
 #ifdef KERNEL
 #include "afs/sysincludes.h"
@@ -221,7 +221,7 @@ rxi_InitPthread(void)
 
 pthread_once_t rx_once_init = PTHREAD_ONCE_INIT;
 #define INIT_PTHREAD_LOCKS \
-assert(pthread_once(&rx_once_init, rxi_InitPthread)==0);
+assert(pthread_once(&rx_once_init, rxi_InitPthread)==0)
 /*
  * The rx_stats_mutex mutex protects the following global variables:
  * rxi_dataQuota
@@ -337,8 +337,8 @@ struct rx_serverQueueEntry *rx_waitingForPacket = 0;
  * rx_epoch
  */
 
-#define LOCK_EPOCH assert(pthread_mutex_lock(&epoch_mutex)==0);
-#define UNLOCK_EPOCH assert(pthread_mutex_unlock(&epoch_mutex)==0);
+#define LOCK_EPOCH assert(pthread_mutex_lock(&epoch_mutex)==0)
+#define UNLOCK_EPOCH assert(pthread_mutex_unlock(&epoch_mutex)==0)
 #else
 #define LOCK_EPOCH
 #define UNLOCK_EPOCH
@@ -347,8 +347,10 @@ struct rx_serverQueueEntry *rx_waitingForPacket = 0;
 void
 rx_SetEpoch(afs_uint32 epoch)
 {
-    LOCK_EPOCH rx_epoch = epoch;
-UNLOCK_EPOCH}
+    LOCK_EPOCH;
+    rx_epoch = epoch;
+    UNLOCK_EPOCH;
+}
 
 /* Initialize rx.  A port number may be mentioned, in which case this
  * becomes the default port number for any service installed later.
@@ -363,14 +365,14 @@ static int rxinit_status = 1;
  * rxinit_status
  */
 
-#define LOCK_RX_INIT assert(pthread_mutex_lock(&rx_init_mutex)==0);
-#define UNLOCK_RX_INIT assert(pthread_mutex_unlock(&rx_init_mutex)==0);
+#define LOCK_RX_INIT assert(pthread_mutex_lock(&rx_init_mutex)==0)
+#define UNLOCK_RX_INIT assert(pthread_mutex_unlock(&rx_init_mutex)==0)
 #else
 #define LOCK_RX_INIT
 #define UNLOCK_RX_INIT
 #endif
 
-int 
+int
 rx_InitHost(u_int host, u_int port)
 {
 #ifdef KERNEL
@@ -387,9 +389,12 @@ rx_InitHost(u_int host, u_int port)
 
     SPLVAR;
 
-    INIT_PTHREAD_LOCKS LOCK_RX_INIT if (rxinit_status == 0) {
+    INIT_PTHREAD_LOCKS;
+    LOCK_RX_INIT;
+    if (rxinit_status == 0) {
        tmp_status = rxinit_status;
-       UNLOCK_RX_INIT return tmp_status;       /* Already started; return previous error code. */
+       UNLOCK_RX_INIT;
+       return tmp_status;      /* Already started; return previous error code. */
     }
 #ifdef AFS_NT40_ENV
     if (afs_winsockInit() < 0)
@@ -409,7 +414,8 @@ rx_InitHost(u_int host, u_int port)
 
     rx_socket = rxi_GetHostUDPSocket(host, (u_short) port);
     if (rx_socket == OSI_NULLSOCKET) {
-       UNLOCK_RX_INIT return RX_ADDRINUSE;
+       UNLOCK_RX_INIT;
+       return RX_ADDRINUSE;
     }
 #ifdef RX_ENABLE_LOCKS
 #ifdef RX_LOCKS_DB
@@ -531,10 +537,12 @@ rx_InitHost(u_int host, u_int port)
     AFS_RXGUNLOCK();
     USERPRI;
     tmp_status = rxinit_status = 0;
-    UNLOCK_RX_INIT return tmp_status;
+    UNLOCK_RX_INIT;
+    return tmp_status;
 }
 
-int rx_Init(u_int port) 
+int
+rx_Init(u_int port)
 {
     return rx_InitHost(htonl(INADDR_ANY), port);
 }
@@ -1924,8 +1932,11 @@ rx_Finalize(void)
 {
     register struct rx_connection **conn_ptr, **conn_end;
 
-    INIT_PTHREAD_LOCKS LOCK_RX_INIT if (rxinit_status == 1) {
-       UNLOCK_RX_INIT return;  /* Already shutdown. */
+    INIT_PTHREAD_LOCKS;
+    LOCK_RX_INIT;
+    if (rxinit_status == 1) {
+       UNLOCK_RX_INIT;
+       return;                 /* Already shutdown. */
     }
     rxi_DeleteCachedConnections();
     if (rx_connHashTable) {
@@ -1963,7 +1974,8 @@ rx_Finalize(void)
     rxi_flushtrace();
 
     rxinit_status = 1;
-UNLOCK_RX_INIT}
+    UNLOCK_RX_INIT;
+}
 #endif
 
 /* if we wakeup packet waiter too often, can get in loop with two
@@ -2310,7 +2322,8 @@ rxi_FindConnection(osi_socket socket, register afs_int32 host,
            if (type == RX_CLIENT_CONNECTION && pp->port == port)
                break;
            /* So what happens when it's a callback connection? */
-           if (/*type == RX_CLIENT_CONNECTION &&*/ (conn->epoch & 0x80000000))
+           if (                /*type == RX_CLIENT_CONNECTION && */
+                  (conn->epoch & 0x80000000))
                break;
        }
        if (!flag) {
@@ -3996,11 +4009,12 @@ rxi_AttachServerProc(register struct rx_call *call,
        if (call->flags & RX_CALL_WAIT_PROC) {
            /* Conservative:  I don't think this should happen */
            call->flags &= ~RX_CALL_WAIT_PROC;
-           MUTEX_ENTER(&rx_stats_mutex);
-           rx_nWaiting--;
-           MUTEX_EXIT(&rx_stats_mutex);
-           if (queue_IsOnQueue(call))
-               queue_Remove(call);
+           if (queue_IsOnQueue(call)) {
+               queue_Remove(call);
+               MUTEX_ENTER(&rx_stats_mutex);
+               rx_nWaiting--;
+               MUTEX_EXIT(&rx_stats_mutex);
+           }
        }
        call->state = RX_STATE_ACTIVE;
        call->mode = RX_MODE_RECEIVING;
@@ -6079,8 +6093,8 @@ rx_PrintPeerStats(FILE * file, struct rx_peer *peer)
  * counter
  */
 
-#define LOCK_RX_DEBUG assert(pthread_mutex_lock(&rx_debug_mutex)==0);
-#define UNLOCK_RX_DEBUG assert(pthread_mutex_unlock(&rx_debug_mutex)==0);
+#define LOCK_RX_DEBUG assert(pthread_mutex_lock(&rx_debug_mutex)==0)
+#define UNLOCK_RX_DEBUG assert(pthread_mutex_unlock(&rx_debug_mutex)==0)
 #else
 #define LOCK_RX_DEBUG
 #define UNLOCK_RX_DEBUG
@@ -6103,8 +6117,10 @@ MakeDebugCall(osi_socket socket, afs_uint32 remoteAddr, afs_uint16 remotePort,
     register char *tp;
 
     endTime = time(0) + 20;    /* try for 20 seconds */
-    LOCK_RX_DEBUG counter++;
-    UNLOCK_RX_DEBUG tp = &tbuffer[sizeof(struct rx_header)];
+    LOCK_RX_DEBUG;
+    counter++;
+    UNLOCK_RX_DEBUG;
+    tp = &tbuffer[sizeof(struct rx_header)];
     taddr.sin_family = AF_INET;
     taddr.sin_port = remotePort;
     taddr.sin_addr.s_addr = remoteAddr;
@@ -6134,18 +6150,18 @@ MakeDebugCall(osi_socket socket, afs_uint32 remoteAddr, afs_uint16 remotePort,
        tv.tv_sec = 1;
        tv.tv_usec = 0;
        code = select(socket + 1, &imask, 0, 0, &tv);
-       if (code == 1 && FD_ISSET(socket,&imask)) {
+       if (code == 1 && FD_ISSET(socket, &imask)) {
            /* now receive a packet */
            faddrLen = sizeof(struct sockaddr_in);
            code =
                recvfrom(socket, tbuffer, sizeof(tbuffer), 0,
                         (struct sockaddr *)&faddr, &faddrLen);
 
-        if (code > 0) {
-            memcpy(&theader, tbuffer, sizeof(struct rx_header));
-            if (counter == ntohl(theader.callNumber))
-                break;
-        }
+           if (code > 0) {
+               memcpy(&theader, tbuffer, sizeof(struct rx_header));
+               if (counter == ntohl(theader.callNumber))
+                   break;
+           }
        }
 
        /* see if we've timed out */
@@ -6418,8 +6434,10 @@ shutdown_rx(void)
     register struct rx_serverQueueEntry *sq;
 #endif /* KERNEL */
 
-    LOCK_RX_INIT if (rxinit_status == 1) {
-       UNLOCK_RX_INIT return;  /* Already shutdown. */
+    LOCK_RX_INIT;
+    if (rxinit_status == 1) {
+       UNLOCK_RX_INIT;
+       return;                 /* Already shutdown. */
     }
 #ifndef KERNEL
     rx_port = 0;
@@ -6536,7 +6554,8 @@ shutdown_rx(void)
     MUTEX_EXIT(&rx_stats_mutex);
 
     rxinit_status = 1;
-UNLOCK_RX_INIT}
+    UNLOCK_RX_INIT;
+}
 
 #ifdef RX_ENABLE_LOCKS
 void
index 6be89b828651f89bd82446c2a6a7fdc1eca47530..e561e9d9ef466ea60bfdefacd40ed89d7b9860ea 100644 (file)
@@ -14,7 +14,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/rx/rx_clock_nt.c,v 1.9 2004/02/26 19:23:02 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/rx/rx_clock_nt.c,v 1.9.2.1 2004/08/25 07:09:41 shadow Exp $");
 
 #ifdef AFS_NT40_ENV
 #include <stdio.h>
@@ -23,7 +23,7 @@ RCSID
 #include <winbase.h>
 #include "rx_clock.h"
 
-void clock_UpdateTime(void);    /* forward reference */
+void clock_UpdateTime(void);   /* forward reference */
 
 struct clock clock_now;                /* The last elapsed time ready by clock_GetTimer */
 
@@ -63,7 +63,7 @@ int
 clock_UnInit(void)
 {
     clockInitialized = 0;
-       return 0;
+    return 0;
 }
 #endif
 
index e70a9d428e3ccf31964399ae6dd29d76c728f1bd..cc72f5b93d14c633a30ace19e0c6283043a29e0d 100644 (file)
@@ -19,7 +19,7 @@
 #endif
 
 RCSID
-    ("$Header: /cvs/openafs/src/rx/rx_conncache.c,v 1.9 2004/05/15 04:53:30 shadow Exp $");
+    ("$Header: /cvs/openafs/src/rx/rx_conncache.c,v 1.9.2.1 2004/08/25 07:09:41 shadow Exp $");
 
 #ifdef UKERNEL
 #include "afs/sysincludes.h"
@@ -48,8 +48,8 @@ static struct rx_queue rxi_connectionCache = { &rxi_connectionCache,
  */
 
 pthread_mutex_t rxi_connCacheMutex;
-#define LOCK_CONN_CACHE assert(pthread_mutex_lock(&rxi_connCacheMutex)==0);
-#define UNLOCK_CONN_CACHE assert(pthread_mutex_unlock(&rxi_connCacheMutex)==0);
+#define LOCK_CONN_CACHE assert(pthread_mutex_lock(&rxi_connCacheMutex)==0)
+#define UNLOCK_CONN_CACHE assert(pthread_mutex_unlock(&rxi_connCacheMutex)==0)
 #else
 #define LOCK_CONN_CACHE
 #define UNLOCK_CONN_CACHE
@@ -183,7 +183,8 @@ rxi_GetCachedConnection(rx_connParts_p parts, struct rx_connection **conn)
      * increase the frequency of cache hits.
      */
 
-    LOCK_CONN_CACHE if (!rxi_FindCachedConnection(parts, conn)) {
+    LOCK_CONN_CACHE;
+    if (!rxi_FindCachedConnection(parts, conn)) {
        /*
         * Create a new connection and enter it in the cache
         */
@@ -195,7 +196,8 @@ rxi_GetCachedConnection(rx_connParts_p parts, struct rx_connection **conn)
            error = 1;
        }
     }
-    UNLOCK_CONN_CACHE return error;
+    UNLOCK_CONN_CACHE;
+    return error;
 }
 
 /*
@@ -208,16 +210,16 @@ rxi_DeleteCachedConnections(void)
 {
     cache_entry_p cacheConn, nCacheConn;
 
-    LOCK_CONN_CACHE
-       for (queue_Scan
-            (&rxi_connectionCache, cacheConn, nCacheConn, cache_entry)) {
+    LOCK_CONN_CACHE;
+    for (queue_Scan(&rxi_connectionCache, cacheConn, nCacheConn, cache_entry)) {
        if (!cacheConn)
            break;
        queue_Remove(cacheConn);
        rxi_DestroyConnection(cacheConn->conn);
        free(cacheConn);
     }
-UNLOCK_CONN_CACHE}
+    UNLOCK_CONN_CACHE;
+}
 
 /*
  * External functions
@@ -262,9 +264,8 @@ rx_ReleaseCachedConnection(struct rx_connection *conn)
 {
     cache_entry_p cacheConn, nCacheConn;
 
-    LOCK_CONN_CACHE
-       for (queue_Scan
-            (&rxi_connectionCache, cacheConn, nCacheConn, cache_entry)) {
+    LOCK_CONN_CACHE;
+    for (queue_Scan(&rxi_connectionCache, cacheConn, nCacheConn, cache_entry)) {
        if (conn == cacheConn->conn) {
            cacheConn->inUse--;
            /*
@@ -284,4 +285,5 @@ rx_ReleaseCachedConnection(struct rx_connection *conn)
            break;
        }
     }
-UNLOCK_CONN_CACHE}
+    UNLOCK_CONN_CACHE;
+}
index 113e57f90e28e2185d38e23c3c7f4baec03c83cb..7758d227cee9605443b6d5544244dc2a1774e5f6 100644 (file)
@@ -19,7 +19,7 @@
 #endif
 
 RCSID
-    ("$Header: /cvs/openafs/src/rx/rx_event.c,v 1.14 2003/07/15 23:16:09 shadow Exp $");
+    ("$Header: /cvs/openafs/src/rx/rx_event.c,v 1.14.2.1 2004/08/25 07:09:41 shadow Exp $");
 
 #ifdef KERNEL
 #ifndef UKERNEL
@@ -109,8 +109,8 @@ afs_kmutex_t rxevent_lock;
 
 #include <assert.h>
 pthread_mutex_t rx_event_mutex;
-#define LOCK_EV_INIT assert(pthread_mutex_lock(&rx_event_mutex)==0);
-#define UNLOCK_EV_INIT assert(pthread_mutex_unlock(&rx_event_mutex)==0);
+#define LOCK_EV_INIT assert(pthread_mutex_lock(&rx_event_mutex)==0)
+#define UNLOCK_EV_INIT assert(pthread_mutex_unlock(&rx_event_mutex)==0)
 #else
 #define LOCK_EV_INIT
 #define UNLOCK_EV_INIT
@@ -122,8 +122,10 @@ int rxevent_initialized = 0;
 void
 rxevent_Init(int nEvents, void (*scheduler) (void))
 {
-    LOCK_EV_INIT if (rxevent_initialized) {
-       UNLOCK_EV_INIT return;
+    LOCK_EV_INIT;
+    if (rxevent_initialized) {
+       UNLOCK_EV_INIT;
+       return;
     }
     MUTEX_INIT(&rxevent_lock, "rxevent_lock", MUTEX_DEFAULT, 0);
     clock_Init();
@@ -138,7 +140,8 @@ rxevent_Init(int nEvents, void (*scheduler) (void))
     rxevent_initialized = 1;
     clock_Zero(&rxevent_nextRaiseEvents);
     rxevent_raiseScheduled = 0;
-UNLOCK_EV_INIT}
+    UNLOCK_EV_INIT;
+}
 
 /* Create and initialize new epoch structure */
 struct rxepoch *
@@ -413,11 +416,14 @@ shutdown_rxevent(void)
 {
     struct xfreelist *xp, *nxp;
 
-    LOCK_EV_INIT if (!rxevent_initialized) {
-       UNLOCK_EV_INIT return;
+    LOCK_EV_INIT;
+    if (!rxevent_initialized) {
+       UNLOCK_EV_INIT;
+       return;
     }
     rxevent_initialized = 0;
-    UNLOCK_EV_INIT MUTEX_DESTROY(&rxevent_lock);
+    UNLOCK_EV_INIT;
+    MUTEX_DESTROY(&rxevent_lock);
 #if    defined(AFS_AIX32_ENV) && defined(KERNEL)
     /* Everything is freed in afs_osinet.c */
 #else
index f136706632b804281c0729973ddebaf791e11bc2..df07e806210655f758ec543053feb713266c6e51 100644 (file)
@@ -15,7 +15,7 @@
 #include "afs/param.h"
 
 RCSID
-    ("$Header: /cvs/openafs/src/rx/rx_kcommon.c,v 1.44 2004/08/08 19:17:05 shadow Exp $");
+    ("$Header: /cvs/openafs/src/rx/rx_kcommon.c,v 1.44.2.1 2004/08/25 07:09:41 shadow Exp $");
 
 #include "rx/rx_kcommon.h"
 
@@ -516,7 +516,7 @@ rxi_GetcbiInfo(void)
     memset((void *)mtus, 0, sizeof(mtus));
 
     for (i = 0; i < afs_cb_interface.numberOfInterfaces; i++) {
-        if (!afs_cb_interface.mtu[i]) 
+       if (!afs_cb_interface.mtu[i])
            afs_cb_interface.mtu[i] = htonl(1500);
        rxmtu = (ntohl(afs_cb_interface.mtu[i]) - RX_IPUDP_SIZE);
        ifinaddr = ntohl(afs_cb_interface.addr_in[i]);
@@ -791,16 +791,17 @@ rxk_NewSocketHost(afs_uint32 ahost, short aport)
 #if    defined(AFS_HPUX102_ENV)
 #if     defined(AFS_HPUX110_ENV)
     /* we need a file associated with the socket so sosend in NetSend 
-       will not fail */
+     * will not fail */
     /* blocking socket */
     code = socreate(AF_INET, &newSocket, SOCK_DGRAM, 0, 0);
     fp = falloc();
-    if (!fp) goto bad;
+    if (!fp)
+       goto bad;
     fp->f_flag = FREAD | FWRITE;
     fp->f_type = DTYPE_SOCKET;
-    fp->f_ops  = &socketops;
+    fp->f_ops = &socketops;
 
-    fp->f_data = (void *) newSocket;
+    fp->f_data = (void *)newSocket;
     newSocket->so_fp = (void *)fp;
 
 #else /* AFS_HPUX110_ENV */
@@ -930,11 +931,11 @@ rxk_FreeSocket(register struct socket *asocket)
 #endif
 #ifdef AFS_HPUX110_ENV
     if (asocket->so_fp) {
-       struct file * fp = asocket->so_fp;
+       struct file *fp = asocket->so_fp;
 #if !defined(AFS_HPUX1123_ENV)
        /* 11.23 still has falloc, but not FPENTRYFREE ! 
-          so for now if we shutdown, we will waist a file 
-          structure */
+        * so for now if we shutdown, we will waist a file 
+        * structure */
        FPENTRYFREE(fp);
        asocket->so_fp = NULL;
 #endif
index 3a910def2015757612fbe41401b6798655551503..2545055dca1bb0c401e5258d6c3449b0cd2d5401 100644 (file)
@@ -88,7 +88,9 @@ typedef unsigned short etap_event_t;
 #else
 #include "net/route.h"
 #endif
+#if defined(HAVE_IN_SYSTM_H) || !defined(AFS_LINUX22_ENV)
 #include "netinet/in_systm.h"
+#endif
 #include "netinet/ip.h"
 #if !defined(AFS_HPUX110_ENV) && !defined(AFS_LINUX22_ENV) && !defined(AFS_DARWIN60_ENV) && !defined(AFS_OBSD_ENV)
 #include "netinet/in_pcb.h"
index ce942c68bd6f836f8c2fef5cb8b40a96a3106757..f2465f52dc9b8e21b835698376ceea50ab5c582a 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/rx/rx_misc.c,v 1.12 2003/07/15 23:16:09 shadow Exp $");
+    ("$Header: /cvs/openafs/src/rx/rx_misc.c,v 1.12.2.1 2004/08/25 07:09:41 shadow Exp $");
 
 #ifdef KERNEL
 #include <afs/sysincludes.h>
@@ -109,8 +109,8 @@ ntoh_syserr_conv(int code)
 
 #include <assert.h>
 pthread_mutex_t osi_malloc_mutex;
-#define LOCK_MALLOC_STATS assert(pthread_mutex_lock(&osi_malloc_mutex)==0);
-#define UNLOCK_MALLOC_STATS assert(pthread_mutex_unlock(&osi_malloc_mutex)==0);
+#define LOCK_MALLOC_STATS assert(pthread_mutex_lock(&osi_malloc_mutex)==0)
+#define UNLOCK_MALLOC_STATS assert(pthread_mutex_unlock(&osi_malloc_mutex)==0)
 #else
 #define LOCK_MALLOC_STATS
 #define UNLOCK_MALLOC_STATS
@@ -126,9 +126,11 @@ osi_alloc(afs_int32 x)
      */
     if (x == 0)
        return (char *)&memZero;
-    LOCK_MALLOC_STATS osi_alloccnt++;
+    LOCK_MALLOC_STATS;
+    osi_alloccnt++;
     osi_allocsize += x;
-    UNLOCK_MALLOC_STATS return (char *)(mem_alloc(x));
+    UNLOCK_MALLOC_STATS;
+    return (char *)(mem_alloc(x));
 }
 
 int
@@ -136,9 +138,11 @@ osi_free(char *x, afs_int32 size)
 {
     if ((x == &memZero) || !x)
        return 0;
-    LOCK_MALLOC_STATS osi_alloccnt--;
+    LOCK_MALLOC_STATS;
+    osi_alloccnt--;
     osi_allocsize -= size;
-    UNLOCK_MALLOC_STATS mem_free(x, size);
+    UNLOCK_MALLOC_STATS;
+    mem_free(x, size);
     return 0;
 }
 #endif
index a24f25e4dae9e1c81b6c0b0cdc8473cf39d1fd8b..533b84bdb0201b0c2378835d863b9ec591d72b95 100644 (file)
@@ -15,7 +15,7 @@
 #endif
 
 RCSID
-    ("$Header: /cvs/openafs/src/rx/rx_packet.c,v 1.35 2004/06/02 14:50:23 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/rx/rx_packet.c,v 1.35.2.1 2004/08/25 07:09:42 shadow Exp $");
 
 #ifdef KERNEL
 #if defined(UKERNEL)
@@ -833,8 +833,7 @@ rxi_ReadPacket(int socket, register struct rx_packet *p, afs_uint32 * host,
            MUTEX_ENTER(&rx_stats_mutex);
            rx_stats.noPacketOnRead++;
            MUTEX_EXIT(&rx_stats_mutex);
-       }
-       else {
+       } else {
            MUTEX_ENTER(&rx_stats_mutex);
            rx_stats.bogusPacketOnRead++;
            rx_stats.bogusHost = from.sin_addr.s_addr;
@@ -1828,11 +1827,7 @@ rxi_SendPacketList(struct rx_call *call, struct rx_connection *conn,
 
     assert(p != NULL);
 
-    dpf(("%c %d %s: %x.%u.%u.%u.%u.%u.%u flags %d, packet %x resend %d.%0.3d len %d", 
-          deliveryType, p->header.serial, rx_packetTypes[p->header.type - 1], 
-          peer->host, peer->port, p->header.serial, p->header.epoch, 
-          p->header.cid, p->header.callNumber, p->header.seq, p->header.flags,
-          (int)p, p->retryTime.sec, p->retryTime.usec / 1000, p->length));
+    dpf(("%c %d %s: %x.%u.%u.%u.%u.%u.%u flags %d, packet %x resend %d.%0.3d len %d", deliveryType, p->header.serial, rx_packetTypes[p->header.type - 1], peer->host, peer->port, p->header.serial, p->header.epoch, p->header.cid, p->header.callNumber, p->header.seq, p->header.flags, (int)p, p->retryTime.sec, p->retryTime.usec / 1000, p->length));
 
 #endif
     MUTEX_ENTER(&rx_stats_mutex);
index d7cee56398c690b53a51b7b9ea685eb81a423b47..3ba1b1372e8257e5e5a748e5e3995fa1cd7667ed 100644 (file)
@@ -19,7 +19,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/rx/rx_pthread.c,v 1.17 2004/02/03 06:23:39 shadow Exp $");
+    ("$Header: /cvs/openafs/src/rx/rx_pthread.c,v 1.17.2.1 2004/08/25 07:09:42 shadow Exp $");
 
 #include <sys/types.h>
 #include <errno.h>
@@ -156,7 +156,7 @@ event_handler(void *argp)
        next.sec = 30;          /* Time to sleep if there are no events scheduled */
        next.usec = 0;
        clock_GetTime(&cv);
-       rxevent_RaiseEvents(&next);
+       rxevent_RaiseEvents(&next);
 
        assert(pthread_mutex_lock(&event_handler_mutex) == 0);
        if (rx_pthread_event_rescheduled) {
index 6a578a9c4edcb62afae13c721208f4f79bebd85d..efa7122361425d5b00a56c498857ad5b15382af0 100644 (file)
@@ -13,7 +13,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/rx/rx_user.c,v 1.18 2004/08/06 20:04:07 shadow Exp $");
+    ("$Header: /cvs/openafs/src/rx/rx_user.c,v 1.18.2.1 2004/08/25 07:09:42 shadow Exp $");
 
 # include <sys/types.h>
 # include <errno.h>
@@ -66,8 +66,8 @@ RCSID
  */
 
 pthread_mutex_t rx_if_init_mutex;
-#define LOCK_IF_INIT assert(pthread_mutex_lock(&rx_if_init_mutex)==0);
-#define UNLOCK_IF_INIT assert(pthread_mutex_unlock(&rx_if_init_mutex)==0);
+#define LOCK_IF_INIT assert(pthread_mutex_lock(&rx_if_init_mutex)==0)
+#define UNLOCK_IF_INIT assert(pthread_mutex_unlock(&rx_if_init_mutex)==0)
 
 /*
  * The rx_if_mutex mutex protects the following global variables:
@@ -77,8 +77,8 @@ pthread_mutex_t rx_if_init_mutex;
  */
 
 pthread_mutex_t rx_if_mutex;
-#define LOCK_IF assert(pthread_mutex_lock(&rx_if_mutex)==0);
-#define UNLOCK_IF assert(pthread_mutex_unlock(&rx_if_mutex)==0);
+#define LOCK_IF assert(pthread_mutex_lock(&rx_if_mutex)==0)
+#define UNLOCK_IF assert(pthread_mutex_unlock(&rx_if_mutex)==0)
 #else
 #define LOCK_IF_INIT
 #define UNLOCK_IF_INIT
@@ -296,8 +296,10 @@ rx_getAllAddr(afs_int32 * buffer, int maxSize)
 void
 rx_GetIFInfo(void)
 {
-    LOCK_IF_INIT if (Inited) {
-       UNLOCK_IF_INIT return;
+    LOCK_IF_INIT;
+    if (Inited) {
+       UNLOCK_IF_INIT;
+       return;
     } else {
        u_int maxsize;
        u_int rxsize;
@@ -305,10 +307,12 @@ rx_GetIFInfo(void)
        afs_uint32 i;
 
        Inited = 1;
-       UNLOCK_IF_INIT rxi_numNetAddrs = ADDRSPERSITE;
+       UNLOCK_IF_INIT;
+       rxi_numNetAddrs = ADDRSPERSITE;
 
-       LOCK_IF(void) syscfg_GetIFInfo(&rxi_numNetAddrs, rxi_NetAddrs,
-                                      myNetMasks, myNetMTUs, myNetFlags);
+       LOCK_IF;
+       (void)syscfg_GetIFInfo(&rxi_numNetAddrs, rxi_NetAddrs,
+                              myNetMasks, myNetMTUs, myNetFlags);
 
        for (i = 0; i < rxi_numNetAddrs; i++) {
            rxsize = rxi_AdjustIfMTU(myNetMTUs[i] - RX_IPUDP_SIZE);
@@ -322,7 +326,8 @@ rx_GetIFInfo(void)
            }
 
        }
-       UNLOCK_IF ncbufs = (rx_maxJumboRecvSize - RX_FIRSTBUFFERSIZE);
+       UNLOCK_IF;
+       ncbufs = (rx_maxJumboRecvSize - RX_FIRSTBUFFERSIZE);
        if (ncbufs > 0) {
            ncbufs = ncbufs / RX_CBUFFERSIZE;
            npackets = rx_initSendWindow - 1;
@@ -391,16 +396,21 @@ rx_GetIFInfo(void)
     struct sockaddr_in *a;
 #endif /* AFS_DJGPP_ENV */
 
-    LOCK_IF_INIT if (Inited) {
-       UNLOCK_IF_INIT return;
+    LOCK_IF_INIT;
+    if (Inited) {
+       UNLOCK_IF_INIT;
+       return;
     }
     Inited = 1;
-    UNLOCK_IF_INIT LOCK_IF rxi_numNetAddrs = 0;
+    UNLOCK_IF_INIT;
+    LOCK_IF;
+    rxi_numNetAddrs = 0;
     memset(rxi_NetAddrs, 0, sizeof(rxi_NetAddrs));
     memset(myNetFlags, 0, sizeof(myNetFlags));
     memset(myNetMTUs, 0, sizeof(myNetMTUs));
     memset(myNetMasks, 0, sizeof(myNetMasks));
-    UNLOCK_IF s = socket(AF_INET, SOCK_DGRAM, 0);
+    UNLOCK_IF;
+    s = socket(AF_INET, SOCK_DGRAM, 0);
     if (s < 0)
        return;
 
@@ -421,10 +431,10 @@ rx_GetIFInfo(void)
        return;
     }
 
-    LOCK_IF
+    LOCK_IF;
 #ifdef AFS_AIX41_ENV
 #define size(p) MAX((p).sa_len, sizeof(p))
-       cplim = buf + ifc.ifc_len;      /*skip over if's with big ifr_addr's */
+    cplim = buf + ifc.ifc_len; /*skip over if's with big ifr_addr's */
     for (cp = buf; cp < cplim;
         cp += sizeof(ifr->ifr_name) + MAX(a->sin_len, sizeof(*a))) {
        if (rxi_numNetAddrs >= ADDRSPERSITE)
@@ -432,7 +442,7 @@ rx_GetIFInfo(void)
 
        ifr = (struct ifreq *)cp;
 #else
-       len = ifc.ifc_len / sizeof(struct ifreq);
+    len = ifc.ifc_len / sizeof(struct ifreq);
     if (len > ADDRSPERSITE)
        len = ADDRSPERSITE;
 
@@ -552,7 +562,8 @@ rx_GetIFInfo(void)
            ++rxi_numNetAddrs;
        }
     }
-    UNLOCK_IF close(s);
+    UNLOCK_IF;
+    close(s);
 
     /* have to allocate at least enough to allow a single packet to reach its
      * maximum size, so ReadPacket will work.  Allocate enough for a couple
@@ -594,15 +605,17 @@ rxi_InitPeerParams(struct rx_peer *pp)
 
 
 
-    LOCK_IF_INIT if (!Inited) {
-       UNLOCK_IF_INIT
-           /*
-            * there's a race here since more than one thread could call
-            * rx_GetIFInfo.  The race stops in rx_GetIFInfo.
-            */
-           rx_GetIFInfo();
+    LOCK_IF_INIT;
+    if (!Inited) {
+       UNLOCK_IF_INIT;
+       /*
+        * there's a race here since more than one thread could call
+        * rx_GetIFInfo.  The race stops in rx_GetIFInfo.
+        */
+       rx_GetIFInfo();
     } else {
-    UNLOCK_IF_INIT}
+       UNLOCK_IF_INIT;
+    }
 
 #ifdef ADAPT_MTU
     /* try to second-guess IP, and identify which link is most likely to
@@ -616,7 +629,8 @@ rxi_InitPeerParams(struct rx_peer *pp)
      * pp->burstSize pp->burst pp->burstWait.sec pp->burstWait.usec
      * pp->timeout.usec */
 
-    LOCK_IF for (ix = 0; ix < rxi_numNetAddrs; ++ix) {
+    LOCK_IF;
+    for (ix = 0; ix < rxi_numNetAddrs; ++ix) {
        if ((rxi_NetAddrs[ix] & myNetMasks[ix]) == (ppaddr & myNetMasks[ix])) {
 #ifdef IFF_POINTOPOINT
            if (myNetFlags[ix] & IFF_POINTOPOINT)
@@ -629,7 +643,8 @@ rxi_InitPeerParams(struct rx_peer *pp)
                pp->ifMTU = MIN(rx_MyMaxSendSize, rxmtu);
        }
     }
-    UNLOCK_IF if (!pp->ifMTU) {        /* not local */
+    UNLOCK_IF;
+    if (!pp->ifMTU) {          /* not local */
        pp->timeout.sec = 3;
        pp->ifMTU = MIN(rx_MyMaxSendSize, RX_REMOTE_PACKET_SIZE);
     }
@@ -665,8 +680,8 @@ rx_SetNoJumbo(void)
 
 /* Override max MTU.  If rx_SetNoJumbo is called, it must be 
    called before calling rx_SetMaxMTU since SetNoJumbo clobbers rx_maxReceiveSize */
-void rx_SetMaxMTU(int mtu)
+void
+rx_SetMaxMTU(int mtu)
 {
-       rx_MyMaxSendSize = rx_maxReceiveSizeUser = rx_maxReceiveSize = mtu;
+    rx_MyMaxSendSize = rx_maxReceiveSizeUser = rx_maxReceiveSize = mtu;
 }
-
index a11a4cedd05bd73e80cf5ed82b768b2413044487..3810be4035aabcb11883bfcded5288a372f5a677 100644 (file)
@@ -28,8 +28,8 @@ error - foo error - foo error - foo
 #define AFS_RXGUNLOCK()
 #ifndef UKERNEL
 /* Defined in rx/UKERNEL/rx_kmutex.h */
-#define ISAFS_GLOCK() 
-#define ISAFS_RXGLOCK() 
+#define ISAFS_GLOCK()
+#define ISAFS_RXGLOCK()
 #endif
 #define AFS_ASSERT_RXGLOCK()
 /* Some "operating-system independent" stuff, for the user mode implementation */
index 04f37cfa62e0d2b6e34b66225697508e56410f3b..c28cc22e7339ca0afaf4a6c6bedf3d5d93641272 100644 (file)
@@ -18,7 +18,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/rx/rx_xmit_nt.c,v 1.7 2004/06/02 14:50:24 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/rx/rx_xmit_nt.c,v 1.7.2.1 2004/08/25 07:09:42 shadow Exp $");
 
 #if defined(AFS_NT40_ENV) || defined(AFS_DJGPP_ENV)
 
@@ -79,12 +79,12 @@ recvmsg(int socket, struct msghdr *msgP, int flags)
        code -= size;
     } else {
 #ifdef AFS_NT40_ENV
-    if (code == SOCKET_ERROR)
-        code = WSAGetLastError();
-    if (code == WSAEWOULDBLOCK)
-        errno = WSAEWOULDBLOCK;
-    else
-        errno = EIO;
+       if (code == SOCKET_ERROR)
+           code = WSAGetLastError();
+       if (code == WSAEWOULDBLOCK)
+           errno = WSAEWOULDBLOCK;
+       else
+           errno = EIO;
 #endif /* AFS_NT40_ENV */
        code = -1;
     }
@@ -136,9 +136,9 @@ sendmsg(int socket, struct msghdr *msgP, int flags)
        case WSAENOBUFS:
            errno = 0;
            break;
-    case WSAEWOULDBLOCK:
-        errno = WSAEWOULDBLOCK;
-        break;
+       case WSAEWOULDBLOCK:
+           errno = WSAEWOULDBLOCK;
+           break;
        default:
            errno = EIO;
            break;
index 52c2ed875e85aacd3fa23363be642c1c79fcf920..b96b227dd30e868cfc358aaf681521daaddc5b7f 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/rx/rxdebug.c,v 1.15 2003/12/07 22:49:36 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/rx/rxdebug.c,v 1.15.2.1 2004/08/25 07:09:42 shadow Exp $");
 
 #include <sys/types.h>
 #include <errno.h>
@@ -333,7 +333,7 @@ MainCommand(as, arock)
                printf("getconn call failed with code %d\n", code);
                break;
            }
-           if (tconn.cid == (afs_int32)0xffffffff) {
+           if (tconn.cid == (afs_int32) 0xffffffff) {
                printf("Done.\n");
                break;
            }
index 92a9b4343960148a72617ea7aefb12cc3f2744b7..3f31dc2c927f08695879e2fe9fd1a4bc11ec4398 100644 (file)
@@ -7,7 +7,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/rx/xdr_int64.c,v 1.9 2003/12/08 03:14:08 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/rx/xdr_int64.c,v 1.9.2.1 2004/08/25 07:09:42 shadow Exp $");
 
 #if defined(KERNEL) && !defined(UKERNEL)
 #ifdef AFS_LINUX20_ENV
@@ -53,8 +53,8 @@ xdr_afs_int64(register XDR * xdrs, afs_int64 * ulp)
        return (TRUE);
     }
     if (xdrs->x_op == XDR_ENCODE) {
-       high = (afs_int32)(*ulp >> 32);
-       low = (afs_uint32)(*ulp & 0xFFFFFFFFL);
+       high = (afs_int32) (*ulp >> 32);
+       low = (afs_uint32) (*ulp & 0xFFFFFFFFL);
        if (!XDR_PUTINT32(xdrs, (afs_int32 *) & high))
            return (FALSE);
        return (XDR_PUTINT32(xdrs, (afs_int32 *) & low));
@@ -90,8 +90,8 @@ xdr_afs_uint64(register XDR * xdrs, afs_uint64 * ulp)
        return (TRUE);
     }
     if (xdrs->x_op == XDR_ENCODE) {
-       high = (afs_uint32)(*ulp >> 32);
-       low = (afs_uint32)(*ulp & 0xFFFFFFFFL);
+       high = (afs_uint32) (*ulp >> 32);
+       low = (afs_uint32) (*ulp & 0xFFFFFFFFL);
        if (!XDR_PUTINT32(xdrs, (afs_uint32 *) & high))
            return (FALSE);
        return (XDR_PUTINT32(xdrs, (afs_uint32 *) & low));
index dd925a57f71ba472bf8b9ab424861c3675be7c80..cffb6f781bffd3d134df2f94331ab6d55f4cae33 100644 (file)
@@ -38,7 +38,7 @@
 #endif
 
 RCSID
-    ("$Header: /cvs/openafs/src/rxkad/bg-fcrypt.c,v 1.5 2003/07/15 23:16:42 shadow Exp $");
+    ("$Header: /cvs/openafs/src/rxkad/bg-fcrypt.c,v 1.5.2.1 2004/08/25 07:09:42 shadow Exp $");
 
 #define DEBUG 0
 #ifdef KERNEL
@@ -507,9 +507,11 @@ afs_int32
 fc_ecb_encrypt(afs_uint32 * in, afs_uint32 * out, fc_KeySchedule sched,
               int encrypt)
 {
-    LOCK_RXKAD_STATS rxkad_stats.fc_encrypts[encrypt]++;
-    UNLOCK_RXKAD_STATS if (encrypt)
-         fc_ecb_enc(in[0], in[1], out, sched);
+    LOCK_RXKAD_STATS;
+    rxkad_stats.fc_encrypts[encrypt]++;
+    UNLOCK_RXKAD_STATS;
+    if (encrypt)
+       fc_ecb_enc(in[0], in[1], out, sched);
     else
        fc_ecb_dec(in[0], in[1], out, sched);
     return 0;
@@ -667,8 +669,10 @@ fc_keysched(void *key_, fc_KeySchedule sched)
     ROT56R(hi, lo, 11);
     *sched++ = EFF_NTOHL(lo);
 #endif
-    LOCK_RXKAD_STATS rxkad_stats.fc_key_scheds++;
-    UNLOCK_RXKAD_STATS return 0;
+    LOCK_RXKAD_STATS;
+    rxkad_stats.fc_key_scheds++;
+    UNLOCK_RXKAD_STATS;
+    return 0;
 }
 
 /*
@@ -688,9 +692,10 @@ rxkad_EncryptPacket(const struct rx_connection * rx_connection_not_used,
 
     obj = rx_SecurityObjectOf(rx_connection_not_used);
     tp = (struct rxkad_cprivate *)obj->privateData;
-    LOCK_RXKAD_STATS rxkad_stats.bytesEncrypted[rxkad_TypeIndex(tp->type)] +=
-       len;
-    UNLOCK_RXKAD_STATS {
+    LOCK_RXKAD_STATS;
+    rxkad_stats.bytesEncrypted[rxkad_TypeIndex(tp->type)] += len;
+    UNLOCK_RXKAD_STATS;
+    {
        /* What is this good for?
         * It turns out that the security header for auth_enc is of
         * size 8 bytes and the last 4 bytes are defined to be 0!
@@ -725,9 +730,10 @@ rxkad_DecryptPacket(const struct rx_connection * rx_connection_not_used,
 
     obj = rx_SecurityObjectOf(rx_connection_not_used);
     tp = (struct rxkad_cprivate *)obj->privateData;
-    LOCK_RXKAD_STATS rxkad_stats.bytesDecrypted[rxkad_TypeIndex(tp->type)] +=
-       len;
-    UNLOCK_RXKAD_STATS memcpy(ivec, iv, sizeof(ivec)); /* Must use copy of iv */
+    LOCK_RXKAD_STATS;
+    rxkad_stats.bytesDecrypted[rxkad_TypeIndex(tp->type)] += len;
+    UNLOCK_RXKAD_STATS;
+    memcpy(ivec, iv, sizeof(ivec));    /* Must use copy of iv */
     for (frag = &packet->wirevec[1]; len > 0; frag++) {
        int iov_len = frag->iov_len;
        afs_uint32 *iov_bas = (afs_uint32 *) frag->iov_base;
index 08dffcea7fd037599bfe918589cd7acdfac31dbf..0f37955c6343f2ede5c1773ceb45dee54f11e9ef 100644 (file)
@@ -19,7 +19,7 @@
 #endif
 
 RCSID
-    ("$Header: /cvs/openafs/src/rxkad/domestic/crypt_conn.c,v 1.11 2003/07/15 23:16:44 shadow Exp $");
+    ("$Header: /cvs/openafs/src/rxkad/domestic/crypt_conn.c,v 1.11.2.1 2004/08/25 07:17:01 shadow Exp $");
 
 #ifdef KERNEL
 #include "afs/stds.h"
@@ -61,9 +61,10 @@ rxkad_DecryptPacket(const struct rx_connection *conn,
 
     obj = rx_SecurityObjectOf(conn);
     tp = (struct rxkad_cprivate *)obj->privateData;
-    LOCK_RXKAD_STATS rxkad_stats.bytesDecrypted[rxkad_TypeIndex(tp->type)] +=
-       len;
-    UNLOCK_RXKAD_STATS memcpy((void *)xor, (void *)ivec, sizeof(xor));
+    LOCK_RXKAD_STATS;
+    rxkad_stats.bytesDecrypted[rxkad_TypeIndex(tp->type)] += len;
+    UNLOCK_RXKAD_STATS;
+    memcpy((void *)xor, (void *)ivec, sizeof(xor));
     for (i = 0; len; i++) {
        data = rx_data(packet, i, tlen);
        if (!data || !tlen)
@@ -96,15 +97,15 @@ rxkad_EncryptPacket(const struct rx_connection * conn,
 
     obj = rx_SecurityObjectOf(conn);
     tp = (struct rxkad_cprivate *)obj->privateData;
-    LOCK_RXKAD_STATS rxkad_stats.bytesEncrypted[rxkad_TypeIndex(tp->type)] +=
-       len;
-    UNLOCK_RXKAD_STATS
-       /*
-        * afs_int32 cksum;
-        * cksum = htonl(0);                
-        * * Future option to add cksum here, but for now we just put 0
-        */
-       rx_PutInt32(packet, 1 * sizeof(afs_int32), 0);
+    LOCK_RXKAD_STATS;
+    rxkad_stats.bytesEncrypted[rxkad_TypeIndex(tp->type)] += len;
+    UNLOCK_RXKAD_STATS;
+    /*
+     * afs_int32 cksum;
+     * cksum = htonl(0);                
+     * * Future option to add cksum here, but for now we just put 0
+     */
+    rx_PutInt32(packet, 1 * sizeof(afs_int32), 0);
 
     memcpy((void *)xor, (void *)ivec, sizeof(xor));
     for (i = 0; len; i++) {
index 175153aea71d8dad8a0c50345e2ac697cc0f1e09..4e949a428e51a303bb2cd8bc32c233193fbfc709 100644 (file)
@@ -20,7 +20,7 @@
 #endif
 
 RCSID
-    ("$Header: /cvs/openafs/src/rxkad/domestic/fcrypt.c,v 1.11 2003/07/15 23:16:44 shadow Exp $");
+    ("$Header: /cvs/openafs/src/rxkad/domestic/fcrypt.c,v 1.11.2.1 2004/08/25 07:17:01 shadow Exp $");
 
 #define DEBUG 0
 #ifdef KERNEL
@@ -102,8 +102,10 @@ fc_keysched(struct ktc_encryptionKey *key, fc_KeySchedule schedule)
        kword[1] = (kword[1] >> 11) | (temp << (56 - 32 - 11));
        schedule[i] = kword[0];
     }
-    LOCK_RXKAD_STATS rxkad_stats.fc_key_scheds++;
-    UNLOCK_RXKAD_STATS return 0;
+    LOCK_RXKAD_STATS;
+    rxkad_stats.fc_key_scheds++;
+    UNLOCK_RXKAD_STATS;
+    return 0;
 }
 
 /* IN int encrypt; * 0 ==> decrypt, else encrypt */
@@ -138,8 +140,10 @@ fc_ecb_encrypt(afs_uint32 * clear, afs_uint32 * cipher,
 #endif
 
     if (encrypt) {
-       LOCK_RXKAD_STATS rxkad_stats.fc_encrypts[ENCRYPT]++;
-       UNLOCK_RXKAD_STATS for (i = 0; i < (ROUNDS / 2); i++) {
+       LOCK_RXKAD_STATS;
+       rxkad_stats.fc_encrypts[ENCRYPT]++;
+       UNLOCK_RXKAD_STATS;
+       for (i = 0; i < (ROUNDS / 2); i++) {
            S = *schedule++ ^ R;        /* xor R with key bits from schedule */
            Pchar[Byte2] = sbox0[Schar[Byte0]]; /* do 8-bit S Box subst. */
            Pchar[Byte3] = sbox1[Schar[Byte1]]; /* and permute the result */
@@ -156,8 +160,10 @@ fc_ecb_encrypt(afs_uint32 * clear, afs_uint32 * cipher,
            R ^= P;
        }
     } else {
-       LOCK_RXKAD_STATS rxkad_stats.fc_encrypts[DECRYPT]++;
-       UNLOCK_RXKAD_STATS schedule = &schedule[ROUNDS - 1];    /* start at end of key schedule */
+       LOCK_RXKAD_STATS;
+       rxkad_stats.fc_encrypts[DECRYPT]++;
+       UNLOCK_RXKAD_STATS;
+       schedule = &schedule[ROUNDS - 1];       /* start at end of key schedule */
        for (i = 0; i < (ROUNDS / 2); i++) {
            S = *schedule-- ^ L;        /* xor R with key bits from schedule */
            Pchar[Byte2] = sbox0[Schar[Byte0]]; /* do 8-bit S Box subst. and */
index c899e7e4a34e23b8f8e1101bc844e3ae20da505f..8be9862c545ecb118ecb5c734586725d0b71ae51 100644 (file)
@@ -30,7 +30,7 @@
  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
 
-/* $Id: hash.h,v 1.2 2004/05/10 03:52:18 shadow Exp $ */
+/* $Id: hash.h,v 1.2.2.1 2004/08/25 07:09:42 shadow Exp $ */
 
 /* stuff in common between md4, md5, and sha1 */
 
@@ -62,7 +62,7 @@
 #endif
 
 static inline afs_uint32
-cshift (afs_uint32 x, unsigned int n)
+cshift(afs_uint32 x, unsigned int n)
 {
     x = CRAYFIX(x);
     return CRAYFIX((x << n) | (x >> (32 - n)));
index c287ef01aa7b1f531c23c1ef431bf4a2ec5bccee..d6646e3af3ce79a052d0ce184f1aa109b3ec3c8b 100644 (file)
@@ -69,7 +69,7 @@
 #include "rxkad.h"
 #endif /* defined(UKERNEL) */
 
-RCSID("$Id: md4.c,v 1.1 2004/04/09 05:54:22 jaltman Exp $");
+RCSID("$Id: md4.c,v 1.1.2.1 2004/08/25 07:09:42 shadow Exp $");
 
 #undef WORDS_BIGENDIAN
 #ifdef AFSBIG_ENDIAN
@@ -86,14 +86,14 @@ RCSID("$Id: md4.c,v 1.1 2004/04/09 05:54:22 jaltman Exp $");
 #define X data
 
 void
-MD4_Init (struct md4 *m)
+MD4_Init(struct md4 *m)
 {
-  m->sz[0] = 0;
-  m->sz[1] = 0;
-  D = 0x10325476;
-  C = 0x98badcfe;
-  B = 0xefcdab89;
-  A = 0x67452301;
+    m->sz[0] = 0;
+    m->sz[1] = 0;
+    D = 0x10325476;
+    C = 0x98badcfe;
+    B = 0xefcdab89;
+    A = 0x67452301;
 }
 
 #define F(x,y,z) CRAYFIX((x & y) | (~x & z))
@@ -108,85 +108,85 @@ a = cshift(a + OP(b,c,d) + X[k] + i, s)
 #define DO3(a,b,c,d,k,s,i) DOIT(a,b,c,d,k,s,i,H)
 
 static inline void
-calc (struct md4 *m, afs_uint32 *data)
+calc(struct md4 *m, afs_uint32 * data)
 {
-  afs_uint32 AA, BB, CC, DD;
-
-  AA = A;
-  BB = B;
-  CC = C;
-  DD = D;
-
-  /* Round 1 */
-
-  DO1(A,B,C,D,0,3,0);
-  DO1(D,A,B,C,1,7,0);
-  DO1(C,D,A,B,2,11,0);
-  DO1(B,C,D,A,3,19,0);
-
-  DO1(A,B,C,D,4,3,0);
-  DO1(D,A,B,C,5,7,0);
-  DO1(C,D,A,B,6,11,0);
-  DO1(B,C,D,A,7,19,0);
-
-  DO1(A,B,C,D,8,3,0);
-  DO1(D,A,B,C,9,7,0);
-  DO1(C,D,A,B,10,11,0);
-  DO1(B,C,D,A,11,19,0);
-
-  DO1(A,B,C,D,12,3,0);
-  DO1(D,A,B,C,13,7,0);
-  DO1(C,D,A,B,14,11,0);
-  DO1(B,C,D,A,15,19,0);
-
-  /* Round 2 */
-
-  DO2(A,B,C,D,0,3,0x5A827999);
-  DO2(D,A,B,C,4,5,0x5A827999);
-  DO2(C,D,A,B,8,9,0x5A827999);
-  DO2(B,C,D,A,12,13,0x5A827999);
-
-  DO2(A,B,C,D,1,3,0x5A827999);
-  DO2(D,A,B,C,5,5,0x5A827999);
-  DO2(C,D,A,B,9,9,0x5A827999);
-  DO2(B,C,D,A,13,13,0x5A827999);
-
-  DO2(A,B,C,D,2,3,0x5A827999);
-  DO2(D,A,B,C,6,5,0x5A827999);
-  DO2(C,D,A,B,10,9,0x5A827999);
-  DO2(B,C,D,A,14,13,0x5A827999);
-
-  DO2(A,B,C,D,3,3,0x5A827999);
-  DO2(D,A,B,C,7,5,0x5A827999);
-  DO2(C,D,A,B,11,9,0x5A827999);
-  DO2(B,C,D,A,15,13,0x5A827999);
-
-  /* Round 3 */
-
-  DO3(A,B,C,D,0,3,0x6ED9EBA1);
-  DO3(D,A,B,C,8,9,0x6ED9EBA1);
-  DO3(C,D,A,B,4,11,0x6ED9EBA1);
-  DO3(B,C,D,A,12,15,0x6ED9EBA1);
-
-  DO3(A,B,C,D,2,3,0x6ED9EBA1);
-  DO3(D,A,B,C,10,9,0x6ED9EBA1);
-  DO3(C,D,A,B,6,11,0x6ED9EBA1);
-  DO3(B,C,D,A,14,15,0x6ED9EBA1);
-
-  DO3(A,B,C,D,1,3,0x6ED9EBA1);
-  DO3(D,A,B,C,9,9,0x6ED9EBA1);
-  DO3(C,D,A,B,5,11,0x6ED9EBA1);
-  DO3(B,C,D,A,13,15,0x6ED9EBA1);
-
-  DO3(A,B,C,D,3,3,0x6ED9EBA1);
-  DO3(D,A,B,C,11,9,0x6ED9EBA1);
-  DO3(C,D,A,B,7,11,0x6ED9EBA1);
-  DO3(B,C,D,A,15,15,0x6ED9EBA1);
-
-  A += AA;
-  B += BB;
-  C += CC;
-  D += DD;
+    afs_uint32 AA, BB, CC, DD;
+
+    AA = A;
+    BB = B;
+    CC = C;
+    DD = D;
+
+    /* Round 1 */
+
+    DO1(A, B, C, D, 0, 3, 0);
+    DO1(D, A, B, C, 1, 7, 0);
+    DO1(C, D, A, B, 2, 11, 0);
+    DO1(B, C, D, A, 3, 19, 0);
+
+    DO1(A, B, C, D, 4, 3, 0);
+    DO1(D, A, B, C, 5, 7, 0);
+    DO1(C, D, A, B, 6, 11, 0);
+    DO1(B, C, D, A, 7, 19, 0);
+
+    DO1(A, B, C, D, 8, 3, 0);
+    DO1(D, A, B, C, 9, 7, 0);
+    DO1(C, D, A, B, 10, 11, 0);
+    DO1(B, C, D, A, 11, 19, 0);
+
+    DO1(A, B, C, D, 12, 3, 0);
+    DO1(D, A, B, C, 13, 7, 0);
+    DO1(C, D, A, B, 14, 11, 0);
+    DO1(B, C, D, A, 15, 19, 0);
+
+    /* Round 2 */
+
+    DO2(A, B, C, D, 0, 3, 0x5A827999);
+    DO2(D, A, B, C, 4, 5, 0x5A827999);
+    DO2(C, D, A, B, 8, 9, 0x5A827999);
+    DO2(B, C, D, A, 12, 13, 0x5A827999);
+
+    DO2(A, B, C, D, 1, 3, 0x5A827999);
+    DO2(D, A, B, C, 5, 5, 0x5A827999);
+    DO2(C, D, A, B, 9, 9, 0x5A827999);
+    DO2(B, C, D, A, 13, 13, 0x5A827999);
+
+    DO2(A, B, C, D, 2, 3, 0x5A827999);
+    DO2(D, A, B, C, 6, 5, 0x5A827999);
+    DO2(C, D, A, B, 10, 9, 0x5A827999);
+    DO2(B, C, D, A, 14, 13, 0x5A827999);
+
+    DO2(A, B, C, D, 3, 3, 0x5A827999);
+    DO2(D, A, B, C, 7, 5, 0x5A827999);
+    DO2(C, D, A, B, 11, 9, 0x5A827999);
+    DO2(B, C, D, A, 15, 13, 0x5A827999);
+
+    /* Round 3 */
+
+    DO3(A, B, C, D, 0, 3, 0x6ED9EBA1);
+    DO3(D, A, B, C, 8, 9, 0x6ED9EBA1);
+    DO3(C, D, A, B, 4, 11, 0x6ED9EBA1);
+    DO3(B, C, D, A, 12, 15, 0x6ED9EBA1);
+
+    DO3(A, B, C, D, 2, 3, 0x6ED9EBA1);
+    DO3(D, A, B, C, 10, 9, 0x6ED9EBA1);
+    DO3(C, D, A, B, 6, 11, 0x6ED9EBA1);
+    DO3(B, C, D, A, 14, 15, 0x6ED9EBA1);
+
+    DO3(A, B, C, D, 1, 3, 0x6ED9EBA1);
+    DO3(D, A, B, C, 9, 9, 0x6ED9EBA1);
+    DO3(C, D, A, B, 5, 11, 0x6ED9EBA1);
+    DO3(B, C, D, A, 13, 15, 0x6ED9EBA1);
+
+    DO3(A, B, C, D, 3, 3, 0x6ED9EBA1);
+    DO3(D, A, B, C, 11, 9, 0x6ED9EBA1);
+    DO3(C, D, A, B, 7, 11, 0x6ED9EBA1);
+    DO3(B, C, D, A, 15, 15, 0x6ED9EBA1);
+
+    A += AA;
+    B += BB;
+    C += CC;
+    D += DD;
 }
 
 /*
@@ -195,26 +195,26 @@ calc (struct md4 *m, afs_uint32 *data)
 
 #if defined(WORDS_BIGENDIAN)
 static inline afs_uint32
-swap_afs_uint32 (afs_uint32 t)
+swap_afs_uint32(afs_uint32 t)
 {
-  afs_uint32 temp1, temp2;
-
-  temp1   = cshift(t, 16);
-  temp2   = temp1 >> 8;
-  temp1  &= 0x00ff00ff;
-  temp2  &= 0x00ff00ff;
-  temp1 <<= 8;
-  return temp1 | temp2;
+    afs_uint32 temp1, temp2;
+
+    temp1 = cshift(t, 16);
+    temp2 = temp1 >> 8;
+    temp1 &= 0x00ff00ff;
+    temp2 &= 0x00ff00ff;
+    temp1 <<= 8;
+    return temp1 | temp2;
 }
 #endif
 
-struct x32{
-  unsigned int a:32;
-  unsigned int b:32;
+struct x32 {
+    unsigned int a:32;
+    unsigned int b:32;
 };
 
 void
-MD4_Update (struct md4 *m, const void *v, size_t len)
+MD4_Update(struct md4 *m, const void *v, size_t len)
 {
     const unsigned char *p = v;
     size_t old_sz = m->sz[0];
@@ -223,25 +223,25 @@ MD4_Update (struct md4 *m, const void *v, size_t len)
     m->sz[0] += len * 8;
     if (m->sz[0] < old_sz)
        ++m->sz[1];
-    offset = (old_sz / 8)  % 64;
-    while(len > 0) {
+    offset = (old_sz / 8) % 64;
+    while (len > 0) {
        size_t l = min(len, 64 - offset);
        memcpy(m->save + offset, p, l);
        offset += l;
        p += l;
        len -= l;
-       if(offset == 64) {
+       if (offset == 64) {
 #if defined(WORDS_BIGENDIAN)
            int i;
            afs_uint32 current[16];
-           struct x32 *u = (struct x32*)m->save;
-           for(i = 0; i < 8; i++){
-               current[2*i+0] = swap_afs_uint32(u[i].a);
-               current[2*i+1] = swap_afs_uint32(u[i].b);
+           struct x32 *u = (struct x32 *)m->save;
+           for (i = 0; i < 8; i++) {
+               current[2 * i + 0] = swap_afs_uint32(u[i].a);
+               current[2 * i + 1] = swap_afs_uint32(u[i].b);
            }
            calc(m, current);
 #else
-           calc(m, (afs_uint32*)m->save);
+           calc(m, (afs_uint32 *) m->save);
 #endif
            offset = 0;
        }
@@ -249,41 +249,41 @@ MD4_Update (struct md4 *m, const void *v, size_t len)
 }
 
 void
-MD4_Final (void *res, struct md4 *m)
+MD4_Final(void *res, struct md4 *m)
 {
-  static unsigned char zeros[72];
-  unsigned offset = (m->sz[0] / 8) % 64;
-  unsigned int dstart = (120 - offset - 1) % 64 + 1;
-
-  *zeros = 0x80;
-  memset (zeros + 1, 0, sizeof(zeros) - 1);
-  zeros[dstart+0] = (m->sz[0] >> 0) & 0xff;
-  zeros[dstart+1] = (m->sz[0] >> 8) & 0xff;
-  zeros[dstart+2] = (m->sz[0] >> 16) & 0xff;
-  zeros[dstart+3] = (m->sz[0] >> 24) & 0xff;
-  zeros[dstart+4] = (m->sz[1] >> 0) & 0xff;
-  zeros[dstart+5] = (m->sz[1] >> 8) & 0xff;
-  zeros[dstart+6] = (m->sz[1] >> 16) & 0xff;
-  zeros[dstart+7] = (m->sz[1] >> 24) & 0xff;
-  MD4_Update (m, zeros, dstart + 8);
-  {
-      int i;
-      unsigned char *r = (unsigned char *)res;
-
-      for (i = 0; i < 4; ++i) {
-         r[4*i]   = m->counter[i] & 0xFF;
-         r[4*i+1] = (m->counter[i] >> 8) & 0xFF;
-         r[4*i+2] = (m->counter[i] >> 16) & 0xFF;
-         r[4*i+3] = (m->counter[i] >> 24) & 0xFF;
-      }
-  }
+    static unsigned char zeros[72];
+    unsigned offset = (m->sz[0] / 8) % 64;
+    unsigned int dstart = (120 - offset - 1) % 64 + 1;
+
+    *zeros = 0x80;
+    memset(zeros + 1, 0, sizeof(zeros) - 1);
+    zeros[dstart + 0] = (m->sz[0] >> 0) & 0xff;
+    zeros[dstart + 1] = (m->sz[0] >> 8) & 0xff;
+    zeros[dstart + 2] = (m->sz[0] >> 16) & 0xff;
+    zeros[dstart + 3] = (m->sz[0] >> 24) & 0xff;
+    zeros[dstart + 4] = (m->sz[1] >> 0) & 0xff;
+    zeros[dstart + 5] = (m->sz[1] >> 8) & 0xff;
+    zeros[dstart + 6] = (m->sz[1] >> 16) & 0xff;
+    zeros[dstart + 7] = (m->sz[1] >> 24) & 0xff;
+    MD4_Update(m, zeros, dstart + 8);
+    {
+       int i;
+       unsigned char *r = (unsigned char *)res;
+
+       for (i = 0; i < 4; ++i) {
+           r[4 * i] = m->counter[i] & 0xFF;
+           r[4 * i + 1] = (m->counter[i] >> 8) & 0xFF;
+           r[4 * i + 2] = (m->counter[i] >> 16) & 0xFF;
+           r[4 * i + 3] = (m->counter[i] >> 24) & 0xFF;
+       }
+    }
 #if 0
-  {
-    int i;
-    afs_uint32 *r = (afs_uint32 *)res;
+    {
+       int i;
+       afs_uint32 *r = (afs_uint32 *) res;
 
-    for (i = 0; i < 4; ++i)
-      r[i] = swap_afs_uint32 (m->counter[i]);
-  }
+       for (i = 0; i < 4; ++i)
+           r[i] = swap_afs_uint32(m->counter[i]);
+    }
 #endif
 }
index 4a519ecaf279b481ce65fa0218bb220c23ddaa51..5185f2aac16a2d37680a4ca4b4e625a5edebd927 100644 (file)
@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  */
 
-/* $Id: md4.h,v 1.1 2004/04/09 05:54:22 jaltman Exp $ */
+/* $Id: md4.h,v 1.1.2.1 2004/08/25 07:09:42 shadow Exp $ */
 
 #include <stdlib.h>
 #ifdef HAVE_SYS_TYPES_H
 #endif
 
 struct md4 {
-  unsigned int sz[2];
-  afs_uint32 counter[4];
-  unsigned char save[64];
+    unsigned int sz[2];
+    afs_uint32 counter[4];
+    unsigned char save[64];
 };
 
 typedef struct md4 MD4_CTX;
 
-void MD4_Init (struct md4 *m);
-void MD4_Update (struct md4 *m, const void *p, size_t len);
-void MD4_Final (void *res, struct md4 *m);
+void MD4_Init(struct md4 *m);
+void MD4_Update(struct md4 *m, const void *p, size_t len);
+void MD4_Final(void *res, struct md4 *m);
index af84b3a81516fcfa6127aeb0a7f54eab2bc66a61..6312a04630628b401e8f40f4a2ba4cdff0646137 100644 (file)
@@ -69,7 +69,7 @@
 #include "rxkad.h"
 #endif /* defined(UKERNEL) */
 
-RCSID("$Id: md5.c,v 1.1 2004/04/09 05:54:22 jaltman Exp $");
+RCSID("$Id: md5.c,v 1.1.2.1 2004/08/25 07:09:42 shadow Exp $");
 
 #undef WORDS_BIGENDIAN
 #ifdef AFSBIG_ENDIAN
@@ -86,14 +86,14 @@ RCSID("$Id: md5.c,v 1.1 2004/04/09 05:54:22 jaltman Exp $");
 #define X data
 
 void
-MD5_Init (struct md5 *m)
+MD5_Init(struct md5 *m)
 {
-  m->sz[0] = 0;
-  m->sz[1] = 0;
-  D = 0x10325476;
-  C = 0x98badcfe;
-  B = 0xefcdab89;
-  A = 0x67452301;
+    m->sz[0] = 0;
+    m->sz[1] = 0;
+    D = 0x10325476;
+    C = 0x98badcfe;
+    B = 0xefcdab89;
+    A = 0x67452301;
 }
 
 #define F(x,y,z) CRAYFIX((x & y) | (~x & z))
@@ -110,107 +110,107 @@ a = b + cshift(a + OP(b,c,d) + X[k] + (i), s)
 #define DO4(a,b,c,d,k,s,i) DOIT(a,b,c,d,k,s,i,I)
 
 static inline void
-calc (struct md5 *m, afs_uint32 *data)
+calc(struct md5 *m, afs_uint32 * data)
 {
-  afs_uint32 AA, BB, CC, DD;
-
-  AA = A;
-  BB = B;
-  CC = C;
-  DD = D;
-
-  /* Round 1 */
-
-  DO1(A,B,C,D,0,7,0xd76aa478);
-  DO1(D,A,B,C,1,12,0xe8c7b756);
-  DO1(C,D,A,B,2,17,0x242070db);
-  DO1(B,C,D,A,3,22,0xc1bdceee);
-
-  DO1(A,B,C,D,4,7,0xf57c0faf);
-  DO1(D,A,B,C,5,12,0x4787c62a);
-  DO1(C,D,A,B,6,17,0xa8304613);
-  DO1(B,C,D,A,7,22,0xfd469501);
-
-  DO1(A,B,C,D,8,7,0x698098d8);
-  DO1(D,A,B,C,9,12,0x8b44f7af);
-  DO1(C,D,A,B,10,17,0xffff5bb1);
-  DO1(B,C,D,A,11,22,0x895cd7be);
-
-  DO1(A,B,C,D,12,7,0x6b901122);
-  DO1(D,A,B,C,13,12,0xfd987193);
-  DO1(C,D,A,B,14,17,0xa679438e);
-  DO1(B,C,D,A,15,22,0x49b40821);
-
-  /* Round 2 */
-
-  DO2(A,B,C,D,1,5,0xf61e2562);
-  DO2(D,A,B,C,6,9,0xc040b340);
-  DO2(C,D,A,B,11,14,0x265e5a51);
-  DO2(B,C,D,A,0,20,0xe9b6c7aa);
-
-  DO2(A,B,C,D,5,5,0xd62f105d);
-  DO2(D,A,B,C,10,9,0x2441453);
-  DO2(C,D,A,B,15,14,0xd8a1e681);
-  DO2(B,C,D,A,4,20,0xe7d3fbc8);
-
-  DO2(A,B,C,D,9,5,0x21e1cde6);
-  DO2(D,A,B,C,14,9,0xc33707d6);
-  DO2(C,D,A,B,3,14,0xf4d50d87);
-  DO2(B,C,D,A,8,20,0x455a14ed);
-
-  DO2(A,B,C,D,13,5,0xa9e3e905);
-  DO2(D,A,B,C,2,9,0xfcefa3f8);
-  DO2(C,D,A,B,7,14,0x676f02d9);
-  DO2(B,C,D,A,12,20,0x8d2a4c8a);
-
-  /* Round 3 */
-
-  DO3(A,B,C,D,5,4,0xfffa3942);
-  DO3(D,A,B,C,8,11,0x8771f681);
-  DO3(C,D,A,B,11,16,0x6d9d6122);
-  DO3(B,C,D,A,14,23,0xfde5380c);
-
-  DO3(A,B,C,D,1,4,0xa4beea44);
-  DO3(D,A,B,C,4,11,0x4bdecfa9);
-  DO3(C,D,A,B,7,16,0xf6bb4b60);
-  DO3(B,C,D,A,10,23,0xbebfbc70);
-
-  DO3(A,B,C,D,13,4,0x289b7ec6);
-  DO3(D,A,B,C,0,11,0xeaa127fa);
-  DO3(C,D,A,B,3,16,0xd4ef3085);
-  DO3(B,C,D,A,6,23,0x4881d05);
-
-  DO3(A,B,C,D,9,4,0xd9d4d039);
-  DO3(D,A,B,C,12,11,0xe6db99e5);
-  DO3(C,D,A,B,15,16,0x1fa27cf8);
-  DO3(B,C,D,A,2,23,0xc4ac5665);
-
-  /* Round 4 */
-
-  DO4(A,B,C,D,0,6,0xf4292244);
-  DO4(D,A,B,C,7,10,0x432aff97);
-  DO4(C,D,A,B,14,15,0xab9423a7);
-  DO4(B,C,D,A,5,21,0xfc93a039);
-
-  DO4(A,B,C,D,12,6,0x655b59c3);
-  DO4(D,A,B,C,3,10,0x8f0ccc92);
-  DO4(C,D,A,B,10,15,0xffeff47d);
-  DO4(B,C,D,A,1,21,0x85845dd1);
-
-  DO4(A,B,C,D,8,6,0x6fa87e4f);
-  DO4(D,A,B,C,15,10,0xfe2ce6e0);
-  DO4(C,D,A,B,6,15,0xa3014314);
-  DO4(B,C,D,A,13,21,0x4e0811a1);
-
-  DO4(A,B,C,D,4,6,0xf7537e82);
-  DO4(D,A,B,C,11,10,0xbd3af235);
-  DO4(C,D,A,B,2,15,0x2ad7d2bb);
-  DO4(B,C,D,A,9,21,0xeb86d391);
-
-  A += AA;
-  B += BB;
-  C += CC;
-  D += DD;
+    afs_uint32 AA, BB, CC, DD;
+
+    AA = A;
+    BB = B;
+    CC = C;
+    DD = D;
+
+    /* Round 1 */
+
+    DO1(A, B, C, D, 0, 7, 0xd76aa478);
+    DO1(D, A, B, C, 1, 12, 0xe8c7b756);
+    DO1(C, D, A, B, 2, 17, 0x242070db);
+    DO1(B, C, D, A, 3, 22, 0xc1bdceee);
+
+    DO1(A, B, C, D, 4, 7, 0xf57c0faf);
+    DO1(D, A, B, C, 5, 12, 0x4787c62a);
+    DO1(C, D, A, B, 6, 17, 0xa8304613);
+    DO1(B, C, D, A, 7, 22, 0xfd469501);
+
+    DO1(A, B, C, D, 8, 7, 0x698098d8);
+    DO1(D, A, B, C, 9, 12, 0x8b44f7af);
+    DO1(C, D, A, B, 10, 17, 0xffff5bb1);
+    DO1(B, C, D, A, 11, 22, 0x895cd7be);
+
+    DO1(A, B, C, D, 12, 7, 0x6b901122);
+    DO1(D, A, B, C, 13, 12, 0xfd987193);
+    DO1(C, D, A, B, 14, 17, 0xa679438e);
+    DO1(B, C, D, A, 15, 22, 0x49b40821);
+
+    /* Round 2 */
+
+    DO2(A, B, C, D, 1, 5, 0xf61e2562);
+    DO2(D, A, B, C, 6, 9, 0xc040b340);
+    DO2(C, D, A, B, 11, 14, 0x265e5a51);
+    DO2(B, C, D, A, 0, 20, 0xe9b6c7aa);
+
+    DO2(A, B, C, D, 5, 5, 0xd62f105d);
+    DO2(D, A, B, C, 10, 9, 0x2441453);
+    DO2(C, D, A, B, 15, 14, 0xd8a1e681);
+    DO2(B, C, D, A, 4, 20, 0xe7d3fbc8);
+
+    DO2(A, B, C, D, 9, 5, 0x21e1cde6);
+    DO2(D, A, B, C, 14, 9, 0xc33707d6);
+    DO2(C, D, A, B, 3, 14, 0xf4d50d87);
+    DO2(B, C, D, A, 8, 20, 0x455a14ed);
+
+    DO2(A, B, C, D, 13, 5, 0xa9e3e905);
+    DO2(D, A, B, C, 2, 9, 0xfcefa3f8);
+    DO2(C, D, A, B, 7, 14, 0x676f02d9);
+    DO2(B, C, D, A, 12, 20, 0x8d2a4c8a);
+
+    /* Round 3 */
+
+    DO3(A, B, C, D, 5, 4, 0xfffa3942);
+    DO3(D, A, B, C, 8, 11, 0x8771f681);
+    DO3(C, D, A, B, 11, 16, 0x6d9d6122);
+    DO3(B, C, D, A, 14, 23, 0xfde5380c);
+
+    DO3(A, B, C, D, 1, 4, 0xa4beea44);
+    DO3(D, A, B, C, 4, 11, 0x4bdecfa9);
+    DO3(C, D, A, B, 7, 16, 0xf6bb4b60);
+    DO3(B, C, D, A, 10, 23, 0xbebfbc70);
+
+    DO3(A, B, C, D, 13, 4, 0x289b7ec6);
+    DO3(D, A, B, C, 0, 11, 0xeaa127fa);
+    DO3(C, D, A, B, 3, 16, 0xd4ef3085);
+    DO3(B, C, D, A, 6, 23, 0x4881d05);
+
+    DO3(A, B, C, D, 9, 4, 0xd9d4d039);
+    DO3(D, A, B, C, 12, 11, 0xe6db99e5);
+    DO3(C, D, A, B, 15, 16, 0x1fa27cf8);
+    DO3(B, C, D, A, 2, 23, 0xc4ac5665);
+
+    /* Round 4 */
+
+    DO4(A, B, C, D, 0, 6, 0xf4292244);
+    DO4(D, A, B, C, 7, 10, 0x432aff97);
+    DO4(C, D, A, B, 14, 15, 0xab9423a7);
+    DO4(B, C, D, A, 5, 21, 0xfc93a039);
+
+    DO4(A, B, C, D, 12, 6, 0x655b59c3);
+    DO4(D, A, B, C, 3, 10, 0x8f0ccc92);
+    DO4(C, D, A, B, 10, 15, 0xffeff47d);
+    DO4(B, C, D, A, 1, 21, 0x85845dd1);
+
+    DO4(A, B, C, D, 8, 6, 0x6fa87e4f);
+    DO4(D, A, B, C, 15, 10, 0xfe2ce6e0);
+    DO4(C, D, A, B, 6, 15, 0xa3014314);
+    DO4(B, C, D, A, 13, 21, 0x4e0811a1);
+
+    DO4(A, B, C, D, 4, 6, 0xf7537e82);
+    DO4(D, A, B, C, 11, 10, 0xbd3af235);
+    DO4(C, D, A, B, 2, 15, 0x2ad7d2bb);
+    DO4(B, C, D, A, 9, 21, 0xeb86d391);
+
+    A += AA;
+    B += BB;
+    C += CC;
+    D += DD;
 }
 
 /*
@@ -219,95 +219,95 @@ calc (struct md5 *m, afs_uint32 *data)
 
 #if defined(WORDS_BIGENDIAN)
 static inline afs_uint32
-swap_afs_uint32 (afs_uint32 t)
+swap_afs_uint32(afs_uint32 t)
 {
-  afs_uint32 temp1, temp2;
-
-  temp1   = cshift(t, 16);
-  temp2   = temp1 >> 8;
-  temp1  &= 0x00ff00ff;
-  temp2  &= 0x00ff00ff;
-  temp1 <<= 8;
-  return temp1 | temp2;
+    afs_uint32 temp1, temp2;
+
+    temp1 = cshift(t, 16);
+    temp2 = temp1 >> 8;
+    temp1 &= 0x00ff00ff;
+    temp2 &= 0x00ff00ff;
+    temp1 <<= 8;
+    return temp1 | temp2;
 }
 #endif
 
-struct x32{
-  unsigned int a:32;
-  unsigned int b:32;
+struct x32 {
+    unsigned int a:32;
+    unsigned int b:32;
 };
 
 void
-MD5_Update (struct md5 *m, const void *v, size_t len)
+MD5_Update(struct md5 *m, const void *v, size_t len)
 {
-  const unsigned char *p = v;
-  size_t old_sz = m->sz[0];
-  size_t offset;
-
-  m->sz[0] += len * 8;
-  if (m->sz[0] < old_sz)
-      ++m->sz[1];
-  offset = (old_sz / 8)  % 64;
-  while(len > 0){
-    size_t l = min(len, 64 - offset);
-    memcpy(m->save + offset, p, l);
-    offset += l;
-    p += l;
-    len -= l;
-    if(offset == 64){
+    const unsigned char *p = v;
+    size_t old_sz = m->sz[0];
+    size_t offset;
+
+    m->sz[0] += len * 8;
+    if (m->sz[0] < old_sz)
+       ++m->sz[1];
+    offset = (old_sz / 8) % 64;
+    while (len > 0) {
+       size_t l = min(len, 64 - offset);
+       memcpy(m->save + offset, p, l);
+       offset += l;
+       p += l;
+       len -= l;
+       if (offset == 64) {
 #if defined(WORDS_BIGENDIAN)
-      int i;
-      afs_uint32 current[16];
-      struct x32 *u = (struct x32*)m->save;
-      for(i = 0; i < 8; i++){
-       current[2*i+0] = swap_afs_uint32(u[i].a);
-       current[2*i+1] = swap_afs_uint32(u[i].b);
-      }
-      calc(m, current);
+           int i;
+           afs_uint32 current[16];
+           struct x32 *u = (struct x32 *)m->save;
+           for (i = 0; i < 8; i++) {
+               current[2 * i + 0] = swap_afs_uint32(u[i].a);
+               current[2 * i + 1] = swap_afs_uint32(u[i].b);
+           }
+           calc(m, current);
 #else
-      calc(m, (afs_uint32*)m->save);
+           calc(m, (afs_uint32 *) m->save);
 #endif
-      offset = 0;
+           offset = 0;
+       }
     }
-  }
 }
 
 void
-MD5_Final (void *res, struct md5 *m)
+MD5_Final(void *res, struct md5 *m)
 {
-  static unsigned char zeros[72];
-  unsigned offset = (m->sz[0] / 8) % 64;
-  unsigned int dstart = (120 - offset - 1) % 64 + 1;
-
-  *zeros = 0x80;
-  memset (zeros + 1, 0, sizeof(zeros) - 1);
-  zeros[dstart+0] = (m->sz[0] >> 0) & 0xff;
-  zeros[dstart+1] = (m->sz[0] >> 8) & 0xff;
-  zeros[dstart+2] = (m->sz[0] >> 16) & 0xff;
-  zeros[dstart+3] = (m->sz[0] >> 24) & 0xff;
-  zeros[dstart+4] = (m->sz[1] >> 0) & 0xff;
-  zeros[dstart+5] = (m->sz[1] >> 8) & 0xff;
-  zeros[dstart+6] = (m->sz[1] >> 16) & 0xff;
-  zeros[dstart+7] = (m->sz[1] >> 24) & 0xff;
-  MD5_Update (m, zeros, dstart + 8);
-  {
-      int i;
-      unsigned char *r = (unsigned char *)res;
-
-      for (i = 0; i < 4; ++i) {
-         r[4*i]   = m->counter[i] & 0xFF;
-         r[4*i+1] = (m->counter[i] >> 8) & 0xFF;
-         r[4*i+2] = (m->counter[i] >> 16) & 0xFF;
-         r[4*i+3] = (m->counter[i] >> 24) & 0xFF;
-      }
-  }
+    static unsigned char zeros[72];
+    unsigned offset = (m->sz[0] / 8) % 64;
+    unsigned int dstart = (120 - offset - 1) % 64 + 1;
+
+    *zeros = 0x80;
+    memset(zeros + 1, 0, sizeof(zeros) - 1);
+    zeros[dstart + 0] = (m->sz[0] >> 0) & 0xff;
+    zeros[dstart + 1] = (m->sz[0] >> 8) & 0xff;
+    zeros[dstart + 2] = (m->sz[0] >> 16) & 0xff;
+    zeros[dstart + 3] = (m->sz[0] >> 24) & 0xff;
+    zeros[dstart + 4] = (m->sz[1] >> 0) & 0xff;
+    zeros[dstart + 5] = (m->sz[1] >> 8) & 0xff;
+    zeros[dstart + 6] = (m->sz[1] >> 16) & 0xff;
+    zeros[dstart + 7] = (m->sz[1] >> 24) & 0xff;
+    MD5_Update(m, zeros, dstart + 8);
+    {
+       int i;
+       unsigned char *r = (unsigned char *)res;
+
+       for (i = 0; i < 4; ++i) {
+           r[4 * i] = m->counter[i] & 0xFF;
+           r[4 * i + 1] = (m->counter[i] >> 8) & 0xFF;
+           r[4 * i + 2] = (m->counter[i] >> 16) & 0xFF;
+           r[4 * i + 3] = (m->counter[i] >> 24) & 0xFF;
+       }
+    }
 #if 0
-  {
-    int i;
-    afs_uint32 *r = (afs_uint32 *)res;
+    {
+       int i;
+       afs_uint32 *r = (afs_uint32 *) res;
 
-    for (i = 0; i < 4; ++i)
-      r[i] = swap_afs_uint32 (m->counter[i]);
-  }
+       for (i = 0; i < 4; ++i)
+           r[i] = swap_afs_uint32(m->counter[i]);
+    }
 #endif
 }
index 43fbf9c987e5b1cb3afb0f29bdf72ec57118e860..f6a0fcac873cf21f2c9c2fdf6ce1bddbb87ef6ef 100644 (file)
@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  */
 
-/* $Id: md5.h,v 1.1 2004/04/09 05:54:22 jaltman Exp $ */
+/* $Id: md5.h,v 1.1.2.1 2004/08/25 07:09:42 shadow Exp $ */
 
 #include <stdlib.h>
 #ifdef HAVE_SYS_TYPES_H
 #endif
 
 struct md5 {
-  unsigned int sz[2];
-  afs_uint32 counter[4];
-  unsigned char save[64];
+    unsigned int sz[2];
+    afs_uint32 counter[4];
+    unsigned char save[64];
 };
 
 typedef struct md5 MD5_CTX;
 
-void MD5_Init (struct md5 *m);
-void MD5_Update (struct md5 *m, const void *p, size_t len);
-void MD5_Final (void *res, struct md5 *m); /* afs_uint32 res[4] */
+void MD5_Init(struct md5 *m);
+void MD5_Update(struct md5 *m, const void *p, size_t len);
+void MD5_Final(void *res, struct md5 *m);      /* afs_uint32 res[4] */
index 8e7204318f0a9ce08d26d2e437c6448050c7da8a..83a4f53fb51e7769f0ad0493173d1a5bbe5ce1fc 100644 (file)
                /* no ticket good for longer than 30 days */
 #define MAXKTCTICKETLIFETIME (30*24*3600)
 #define MINKTCTICKETLEN              32
-#define        MAXKTCTICKETLEN       12000 /* was 344 */
+#ifdef AFS_AIX_ENV
+#define MAXKTCTICKETLEN 344 /* XXX why must this be small? */
+#else
+#define        MAXKTCTICKETLEN       12000     /* was 344 */
+#endif
+
 #define        MAXKTCNAMELEN         64        /* name & inst should be 256 */
 #define MAXKTCREALMLEN       64        /* should be 256 */
 #define KTC_TIME_UNCERTAINTY (15*60)   /* max skew bet. machines' clocks */
 
 #define MAXRANDOMNAMELEN 16    /* length of random generated 
-                             * usernames used by afslog for high 
-                             * security must be < MAXKTCNAMELEN && < MAXSMBNAMELEN */
-#define MAXSMBNAMELEN    256 /* max length of an SMB name */
+                                * usernames used by afslog for high 
+                                * security must be < MAXKTCNAMELEN && < MAXSMBNAMELEN */
+#define MAXSMBNAMELEN    256   /* max length of an SMB name */
 
 #define LOGON_OPTION_INTEGRATED 1
 #define LOGON_OPTION_HIGHSECURITY 2
@@ -124,8 +129,8 @@ RXKAD_STATS_DECLSPEC struct rxkad_stats rxkad_stats;
 #include <pthread.h>
 #include <assert.h>
 extern pthread_mutex_t rxkad_stats_mutex;
-#define LOCK_RXKAD_STATS assert(pthread_mutex_lock(&rxkad_stats_mutex)==0);
-#define UNLOCK_RXKAD_STATS assert(pthread_mutex_unlock(&rxkad_stats_mutex)==0);
+#define LOCK_RXKAD_STATS assert(pthread_mutex_lock(&rxkad_stats_mutex)==0)
+#define UNLOCK_RXKAD_STATS assert(pthread_mutex_unlock(&rxkad_stats_mutex)==0)
 #else
 #define LOCK_RXKAD_STATS
 #define UNLOCK_RXKAD_STATS
index 13e70ec4385355a1ed6435fe25f87701aa58f0d8..c7289e0593e73ca84e4711280f9883a1d3af2b30 100644 (file)
@@ -19,7 +19,7 @@
 #endif
 
 RCSID
-    ("$Header: /cvs/openafs/src/rxkad/rxkad_client.c,v 1.18 2004/04/19 05:43:58 kolya Exp $");
+    ("$Header: /cvs/openafs/src/rxkad/rxkad_client.c,v 1.18.2.1 2004/08/25 07:09:42 shadow Exp $");
 
 #ifdef KERNEL
 #include "afs/stds.h"
@@ -101,8 +101,8 @@ static struct rx_securityOps rxkad_client_ops = {
  */
 #include <assert.h>
 pthread_mutex_t rxkad_client_uid_mutex;
-#define LOCK_CUID assert(pthread_mutex_lock(&rxkad_client_uid_mutex)==0);
-#define UNLOCK_CUID assert(pthread_mutex_unlock(&rxkad_client_uid_mutex)==0);
+#define LOCK_CUID assert(pthread_mutex_lock(&rxkad_client_uid_mutex)==0)
+#define UNLOCK_CUID assert(pthread_mutex_unlock(&rxkad_client_uid_mutex)==0)
 #else
 #define LOCK_CUID
 #define UNLOCK_CUID
@@ -119,7 +119,8 @@ rxkad_AllocCID(struct rx_securityClass *aobj, struct rx_connection *aconn)
     struct rxkad_cidgen tgen;
     static afs_int32 counter = 0;      /* not used anymore */
 
-    LOCK_CUID if (Cuid[0] == 0) {
+    LOCK_CUID;
+    if (Cuid[0] == 0) {
        afs_uint32 xor[2];
        tgen.ipAddr = rxi_getaddr();    /* comes back in net order */
        clock_GetTime(&tgen.time);      /* changes time1 and time2 */
@@ -154,12 +155,14 @@ rxkad_AllocCID(struct rx_securityClass *aobj, struct rx_connection *aconn)
     }
 
     if (!aconn) {
-       UNLOCK_CUID return 0;
+       UNLOCK_CUID;
+       return 0;
     }
     aconn->epoch = Cuid[0];
     aconn->cid = Cuid[1];
     Cuid[1] += 1 << RX_CIDSHIFT;
-    UNLOCK_CUID return 0;
+    UNLOCK_CUID;
+    return 0;
 }
 
 /* Allocate a new client security object.  Called with the encryption level,
@@ -204,8 +207,10 @@ rxkad_NewClientSecurityObject(rxkad_level level,
     }
     memcpy(tcp->ticket, ticket, ticketLen);
 
-    LOCK_RXKAD_STATS rxkad_stats_clientObjects++;
-    UNLOCK_RXKAD_STATS return tsc;
+    LOCK_RXKAD_STATS;
+    rxkad_stats_clientObjects++;
+    UNLOCK_RXKAD_STATS;
+    return tsc;
 }
 
 /* client: respond to a challenge packet */
@@ -250,8 +255,10 @@ rxkad_GetResponse(struct rx_securityClass *aobj, struct rx_connection *aconn,
 
     if (level > tcp->level)
        return RXKADLEVELFAIL;
-    LOCK_RXKAD_STATS rxkad_stats.challenges[rxkad_LevelIndex(tcp->level)]++;
-    UNLOCK_RXKAD_STATS if (v2) {
+    LOCK_RXKAD_STATS;
+    rxkad_stats.challenges[rxkad_LevelIndex(tcp->level)]++;
+    UNLOCK_RXKAD_STATS;
+    if (v2) {
        int i;
        afs_uint32 xor[2];
        memset((void *)&r_v2, 0, sizeof(r_v2));
@@ -307,6 +314,8 @@ rxkad_GetResponse(struct rx_securityClass *aobj, struct rx_connection *aconn,
 void
 rxkad_ResetState(void)
 {
-    LOCK_CUID Cuid[0] = 0;
+    LOCK_CUID;
+    Cuid[0] = 0;
     rxkad_EpochWasSet = 0;
-UNLOCK_CUID}
+    UNLOCK_CUID;
+}
index 37441430e9caf455288c89f6a2a78c77bf6ea255..ec77f9c57129ae8eb2f655074fe8d149c60dde9a 100644 (file)
@@ -23,7 +23,7 @@
 #define INCLUDE_RXKAD_PRIVATE_DECLS
 
 RCSID
-    ("$Header: /cvs/openafs/src/rxkad/rxkad_common.c,v 1.20 2004/06/23 14:27:44 shadow Exp $");
+    ("$Header: /cvs/openafs/src/rxkad/rxkad_common.c,v 1.20.2.1 2004/08/25 07:09:42 shadow Exp $");
 
 #ifdef KERNEL
 #ifndef UKERNEL
@@ -83,7 +83,7 @@ RCSID
 #endif
 /* variable initialization for the benefit of darwin compiler; if it causes
    problems elsewhere, conditionalize for darwin or fc_test compile breaks */
-struct rxkad_stats rxkad_stats = {0};
+struct rxkad_stats rxkad_stats = { 0 };
 
 /* static prototypes */
 static afs_int32 ComputeSum(struct rx_packet *apacket,
@@ -207,8 +207,10 @@ FreeObject(struct rx_securityClass *aobj)
     } else {
        return RXKADINCONSISTENCY;
     }                          /* unknown type */
-    LOCK_RXKAD_STATS rxkad_stats.destroyObject++;
-    UNLOCK_RXKAD_STATS return 0;
+    LOCK_RXKAD_STATS;
+    rxkad_stats.destroyObject++;
+    UNLOCK_RXKAD_STATS;
+    return 0;
 }
 
 /* rxkad_Close - called by rx with the security class object as a parameter
@@ -249,9 +251,10 @@ rxkad_NewConnection(struct rx_securityClass *aobj,
        rxkad_SetLevel(aconn, tcp->level);      /* set header and trailer sizes */
        rxkad_AllocCID(aobj, aconn);    /* CHANGES cid AND epoch!!!! */
        rxkad_DeriveXORInfo(aconn, tcp->keysched, tcp->ivec, tccp->preSeq);
-       LOCK_RXKAD_STATS rxkad_stats.
-           connections[rxkad_LevelIndex(tcp->level)]++;
-    UNLOCK_RXKAD_STATS}
+       LOCK_RXKAD_STATS;
+       rxkad_stats.connections[rxkad_LevelIndex(tcp->level)]++;
+       UNLOCK_RXKAD_STATS;
+    }
 
     aobj->refCount++;          /* attached connection */
     return 0;
@@ -269,17 +272,21 @@ rxkad_DestroyConnection(struct rx_securityClass *aobj,
        sconn = (struct rxkad_sconn *)aconn->securityData;
        if (sconn) {
            aconn->securityData = 0;
-           LOCK_RXKAD_STATS if (sconn->authenticated)
-                 rxkad_stats.destroyConn[rxkad_LevelIndex(sconn->level)]++;
+           LOCK_RXKAD_STATS;
+           if (sconn->authenticated)
+               rxkad_stats.destroyConn[rxkad_LevelIndex(sconn->level)]++;
            else
                rxkad_stats.destroyUnauth++;
-           UNLOCK_RXKAD_STATS rock = sconn->rock;
+           UNLOCK_RXKAD_STATS;
+           rock = sconn->rock;
            if (rock)
                rxi_Free(rock, sizeof(struct rxkad_serverinfo));
            rxi_Free(sconn, sizeof(struct rxkad_sconn));
        } else {
-           LOCK_RXKAD_STATS rxkad_stats.destroyUnused++;
-       UNLOCK_RXKAD_STATS}
+           LOCK_RXKAD_STATS;
+           rxkad_stats.destroyUnused++;
+           UNLOCK_RXKAD_STATS;
+       }
     } else {                   /* client */
        struct rxkad_cconn *cconn;
        struct rxkad_cprivate *tcp;
@@ -291,8 +298,10 @@ rxkad_DestroyConnection(struct rx_securityClass *aobj,
            aconn->securityData = 0;
            rxi_Free(cconn, sizeof(struct rxkad_cconn));
        }
-       LOCK_RXKAD_STATS rxkad_stats.destroyClient++;
-    UNLOCK_RXKAD_STATS}
+       LOCK_RXKAD_STATS;
+       rxkad_stats.destroyClient++;
+       UNLOCK_RXKAD_STATS;
+    }
     aobj->refCount--;          /* decrement connection counter */
     if (aobj->refCount <= 0) {
        afs_int32 code;
@@ -332,15 +341,18 @@ rxkad_CheckPacket(struct rx_securityClass *aobj, struct rx_call *acall,
        if (sconn && sconn->authenticated
            && (osi_Time() < sconn->expirationTime)) {
            level = sconn->level;
-           LOCK_RXKAD_STATS rxkad_stats.
-               checkPackets[rxkad_StatIndex(rxkad_server, level)]++;
-           UNLOCK_RXKAD_STATS sconn->stats.packetsReceived++;
+           LOCK_RXKAD_STATS;
+           rxkad_stats.checkPackets[rxkad_StatIndex(rxkad_server, level)]++;
+           UNLOCK_RXKAD_STATS;
+           sconn->stats.packetsReceived++;
            sconn->stats.bytesReceived += len;
            schedule = (fc_KeySchedule *) sconn->keysched;
            ivec = (fc_InitializationVector *) sconn->ivec;
        } else {
-           LOCK_RXKAD_STATS rxkad_stats.expired++;
-           UNLOCK_RXKAD_STATS return RXKADEXPIRED;
+           LOCK_RXKAD_STATS;
+           rxkad_stats.expired++;
+           UNLOCK_RXKAD_STATS;
+           return RXKADEXPIRED;
        }
        preSeq = sconn->preSeq;
     } else {                   /* client connection */
@@ -354,9 +366,10 @@ rxkad_CheckPacket(struct rx_securityClass *aobj, struct rx_call *acall,
        if (!(tcp->type & rxkad_client))
            return RXKADINCONSISTENCY;
        level = tcp->level;
-       LOCK_RXKAD_STATS rxkad_stats.
-           checkPackets[rxkad_StatIndex(rxkad_client, level)]++;
-       UNLOCK_RXKAD_STATS cconn->stats.packetsReceived++;
+       LOCK_RXKAD_STATS;
+       rxkad_stats.checkPackets[rxkad_StatIndex(rxkad_client, level)]++;
+       UNLOCK_RXKAD_STATS;
+       cconn->stats.packetsReceived++;
        cconn->stats.bytesReceived += len;
        preSeq = cconn->preSeq;
        schedule = (fc_KeySchedule *) tcp->keysched;
@@ -421,15 +434,19 @@ rxkad_PreparePacket(struct rx_securityClass *aobj, struct rx_call *acall,
        if (sconn && sconn->authenticated
            && (osi_Time() < sconn->expirationTime)) {
            level = sconn->level;
-           LOCK_RXKAD_STATS rxkad_stats.
+           LOCK_RXKAD_STATS;
+           rxkad_stats.
                preparePackets[rxkad_StatIndex(rxkad_server, level)]++;
-           UNLOCK_RXKAD_STATS sconn->stats.packetsSent++;
+           UNLOCK_RXKAD_STATS;
+           sconn->stats.packetsSent++;
            sconn->stats.bytesSent += len;
            schedule = (fc_KeySchedule *) sconn->keysched;
            ivec = (fc_InitializationVector *) sconn->ivec;
        } else {
-           LOCK_RXKAD_STATS rxkad_stats.expired++;     /* this is a pretty unlikely path... */
-           UNLOCK_RXKAD_STATS return RXKADEXPIRED;
+           LOCK_RXKAD_STATS;
+           rxkad_stats.expired++;      /* this is a pretty unlikely path... */
+           UNLOCK_RXKAD_STATS;
+           return RXKADEXPIRED;
        }
        preSeq = sconn->preSeq;
     } else {                   /* client connection */
@@ -440,9 +457,10 @@ rxkad_PreparePacket(struct rx_securityClass *aobj, struct rx_call *acall,
        if (!(tcp->type & rxkad_client))
            return RXKADINCONSISTENCY;
        level = tcp->level;
-       LOCK_RXKAD_STATS rxkad_stats.
-           preparePackets[rxkad_StatIndex(rxkad_client, level)]++;
-       UNLOCK_RXKAD_STATS cconn->stats.packetsSent++;
+       LOCK_RXKAD_STATS;
+       rxkad_stats.preparePackets[rxkad_StatIndex(rxkad_client, level)]++;
+       UNLOCK_RXKAD_STATS;
+       cconn->stats.packetsSent++;
        cconn->stats.bytesSent += len;
        preSeq = cconn->preSeq;
        schedule = (fc_KeySchedule *) tcp->keysched;
@@ -530,23 +548,23 @@ rxkad_GetStats(struct rx_securityClass *aobj, struct rx_connection *aconn,
 rxkad_level
 rxkad_StringToLevel(char *name)
 {
-  if (strcmp(name, "clear") == 0)
-    return rxkad_clear;
-  if (strcmp(name, "auth") == 0)
-    return rxkad_auth;
-  if (strcmp(name, "crypt") == 0)
-    return rxkad_crypt;
-  return -1;
+    if (strcmp(name, "clear") == 0)
+       return rxkad_clear;
+    if (strcmp(name, "auth") == 0)
+       return rxkad_auth;
+    if (strcmp(name, "crypt") == 0)
+       return rxkad_crypt;
+    return -1;
 }
 
 char *
 rxkad_LevelToString(rxkad_level level)
 {
-  if (level == rxkad_clear) 
-      return "clear";
-  if (level == rxkad_auth) 
-      return "auth";
-  if (level == rxkad_crypt) 
-      return "crypt";
-  return "unknown";
+    if (level == rxkad_clear)
+       return "clear";
+    if (level == rxkad_auth)
+       return "auth";
+    if (level == rxkad_crypt)
+       return "crypt";
+    return "unknown";
 }
index c689ea2d8c820ddc556e725844175252dfea83e9..adffe54faa80e553092da9814b8413fff4978616 100644 (file)
@@ -87,19 +87,25 @@ extern struct rx_securityClass *rxkad_NewServerSecurityObject(rxkad_level
                                                              level, char
                                                              *get_key_rock,
                                                              int (*get_key)
-                                                               (char
-                                                                *get_key_rock,
-                                                                int kvno,
-                                                                struct
-                                                                ktc_encryptionKey
-                                                                * serverKey),
+
+
+                                                              
+                                                             (char
+                                                              *get_key_rock,
+                                                              int kvno,
+                                                              struct
+                                                              ktc_encryptionKey
+                                                              * serverKey),
                                                              int (*user_ok)
-                                                               (char *name,
-                                                                char
-                                                                *instance,
-                                                                char *cell,
-                                                                afs_int32
-                                                                kvno));
+
+
+                                                              
+                                                             (char *name,
+                                                              char
+                                                              *instance,
+                                                              char *cell,
+                                                              afs_int32
+                                                              kvno));
 extern int rxkad_CheckAuthentication(struct rx_securityClass *aobj,
                                     struct rx_connection *aconn);
 extern int rxkad_CreateChallenge(struct rx_securityClass *aobj,
index 011722f98805037cb907c405b553f84a03a77049..34fc484d773d64c45896da59985ab26eead3c2b4 100644 (file)
@@ -15,7 +15,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/rxkad/rxkad_server.c,v 1.14 2003/11/29 20:23:35 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/rxkad/rxkad_server.c,v 1.14.2.1 2004/08/25 07:09:42 shadow Exp $");
 
 #include <afs/stds.h>
 #include <sys/types.h>
@@ -59,9 +59,9 @@ static struct rx_securityOps rxkad_server_ops = {
     rxkad_CheckPacket,         /* check data packet */
     rxkad_DestroyConnection,
     rxkad_GetStats,
-       0, /* spare 1 */
-       0, /* spare 2 */
-       0, /* spare 3 */
+    0,                         /* spare 1 */
+    0,                         /* spare 2 */
+    0,                         /* spare 3 */
 };
 extern afs_uint32 rx_MyMaxSendSize;
 
@@ -79,8 +79,8 @@ static fc_KeySchedule random_int32_schedule;
 
 #include <assert.h>
 pthread_mutex_t rxkad_random_mutex;
-#define LOCK_RM assert(pthread_mutex_lock(&rxkad_random_mutex)==0);
-#define UNLOCK_RM assert(pthread_mutex_unlock(&rxkad_random_mutex)==0);
+#define LOCK_RM assert(pthread_mutex_lock(&rxkad_random_mutex)==0)
+#define UNLOCK_RM assert(pthread_mutex_unlock(&rxkad_random_mutex)==0)
 #else
 #define LOCK_RM
 #define UNLOCK_RM
@@ -92,8 +92,10 @@ init_random_int32(void)
     struct timeval key;
 
     gettimeofday(&key, NULL);
-    LOCK_RM fc_keysched(&key, random_int32_schedule);
-UNLOCK_RM}
+    LOCK_RM;
+    fc_keysched(&key, random_int32_schedule);
+    UNLOCK_RM;
+}
 
 static afs_int32
 get_random_int32(void)
@@ -101,9 +103,11 @@ get_random_int32(void)
     static struct timeval seed;
     afs_int32 rc;
 
-    LOCK_RM fc_ecb_encrypt(&seed, &seed, random_int32_schedule, ENCRYPT);
+    LOCK_RM;
+    fc_ecb_encrypt(&seed, &seed, random_int32_schedule, ENCRYPT);
     rc = seed.tv_sec;
-    UNLOCK_RM return rc;
+    UNLOCK_RM;
+    return rc;
 }
 
 /* Called with four parameters.  The first is the level of encryption, as
@@ -156,8 +160,10 @@ rxkad_NewServerSecurityObject(rxkad_level level, char *get_key_rock,
     tsp->user_ok = user_ok;    /* to inform server of client id. */
     init_random_int32();
 
-    LOCK_RXKAD_STATS rxkad_stats_serverObjects++;
-    UNLOCK_RXKAD_STATS return tsc;
+    LOCK_RXKAD_STATS;
+    rxkad_stats_serverObjects++;
+    UNLOCK_RXKAD_STATS;
+    return tsc;
 }
 
 /* server: called to tell if a connection authenticated properly */
@@ -232,8 +238,10 @@ rxkad_GetChallenge(struct rx_securityClass *aobj, struct rx_connection *aconn,
     rx_packetwrite(apacket, 0, challengeSize, challenge);
     rx_SetDataSize(apacket, challengeSize);
     sconn->tried = 1;
-    LOCK_RXKAD_STATS rxkad_stats.challengesSent++;
-    UNLOCK_RXKAD_STATS return 0;
+    LOCK_RXKAD_STATS;
+    rxkad_stats.challengesSent++;
+    UNLOCK_RXKAD_STATS;
+    return 0;
 }
 
 /* server: process a response to a challenge packet */
@@ -397,11 +405,11 @@ rxkad_CheckResponse(struct rx_securityClass *aobj,
        return RXKADLEVELFAIL;
     sconn->level = level;
     rxkad_SetLevel(aconn, sconn->level);
-    LOCK_RXKAD_STATS rxkad_stats.responses[rxkad_LevelIndex(sconn->level)]++;
-    UNLOCK_RXKAD_STATS
-       /* now compute endpoint-specific info used for computing 16 bit checksum */
-       rxkad_DeriveXORInfo(aconn, sconn->keysched, sconn->ivec,
-                           sconn->preSeq);
+    LOCK_RXKAD_STATS;
+    rxkad_stats.responses[rxkad_LevelIndex(sconn->level)]++;
+    UNLOCK_RXKAD_STATS;
+    /* now compute endpoint-specific info used for computing 16 bit checksum */
+    rxkad_DeriveXORInfo(aconn, sconn->keysched, sconn->ivec, sconn->preSeq);
 
     /* otherwise things are ok */
     sconn->expirationTime = end;
index 41ec612f507ec26345976b776bec90a47acff843..f150c9ae5aab5b3e0e1d5e853de996ba7ba99c57 100644 (file)
@@ -62,7 +62,7 @@
 #endif
 
 RCSID
-    ("$Header: /cvs/openafs/src/rxkad/ticket5.c,v 1.8 2004/04/09 05:53:14 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/rxkad/ticket5.c,v 1.8.2.1 2004/08/25 07:09:42 shadow Exp $");
 
 #if defined(UKERNEL)
 #include "../afs/sysincludes.h"
@@ -387,36 +387,36 @@ tkt_DecodeTicket5(char *ticket, afs_int32 ticket_len,
 
 static int
 verify_checksum_md4(void *data, size_t len,
-                    void *cksum, size_t cksumsz,
-                    struct ktc_encryptionKey *key)
+                   void *cksum, size_t cksumsz,
+                   struct ktc_encryptionKey *key)
 {
-      MD4_CTX md4;
-      unsigned char tmp[16];
+    MD4_CTX md4;
+    unsigned char tmp[16];
 
-      MD4_Init(&md4);
-      MD4_Update(&md4, data, len);
-      MD4_Final (tmp, &md4);
+    MD4_Init(&md4);
+    MD4_Update(&md4, data, len);
+    MD4_Final(tmp, &md4);
 
-      if (memcmp(tmp, cksum, cksumsz) != 0)
-              return 1;
-      return 0;
+    if (memcmp(tmp, cksum, cksumsz) != 0)
+       return 1;
+    return 0;
 }
 
 static int
 verify_checksum_md5(void *data, size_t len,
-                    void *cksum, size_t cksumsz,
-                    struct ktc_encryptionKey *key)
+                   void *cksum, size_t cksumsz,
+                   struct ktc_encryptionKey *key)
 {
-      MD5_CTX md5;
-      unsigned char tmp[16];
+    MD5_CTX md5;
+    unsigned char tmp[16];
 
-      MD5_Init(&md5);
-      MD5_Update(&md5, data, len);
-      MD5_Final (tmp, &md5);
+    MD5_Init(&md5);
+    MD5_Update(&md5, data, len);
+    MD5_Final(tmp, &md5);
 
-      if (memcmp(tmp, cksum, cksumsz) != 0)
-              return 1;
-      return 0;
+    if (memcmp(tmp, cksum, cksumsz) != 0)
+       return 1;
+    return 0;
 }
 
 static int
@@ -449,7 +449,7 @@ krb5_des_decrypt(struct ktc_encryptionKey *key, int etype, void *in,
     des_key_schedule s;
     char cksum[24];
     size_t cksumsz;
-    int ret = 1;       /* failure */
+    int ret = 1;               /* failure */
 
     cksum_func = NULL;
 
index f79182c49a398d291afc4e75c14cfce68305363c..ddf03f02bd7af881c2fc49bd7a2309ff713c8668 100644 (file)
@@ -77,6 +77,8 @@
        afs_krb_get_lrealm;
        pr_NameToId;
        pr_IdToName;
+       pr_ListMembers;
+       pr_End;
        pr_SNameToId;
        afs_get_pag_from_groups;
        setpag;
index 4c2e9938695e0295bb4ea9dd8999ebe959098ed7..7c54c43fae41b0a54780e245ced2eae547d540ec 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/ubik/beacon.c,v 1.19 2004/01/10 16:59:35 zacheiss Exp $");
+    ("$Header: /cvs/openafs/src/ubik/beacon.c,v 1.19.2.2 2004/08/25 07:11:03 shadow Exp $");
 
 #include <sys/types.h>
 #ifdef AFS_NT40_ENV
@@ -494,8 +494,8 @@ verifyInterfaceAddress(ame, info, aservers)
     }
 
 #ifdef AFS_NT40_ENV
-       /* get all my interface addresses in net byte order */
-       count = rx_getAllAddr(myAddr, UBIK_MAX_INTERFACE_ADDR);
+    /* get all my interface addresses in net byte order */
+    count = rx_getAllAddr(myAddr, UBIK_MAX_INTERFACE_ADDR);
 #else
     if (AFSDIR_SERVER_NETRESTRICT_FILEPATH || AFSDIR_SERVER_NETINFO_FILEPATH) {
        /*
@@ -570,7 +570,7 @@ verifyInterfaceAddress(ame, info, aservers)
        for (i = 0; i < totalServers; i++) {
            if (info)
                tmpAddr =
-                   ntohl((afs_uint32) info->hostAddr[i].sin_addr.s_addr);
+                   (afs_uint32) info->hostAddr[i].sin_addr.s_addr;
            else
                tmpAddr = aservers[i];
            if (myAddr[j] == tmpAddr) {
index 860c16852dfe579a14fcc187989304808b410ce2..7ad1d3030f0214a1633f69236240ad43770de33e 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/ubik/remote.c,v 1.12 2003/09/27 06:23:30 shadow Exp $");
+    ("$Header: /cvs/openafs/src/ubik/remote.c,v 1.12.2.1 2004/08/25 07:09:43 shadow Exp $");
 
 #include <sys/types.h>
 #ifdef AFS_NT40_ENV
@@ -537,7 +537,7 @@ SDISK_SendFile(rxcall, file, length, avers)
     (*dbase->truncate) (dbase, file, 0);       /* truncate first */
     tversion.epoch = 0;                /* start off by labelling in-transit db as invalid */
     tversion.counter = 0;
-    (*dbase->setlabel) (dbase, file, &tversion);/* setlabel does sync */
+    (*dbase->setlabel) (dbase, file, &tversion);       /* setlabel does sync */
     memcpy(&ubik_dbase->version, &tversion, sizeof(struct ubik_version));
     while (length > 0) {
        tlen = (length > sizeof(tbuffer) ? sizeof(tbuffer) : length);
index 5a1d20a979f8bfaaa1c9dd4d38cbb27dc2b38729..b72a8223272e0abf84e20ba0579d7749e82822bf 100644 (file)
@@ -87,8 +87,8 @@ struct ubik_client {
 };
 
 #ifdef AFS_PTHREAD_ENV
-#define LOCK_UBIK_CLIENT(client) assert(pthread_mutex_lock(&client->cm)==0);
-#define UNLOCK_UBIK_CLIENT(client) assert(pthread_mutex_unlock(&client->cm)==0);
+#define LOCK_UBIK_CLIENT(client) assert(pthread_mutex_lock(&client->cm)==0)
+#define UNLOCK_UBIK_CLIENT(client) assert(pthread_mutex_unlock(&client->cm)==0)
 #else
 #define LOCK_UBIK_CLIENT(client)
 #define UNLOCK_UBIK_CLIENT(client)
@@ -355,7 +355,8 @@ extern int ubik_ClientInit(register struct rx_connection **serverconns,
 extern afs_int32 ubik_ClientDestroy(struct ubik_client *aclient);
 
 /* ubik.c */
-extern int ubik_BeginTrans(register struct ubik_dbase *dbase, afs_int32 transMode, struct ubik_trans **transPtr);
+extern int ubik_BeginTrans(register struct ubik_dbase *dbase,
+                          afs_int32 transMode, struct ubik_trans **transPtr);
 extern int ubik_EndTrans(register struct ubik_trans *transPtr);
 
 #endif /* UBIK_H */
index 04c74a428812ba7621b78de4262576f4b63ec346..b296c714aeb6b5d2728415739691c75090fb04a7 100644 (file)
@@ -15,7 +15,7 @@
 #endif
 
 RCSID
-    ("$Header: /cvs/openafs/src/ubik/ubikclient.c,v 1.8 2003/07/15 23:17:05 shadow Exp $");
+    ("$Header: /cvs/openafs/src/ubik/ubikclient.c,v 1.8.2.1 2004/08/25 07:09:43 shadow Exp $");
 
 #if defined(UKERNEL)
 #include "afs/sysincludes.h"
@@ -72,14 +72,17 @@ ubik_ParseClientList(int argc, char **argv, afs_int32 * aothers)
            if (*tp == '-')
                break;          /* done */
            /* otherwise this is a new host name */
-           LOCK_GLOBAL_MUTEX th = gethostbyname(tp);
+           LOCK_GLOBAL_MUTEX;
+           th = gethostbyname(tp);
            if (!th) {
-               UNLOCK_GLOBAL_MUTEX return UBADHOST;
+               UNLOCK_GLOBAL_MUTEX;
+               return UBADHOST;
            }
            memmove((void *)&temp, (const void *)th->h_addr,
                    sizeof(afs_int32));
-           UNLOCK_GLOBAL_MUTEX if (counter++ >= MAXSERVERS)
-                 return UNHOSTS;
+           UNLOCK_GLOBAL_MUTEX;
+           if (counter++ >= MAXSERVERS)
+               return UNHOSTS;
            *aothers++ = temp;
        } else {
            /* haven't seen a -server yet */
@@ -205,11 +208,11 @@ ubik_ClientInit(register struct rx_connection **serverconns,
     initialize_U_error_table();
 
     if (*aclient) {            /* the application is doing a re-initialization */
-       LOCK_UBIK_CLIENT((*aclient))
-           /* this is an important defensive check */
-           if (!((*aclient)->initializationState)) {
-           UNLOCK_UBIK_CLIENT((*aclient))
-               return UREINITIALIZE;
+       LOCK_UBIK_CLIENT((*aclient));
+       /* this is an important defensive check */
+       if (!((*aclient)->initializationState)) {
+           UNLOCK_UBIK_CLIENT((*aclient));
+           return UREINITIALIZE;
        }
 
        /* release all existing connections */
@@ -223,9 +226,9 @@ ubik_ClientInit(register struct rx_connection **serverconns,
            rx_DestroyConnection(rxConn);
 #endif
        }
-       UNLOCK_UBIK_CLIENT((*aclient))
+       UNLOCK_UBIK_CLIENT((*aclient));
 #ifdef AFS_PTHREAD_ENV
-           if (pthread_mutex_destroy(&((*aclient)->cm)))
+       if (pthread_mutex_destroy(&((*aclient)->cm)))
            return UMUTEXDESTROY;
 #endif
     } else {
@@ -335,8 +338,8 @@ pthread_once_t ubik_client_once = PTHREAD_ONCE_INIT;
 pthread_mutex_t ubik_client_mutex;
 #define LOCK_UCLNT_CACHE \
     assert(pthread_once(&ubik_client_once, ubik_client_init_mutex) == 0 && \
-          pthread_mutex_lock(&ubik_client_mutex)==0);
-#define UNLOCK_UCLNT_CACHE assert(pthread_mutex_unlock(&ubik_client_mutex)==0);
+          pthread_mutex_lock(&ubik_client_mutex)==0)
+#define UNLOCK_UCLNT_CACHE assert(pthread_mutex_unlock(&ubik_client_mutex)==0)
 
 void
 ubik_client_init_mutex()
@@ -397,18 +400,19 @@ ubik_Call(aproc, aclient, aflags, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10,
     rcode = UNOSERVERS;
     chaseCount = inlist = needsync = 0;
 
-    LOCK_UCLNT_CACHE for (j = 0; ((j < SYNCCOUNT) && calls_needsync[j]); j++) {
+    LOCK_UCLNT_CACHE;
+    for (j = 0; ((j < SYNCCOUNT) && calls_needsync[j]); j++) {
        if (calls_needsync[j] == (int *)aproc) {
            inlist = needsync = 1;
            break;
        }
     }
-    UNLOCK_UCLNT_CACHE
-       /* 
-        * First  pass, we try all servers that are up.
-        * Second pass, we try all servers.
-        */
-       for (pass = 0; pass < 2; pass++) {      /*p */
+    UNLOCK_UCLNT_CACHE;
+    /* 
+     * First  pass, we try all servers that are up.
+     * Second pass, we try all servers.
+     */
+    for (pass = 0; pass < 2; pass++) { /*p */
        /* For each entry in our servers list */
        for (count = 0;; count++) {     /*s */
 
@@ -494,10 +498,11 @@ ubik_Call(aproc, aclient, aflags, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10,
   done:
     if (needsync) {
        if (!inlist) {          /* Remember proc call that needs sync site */
-           LOCK_UCLNT_CACHE calls_needsync[synccount % SYNCCOUNT] =
-               (int *)aproc;
+           LOCK_UCLNT_CACHE;
+           calls_needsync[synccount % SYNCCOUNT] = (int *)aproc;
            synccount++;
-           UNLOCK_UCLNT_CACHE inlist = 1;
+           UNLOCK_UCLNT_CACHE;
+           inlist = 1;
        }
        if (!rcode) {           /* Remember the sync site - cmd successful */
            rxp = rx_PeerOf(aclient->conns[count]);
@@ -605,7 +610,7 @@ CallIter(aproc, aclient, aflags, apos, p1, p2, p3, p4, p5, p6, p7, p8, p9,
     short origLevel;
 
     if (needlock) {
-       LOCK_UBIK_CLIENT(aclient)
+       LOCK_UBIK_CLIENT(aclient);
     }
     origLevel = aclient->initializationState;
 
@@ -616,7 +621,7 @@ CallIter(aproc, aclient, aflags, apos, p1, p2, p3, p4, p5, p6, p7, p8, p9,
        tc = aclient->conns[*apos];
        if (!tc) {
            if (needlock) {
-               UNLOCK_UBIK_CLIENT(aclient)
+               UNLOCK_UBIK_CLIENT(aclient);
            }
            return UNOSERVERS;
        }
@@ -634,7 +639,7 @@ CallIter(aproc, aclient, aflags, apos, p1, p2, p3, p4, p5, p6, p7, p8, p9,
     }
     if (*apos >= MAXSERVERS) {
        if (needlock) {
-           UNLOCK_UBIK_CLIENT(aclient)
+           UNLOCK_UBIK_CLIENT(aclient);
        }
        return UNOSERVERS;
     }
@@ -644,7 +649,7 @@ CallIter(aproc, aclient, aflags, apos, p1, p2, p3, p4, p5, p6, p7, p8, p9,
                  p14, p15, p16);
     if (aclient->initializationState != origLevel) {
        if (needlock) {
-           UNLOCK_UBIK_CLIENT(aclient)
+           UNLOCK_UBIK_CLIENT(aclient);
        }
        return code;            /* somebody did a ubik_ClientInit */
     }
@@ -659,7 +664,7 @@ CallIter(aproc, aclient, aflags, apos, p1, p2, p3, p4, p5, p6, p7, p8, p9,
 
     (*apos)++;
     if (needlock) {
-       UNLOCK_UBIK_CLIENT(aclient)
+       UNLOCK_UBIK_CLIENT(aclient);
     }
     return code;
 }
@@ -698,7 +703,7 @@ ubik_Call_New(aproc, aclient, aflags, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10,
     int stepBack;
     short origLevel;
 
-    LOCK_UBIK_CLIENT(aclient)
+    LOCK_UBIK_CLIENT(aclient);
   restart:
     rcode = UNOSERVERS;
     origLevel = aclient->initializationState;
@@ -732,13 +737,13 @@ ubik_Call_New(aproc, aclient, aflags, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10,
                    }
                }
            } else if ((code >= 0) && (code != UNOQUORUM)) {
-               UNLOCK_UBIK_CLIENT(aclient)
-                   return code;        /* success or global error condition */
+               UNLOCK_UBIK_CLIENT(aclient);
+               return code;    /* success or global error condition */
            }
        }
     }
-    UNLOCK_UBIK_CLIENT(aclient)
-       return rcode;
+    UNLOCK_UBIK_CLIENT(aclient);
+    return rcode;
 }
 
 /* 
index 24e58913a73394545fad1e14a2028ac2f40e3920..da6aefd041dfb1614861ecce01ff449d8025435c 100644 (file)
@@ -35,10 +35,10 @@ extern int pthread_recursive_mutex_lock(pthread_recursive_mutex_p);
 extern int pthread_recursive_mutex_unlock(pthread_recursive_mutex_p);
 
 #define LOCK_GLOBAL_MUTEX \
-    assert(pthread_recursive_mutex_lock(&grmutex)==0);
+    assert(pthread_recursive_mutex_lock(&grmutex)==0)
 
 #define UNLOCK_GLOBAL_MUTEX \
-    assert(pthread_recursive_mutex_unlock(&grmutex)==0);
+    assert(pthread_recursive_mutex_unlock(&grmutex)==0)
 
 #else
 
index 76b3cd46d1c18962fabd604a79e00ff568cb99f8..c21865dd4e28360b60a4a38ed8169e88ff3f1260 100644 (file)
@@ -19,7 +19,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/vfsck/setup.c,v 1.10 2004/06/24 17:38:39 shadow Exp $");
+    ("$Header: /cvs/openafs/src/vfsck/setup.c,v 1.10.2.1 2004/08/25 07:22:22 shadow Exp $");
 
 #include <stdio.h>
 #define VICE
@@ -380,7 +380,7 @@ setup(dev)
        return (-1);
 #endif
 #ifdef AFS_NEWCG_ENV
-# ifndef AFS_SUN510_ENV
+# ifndef AFS_SUN59_ENV
     if (sblock.fs_interleave < 1) {
        pwarn("IMPOSSIBLE INTERLEAVE=%d IN SUPERBLOCK", sblock.fs_interleave);
        sblock.fs_interleave = 1;
@@ -391,7 +391,7 @@ setup(dev)
            dirty(&asblk);
        }
     }
-# endif /* AFS_SUN510_ENV */
+# endif /* AFS_SUN59_ENV */
 #endif /* AFS_NEWCG_ENV */
 #ifdef AFS_NEWCG_ENV
     if (sblock.fs_npsect < sblock.fs_nsect) {
@@ -473,7 +473,7 @@ setup(dev)
 #if    defined(AFS_SUN_ENV) && !defined(AFS_SUN3_ENV)
 #ifdef AFS_SUN5_ENV
            sblock.fs_npsect = 0;
-# ifndef AFS_SUN510_ENV
+# ifndef AFS_SUN59_ENV
            sblock.fs_interleave = 0;
 # endif
            sblock.fs_state = FSOKAY - sblock.fs_time;  /* make mountable */
@@ -743,7 +743,7 @@ readsb(listerr)
      */
     altsblock.fs_fsbtodb = sblock.fs_fsbtodb;
 #ifdef AFS_NEWCG_ENV
-# ifndef AFS_SUN510_ENV
+# ifndef AFS_SUN59_ENV
     altsblock.fs_interleave = sblock.fs_interleave;
 # endif
     altsblock.fs_npsect = sblock.fs_npsect;
index 6851e67990fda4c969be28fe12d4060152aa9d97..0cf9bed327b56d75f451e0fde449db1d267f128f 100644 (file)
@@ -19,7 +19,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/vol/clone.c,v 1.17 2003/08/08 20:40:45 shadow Exp $");
+    ("$Header: /cvs/openafs/src/vol/clone.c,v 1.17.2.1 2004/08/25 07:14:19 shadow Exp $");
 
 #include <sys/types.h>
 #include <stdio.h>
@@ -403,8 +403,10 @@ DoCloneIndex(Volume * rwvp, Volume * clvp, VnodeClass class, int reclone)
 void
 CloneVolume(Error * error, Volume * original, Volume * new, Volume * old)
 {
-    VOL_LOCK CloneVolume_r(error, original, new, old);
-VOL_UNLOCK}
+    VOL_LOCK;
+    CloneVolume_r(error, original, new, old);
+    VOL_UNLOCK;
+}
 
 void
 CloneVolume_r(Error * rerror, Volume * original, Volume * new, Volume * old)
index 068f76b82ff8ef6e920eb429e01dfbde9fbf6997..c00a704c89366082bfa6041d5d2dbb5969393a24 100644 (file)
@@ -50,7 +50,7 @@ static int newVLDB = 1;
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/vol/fssync.c,v 1.26 2004/07/28 21:49:18 shadow Exp $");
+    ("$Header: /cvs/openafs/src/vol/fssync.c,v 1.26.2.1 2004/08/25 07:14:19 shadow Exp $");
 
 #include <sys/types.h>
 #include <stdio.h>
@@ -105,7 +105,7 @@ int (*V_BreakVolumeCallbacks) ();
 
 #define MAXHANDLERS    4       /* Up to 4 clients; must be at least 2, so that
                                 * move = dump+restore can run on single server */
-#define MAXOFFLINEVOLUMES 128   /* This needs to be as big as the maximum
+#define MAXOFFLINEVOLUMES 128  /* This needs to be as big as the maximum
                                 * number that would be offline for 1 operation.
                                 * Current winner is salvage, which needs all
                                 * cloned read-only copies offline when salvaging
@@ -214,7 +214,7 @@ FSYNC_askfs(VolumeId volume, char *partName, int com, int reason)
     else
        command.partName[0] = 0;
     assert(FS_sd != -1);
-    VFSYNC_LOCK
+    VFSYNC_LOCK;
 #ifdef AFS_NT40_ENV
     if (send(FS_sd, (char *)&command, sizeof(command), 0) != sizeof(command)) {
        printf("FSYNC_askfs: write to file server failed\n");
@@ -247,9 +247,8 @@ FSYNC_askfs(VolumeId volume, char *partName, int com, int reason)
            ("FSYNC_askfs: negative response from file server; volume %u, command %d\n",
             command.volume, (int)command.command);
     }
- done:
-    VFSYNC_UNLOCK
-
+  done:
+    VFSYNC_UNLOCK;
     return response;
 }
 
@@ -406,7 +405,9 @@ FSYNC_com(int fd)
        FSYNC_Drop(fd);
        return;
     }
-    VATTACH_LOCK VOL_LOCK volumes = OfflineVolumes[FindHandler(fd)];
+    VATTACH_LOCK;
+    VOL_LOCK;
+    volumes = OfflineVolumes[FindHandler(fd)];
     for (v = 0, i = 0; i < MAXOFFLINEVOLUMES; i++) {
        if (volumes[i].volumeID == command.volume
            && strcmp(volumes[i].partName, command.partName) == 0) {
@@ -568,28 +569,35 @@ defect #2080 for details.
        if (V_BreakVolumeCallbacks) {
            Log("fssync: volume %u moved to %x; breaking all call backs\n",
                command.volume, command.reason);
-           VOL_UNLOCK VATTACH_UNLOCK(*V_BreakVolumeCallbacks) (command.
-                                                               volume);
-       VATTACH_LOCK VOL_LOCK}
+           VOL_UNLOCK;
+           VATTACH_UNLOCK;
+           (*V_BreakVolumeCallbacks) (command.volume);
+           VATTACH_LOCK;
+           VOL_LOCK;
+       }
        break;
     case FSYNC_RESTOREVOLUME:
        /* if the volume is being restored, break all callbacks on it */
        if (V_BreakVolumeCallbacks) {
            Log("fssync: volume %u restored; breaking all call backs\n",
                command.volume);
-           VOL_UNLOCK VATTACH_UNLOCK(*V_BreakVolumeCallbacks) (command.
-                                                               volume);
-       VATTACH_LOCK VOL_LOCK}
+           VOL_UNLOCK;
+           VATTACH_UNLOCK;
+           (*V_BreakVolumeCallbacks) (command.volume);
+           VATTACH_LOCK;
+           VOL_LOCK;
+       }
        break;
     default:
        rc = FSYNC_DENIED;
        break;
     }
-    VOL_UNLOCK VATTACH_UNLOCK
+    VOL_UNLOCK;
+    VATTACH_UNLOCK;
 #ifdef AFS_NT40_ENV
-      (void) send(fd, &rc, 1, 0);
+    (void)send(fd, &rc, 1, 0);
 #else
-      (void) write(fd, &rc, 1);
+    (void)write(fd, &rc, 1);
 #endif
 }
 
@@ -601,7 +609,9 @@ FSYNC_Drop(int fd)
     Error error;
     char tvolName[VMAXPATHLEN];
 
-    VATTACH_LOCK VOL_LOCK p = OfflineVolumes[FindHandler(fd)];
+    VATTACH_LOCK;
+    VOL_LOCK;
+    p = OfflineVolumes[FindHandler(fd)];
     for (i = 0; i < MAXOFFLINEVOLUMES; i++) {
        if (p[i].volumeID) {
            Volume *vp;
@@ -615,7 +625,9 @@ FSYNC_Drop(int fd)
            p[i].volumeID = 0;
        }
     }
-    VOL_UNLOCK VATTACH_UNLOCK RemoveHandler(fd);
+    VOL_UNLOCK;
+    VATTACH_UNLOCK;
+    RemoveHandler(fd);
 #ifdef AFS_NT40_ENV
     closesocket(fd);
 #else
index 9069dd87b3759f5d244e386f77970bb4878bfcf5..6b6a67c1c6bed80d84d921cfab4685780309f3c7 100644 (file)
@@ -85,97 +85,97 @@ static fstabscan __P((void));
 static
 fstabscan()
 {
-       if(_fs_count <= 0)
-               return(0);
-       _fs_fstab.fs_spec = _fs_ptr->f_mntfromname;
-       _fs_fstab.fs_file = _fs_ptr->f_mntonname;
-       _fs_fstab.fs_vfstype = _fs_ptr->f_fstypename;
-       _fs_fstab.fs_mntops = _fs_ptr->f_fstypename;    // no mount options given
-       _fs_fstab.fs_type = (_fs_ptr->f_flags & MNT_RDONLY) ? FSTAB_RO : FSTAB_RW;
-       _fs_fstab.fs_freq = 0;
-       _fs_fstab.fs_passno = 0;
-
-       _fs_ptr++;
-       _fs_count--;
-       return(1);
+    if (_fs_count <= 0)
+       return (0);
+    _fs_fstab.fs_spec = _fs_ptr->f_mntfromname;
+    _fs_fstab.fs_file = _fs_ptr->f_mntonname;
+    _fs_fstab.fs_vfstype = _fs_ptr->f_fstypename;
+    _fs_fstab.fs_mntops = _fs_ptr->f_fstypename;       // no mount options given
+    _fs_fstab.fs_type = (_fs_ptr->f_flags & MNT_RDONLY) ? FSTAB_RO : FSTAB_RW;
+    _fs_fstab.fs_freq = 0;
+    _fs_fstab.fs_passno = 0;
+
+    _fs_ptr++;
+    _fs_count--;
+    return (1);
 }
 
 struct fstab *
 getfsent()
 {
-       if (!_fs_buf && !setfsent() || !fstabscan())
-               return((struct fstab *)NULL);
-       return(&_fs_fstab);
+    if (!_fs_buf && !setfsent() || !fstabscan())
+       return ((struct fstab *)NULL);
+    return (&_fs_fstab);
 }
 
 struct fstab *
 getfsspec(name)
-       register const char *name;
+     register const char *name;
 {
-       if (setfsent())
-               while (fstabscan())
-                       if (!strcmp(_fs_fstab.fs_spec, name))
-                               return(&_fs_fstab);
-       return((struct fstab *)NULL);
+    if (setfsent())
+       while (fstabscan())
+           if (!strcmp(_fs_fstab.fs_spec, name))
+               return (&_fs_fstab);
+    return ((struct fstab *)NULL);
 }
 
 struct fstab *
 getfsfile(name)
-       register const char *name;
+     register const char *name;
 {
-       if (setfsent())
-               while (fstabscan())
-                       if (!strcmp(_fs_fstab.fs_file, name))
-                               return(&_fs_fstab);
-       return((struct fstab *)NULL);
+    if (setfsent())
+       while (fstabscan())
+           if (!strcmp(_fs_fstab.fs_file, name))
+               return (&_fs_fstab);
+    return ((struct fstab *)NULL);
 }
 
 setfsent()
 {
-       long bufsize;
-
-       if (_fs_buf) {
-               free(_fs_buf);
-               _fs_buf = NULL;
-       }
-       if((_fs_count = getfsstat(NULL, 0, MNT_WAIT)) < 0) {
-               error(errno);
-               return(0);
-       }
-       bufsize = (long)_fs_count * sizeof(struct statfs);
-       if((_fs_buf = malloc(bufsize)) == NULL) {
-               error(errno);
-               return(0);
-       }
-       if(getfsstat(_fs_buf, bufsize, MNT_WAIT) < 0) {
-               error(errno);
-               return(0);
-       }
-       _fs_ptr = _fs_buf;
-       return(1);
+    long bufsize;
+
+    if (_fs_buf) {
+       free(_fs_buf);
+       _fs_buf = NULL;
+    }
+    if ((_fs_count = getfsstat(NULL, 0, MNT_WAIT)) < 0) {
+       error(errno);
+       return (0);
+    }
+    bufsize = (long)_fs_count *sizeof(struct statfs);
+    if ((_fs_buf = malloc(bufsize)) == NULL) {
+       error(errno);
+       return (0);
+    }
+    if (getfsstat(_fs_buf, bufsize, MNT_WAIT) < 0) {
+       error(errno);
+       return (0);
+    }
+    _fs_ptr = _fs_buf;
+    return (1);
 }
 
 void
 endfsent()
 {
-       if (_fs_buf) {
-               free(_fs_buf);
-               _fs_buf = NULL;
-       }
-       _fs_count = 0;
+    if (_fs_buf) {
+       free(_fs_buf);
+       _fs_buf = NULL;
+    }
+    _fs_count = 0;
 }
 
 static
 error(err)
-       int err;
+     int err;
 {
-       char *p;
-
-       (void)write(STDERR_FILENO, "fstab: ", 7);
-       (void)write(STDERR_FILENO, _PATH_FSTAB, sizeof(_PATH_FSTAB) - 1);
-       (void)write(STDERR_FILENO, ": ", 1);
-       p = strerror(err);
-       (void)write(STDERR_FILENO, p, strlen(p));
-       (void)write(STDERR_FILENO, "\n", 1);
+    char *p;
+
+    (void)write(STDERR_FILENO, "fstab: ", 7);
+    (void)write(STDERR_FILENO, _PATH_FSTAB, sizeof(_PATH_FSTAB) - 1);
+    (void)write(STDERR_FILENO, ": ", 1);
+    p = strerror(err);
+    (void)write(STDERR_FILENO, p, strlen(p));
+    (void)write(STDERR_FILENO, "\n", 1);
 }
 #endif /* defined(AFS_DARWIN_ENV) */
index e5b21ea41201c9b43f84b6081ca3edf02a762a5c..633b3bd09fa37e81c46c441300972c6dd883e235 100644 (file)
@@ -15,7 +15,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/vol/ihandle.c,v 1.18 2003/12/09 19:58:28 shadow Exp $");
+    ("$Header: /cvs/openafs/src/vol/ihandle.c,v 1.18.2.1 2004/08/25 07:14:19 shadow Exp $");
 
 #include <stdio.h>
 #include <sys/types.h>
@@ -297,7 +297,7 @@ ih_open(IHandle_t * ihP)
            DLL_DELETE(fdP, fdLruHead, fdLruTail, fd_next, fd_prev);
            ihP->ih_refcnt++;
            IH_UNLOCK;
-           (void) FDH_SEEK(fdP, 0, SEEK_SET);
+           (void)FDH_SEEK(fdP, 0, SEEK_SET);
            return fdP;
        }
     }
index bc6a075312af965e54a7bdc22b29d0855c250fc2..2aee89da524246823225610907a142f331ca9255 100644 (file)
@@ -76,9 +76,9 @@ extern pthread_mutex_t ih_glock_mutex;
 extern void ih_glock_init(void);
 #define IH_LOCK \
     assert(pthread_once(&ih_glock_once, ih_glock_init) == 0 && \
-          pthread_mutex_lock(&ih_glock_mutex) == 0);
+          pthread_mutex_lock(&ih_glock_mutex) == 0)
 #define IH_UNLOCK \
-    assert(pthread_mutex_unlock(&ih_glock_mutex) == 0);
+    assert(pthread_mutex_unlock(&ih_glock_mutex) == 0)
 #else /* AFS_PTHREAD_ENV */
 #define IH_LOCK
 #define IH_UNLOCK
index 399492e4526458e0d92a57c79a8f1b00190d3f65..0b9858cc199e356e5ab574bd19db899f9f15ba6b 100644 (file)
@@ -13,7 +13,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/vol/namei_ops.c,v 1.21 2003/11/24 03:51:24 shadow Exp $");
+    ("$Header: /cvs/openafs/src/vol/namei_ops.c,v 1.21.2.1 2004/08/25 07:14:19 shadow Exp $");
 
 #ifdef AFS_NAMEI_ENV
 #include <stdio.h>
@@ -696,14 +696,14 @@ namei_dec(IHandle_t * ih, Inode ino, int p1)
        if (count == 0) {
            IHandle_t *th;
            IH_INIT(th, ih->ih_dev, ih->ih_vid, ino);
-#if 0 
+#if 0
            /* This triggers in the fileserver on the volume index vnodes */
-            if (th->ih_refcnt > 1) 
-                Log("Warning: Leaked ref on ihandle dev %d vid %d ino %lld\n",
+           if (th->ih_refcnt > 1)
+               Log("Warning: Leaked ref on ihandle dev %d vid %d ino %lld\n",
                    th->ih_dev, th->ih_vid, (int64_t) th->ih_ino);
 #endif
-            namei_HandleToName(&name, th);
-            IH_RELEASE(th);
+           namei_HandleToName(&name, th);
+           IH_RELEASE(th);
            code = unlink(name.n_path);
        }
        FDH_CLOSE(fdP);
index a0a846bebafe931c146eca5c2fdd27da2ef548e8..fc753f7baea5592c1376b0bce691c6a10a2b7d60 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/vol/nuke.c,v 1.13 2003/11/23 04:53:43 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/vol/nuke.c,v 1.13.2.1 2004/08/25 07:14:19 shadow Exp $");
 
 #include <rx/xdr.h>
 #include <afs/afsint.h>
@@ -144,12 +144,12 @@ nuke(char *aname, afs_int32 avolid)
     *lastDevComp = toupper(*lastDevComp);
 #else
     {
-    char *tfile = vol_DevName(tstat.st_dev, wpath);
-    if (!tfile) {
-       printf("volnuke: can't find %s's device.\n", aname);
-       return 1;
-    }
-    strcpy(devName, tfile);    /* save this from the static buffer */
+       char *tfile = vol_DevName(tstat.st_dev, wpath);
+       if (!tfile) {
+           printf("volnuke: can't find %s's device.\n", aname);
+           return 1;
+       }
+       strcpy(devName, tfile); /* save this from the static buffer */
     }
     /* aim lastDevComp at the 'foo' of '/dev/foo' */
     lastDevComp = strrchr(devName, '/');
@@ -201,12 +201,12 @@ nuke(char *aname, afs_int32 avolid)
                }
 #else /* AFS_NAMEI_ENV */
                IH_INIT(fileH, (int)tstat.st_dev, avolid, ti->inode[i]);
-        {
-        int j;
-        for (j = 0; j < ti->count[i]; j++) {
-                  code = IH_DEC(fileH, ti->inode[i], avolid);
-        }
-        }
+               {
+                   int j;
+                   for (j = 0; j < ti->count[i]; j++) {
+                       code = IH_DEC(fileH, ti->inode[i], avolid);
+                   }
+               }
                IH_RELEASE(fileH);
 #endif /* AFS_NAMEI_ENV */
            }
index be7f0f3500c7d328c91918f3db7b0a61cb19bb5a..f8a530ad183adef3d178789223fc54d771570ebc 100644 (file)
@@ -21,7 +21,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/vol/partition.c,v 1.30 2004/08/08 23:59:51 shadow Exp $");
+    ("$Header: /cvs/openafs/src/vol/partition.c,v 1.30.2.1 2004/08/25 07:14:19 shadow Exp $");
 
 #include <ctype.h>
 #ifdef AFS_NT40_ENV
@@ -273,8 +273,10 @@ VInitPartition_r(char *path, char *devname, Device dev)
 static void
 VInitPartition(char *path, char *devname, Device dev)
 {
-    VOL_LOCK VInitPartition_r(path, devname, dev);
-VOL_UNLOCK}
+    VOL_LOCK;
+    VInitPartition_r(path, devname, dev);
+    VOL_UNLOCK;
+}
 
 #ifndef AFS_NT40_ENV
 /* VAttachPartitions() finds the vice partitions on this server. Calls
@@ -836,8 +838,10 @@ struct DiskPartition *
 VGetPartition(char *name, int abortp)
 {
     struct DiskPartition *retVal;
-    VOL_LOCK retVal = VGetPartition_r(name, abortp);
-    VOL_UNLOCK return retVal;
+    VOL_LOCK;
+    retVal = VGetPartition_r(name, abortp);
+    VOL_UNLOCK;
+    return retVal;
 }
 
 #ifdef AFS_NT40_ENV
@@ -933,8 +937,10 @@ VSetPartitionDiskUsage_r(register struct DiskPartition *dp)
 void
 VSetPartitionDiskUsage(register struct DiskPartition *dp)
 {
-    VOL_LOCK VSetPartitionDiskUsage_r(dp);
-VOL_UNLOCK}
+    VOL_LOCK;
+    VSetPartitionDiskUsage_r(dp);
+    VOL_UNLOCK;
+}
 
 void
 VResetDiskUsage_r(void)
@@ -951,8 +957,10 @@ VResetDiskUsage_r(void)
 void
 VResetDiskUsage(void)
 {
-    VOL_LOCK VResetDiskUsage_r();
-VOL_UNLOCK}
+    VOL_LOCK;
+    VResetDiskUsage_r();
+    VOL_UNLOCK;
+}
 
 void
 VAdjustDiskUsage_r(Error * ec, Volume * vp, afs_sfsize_t blocks,
@@ -988,8 +996,10 @@ void
 VAdjustDiskUsage(Error * ec, Volume * vp, afs_sfsize_t blocks,
                 afs_sfsize_t checkBlocks)
 {
-    VOL_LOCK VAdjustDiskUsage_r(ec, vp, blocks, checkBlocks);
-VOL_UNLOCK}
+    VOL_LOCK;
+    VAdjustDiskUsage_r(ec, vp, blocks, checkBlocks);
+    VOL_UNLOCK;
+}
 
 int
 VDiskUsage_r(Volume * vp, afs_sfsize_t blocks)
@@ -1015,8 +1025,10 @@ int
 VDiskUsage(Volume * vp, afs_sfsize_t blocks)
 {
     int retVal;
-    VOL_LOCK retVal = VDiskUsage_r(vp, blocks);
-    VOL_UNLOCK return retVal;
+    VOL_LOCK;
+    retVal = VDiskUsage_r(vp, blocks);
+    VOL_UNLOCK;
+    return retVal;
 }
 
 void
@@ -1036,8 +1048,10 @@ VPrintDiskStats_r(void)
 void
 VPrintDiskStats(void)
 {
-    VOL_LOCK VPrintDiskStats_r();
-VOL_UNLOCK}
+    VOL_LOCK;
+    VPrintDiskStats_r();
+    VOL_UNLOCK;
+}
 
 #ifdef AFS_NT40_ENV
 /* Need a separate lock file on NT, since NT only has mandatory file locks. */
@@ -1208,11 +1222,15 @@ VUnlockPartition_r(char *name)
 void
 VLockPartition(char *name)
 {
-    VOL_LOCK VLockPartition_r(name);
-VOL_UNLOCK}
+    VOL_LOCK;
+    VLockPartition_r(name);
+    VOL_UNLOCK;
+}
 
 void
 VUnlockPartition(char *name)
 {
-    VOL_LOCK VUnlockPartition_r(name);
-VOL_UNLOCK}
+    VOL_LOCK;
+    VUnlockPartition_r(name);
+    VOL_UNLOCK;
+}
index 49e514804f835a0acc1fc5d83df8aae1e575c93d..46e950685ac73ac6ad98f5a7da01e03dde16fd53 100644 (file)
@@ -17,7 +17,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/vol/purge.c,v 1.9 2003/07/15 23:17:40 shadow Exp $");
+    ("$Header: /cvs/openafs/src/vol/purge.c,v 1.9.2.1 2004/08/25 07:14:19 shadow Exp $");
 
 #include <stdio.h>
 #ifdef AFS_NT40_ENV
@@ -84,8 +84,10 @@ VPurgeVolume_r(Error * ec, Volume * vp)
 void
 VPurgeVolume(Error * ec, Volume * vp)
 {
-    VOL_LOCK VPurgeVolume_r(ec, vp);
-VOL_UNLOCK}
+    VOL_LOCK;
+    VPurgeVolume_r(ec, vp);
+    VOL_UNLOCK;
+}
 
 #define MAXOBLITATONCE 200
 /* delete a portion of an index, adjusting offset appropriately.  Returns 0 if
@@ -162,8 +164,10 @@ ObliterateRegion(Volume * avp, VnodeClass aclass, StreamHandle_t * afile,
 void
 PurgeIndex(Volume * vp, VnodeClass class)
 {
-    VOL_LOCK PurgeIndex_r(vp, class);
-VOL_UNLOCK}
+    VOL_LOCK;
+    PurgeIndex_r(vp, class);
+    VOL_UNLOCK;
+}
 
 void
 PurgeIndex_r(Volume * vp, VnodeClass class)
@@ -198,8 +202,10 @@ PurgeIndex_r(Volume * vp, VnodeClass class)
 void
 PurgeHeader(Volume * vp)
 {
-    VOL_LOCK PurgeHeader_r(vp);
-VOL_UNLOCK}
+    VOL_LOCK;
+    PurgeHeader_r(vp);
+    VOL_UNLOCK;
+}
 
 void
 PurgeHeader_r(Volume * vp)
index d1d427f575114b8cb54e0a25ba00aa88df2b3196..26ff89e5e929e89b1928605a31e0e696a1e77a57 100644 (file)
@@ -17,7 +17,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/vol/vnode.c,v 1.19 2004/06/23 14:27:48 shadow Exp $");
+    ("$Header: /cvs/openafs/src/vol/vnode.c,v 1.19.2.1 2004/08/25 07:14:19 shadow Exp $");
 
 #include <errno.h>
 #include <stdio.h>
@@ -266,8 +266,10 @@ Vnode *
 VAllocVnode(Error * ec, Volume * vp, VnodeType type)
 {
     Vnode *retVal;
-    VOL_LOCK retVal = VAllocVnode_r(ec, vp, type);
-    VOL_UNLOCK return retVal;
+    VOL_LOCK;
+    retVal = VAllocVnode_r(ec, vp, type);
+    VOL_UNLOCK;
+    return retVal;
 }
 
 Vnode *
@@ -344,8 +346,10 @@ VAllocVnode_r(Error * ec, Volume * vp, VnodeType type)
            ObtainWriteLock(&vnp->lock);
        } else {
            /* follow locking hierarchy */
-           VOL_UNLOCK ObtainWriteLock(&vnp->lock);
-       VOL_LOCK}
+           VOL_UNLOCK;
+           ObtainWriteLock(&vnp->lock);
+           VOL_LOCK;
+       }
 #ifdef AFS_PTHREAD_ENV
        vnp->writer = pthread_self();
 #else /* AFS_PTHREAD_ENV */
@@ -381,7 +385,8 @@ VAllocVnode_r(Error * ec, Volume * vp, VnodeType type)
            FdHandle_t *fdP;
            off_t off = vnodeIndexOffset(vcp, vnodeNumber);
 
-           VOL_UNLOCK fdP = IH_OPEN(ihP);
+           VOL_UNLOCK;
+           fdP = IH_OPEN(ihP);
            if (fdP == NULL)
                Abort("VAllocVnode: can't open index file!\n");
            if ((size = FDH_SIZE(fdP)) < 0)
@@ -403,7 +408,8 @@ VAllocVnode_r(Error * ec, Volume * vp, VnodeType type)
                free(buf);
            }
            FDH_CLOSE(fdP);
-       VOL_LOCK}
+           VOL_LOCK;
+       }
        VNLog(4, 2, vnodeNumber, (afs_int32) vnp);
     }
 
@@ -429,8 +435,10 @@ Vnode *
 VGetVnode(Error * ec, Volume * vp, VnodeId vnodeNumber, int locktype)
 {                              /* READ_LOCK or WRITE_LOCK, as defined in lock.h */
     Vnode *retVal;
-    VOL_LOCK retVal = VGetVnode_r(ec, vp, vnodeNumber, locktype);
-    VOL_UNLOCK return retVal;
+    VOL_LOCK;
+    retVal = VGetVnode_r(ec, vp, vnodeNumber, locktype);
+    VOL_UNLOCK;
+    return retVal;
 }
 
 Vnode *
@@ -520,7 +528,8 @@ VGetVnode_r(Error * ec, Volume * vp, VnodeId vnodeNumber, int locktype)
 #endif /* AFS_PTHREAD_ENV */
 
        /* Read vnode from volume index */
-       VOL_UNLOCK fdP = IH_OPEN(ihP);
+       VOL_UNLOCK;
+       fdP = IH_OPEN(ihP);
        if (fdP == NULL) {
            Log("VGetVnode: can't open index dev=%u, i=%s\n", vp->device,
                PrintInode(NULL, vp->vnodeIndex[class].handle->ih_ino));
@@ -537,7 +546,8 @@ VGetVnode_r(Error * ec, Volume * vp, VnodeId vnodeNumber, int locktype)
            /* Don't take volume off line if the inumber is out of range
             * or the inode table is full. */
            FDH_REALLYCLOSE(fdP);
-           VOL_LOCK if (n == BAD_IGET) {
+           VOL_LOCK;
+           if (n == BAD_IGET) {
                Log("VGetVnode: bad inumber %s\n",
                    PrintInode(NULL, vp->vnodeIndex[class].handle->ih_ino));
                *ec = VIO;
@@ -561,9 +571,9 @@ VGetVnode_r(Error * ec, Volume * vp, VnodeId vnodeNumber, int locktype)
            return NULL;
        }
        FDH_CLOSE(fdP);
-       VOL_LOCK
-           /* Quick check to see that the data is reasonable */
-           if (vnp->disk.vnodeMagic != vcp->magic || vnp->disk.type == vNull) {
+       VOL_LOCK;
+       /* Quick check to see that the data is reasonable */
+       if (vnp->disk.vnodeMagic != vcp->magic || vnp->disk.type == vNull) {
            if (vnp->disk.type == vNull) {
                *ec = VNOVNODE;
                mlkReason = 6;
@@ -613,7 +623,8 @@ VGetVnode_r(Error * ec, Volume * vp, VnodeId vnodeNumber, int locktype)
            vnp->lruNext->lruPrev = vnp->lruPrev;
        }
     }
-    VOL_UNLOCK if (locktype == READ_LOCK)
+    VOL_UNLOCK;
+    if (locktype == READ_LOCK)
        ObtainReadLock(&vnp->lock);
     else {
        ObtainWriteLock(&vnp->lock);
@@ -623,10 +634,10 @@ VGetVnode_r(Error * ec, Volume * vp, VnodeId vnodeNumber, int locktype)
        LWP_CurrentProcess(&vnp->writer);
 #endif /* AFS_PTHREAD_ENV */
     }
-    VOL_LOCK
-       /* Check that the vnode hasn't been removed while we were obtaining
-        * the lock */
-       VNLog(102, 2, vnodeNumber, (afs_int32) vnp);
+    VOL_LOCK;
+    /* Check that the vnode hasn't been removed while we were obtaining
+     * the lock */
+    VNLog(102, 2, vnodeNumber, (afs_int32) vnp);
     if ((vnp->disk.type == vNull) || (vnp->cacheCheck == 0)) {
        if (vnp->nUsers-- == 1)
            StickOnLruChain_r(vnp, vcp);
@@ -652,8 +663,10 @@ int TrustVnodeCacheEntry = 1;
 void
 VPutVnode(Error * ec, register Vnode * vnp)
 {
-    VOL_LOCK VPutVnode_r(ec, vnp);
-VOL_UNLOCK}
+    VOL_LOCK;
+    VPutVnode_r(ec, vnp);
+    VOL_UNLOCK;
+}
 
 void
 VPutVnode_r(Error * ec, register Vnode * vnp)
@@ -709,7 +722,8 @@ VPutVnode_r(Error * ec, register Vnode * vnp)
            } else {
                IHandle_t *ihP = vp->vnodeIndex[class].handle;
                FdHandle_t *fdP;
-               VOL_UNLOCK fdP = IH_OPEN(ihP);
+               VOL_UNLOCK;
+               fdP = IH_OPEN(ihP);
                if (fdP == NULL)
                    Abort("VPutVnode: can't open index file!\n");
                offset = vnodeIndexOffset(vcp, vnp->vnodeNumber);
@@ -723,7 +737,8 @@ VPutVnode_r(Error * ec, register Vnode * vnp)
                    /* Don't force volume offline if the inumber is out of
                     * range or the inode table is full.
                     */
-                   VOL_LOCK if (code == BAD_IGET) {
+                   VOL_LOCK;
+                   if (code == BAD_IGET) {
                        Log("VPutVnode: bad inumber %s\n",
                            PrintInode(NULL,
                                       vp->vnodeIndex[class].handle->ih_ino));
@@ -733,17 +748,18 @@ VPutVnode_r(Error * ec, register Vnode * vnp)
                        VForceOffline_r(vp);
                        *ec = VSALVAGE;
                    }
-                   VOL_UNLOCK FDH_REALLYCLOSE(fdP);
+                   VOL_UNLOCK;
+                   FDH_REALLYCLOSE(fdP);
                } else {
                    FDH_CLOSE(fdP);
                }
-               VOL_LOCK
-                   /* If the vnode is to be deleted, and we wrote the vnode out,
-                    * free its bitmap entry. Do after the vnode is written so we
-                    * don't allocate from bitmap before the vnode is written
-                    * (doing so could cause a "addled bitmap" message).
-                    */
-                   if (vnp->delete && !*ec) {
+               VOL_LOCK;
+               /* If the vnode is to be deleted, and we wrote the vnode out,
+                * free its bitmap entry. Do after the vnode is written so we
+                * don't allocate from bitmap before the vnode is written
+                * (doing so could cause a "addled bitmap" message).
+                */
+               if (vnp->delete && !*ec) {
                    VFreeBitMapEntry_r(ec, &vp->vnodeIndex[class],
                                       vnodeIdToBitNumber(vnp->vnodeNumber));
                }
@@ -779,8 +795,10 @@ int
 VVnodeWriteToRead(Error * ec, register Vnode * vnp)
 {
     int retVal;
-    VOL_LOCK retVal = VVnodeWriteToRead_r(ec, vnp);
-    VOL_UNLOCK return retVal;
+    VOL_LOCK;
+    retVal = VVnodeWriteToRead_r(ec, vnp);
+    VOL_UNLOCK;
+    return retVal;
 }
 
 int
@@ -818,7 +836,8 @@ VVnodeWriteToRead_r(Error * ec, register Vnode * vnp)
                                            changed_oldTime) << 1) | vnp->
          delete);
     if (thisProcess != vnp->writer)
-       Abort("VPutVnode: Vnode at 0x%x locked by another process!\n", (int)vnp);
+       Abort("VPutVnode: Vnode at 0x%x locked by another process!\n",
+             (int)vnp);
     if (vnp->delete) {
        return 0;
     }
@@ -839,7 +858,8 @@ VVnodeWriteToRead_r(Error * ec, register Vnode * vnp)
            IHandle_t *ihP = vp->vnodeIndex[class].handle;
            FdHandle_t *fdP;
            off_t off = vnodeIndexOffset(vcp, vnp->vnodeNumber);
-           VOL_UNLOCK fdP = IH_OPEN(ihP);
+           VOL_UNLOCK;
+           fdP = IH_OPEN(ihP);
            if (fdP == NULL)
                Abort("VPutVnode: can't open index file!\n");
            code = FDH_SEEK(fdP, off, SEEK_SET);
@@ -851,18 +871,22 @@ VVnodeWriteToRead_r(Error * ec, register Vnode * vnp)
                 * Don't force volume offline if the inumber is out of
                 * range or the inode table is full.
                 */
-               VOL_LOCK if (code == BAD_IGET) {
+               VOL_LOCK;
+               if (code == BAD_IGET) {
                    Log("VPutVnode: bad inumber %s\n",
-                       PrintInode(NULL, vp->vnodeIndex[class].handle->ih_ino));
+                       PrintInode(NULL,
+                                  vp->vnodeIndex[class].handle->ih_ino));
                    *ec = VIO;
                } else {
                    Log("VPutVnode: Couldn't write vnode %u, volume %u (%s)\n", vnp->vnodeNumber, V_id(vnp->volumePtr), V_name(vnp->volumePtr));
                    VForceOffline_r(vp);
                    *ec = VSALVAGE;
                }
-           VOL_UNLOCK}
+               VOL_UNLOCK;
+           }
            FDH_CLOSE(fdP);
-       VOL_LOCK}
+           VOL_LOCK;
+       }
        vcp->writes++;
        vnp->changed_newTime = vnp->changed_oldTime = 0;
     }
index 482e6a4539dcaa38f0aadfd38ef6406f0fae2555..cd4fcee0abb2b32a141cc256c8497a3ae87d97ca 100644 (file)
@@ -18,7 +18,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/vol/vol-info.c,v 1.18 2004/06/23 14:27:48 shadow Exp $");
+    ("$Header: /cvs/openafs/src/vol/vol-info.c,v 1.18.2.1 2004/08/25 07:14:19 shadow Exp $");
 
 #include <ctype.h>
 #include <errno.h>
@@ -608,8 +608,9 @@ HandleVolume(struct DiskPartition *dp, char *name)
        if (saveinodes)
            printf
                ("Volume-Id\t  Volsize  Auxsize Inodesize  AVolsize SizeDiff                (VolName)\n");
-       printf("%u\t%9d%9d%10d%10d%9d\t%24s\n", V_id(vp), Vdiskused, Vauxsize_k,
-              Vvnodesize_k, totvolsize, totvolsize - Vdiskused, V_name(vp));
+       printf("%u\t%9d%9d%10d%10d%9d\t%24s\n", V_id(vp), Vdiskused,
+              Vauxsize_k, Vvnodesize_k, totvolsize, totvolsize - Vdiskused,
+              V_name(vp));
     }
 }
 
index 91b9e146830b652345031cc73d66a3ce2574432b..a8e956d24d473bfa94dd9a99156c59b7b5cf6e9e 100644 (file)
@@ -92,7 +92,7 @@ Vnodes with 0 inode pointers in RW volumes are now deleted.
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/vol/vol-salvage.c,v 1.41 2004/05/15 06:11:40 shadow Exp $");
+    ("$Header: /cvs/openafs/src/vol/vol-salvage.c,v 1.41.2.1 2004/08/25 07:14:19 shadow Exp $");
 
 #include <stdlib.h>
 #include <stdio.h>
@@ -519,14 +519,14 @@ handleit(struct cmd_syndesc *as)
 
 #ifdef FAST_RESTART
     {
-    afs_int32 i;
-    for (i = 0; i < CMD_MAXPARMS; i++) {
-       if (as->parms[i].items) {
-           seenany = 1;
-           break;
+       afs_int32 i;
+       for (i = 0; i < CMD_MAXPARMS; i++) {
+           if (as->parms[i].items) {
+               seenany = 1;
+               break;
+           }
        }
     }
-    }
     if (!seenany) {
        char *msg =
            "Exiting immediately without salvage. Look into the FileLog to find volumes which really need to be salvaged!";
@@ -1602,7 +1602,7 @@ GetInodeSummary(char *path, VolumeId singleVolumeNumber)
 
                GetVolumeSummary(singleVolumeNumber);
 
-               for (i = 0,vsp = volumeSummaryp; i < nVolumes; i++) {
+               for (i = 0, vsp = volumeSummaryp; i < nVolumes; i++) {
                    if (vsp->fileName)
                        DeleteExtraVolumeHeaderFile(vsp);
                }
@@ -3066,7 +3066,7 @@ JudgeEntry(struct DirSummary *dir, char *name, VnodeId vnodeNumber,
                    if (dirOrphaned) {
                        Log("dir vnode %u: %s/%s parent vnode is %u (vnode %u, unique %u) -- %sdeleted\n", dir->vnodeNumber, (dir->name ? dir->name : "??"), name, vnodeEssence->parent, vnodeNumber, unique, (Testing ? "would have been " : ""));
                    } else if (vnodeNumber == 1) {
-                       Log("dir vnode %d: %s/%s is invalid (vnode %d, unique %d) -- %sdeleted\n", dir->vnodeNumber, (dir->name ? dir->name : "??"), name, vnodeNumber, unique, (Testing?"would have been ":""));
+                       Log("dir vnode %d: %s/%s is invalid (vnode %d, unique %d) -- %sdeleted\n", dir->vnodeNumber, (dir->name ? dir->name : "??"), name, vnodeNumber, unique, (Testing ? "would have been " : ""));
                    } else {
                        Log("dir vnode %u: %s/%s already claimed by directory vnode %u (vnode %u, unique %u) -- %sdeleted\n", dir->vnodeNumber, (dir->name ? dir->name : "??"), name, vnodeEssence->parent, vnodeNumber, unique, (Testing ? "would have been " : ""));
                    }
index adc52cd3f8ec577808153ce0b7652dbc1a54d81b..2b4867f246efdd770c32cc43dad4e147947d72c9 100644 (file)
@@ -20,7 +20,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/vol/volume.c,v 1.35 2004/04/18 06:13:54 kolya Exp $");
+    ("$Header: /cvs/openafs/src/vol/volume.c,v 1.35.2.1 2004/08/25 07:14:19 shadow Exp $");
 
 #include <rx/xdr.h>
 #include <afs/afsint.h>
@@ -339,8 +339,10 @@ int
 VConnectFS(void)
 {
     int retVal;
-    VOL_LOCK retVal = VConnectFS_r();
-    VOL_UNLOCK return retVal;
+    VOL_LOCK;
+    retVal = VConnectFS_r();
+    VOL_UNLOCK;
+    return retVal;
 }
 
 int
@@ -365,8 +367,10 @@ VDisconnectFS_r(void)
 void
 VDisconnectFS(void)
 {
-    VOL_LOCK VDisconnectFS_r();
-VOL_UNLOCK}
+    VOL_LOCK;
+    VDisconnectFS_r();
+    VOL_UNLOCK;
+}
 
 void
 VShutdown_r(void)
@@ -409,8 +413,10 @@ VShutdown_r(void)
 void
 VShutdown(void)
 {
-    VOL_LOCK VShutdown_r();
-VOL_UNLOCK}
+    VOL_LOCK;
+    VShutdown_r();
+    VOL_UNLOCK;
+}
 
 
 static void
@@ -556,9 +562,12 @@ Volume *
 VAttachVolumeByName(Error * ec, char *partition, char *name, int mode)
 {
     Volume *retVal;
-    VATTACH_LOCK VOL_LOCK retVal =
-       VAttachVolumeByName_r(ec, partition, name, mode);
-    VOL_UNLOCK VATTACH_UNLOCK return retVal;
+    VATTACH_LOCK;
+    VOL_LOCK;
+    retVal = VAttachVolumeByName_r(ec, partition, name, mode);
+    VOL_UNLOCK;
+    VATTACH_UNLOCK;
+    return retVal;
 }
 
 Volume *
@@ -601,18 +610,20 @@ VAttachVolumeByName_r(Error * ec, char *partition, char *name, int mode)
     strcpy(path, VPartitionPath(partp));
     strcat(path, "/");
     strcat(path, name);
-    VOL_UNLOCK if ((fd = afs_open(path, O_RDONLY)) == -1
-                  || afs_fstat(fd, &status) == -1) {
+    VOL_UNLOCK;
+    if ((fd = afs_open(path, O_RDONLY)) == -1 || afs_fstat(fd, &status) == -1) {
        Log("VAttachVolume: Failed to open %s (errno %d)\n", path, errno);
        if (fd > -1)
            close(fd);
-       VOL_LOCK *ec = VNOVOL;
+       VOL_LOCK;
+       *ec = VNOVOL;
        goto done;
     }
     n = read(fd, &diskHeader, sizeof(diskHeader));
     close(fd);
-    VOL_LOCK if (n != sizeof(diskHeader)
-                || diskHeader.stamp.magic != VOLUMEHEADERMAGIC) {
+    VOL_LOCK;
+    if (n != sizeof(diskHeader)
+       || diskHeader.stamp.magic != VOLUMEHEADERMAGIC) {
        Log("VAttachVolume: Error reading volume header %s\n", path);
        *ec = VSALVAGE;
        goto done;
@@ -711,7 +722,8 @@ attach2(Error * ec, char *path, register struct VolumeHeader * header,
 {
     register Volume *vp;
 
-    VOL_UNLOCK vp = (Volume *) calloc(1, sizeof(Volume));
+    VOL_UNLOCK;
+    vp = (Volume *) calloc(1, sizeof(Volume));
     assert(vp != NULL);
     vp->specialStatus = (byte) (isbusy ? VBUSY : 0);
     vp->device = partp->device;
@@ -730,11 +742,13 @@ attach2(Error * ec, char *path, register struct VolumeHeader * header,
     vp->shuttingDown = 0;
     vp->goingOffline = 0;
     vp->nUsers = 1;
-    VOL_LOCK GetVolumeHeader(vp);
-    VOL_UNLOCK(void) ReadHeader(ec, V_diskDataHandle(vp), (char *)&V_disk(vp),
-                               sizeof(V_disk(vp)), VOLUMEINFOMAGIC,
-                               VOLUMEINFOVERSION);
-    VOL_LOCK if (*ec) {
+    VOL_LOCK;
+    GetVolumeHeader(vp);
+    VOL_UNLOCK;
+    (void)ReadHeader(ec, V_diskDataHandle(vp), (char *)&V_disk(vp),
+                    sizeof(V_disk(vp)), VOLUMEINFOMAGIC, VOLUMEINFOVERSION);
+    VOL_LOCK;
+    if (*ec) {
        Log("VAttachVolume: Error reading diskDataHandle vol header %s; error=%u\n", path, *ec);
     }
     if (!*ec) {
@@ -751,29 +765,34 @@ attach2(Error * ec, char *path, register struct VolumeHeader * header,
            V_stat_initialized(vp) = 1;
        }
 #endif /* OPENAFS_VOL_STATS */
-       VOL_UNLOCK(void) ReadHeader(ec, vp->vnodeIndex[vSmall].handle,
-                                   (char *)&iHead, sizeof(iHead),
-                                   SMALLINDEXMAGIC, SMALLINDEXVERSION);
-       VOL_LOCK if (*ec) {
+       VOL_UNLOCK;
+       (void)ReadHeader(ec, vp->vnodeIndex[vSmall].handle,
+                        (char *)&iHead, sizeof(iHead),
+                        SMALLINDEXMAGIC, SMALLINDEXVERSION);
+       VOL_LOCK;
+       if (*ec) {
            Log("VAttachVolume: Error reading smallVnode vol header %s; error=%u\n", path, *ec);
        }
     }
     if (!*ec) {
        struct IndexFileHeader iHead;
-       VOL_UNLOCK(void) ReadHeader(ec, vp->vnodeIndex[vLarge].handle,
-                                   (char *)&iHead, sizeof(iHead),
-                                   LARGEINDEXMAGIC, LARGEINDEXVERSION);
-       VOL_LOCK if (*ec) {
+       VOL_UNLOCK;
+       (void)ReadHeader(ec, vp->vnodeIndex[vLarge].handle,
+                        (char *)&iHead, sizeof(iHead),
+                        LARGEINDEXMAGIC, LARGEINDEXVERSION);
+       VOL_LOCK;
+       if (*ec) {
            Log("VAttachVolume: Error reading largeVnode vol header %s; error=%u\n", path, *ec);
        }
     }
 #ifdef AFS_NAMEI_ENV
     if (!*ec) {
        struct versionStamp stamp;
-       VOL_UNLOCK(void) ReadHeader(ec, V_linkHandle(vp), (char *)&stamp,
-                                   sizeof(stamp), LINKTABLEMAGIC,
-                                   LINKTABLEVERSION);
-       VOL_LOCK if (*ec) {
+       VOL_UNLOCK;
+       (void)ReadHeader(ec, V_linkHandle(vp), (char *)&stamp,
+                        sizeof(stamp), LINKTABLEMAGIC, LINKTABLEVERSION);
+       VOL_LOCK;
+       if (*ec) {
            Log("VAttachVolume: Error reading namei vol header %s; error=%u\n", path, *ec);
        }
     }
@@ -819,8 +838,10 @@ attach2(Error * ec, char *path, register struct VolumeHeader * header,
     if (programType == fileServer && VolumeWriteable(vp)) {
        int i;
        for (i = 0; i < nVNODECLASSES; i++) {
-           VOL_UNLOCK GetBitmap(ec, vp, i);
-           VOL_LOCK if (*ec) {
+           VOL_UNLOCK;
+           GetBitmap(ec, vp, i);
+           VOL_LOCK;
+           if (*ec) {
                FreeVolume(vp);
                Log("VAttachVolume: error getting bitmap for volume (%s)\n",
                    path);
@@ -851,8 +872,12 @@ Volume *
 VAttachVolume(Error * ec, VolumeId volumeId, int mode)
 {
     Volume *retVal;
-    VATTACH_LOCK VOL_LOCK retVal = VAttachVolume_r(ec, volumeId, mode);
-    VOL_UNLOCK VATTACH_UNLOCK return retVal;
+    VATTACH_LOCK;
+    VOL_LOCK;
+    retVal = VAttachVolume_r(ec, volumeId, mode);
+    VOL_UNLOCK;
+    VATTACH_UNLOCK;
+    return retVal;
 }
 
 Volume *
@@ -901,8 +926,10 @@ static int
 VHold(register Volume * vp)
 {
     int retVal;
-    VOL_LOCK retVal = VHold_r(vp);
-    VOL_UNLOCK return retVal;
+    VOL_LOCK;
+    retVal = VHold_r(vp);
+    VOL_UNLOCK;
+    return retVal;
 }
 
 void
@@ -917,8 +944,10 @@ VTakeOffline_r(register Volume * vp)
 void
 VTakeOffline(register Volume * vp)
 {
-    VOL_LOCK VTakeOffline_r(vp);
-VOL_UNLOCK}
+    VOL_LOCK;
+    VTakeOffline_r(vp);
+    VOL_UNLOCK;
+}
 
 void
 VPutVolume_r(register Volume * vp)
@@ -962,8 +991,10 @@ VPutVolume_r(register Volume * vp)
 void
 VPutVolume(register Volume * vp)
 {
-    VOL_LOCK VPutVolume_r(vp);
-VOL_UNLOCK}
+    VOL_LOCK;
+    VPutVolume_r(vp);
+    VOL_UNLOCK;
+}
 
 /* Get a pointer to an attached volume.  The pointer is returned regardless
    of whether or not the volume is in service or on/off line.  An error
@@ -972,8 +1003,10 @@ Volume *
 VGetVolume(Error * ec, VolId volumeId)
 {
     Volume *retVal;
-    VOL_LOCK retVal = VGetVolume_r(ec, volumeId);
-    VOL_UNLOCK return retVal;
+    VOL_LOCK;
+    retVal = VGetVolume_r(ec, volumeId);
+    VOL_UNLOCK;
+    return retVal;
 }
 
 Volume *
@@ -1126,8 +1159,10 @@ VForceOffline_r(Volume * vp)
 void
 VForceOffline(Volume * vp)
 {
-    VOL_LOCK VForceOffline_r(vp);
-VOL_UNLOCK}
+    VOL_LOCK;
+    VForceOffline_r(vp);
+    VOL_UNLOCK;
+}
 
 /* The opposite of VAttachVolume.  The volume header is written to disk, with
    the inUse bit turned off.  A copy of the header is maintained in memory,
@@ -1156,8 +1191,10 @@ VOffline_r(Volume * vp, char *message)
 void
 VOffline(Volume * vp, char *message)
 {
-    VOL_LOCK VOffline_r(vp, message);
-VOL_UNLOCK}
+    VOL_LOCK;
+    VOffline_r(vp, message);
+    VOL_UNLOCK;
+}
 
 /* For VDetachVolume, we close all cached file descriptors, but keep
  * the Inode handles in case we need to read from a busy volume.
@@ -1237,8 +1274,10 @@ VDetachVolume_r(Error * ec, Volume * vp)
 void
 VDetachVolume(Error * ec, Volume * vp)
 {
-    VOL_LOCK VDetachVolume_r(ec, vp);
-VOL_UNLOCK}
+    VOL_LOCK;
+    VDetachVolume_r(ec, vp);
+    VOL_UNLOCK;
+}
 
 
 VnodeId
@@ -1262,19 +1301,23 @@ VAllocBitmapEntry_r(Error * ec, Volume * vp, register struct vnodeIndex
                                         * from AddNewReadableResidency */
                wasVBUSY = 1;
            } else {
-               VOL_UNLOCK while (vp->specialStatus == VBUSY)
+               VOL_UNLOCK;
+               while (vp->specialStatus == VBUSY)
 #ifdef AFS_PTHREAD_ENV
                    sleep(2);
 #else /* AFS_PTHREAD_ENV */
                    IOMGR_Sleep(2);
 #endif /* AFS_PTHREAD_ENV */
-           VOL_LOCK}
+               VOL_LOCK;
+           }
        }
        if (!index->bitmap) {
            vp->specialStatus = VBUSY;  /* Stop anyone else from using it. */
            for (i = 0; i < nVNODECLASSES; i++) {
-               VOL_UNLOCK GetBitmap(ec, vp, i);
-               VOL_LOCK if (*ec) {
+               VOL_UNLOCK;
+               GetBitmap(ec, vp, i);
+               VOL_LOCK;
+               if (*ec) {
                    vp->specialStatus = 0;
                    vp->shuttingDown = 1;       /* Let who has it free it. */
                    return NULL;
@@ -1316,8 +1359,10 @@ VnodeId
 VAllocBitmapEntry(Error * ec, Volume * vp, register struct vnodeIndex * index)
 {
     VnodeId retVal;
-    VOL_LOCK retVal = VAllocBitmapEntry_r(ec, vp, index);
-    VOL_UNLOCK return retVal;
+    VOL_LOCK;
+    retVal = VAllocBitmapEntry_r(ec, vp, index);
+    VOL_UNLOCK;
+    return retVal;
 }
 
 void
@@ -1344,8 +1389,10 @@ void
 VFreeBitMapEntry(Error * ec, register struct vnodeIndex *index,
                 unsigned bitNumber)
 {
-    VOL_LOCK VFreeBitMapEntry_r(ec, index, bitNumber);
-VOL_UNLOCK}
+    VOL_LOCK;
+    VFreeBitMapEntry_r(ec, index, bitNumber);
+    VOL_UNLOCK;
+}
 
 void
 VUpdateVolume_r(Error * ec, Volume * vp)
@@ -1367,8 +1414,10 @@ VUpdateVolume_r(Error * ec, Volume * vp)
 void
 VUpdateVolume(Error * ec, Volume * vp)
 {
-    VOL_LOCK VUpdateVolume_r(ec, vp);
-VOL_UNLOCK}
+    VOL_LOCK;
+    VUpdateVolume_r(ec, vp);
+    VOL_UNLOCK;
+}
 
 void
 VSyncVolume_r(Error * ec, Volume * vp)
@@ -1388,8 +1437,10 @@ VSyncVolume_r(Error * ec, Volume * vp)
 void
 VSyncVolume(Error * ec, Volume * vp)
 {
-    VOL_LOCK VSyncVolume_r(ec, vp);
-VOL_UNLOCK}
+    VOL_LOCK;
+    VSyncVolume_r(ec, vp);
+    VOL_UNLOCK;
+}
 
 static void
 FreeVolume(Volume * vp)
@@ -1609,8 +1660,10 @@ int
 VAdjustVolumeStatistics(register Volume * vp)
 {
     int retVal;
-    VOL_LOCK retVal = VAdjustVolumeStatistics_r(vp);
-    VOL_UNLOCK return retVal;
+    VOL_LOCK;
+    retVal = VAdjustVolumeStatistics_r(vp);
+    VOL_UNLOCK;
+    return retVal;
 }
 
 void
@@ -1631,8 +1684,10 @@ VBumpVolumeUsage_r(register Volume * vp)
 void
 VBumpVolumeUsage(register Volume * vp)
 {
-    VOL_LOCK VBumpVolumeUsage_r(vp);
-VOL_UNLOCK}
+    VOL_LOCK;
+    VBumpVolumeUsage_r(vp);
+    VOL_UNLOCK;
+}
 
 void
 VSetDiskUsage_r(void)
@@ -1660,8 +1715,10 @@ VSetDiskUsage_r(void)
 void
 VSetDiskUsage(void)
 {
-    VOL_LOCK VSetDiskUsage_r();
-VOL_UNLOCK}
+    VOL_LOCK;
+    VSetDiskUsage_r();
+    VOL_UNLOCK;
+}
 
 /* The number of minutes that a volume hasn't been updated before the
  * "Dont salvage" flag in the volume header will be turned on */
@@ -1883,5 +1940,7 @@ VPrintCacheStats_r(void)
 void
 VPrintCacheStats(void)
 {
-    VOL_LOCK VPrintCacheStats_r();
-VOL_UNLOCK}
+    VOL_LOCK;
+    VPrintCacheStats_r();
+    VOL_UNLOCK;
+}
index c0756092dbaae17bf32d5c148c8a6bc5bf075660..c737f2b4fadb3928e28eb41241193901c08d755f 100644 (file)
@@ -35,21 +35,21 @@ extern pthread_mutex_t vol_trans_mutex;
 extern pthread_cond_t vol_put_volume_cond;
 extern pthread_cond_t vol_sleep_cond;
 #define VATTACH_LOCK \
-    assert(pthread_mutex_lock(&vol_attach_mutex) == 0);
+    assert(pthread_mutex_lock(&vol_attach_mutex) == 0)
 #define VATTACH_UNLOCK \
-    assert(pthread_mutex_unlock(&vol_attach_mutex) == 0);
+    assert(pthread_mutex_unlock(&vol_attach_mutex) == 0)
 #define VOL_LOCK \
-    assert(pthread_mutex_lock(&vol_glock_mutex) == 0);
+    assert(pthread_mutex_lock(&vol_glock_mutex) == 0)
 #define VOL_UNLOCK \
-    assert(pthread_mutex_unlock(&vol_glock_mutex) == 0);
+    assert(pthread_mutex_unlock(&vol_glock_mutex) == 0)
 #define VFSYNC_LOCK \
-    assert(pthread_mutex_lock(&vol_fsync_mutex) == 0);
+    assert(pthread_mutex_lock(&vol_fsync_mutex) == 0)
 #define VFSYNC_UNLOCK \
-    assert(pthread_mutex_unlock(&vol_fsync_mutex) == 0);
+    assert(pthread_mutex_unlock(&vol_fsync_mutex) == 0)
 #define VTRANS_LOCK \
-    assert(pthread_mutex_lock(&vol_trans_mutex) == 0);
+    assert(pthread_mutex_lock(&vol_trans_mutex) == 0)
 #define VTRANS_UNLOCK \
-    assert(pthread_mutex_unlock(&vol_trans_mutex) == 0);
+    assert(pthread_mutex_unlock(&vol_trans_mutex) == 0)
 #else /* AFS_PTHREAD_ENV */
 #define VATTACH_LOCK
 #define VATTACH_UNLOCK
index c03152944386181f764648b82c1ffb08f3bc559e..8a096e6f87262b8b25fb555ec11260b7b36a33b6 100644 (file)
@@ -18,7 +18,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/vol/vutil.c,v 1.15 2003/11/29 21:38:05 jaltman Exp $");
+    ("$Header: /cvs/openafs/src/vol/vutil.c,v 1.15.2.1 2004/08/25 07:14:19 shadow Exp $");
 
 #include <stdio.h>
 #include <sys/types.h>
@@ -109,8 +109,10 @@ VCreateVolume(Error * ec, char *partname, VolId volumeId, VolId parentId)
 {                              /* Should be the same as volumeId if there is
                                 * no parent */
     Volume *retVal;
-    VOL_LOCK retVal = VCreateVolume_r(ec, partname, volumeId, parentId);
-    VOL_UNLOCK return retVal;
+    VOL_LOCK;
+    retVal = VCreateVolume_r(ec, partname, volumeId, parentId);
+    VOL_UNLOCK;
+    return retVal;
 }
 
 Volume *
@@ -289,8 +291,10 @@ VCreateVolume_r(Error * ec, char *partname, VolId volumeId, VolId parentId)
 void
 AssignVolumeName(register VolumeDiskData * vol, char *name, char *ext)
 {
-    VOL_LOCK AssignVolumeName_r(vol, name, ext);
-VOL_UNLOCK}
+    VOL_LOCK;
+    AssignVolumeName_r(vol, name, ext);
+    VOL_UNLOCK;
+}
 
 void
 AssignVolumeName_r(register VolumeDiskData * vol, char *name, char *ext)
@@ -335,15 +339,19 @@ CopyVolumeHeader(VolumeDiskData * from, VolumeDiskData * to)
 {
     afs_int32 code;
 
-    VOL_LOCK code = CopyVolumeHeader_r(from, to);
-    VOL_UNLOCK return (code);
+    VOL_LOCK;
+    code = CopyVolumeHeader_r(from, to);
+    VOL_UNLOCK;
+    return (code);
 }
 
 void
 ClearVolumeStats(register VolumeDiskData * vol)
 {
-    VOL_LOCK ClearVolumeStats_r(vol);
-VOL_UNLOCK}
+    VOL_LOCK;
+    ClearVolumeStats_r(vol);
+    VOL_UNLOCK;
+}
 
 void
 ClearVolumeStats_r(register VolumeDiskData * vol)
index fb9c277ff4e370402d6b856cf4753ca3c78655b0..1213db1b26e74a2a1b953da4a5a6182b9180ebac 100644 (file)
@@ -11,7 +11,7 @@
 #include <afs/param.h>
 
 RCSID
-    ("$Header: /cvs/openafs/src/volser/vos.c,v 1.40 2004/07/29 18:51:20 shadow Exp $");
+    ("$Header: /cvs/openafs/src/volser/vos.c,v 1.40.2.1 2004/08/17 04:28:45 jaltman Exp $");
 
 #include <sys/types.h>
 #ifdef AFS_NT40_ENV
@@ -3356,7 +3356,7 @@ static
 SyncVldb(as)
      register struct cmd_syndesc *as;
 {
-    afs_int32 pnum, code;      /* part name */
+    afs_int32 pnum = 0, code;  /* part name */
     char part[10];
     int flags = 0;
     char *volname = 0;