Rename getDirPath to afs_getDirPath in preparation for export
[openafs.git] / src / util / dirpath.c
index d8c5ee8..3957611 100644 (file)
@@ -1,38 +1,35 @@
 /*
  * Copyright 2000, International Business Machines Corporation and others.
  * All Rights Reserved.
- * 
+ *
  * This software has been released under the terms of the IBM Public
  * License.  For details, see the LICENSE file in the top-level source
  * directory or online at http://www.openafs.org/dl/license10.html
  */
 
-#include <afs/param.h>
 #include <afsconfig.h>
+#include <afs/param.h>
 
-RCSID("$Header$");
+#include <roken.h>
+#include <afs/opr.h>
 
 #include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
 #include <ctype.h>
 #include <limits.h>
-#include <errno.h>
-#include <stdio.h>
-#include "assert.h"
+
 #include "afsutil.h"
 #include "fileutil.h"
+
+#include <afs/opr.h>
+
 #ifdef AFS_PTHREAD_ENV
 #include <pthread.h>
 static pthread_once_t dirInit_once = PTHREAD_ONCE_INIT;
 #endif
+
 #ifdef AFS_NT40_ENV
-#include <windows.h>
 #include <WINNT\afssw.h>
 #endif
-#ifdef AFS_DARWIN_ENV
-#include <unistd.h>
-#endif
 
 /* local vars */
 /* static storage for path strings */
@@ -61,24 +58,25 @@ static void initDirPathArray(void);
 /* Additional macros for ease of use */
 /* buf is expected to be atleast AFS_PATH_MAX bytes long */
 #define AFSDIR_SERVER_DIRPATH(buf, dir)  \
-            strcompose(buf, AFSDIR_PATH_MAX, dirPathArray[AFSDIR_SERVER_AFS_DIRPATH_ID], "/", dir, NULL)
+            (void) strcompose(buf, AFSDIR_PATH_MAX, serverPrefix, dir, (char *)NULL)
 
 #define AFSDIR_SERVER_FILEPATH(buf, dir, file)  \
-            strcompose(buf, AFSDIR_PATH_MAX, dirPathArray[AFSDIR_SERVER_AFS_DIRPATH_ID], "/", dir, "/", file,  NULL)
+            (void) strcompose(buf, AFSDIR_PATH_MAX, serverPrefix, dir, "/", file,  (char *)NULL)
 
 #define AFSDIR_CLIENT_DIRPATH(buf, dir)  \
-            strcompose(buf, AFSDIR_PATH_MAX, dirPathArray[AFSDIR_CLIENT_VICE_DIRPATH_ID], "/", dir, NULL)
+            (void) strcompose(buf, AFSDIR_PATH_MAX, clientPrefix, dir, (char *)NULL)
 
 #define AFSDIR_CLIENT_FILEPATH(buf, dir, file)  \
-            strcompose(buf, AFSDIR_PATH_MAX, dirPathArray[AFSDIR_CLIENT_VICE_DIRPATH_ID], "/", dir, "/", file,  NULL)
+            (void) strcompose(buf, AFSDIR_PATH_MAX,  clientPrefix, dir, "/", file,  (char *)NULL)
 
 
 /* initAFSDirPath() -- External users call this function to initialize
  * the dirpath module and/or to determine the initialization status.
  */
-unsigned int initAFSDirPath(void)
+unsigned int
+initAFSDirPath(void)
 {
-    if (initFlag == 0) { /* not yet init'ed, so initialize */
+    if (initFlag == 0) {       /* not yet init'ed, so initialize */
 #ifdef AFS_PTHREAD_ENV
        pthread_once(&dirInit_once, initDirPathArray);
 #else
@@ -89,7 +87,7 @@ unsigned int initAFSDirPath(void)
 }
 
 
-/* initDirPathArray() -- Initializes the afs dir paths for the 
+/* initDirPathArray() -- Initializes the afs dir paths for the
  *     server and client installations.
  *
  *     For NT these are determined dynamically; for Unix they are static.
@@ -102,9 +100,12 @@ unsigned int initAFSDirPath(void)
  *              paths (client/server) initialized properly for callers of
  *              initAFSDirPath() who would like to know this information.
  */
-static void initDirPathArray(void)
-{ 
-    char *pathp;
+static void
+initDirPathArray(void)
+{
+    char *pathp, *clntEtcDir;
+    const char *clientPrefix = "";
+    const char *serverPrefix = "";
 
 #ifdef AFS_NT40_ENV
     char *buf;
@@ -120,8 +121,9 @@ static void initDirPathArray(void)
        initStatus |= AFSDIR_SERVER_PATHS_OK;
     }
     FilepathNormalize(ntServerInstallDirLong);
-    status = GetShortPathName(ntServerInstallDirLong,
-                             ntServerInstallDirShort, AFSDIR_PATH_MAX);
+    status =
+       GetShortPathName(ntServerInstallDirLong, ntServerInstallDirShort,
+                        AFSDIR_PATH_MAX);
     if (status == 0 || status > AFSDIR_PATH_MAX) {
        /* can't convert path to short version; just use long version */
        strcpy(ntServerInstallDirShort, ntServerInstallDirLong);
@@ -129,22 +131,31 @@ static void initDirPathArray(void)
     FilepathNormalize(ntServerInstallDirShort);
 
     /* get the afs client configuration directory (/usr/vice/etc equivalent) */
-    status = GetWindowsDirectory(ntClientConfigDirLong, AFSDIR_PATH_MAX);
-    if (status == 0 || status > AFSDIR_PATH_MAX) {
-       /* failed to get canonical Windows directory; use temp directory */
-       strcpy(ntClientConfigDirLong, gettmpdir());
+    if (afssw_GetClientCellServDBDir(&buf)) {
+        /* failed */
+        status = GetWindowsDirectory(ntClientConfigDirLong, AFSDIR_PATH_MAX);
+        if (status == 0 || status > AFSDIR_PATH_MAX) {
+            /* failed to get canonical Windows directory; use temp directory */
+            strcpy(ntClientConfigDirLong, gettmpdir());
+        } else {
+            initStatus |= AFSDIR_CLIENT_PATHS_OK;
+        }
     } else {
-       initStatus |= AFSDIR_CLIENT_PATHS_OK;
+        strcpy(ntClientConfigDirLong, buf);
+        free(buf);
+        initStatus |= AFSDIR_CLIENT_PATHS_OK;
     }
     FilepathNormalize(ntClientConfigDirLong);
 
-    status = GetShortPathName(ntClientConfigDirLong,
-                             ntClientConfigDirShort, AFSDIR_PATH_MAX);
+    status =
+       GetShortPathName(ntClientConfigDirLong, ntClientConfigDirShort,
+                        AFSDIR_PATH_MAX);
     if (status == 0 || status > AFSDIR_PATH_MAX) {
        /* can't convert path to short version; just use long version */
        strcpy(ntClientConfigDirShort, ntClientConfigDirLong);
     }
     FilepathNormalize(ntClientConfigDirShort);
+    clientPrefix = ntClientConfigDirShort;
 
     /* setup the root server directory path (/usr/afs equivalent) */
     strcpy(afsSrvDirPath, ntServerInstallDirShort);
@@ -155,6 +166,7 @@ static void initDirPathArray(void)
 
     /* setup top level dirpath (/usr equivalent); valid for server ONLY */
     strcpy(dirPathArray[AFSDIR_USR_DIRPATH_ID], ntServerInstallDirShort);
+    serverPrefix = ntServerInstallDirShort;
     strcat(dirPathArray[AFSDIR_USR_DIRPATH_ID], AFSDIR_CANONICAL_USR_DIRPATH);
 
 #else /* AFS_NT40_ENV */
@@ -164,10 +176,10 @@ static void initDirPathArray(void)
     /* setup the root client directory path */
 #ifdef AFS_DARWIN_ENV
     if (access(AFSDIR_ALTERNATE_CLIENT_VICE_DIRPATH, F_OK) == 0)
-        strcpy(afsClntDirPath, AFSDIR_ALTERNATE_CLIENT_VICE_DIRPATH);
-    else 
+       strcpy(afsClntDirPath, AFSDIR_ALTERNATE_CLIENT_VICE_DIRPATH);
+    else
 #endif
-    strcpy(afsClntDirPath, AFSDIR_CANONICAL_CLIENT_VICE_DIRPATH);
+       strcpy(afsClntDirPath, AFSDIR_CANONICAL_CLIENT_VICE_DIRPATH);
 
     /* setup top level dirpath; valid for both server and client */
     strcpy(dirPathArray[AFSDIR_USR_DIRPATH_ID], AFSDIR_CANONICAL_USR_DIRPATH);
@@ -175,205 +187,256 @@ static void initDirPathArray(void)
     initStatus |= (AFSDIR_CLIENT_PATHS_OK | AFSDIR_SERVER_PATHS_OK);
 #endif /* AFS_NT40_ENV */
 
-  /* now initialize various dir and file paths exported by dirpath module */
-
-  /* server dir paths */
-  strcpy(dirPathArray[AFSDIR_SERVER_AFS_DIRPATH_ID], afsSrvDirPath);
+    /* now initialize various dir and file paths exported by dirpath module */
 
-  pathp = dirPathArray[AFSDIR_SERVER_ETC_DIRPATH_ID];
-  AFSDIR_SERVER_DIRPATH(pathp, AFSDIR_ETC_DIR);
+    /* server dir paths */
+    strcpy(dirPathArray[AFSDIR_SERVER_AFS_DIRPATH_ID], afsSrvDirPath);
 
-  pathp = dirPathArray[AFSDIR_SERVER_BIN_DIRPATH_ID];
-  AFSDIR_SERVER_DIRPATH(pathp, AFSDIR_BIN_DIR);
+    pathp = dirPathArray[AFSDIR_SERVER_ETC_DIRPATH_ID];
+    AFSDIR_SERVER_DIRPATH(pathp, AFSDIR_SERVER_ETC_DIR);
 
-  pathp = dirPathArray[AFSDIR_SERVER_CORES_DIRPATH_ID];
-  AFSDIR_SERVER_DIRPATH(pathp, AFSDIR_CORES_DIR);
+    pathp = dirPathArray[AFSDIR_SERVER_BIN_DIRPATH_ID];
+    AFSDIR_SERVER_DIRPATH(pathp, AFSDIR_SERVER_BIN_DIR);
 
-  pathp = dirPathArray[AFSDIR_SERVER_DB_DIRPATH_ID];
-  AFSDIR_SERVER_DIRPATH(pathp, AFSDIR_DB_DIR);
+    pathp = dirPathArray[AFSDIR_SERVER_CORES_DIRPATH_ID];
+    AFSDIR_SERVER_DIRPATH(pathp, AFSDIR_CORES_DIR);
 
-  pathp = dirPathArray[AFSDIR_SERVER_LOGS_DIRPATH_ID];
-  AFSDIR_SERVER_DIRPATH(pathp, AFSDIR_LOGS_DIR);
+    pathp = dirPathArray[AFSDIR_SERVER_DB_DIRPATH_ID];
+    AFSDIR_SERVER_DIRPATH(pathp, AFSDIR_DB_DIR);
 
-  pathp = dirPathArray[AFSDIR_SERVER_LOCAL_DIRPATH_ID];
-  AFSDIR_SERVER_DIRPATH(pathp, AFSDIR_LOCAL_DIR);
+    pathp = dirPathArray[AFSDIR_SERVER_LOGS_DIRPATH_ID];
+    AFSDIR_SERVER_DIRPATH(pathp, AFSDIR_LOGS_DIR);
 
-  pathp = dirPathArray[AFSDIR_SERVER_BACKUP_DIRPATH_ID];
-  AFSDIR_SERVER_DIRPATH(pathp, AFSDIR_BACKUP_DIR);
+    pathp = dirPathArray[AFSDIR_SERVER_LOCAL_DIRPATH_ID];
+    AFSDIR_SERVER_DIRPATH(pathp, AFSDIR_LOCAL_DIR);
 
-  pathp = dirPathArray[AFSDIR_SERVER_MIGRATE_DIRPATH_ID];
-  AFSDIR_SERVER_DIRPATH(pathp, AFSDIR_MIGR_DIR);
+    pathp = dirPathArray[AFSDIR_SERVER_BACKUP_DIRPATH_ID];
+    AFSDIR_SERVER_DIRPATH(pathp, AFSDIR_BACKUP_DIR);
 
-  pathp = dirPathArray[AFSDIR_SERVER_BIN_FILE_DIRPATH_ID];
-  AFSDIR_SERVER_DIRPATH(pathp, AFSDIR_BIN_FILE_DIR);
+    pathp = dirPathArray[AFSDIR_SERVER_MIGRATE_DIRPATH_ID];
+    AFSDIR_SERVER_DIRPATH(pathp, AFSDIR_MIGR_DIR);
 
-  /* client dir path */
+    pathp = dirPathArray[AFSDIR_SERVER_BIN_FILE_DIRPATH_ID];
+    AFSDIR_SERVER_DIRPATH(pathp, AFSDIR_BIN_FILE_DIR);
 
+    /* client dir path */
 #ifdef AFS_NT40_ENV
-  strcpy(dirPathArray[AFSDIR_CLIENT_VICE_DIRPATH_ID],
-        "/NoUsrViceDirectoryOnWindows");
-  strcpy(dirPathArray[AFSDIR_CLIENT_ETC_DIRPATH_ID], ntClientConfigDirShort);
+    strcpy(dirPathArray[AFSDIR_CLIENT_VICE_DIRPATH_ID],
+          "/NoUsrViceDirectoryOnWindows");
+    strcpy(dirPathArray[AFSDIR_CLIENT_ETC_DIRPATH_ID],
+          ntClientConfigDirShort);
+
+    clntEtcDir = pathp = dirPathArray[AFSDIR_CLIENT_ETC_DIRPATH_ID];
 #else
-  strcpy(dirPathArray[AFSDIR_CLIENT_VICE_DIRPATH_ID], afsClntDirPath);
+    strcpy(dirPathArray[AFSDIR_CLIENT_VICE_DIRPATH_ID], afsClntDirPath);
 
-  pathp = dirPathArray[AFSDIR_CLIENT_ETC_DIRPATH_ID];
-  AFSDIR_CLIENT_DIRPATH(pathp, AFSDIR_ETC_DIR);
+    clntEtcDir = pathp = dirPathArray[AFSDIR_CLIENT_ETC_DIRPATH_ID];
+#ifdef AFS_DARWIN_ENV
+    if (access(AFSDIR_ALTERNATE_CLIENT_ETC_DIR, F_OK) == 0)
+       AFSDIR_CLIENT_DIRPATH(pathp, AFSDIR_ALTERNATE_CLIENT_ETC_DIR);
+    else
+#endif
+       AFSDIR_CLIENT_DIRPATH(pathp, AFSDIR_CLIENT_ETC_DIR);
 #endif /* AFS_NT40_ENV */
 
-  /* server file paths */
+#ifndef AFS_NT40_ENV
+    pathp = dirPathArray[AFSDIR_CLIENT_DATA_DIRPATH_ID];
+#ifdef AFS_DARWIN_ENV
+    if (access(AFSDIR_ALTERNATE_CLIENT_DATA_DIR, F_OK) == 0)
+       AFSDIR_CLIENT_DIRPATH(pathp, AFSDIR_ALTERNATE_CLIENT_DATA_DIR);
+    else
+#endif
+       AFSDIR_CLIENT_DIRPATH(pathp, AFSDIR_DATA_DIR);
+#endif
+
+    /* server file paths */
+    pathp = dirPathArray[AFSDIR_SERVER_THISCELL_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_SERVER_ETC_DIR,
+                          AFSDIR_THISCELL_FILE);
+
+    pathp = dirPathArray[AFSDIR_SERVER_CELLSERVDB_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_SERVER_ETC_DIR,
+                          AFSDIR_CELLSERVDB_FILE);
+
+    pathp = dirPathArray[AFSDIR_SERVER_NOAUTH_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_NOAUTH_FILE);
+
+    pathp = dirPathArray[AFSDIR_SERVER_BUDBLOG_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_BUDBLOG_FILE);
+
+    pathp = dirPathArray[AFSDIR_SERVER_TAPECONFIG_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_BACKUP_DIR, AFSDIR_TAPECONFIG_FILE);
+
+    pathp = dirPathArray[AFSDIR_SERVER_KALOGDB_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_KALOGDB_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_THISCELL_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_ETC_DIR, AFSDIR_THISCELL_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_KALOG_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_KALOG_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_CELLSERVDB_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_ETC_DIR, AFSDIR_CELLSERVDB_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_KADB_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_DB_DIR, AFSDIR_KADB_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_NOAUTH_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_NOAUTH_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_NTPD_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_SERVER_BIN_DIR, AFSDIR_NTPD_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_BUDBLOG_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_BUDBLOG_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_PRDB_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_DB_DIR, AFSDIR_PRDB_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_TAPECONFIG_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_BACKUP_DIR, AFSDIR_TAPECONFIG_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_PTLOG_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_PTLOG_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_KALOGDB_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_KALOGDB_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_KCONF_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_SERVER_ETC_DIR, AFSDIR_KCONF_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_KALOG_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_KALOG_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_VLDB_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_DB_DIR, AFSDIR_VLDB_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_KADB_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_DB_DIR, AFSDIR_KADB_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_VLOG_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_VLOG_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_NTPD_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_BIN_DIR, AFSDIR_NTPD_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_CORELOG_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_CORE_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_PRDB_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_DB_DIR, AFSDIR_PRDB_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_SLVGLOG_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_SLVGLOG_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_PTLOG_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_PTLOG_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_SALSRVLOG_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_SALSRVLOG_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_KCONF_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_ETC_DIR, AFSDIR_KCONF_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_SALVAGER_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_SERVER_BIN_DIR,
+                          AFSDIR_SALVAGER_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_VLDB_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_DB_DIR, AFSDIR_VLDB_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_SALSRV_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_SERVER_BIN_DIR,
+                          AFSDIR_SALSRV_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_VLOG_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_VLOG_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_SLVGLOCK_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_SLVGLOCK_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_CORELOG_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_CORE_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_KEY_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_SERVER_ETC_DIR, AFSDIR_KEY_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_SLVGLOG_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_SLVGLOG_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_ULIST_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_SERVER_ETC_DIR, AFSDIR_ULIST_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_SALVAGER_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_BIN_DIR, AFSDIR_SALVAGER_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_BOZCONF_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_BOSCONFIG_DIR, AFSDIR_BOZCONF_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_SLVGLOCK_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_SLVGLOCK_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_BOZCONFNEW_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_BOSCONFIG_DIR,
+                          AFSDIR_BOZCONFNEW_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_KEY_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_ETC_DIR, AFSDIR_KEY_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_BOZLOG_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_BOZLOG_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_ULIST_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_ETC_DIR, AFSDIR_ULIST_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_BOZINIT_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_BOSCONFIG_DIR, AFSDIR_BOZINIT_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_BOZCONF_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_BOZCONF_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_BOZRXBIND_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_BOSCONFIG_DIR, AFSDIR_BOZRXBIND_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_BOZCONFNEW_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_BOZCONFNEW_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_BOSVR_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_BOSSERVER_DIR, AFSDIR_BOSVR_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_BOZLOG_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_BOZLOG_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_VOLSERLOG_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_VOLSERLOG_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_BOZINIT_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_BOZINIT_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_ROOTVOL_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_SERVER_ETC_DIR, AFSDIR_ROOTVOL_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_BOSVR_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_BIN_DIR, AFSDIR_BOSVR_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_HOSTDUMP_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_HOSTDUMP_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_VOLSERLOG_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_VOLSERLOG_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_CLNTDUMP_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_CLNTDUMP_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_ROOTVOL_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_ETC_DIR, AFSDIR_ROOTVOL_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_CBKDUMP_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_CBKDUMP_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_HOSTDUMP_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_HOSTDUMP_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_OLDSYSID_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_OLDSYSID_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_CLNTDUMP_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_CLNTDUMP_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_SYSID_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_SYSID_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_CBKDUMP_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_CBKDUMP_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_FILELOG_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_FILELOG_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_OLDSYSID_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_OLDSYSID_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_AUDIT_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_AUDIT_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_SYSID_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_SYSID_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_CONFIG_FILE_FILEPATH_ID];
+    AFSDIR_CLIENT_FILEPATH(pathp, AFSDIR_SERVER_ETC_DIR,
+                          AFSDIR_SERVER_CONFIG_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_FILELOG_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOGS_DIR, AFSDIR_FILELOG_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_NETINFO_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_NETINFO_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_AUDIT_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_AUDIT_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_NETRESTRICT_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_NETRESTRICT_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_NETINFO_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_NETINFO_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_WEIGHTING_CONSTANTS_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_MIGR_DIR,
+                          AFSDIR_WEIGHTINGCONST_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_NETRESTRICT_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_NETRESTRICT_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_THRESHOLD_CONSTANTS_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_MIGR_DIR,
+                          AFSDIR_THRESHOLDCONST_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_WEIGHTING_CONSTANTS_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_MIGR_DIR, AFSDIR_WEIGHTINGCONST_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_MIGRATELOG_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_MIGR_DIR, AFSDIR_MIGRATE_LOGNAME);
 
-  pathp = dirPathArray[AFSDIR_SERVER_THRESHOLD_CONSTANTS_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_MIGR_DIR, AFSDIR_THRESHOLDCONST_FILE);
+    pathp = dirPathArray[AFSDIR_SERVER_KRB_EXCL_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_SERVER_ETC_DIR, AFSDIR_KRB_EXCL_FILE);
 
-  pathp = dirPathArray[AFSDIR_SERVER_MIGRATELOG_FILEPATH_ID];
-  AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_MIGR_DIR, AFSDIR_MIGRATE_LOGNAME);
+    pathp = dirPathArray[AFSDIR_SERVER_FSSTATE_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_LOCAL_DIR, AFSDIR_FSSTATE_FILE);
 
-  /* client file paths */
+    pathp = dirPathArray[AFSDIR_SERVER_RXKAD_KEYTAB_FILEPATH_ID];
+    AFSDIR_SERVER_FILEPATH(pathp, AFSDIR_SERVER_ETC_DIR, AFSDIR_RXKAD_KEYTAB_FILE);
 
+    /* client file paths */
 #ifdef AFS_NT40_ENV
-  strcpy(dirPathArray[AFSDIR_CLIENT_THISCELL_FILEPATH_ID],
-        "/NoUsrViceEtcThisCellFileOnWindows");
-  sprintf(dirPathArray[AFSDIR_CLIENT_CELLSERVDB_FILEPATH_ID], "%s/%s",
-         ntClientConfigDirShort, AFSDIR_CELLSERVDB_FILE_NTCLIENT);
+    strcpy(dirPathArray[AFSDIR_CLIENT_THISCELL_FILEPATH_ID],
+          "/NoUsrViceEtcThisCellFileOnWindows");
+    sprintf(dirPathArray[AFSDIR_CLIENT_CELLSERVDB_FILEPATH_ID], "%s/%s",
+           ntClientConfigDirShort, AFSDIR_CELLSERVDB_FILE_NTCLIENT);
+    strcpy(dirPathArray[AFSDIR_CLIENT_CELLALIAS_FILEPATH_ID],
+          "/NoCellAliasOnWindows");
 #else
-  pathp = dirPathArray[AFSDIR_CLIENT_THISCELL_FILEPATH_ID];
-  AFSDIR_CLIENT_FILEPATH(pathp, AFSDIR_ETC_DIR, AFSDIR_THISCELL_FILE);
+    pathp = dirPathArray[AFSDIR_CLIENT_THISCELL_FILEPATH_ID];
+    AFSDIR_CLIENT_FILEPATH(pathp, clntEtcDir, AFSDIR_THISCELL_FILE);
 
-  pathp = dirPathArray[AFSDIR_CLIENT_CELLSERVDB_FILEPATH_ID]; 
-  AFSDIR_CLIENT_FILEPATH(pathp, AFSDIR_ETC_DIR, AFSDIR_CELLSERVDB_FILE);
+    pathp = dirPathArray[AFSDIR_CLIENT_CELLSERVDB_FILEPATH_ID];
+    AFSDIR_CLIENT_FILEPATH(pathp, clntEtcDir, AFSDIR_CELLSERVDB_FILE);
+
+    pathp = dirPathArray[AFSDIR_CLIENT_CELLALIAS_FILEPATH_ID];
+    AFSDIR_CLIENT_FILEPATH(pathp, clntEtcDir, AFSDIR_CELLALIAS_FILE);
 #endif /* AFS_NT40_ENV */
 
-  pathp = dirPathArray[AFSDIR_CLIENT_NETINFO_FILEPATH_ID];
-  AFSDIR_CLIENT_FILEPATH(pathp, AFSDIR_ETC_DIR, AFSDIR_NETINFO_FILE);
+    pathp = dirPathArray[AFSDIR_CLIENT_CONFIG_FILE_FILEPATH_ID];
+    AFSDIR_CLIENT_FILEPATH(pathp, clntEtcDir, AFSDIR_CLIENT_CONFIG_FILE);
+
+    pathp = dirPathArray[AFSDIR_CLIENT_NETINFO_FILEPATH_ID];
+    AFSDIR_CLIENT_FILEPATH(pathp, clntEtcDir, AFSDIR_NETINFO_FILE);
 
-  pathp = dirPathArray[AFSDIR_CLIENT_NETRESTRICT_FILEPATH_ID];
-  AFSDIR_CLIENT_FILEPATH(pathp, AFSDIR_ETC_DIR, AFSDIR_NETRESTRICT_FILE);
+    pathp = dirPathArray[AFSDIR_CLIENT_NETRESTRICT_FILEPATH_ID];
+    AFSDIR_CLIENT_FILEPATH(pathp, clntEtcDir, AFSDIR_NETRESTRICT_FILE);
 
-  initFlag = 1;  /* finished dirpath initialization */
-  return;
+    initFlag = 1;              /* finished dirpath initialization */
+    return;
 }
 
-/* getDirPath - returns a const char pointer to the requested string
+/* afs_getDirPath - returns a const char pointer to the requested string
  * from the internal path array.
- * string_id - index into the path array 
+ * string_id - index into the path array
  */
-const char *getDirPath(afsdir_id_t string_id)
+const char *
+afs_getDirPath(afsdir_id_t string_id)
 {
     /* check if the array has been initialized */
-    if (initFlag == 0) { /* no it's not, so initialize */
+    if (initFlag == 0) {       /* no it's not, so initialize */
 #ifdef AFS_PTHREAD_ENV
        pthread_once(&dirInit_once, initDirPathArray);
 #else
@@ -383,6 +446,78 @@ const char *getDirPath(afsdir_id_t string_id)
     return (const char *)dirPathArray[string_id];
 }
 
+#ifdef AFS_NT40_ENV
+/* getDirPath - present for ABI compatibility on Windows systems;
+ * Unix systems should not use it. */
+const char *
+getDirPath(afsdir_id_t string_id)
+{
+    return afs_getDirPath(string_id);
+}
+#endif
+
+/*
+ * LocalizePathHead() -- Make path relative to local part
+ *
+ * ConstructLocalPath takes a path and a directory that path should
+ * be considered relative to.  There are two possible cases:
+ *
+ * The path is an absolute path.  In this case, the relative path
+ * is ignored.  We check the path for a prefix that represents a
+ * canonical path, and if one is found, we adjust the path to remove
+ * the prefix and adjust the directory to which it should be
+ * considered relative to be the local version of that canonical path.
+ *
+ * The path is a relative path.  In this case, we check to see if the
+ * directory to which it is relative represents a canonical path, and
+ * if so, we adjust that directory to be the local version of that
+ * canonical path.  The relative path itself is left unchanged.
+ */
+
+/* The following array  maps cannonical parts to local parts.  It
+ * might  seem reasonable to  simply construct an array in parallel to
+ * dirpatharray  but it turns out you don't want translations for all
+ * local paths.
+*/
+
+struct canonmapping {
+    const char *canonical;
+    const char *local;
+};
+static struct canonmapping CanonicalTranslations[] = {
+    {AFSDIR_CANONICAL_SERVER_ETC_DIRPATH, AFSDIR_SERVER_ETC_DIR},
+    {AFSDIR_CANONICAL_SERVER_LOGS_DIRPATH, AFSDIR_LOGS_DIR},
+    {AFSDIR_CANONICAL_SERVER_LOCAL_DIRPATH, AFSDIR_LOCAL_DIR},
+    {AFSDIR_CANONICAL_SERVER_BIN_DIRPATH, AFSDIR_SERVER_BIN_DIR},
+    {NULL, NULL}
+};
+
+static void
+LocalizePathHead(const char **path, const char **relativeTo)
+{
+     struct canonmapping *map;
+
+     if (**path == '/') {
+        for (map = CanonicalTranslations; map->local != NULL; map++) {
+            int canonlength = strlen(map->canonical);
+            if (strncmp(*path, map->canonical, canonlength) == 0) {
+                (*path) += canonlength;
+                if (**path == '/')
+                    (*path)++;
+                *relativeTo = map->local;
+                return;
+            }
+        }
+     } else {
+        for (map = CanonicalTranslations; map->local != NULL; map++) {
+            if (strcmp(*relativeTo, map->canonical) == 0) {
+                *relativeTo = map->local;
+                return;
+            }
+        }
+     }
+}
+
 
 #ifdef AFS_NT40_ENV
 /* NT version of ConstructLocalPath() */
@@ -399,7 +534,7 @@ const char *getDirPath(afsdir_id_t string_id)
  *         2) If cpath begins with a drive letter but is not fully qualified,
  *            i.e., it is drive relative, then the function fails with EINVAL.
  *         3) If cpath begins with '/' (or '\') then the path returned is the
- *            concatenation  AFS-server-install-dir + cpath.
+ *            concatenation  AFS-server-install-dir + cpath after translating for localization.
  *        4) Otherwise the path returned is the concatenation
  *            AFS-server-install-dir + relativeTo + cpath.
  *
@@ -409,14 +544,13 @@ const char *getDirPath(afsdir_id_t string_id)
  * RETURN CODES: 0 if successful; errno code otherwise.
  */
 int
-ConstructLocalPath(const char *cpath,
-                  const char *relativeTo,
+ConstructLocalPath(const char *cpath, const char *relativeTo,
                   char **fullPathBufp)
 {
     int status = 0;
     char *newPath = NULL;
 
-    if (initFlag == 0) { /* dirpath module not yet initialized */
+    if (initFlag == 0) {       /* dirpath module not yet initialized */
 #ifdef AFS_PTHREAD_ENV
        pthread_once(&dirInit_once, initDirPathArray);
 #else
@@ -430,22 +564,19 @@ ConstructLocalPath(const char *cpath,
        cpath++;
     }
 
-    if ((((*cpath >= 'a') && (*cpath <= 'z')) ||
-        ((*cpath >= 'A') && (*cpath <= 'Z'))) &&
-       (*(cpath+1) == ':')) {
+    LocalizePathHead(&cpath, &relativeTo);
+    if ((((*cpath >= 'a') && (*cpath <= 'z'))
+        || ((*cpath >= 'A') && (*cpath <= 'Z'))) && (*(cpath + 1) == ':')) {
 
        /* cpath has a leading drive letter */
-       if ((*(cpath+2) != '/') && (*(cpath+2) != '\\')) {
+       if ((*(cpath + 2) != '/') && (*(cpath + 2) != '\\')) {
            /* drive letter relative path; this is not allowed */
            status = EINVAL;
        } else {
            /* fully qualified path; just make a copy */
-           newPath = (char *)malloc(strlen(cpath)+1);
-           if (!newPath) {
+           newPath = strdup(cpath);
+           if (!newPath)
                status = ENOMEM;
-           } else {
-               (void)strcpy(newPath, cpath);
-           }
        }
 
     } else {
@@ -456,7 +587,7 @@ ConstructLocalPath(const char *cpath,
            /* construct path relative to install directory only */
            pathSize += strlen(cpath);
 
-           newPath = (char *)malloc(pathSize);
+           newPath = malloc(pathSize);
            if (!newPath) {
                status = ENOMEM;
            } else {
@@ -466,12 +597,12 @@ ConstructLocalPath(const char *cpath,
            /* construct path relative to 'relativeTo' (and install dir) */
            pathSize += strlen(relativeTo) + 1 + strlen(cpath);
 
-           newPath = (char *)malloc(pathSize);
+           newPath = malloc(pathSize);
            if (!newPath) {
                status = ENOMEM;
            } else {
-               sprintf(newPath, "%s/%s/%s",
-                       ntServerInstallDirShort, relativeTo, cpath);
+               sprintf(newPath, "%s/%s/%s", ntServerInstallDirShort,
+                       relativeTo, cpath);
            }
        }
     }
@@ -507,14 +638,13 @@ ConstructLocalPath(const char *cpath,
  * RETURN CODES: 0 if successful; errno code otherwise.
  */
 int
-ConstructLocalPath(const char *cpath,
-                  const char *relativeTo,
+ConstructLocalPath(const char *cpath, const char *relativeTo,
                   char **fullPathBufp)
 {
     int status = 0;
     char *newPath = NULL;
 
-    if (initFlag == 0) { /* dirpath module not yet initialized */
+    if (initFlag == 0) {       /* dirpath module not yet initialized */
 #ifdef AFS_PTHREAD_ENV
        pthread_once(&dirInit_once, initDirPathArray);
 #else
@@ -528,21 +658,15 @@ ConstructLocalPath(const char *cpath,
        cpath++;
     }
 
+    LocalizePathHead(&cpath, &relativeTo);
     if (*cpath == '/') {
-       newPath = (char *)malloc(strlen(cpath) + 1);
-       if (!newPath) {
-           status = ENOMEM;
-       } else {
-           strcpy(newPath, cpath);
-       }
+       newPath = strdup(cpath);
     } else {
-       newPath = (char *)malloc(strlen(relativeTo) + 1 + strlen(cpath) + 1);
-       if (!newPath) {
-           status = ENOMEM;
-       } else {
-           sprintf(newPath, "%s/%s", relativeTo, cpath);
-       }
+       if (asprintf(&newPath, "%s/%s", relativeTo, cpath) < 0)
+           newPath = NULL;
     }
+    if (newPath == NULL)
+       status = ENOMEM;
 
     if (status == 0) {
        FilepathNormalize(newPath);
@@ -562,11 +686,9 @@ ConstructLocalPath(const char *cpath,
  *     directory.
  */
 int
-ConstructLocalBinPath(const char *cpath,
-                     char **fullPathBufp)
+ConstructLocalBinPath(const char *cpath, char **fullPathBufp)
 {
-    return ConstructLocalPath(cpath,
-                             AFSDIR_CANONICAL_SERVER_BIN_DIRPATH,
+    return ConstructLocalPath(cpath, AFSDIR_SERVER_BIN_DIRPATH,
                              fullPathBufp);
 }
 
@@ -577,10 +699,8 @@ ConstructLocalBinPath(const char *cpath,
  *     directory.
  */
 int
-ConstructLocalLogPath(const char *cpath,
-                     char **fullPathBufp)
+ConstructLocalLogPath(const char *cpath, char **fullPathBufp)
 {
-    return ConstructLocalPath(cpath,
-                             AFSDIR_CANONICAL_SERVER_LOGS_DIRPATH,
+    return ConstructLocalPath(cpath, AFSDIR_SERVER_LOGS_DIRPATH,
                              fullPathBufp);
 }