windows-cellservdb-location-20080202
authorJeffrey Altman <jaltman@secure-endpoints.com>
Sat, 2 Feb 2008 13:38:50 +0000 (13:38 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Sat, 2 Feb 2008 13:38:50 +0000 (13:38 +0000)
LICENSE MIT

Modify the search order for determining the location of CellServDB
and other client configuration files.

1. AFSCONF environment variable
2. registry setting
3. NEW - use All Users\AppData\OpenAFS\Client only if CellServDB exists
4. use Program Files\OpenAFS\Client

20 files changed:
src/WINNT/afsd/NTMakefile
src/WINNT/afsreg/afssw.c
src/WINNT/bosctlsvc/NTMakefile
src/WINNT/client_osi/NTMakefile
src/auth/NTMakefile
src/bozo/NTMakefile
src/bucoord/NTMakefile
src/budb/NTMakefile
src/butc/NTMakefile
src/kauth/NTMakefile
src/libadmin/adminutil/NTMakefile
src/libadmin/cfg/NTMakefile
src/libafsauthent/NTMakefile
src/ptserver/NTMakefile
src/tbutc/NTMakefile
src/ubik/NTMakefile
src/update/NTMakefile
src/vlserver/NTMakefile
src/vol/NTMakefile
src/volser/NTMakefile

index 6a4fce1..e45f16c 100644 (file)
@@ -189,7 +189,7 @@ CONF_DLLLIBS = \
     $(DESTDIR)\lib\afs\afsreg.lib
 
 $(CONF_DLLFILE): $(CONFOBJS) $(OUT)\libafsconf.res $(CONF_DLLLIBS)
-       $(DLLGUILINK) -def:libafsconf.def dnsapi.lib mpr.lib
+       $(DLLGUILINK) -def:libafsconf.def dnsapi.lib mpr.lib shell32.lib
         $(_VC_MANIFEST_EMBED_DLL)
        $(DLLPREP)
        $(COPY) $*.lib $(ILIBDIR)
@@ -249,7 +249,8 @@ LOGON_DLLSDKLIBS =\
        adsiid.lib \
        activeds.lib \
        user32.lib \
-        userenv.lib
+        userenv.lib \
+        shell32.lib
 
 $(LOGON_DLLFILE): $(LOGON_DLLOBJS) $(LOGON_DLLLIBS)
        $(DLLGUILINK) $(LOGONLINKFLAGS) -def:afslogon.def $(LOGON_DLLSDKLIBS)
@@ -329,25 +330,25 @@ EXELIBS2 = \
 
 # klog.exe
 $(EXEDIR)\klog.exe: $(OUT)\cklog.obj $(OUT)\klog.res $(EXELIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP)
 
 # tokens.exe
 $(EXEDIR)\tokens.exe: $(OUT)\ctokens.obj $(OUT)\tokens.res $(EXELIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP)
 
 # unlog.exe
 $(EXEDIR)\unlog.exe: $(OUT)\cunlog.obj $(OUT)\unlog.res $(EXELIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP)
 
 # afscpcc.exe
 $(EXEDIR)\afscpcc.exe: $(OUT)\afscpcc.obj $(OUT)\afscpcc.res $(LOGON_DLLLIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib userenv.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib userenv.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP)
 
@@ -367,7 +368,7 @@ AFSD_SDKLIBS =\
         secur32.lib \
         ole32.lib \
         oleaut32.lib \
-        iphlpapi.lib
+        iphlpapi.lib shell32.lib
 
 AFSD_EXELIBS =\
        $(DESTDIR)\lib\libosi.lib \
@@ -394,19 +395,19 @@ $(EXEDIR)\afsd_service.exe: $(OUT)\afsd_service.obj $(AFSDOBJS) $(OUT)\afsd_serv
 
 # fs.exe
 $(EXEDIR)\fs.exe: $(FSOBJS) $(OUT)\fs.res $(EXELIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP)
 
 # cmdebug.exe
 $(EXEDIR)\cmdebug.exe: $(CMDBGOBJS) $(OUT)\cmdebug.res $(EXELIBS2)
-       $(EXECONLINK) $(EXELIBS2) dnsapi.lib mpr.lib iphlpapi.lib rpcrt4.lib
+       $(EXECONLINK) $(EXELIBS2) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib rpcrt4.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP)
 
 # symlink.exe
 $(EXEDIR)\symlink.exe: $(SLOBJS) $(OUT)\symlink.res  $(EXELIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP)
 
index 9c23ba3..0fee7eb 100644 (file)
@@ -11,6 +11,7 @@
 #include <afs/stds.h>
 
 #include <windows.h>
+#include <shlobj.h>
 #include <stdlib.h>
 #include <stddef.h>
 #include <string.h>
@@ -80,7 +81,6 @@ afssw_GetClientCellServDBDir(char **bufPP)   /* [out] data buffer */
     char wdir[512];
     int tlen;
     char *path = NULL;
-    int rc;
     DWORD cbPath;
 
     cbPath = GetEnvironmentVariable("AFSCONF", NULL, 0);
@@ -111,6 +111,35 @@ afssw_GetClientCellServDBDir(char **bufPP)   /* [out] data buffer */
         return 0;
     }
 
+    /*
+     * Try to find the All Users\Application Data\OpenAFS\Client directory.
+     * If it exists and it contains a CellServDB file, return that. 
+     * Otherwise, return the Install Directory for backward compatibility.
+     */
+    if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_COMMON_APPDATA, NULL, 
+                                    SHGFP_TYPE_CURRENT, wdir)))
+    {   HANDLE fh;
+
+        tlen = (int)strlen(wdir);
+        if (wdir[tlen-1] != '\\') {
+            strncat(wdir, "\\", sizeof(wdir));
+            wdir[sizeof(wdir)-1] = '\0';
+            tlen++;
+        }
+        strncat(wdir, "OpenAFS\\Client\\CellServDB", sizeof(wdir)); 
+        wdir[sizeof(wdir)-1] = '\0';
+
+        fh = CreateFile(wdir, GENERIC_READ, FILE_SHARE_READ, NULL, 
+                        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+        if (fh != INVALID_HANDLE_VALUE) {
+            CloseHandle(fh);
+            tlen += (int)strlen("OpenAFS\\Client\\");
+            wdir[tlen] = '\0';
+            *bufPP = strdup(wdir);
+            return 0;
+        }
+    }
+
     return afssw_GetClientInstallDir(bufPP);
 }
 
index ae876da..682ce64 100644 (file)
@@ -27,7 +27,8 @@ EXELIBS =\
 
 EXESDKLIBS=\
     ole32.lib \
-    oleaut32.lib
+    oleaut32.lib \
+    shell32.lib
 
 $(EXEFILE): $(EXEOBJS) $(EXELIBS)
        $(EXECONLINK) $(EXESDKLIBS)
index 5732dad..efc3dcd 100644 (file)
@@ -46,7 +46,7 @@ EXEOBJS = \
 
 EXELIBS = \
        rpcrt4.lib rpcns4.lib \
-       Ws2_32.lib \
+       Ws2_32.lib shell32.lib \
        $(DESTDIR)\lib\libosi.lib
 
 ############################################################################
index 71893b8..8090fdf 100644 (file)
@@ -85,7 +85,7 @@ EXELIBS =\
 
 
 $(SETKEY_EXEFILE): $(SETKEY_EXEOBJS) $(EXELIBS)
-       $(EXECONLINK) dnsapi.lib
+       $(EXECONLINK) dnsapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP) 
 
index a3929a1..9ac0c89 100644 (file)
@@ -70,7 +70,7 @@ BOSSERVER_EXELIBS =\
        $(DESTDIR)\lib\cm_dns.obj
 
 $(BOSSERVER_EXEFILE): $(BOSSERVER_EXEOBJS) $(BOSSERVER_EXELIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP)
 
@@ -107,7 +107,7 @@ BOS_EXELIBS =\
 
 
 $(RS_BOS_EXEFILE): $(BOS_EXEOBJS) $(BOS_EXELIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP)
 
index 67fa54b..944db3d 100644 (file)
@@ -92,7 +92,7 @@ EXELIBS =\
        
 
 $(EXEFILE): $(EXEOBJS) $(EXERES) $(EXELIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP)
 
index 8efabb4..68d4259 100644 (file)
@@ -81,7 +81,7 @@ EXELIBS =\
 
 
 $(EXEFILE): $(EXEOBJS)  $(EXELIBS)
-       $(EXECONLINK) dnsapi.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP) 
 
index b384803..31e2dfe 100644 (file)
@@ -57,7 +57,7 @@ EXELIBS =\
 $(EXERES): butc.rc AFS_component_version_number.h
 
 $(EXEFILE): $(EXEOBJS) $(EXERES) $(EXELIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP)
 
index 5696c15..f826b3c 100644 (file)
@@ -125,7 +125,7 @@ KASERVER_EXELIBS =\
        $(DESTDIR)\lib\afs\afsprocmgmt.lib
 
 $(KASERVER): $(KASERVER_OBJS) $(AFSLIBS) $(KASERVER_EXELIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP) 
 
@@ -150,7 +150,7 @@ KAS_OBJS =\
        $(OUT)\kas.res
        
 $(KAS): $(KAS_OBJS) $(AFSLIBS) $(KAUTH_LIBFILE) $(TOKENLIB)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP) 
 
@@ -164,23 +164,23 @@ KPASSWD_OBJS =\
        $(OUT)\kpasswd.res
 
 $(KPASSWD_EXEFILE): $(KPASSWD_OBJS) $(AFSLIBS) $(KAUTH_LIBFILE) $(TOKENLIB)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP)
 
 #kpwvalid.exe
 $(OUT)\kpwvalid.exe: $(OUT)\kpwvalid.obj $(AFSLIBS) $(KAUTH_LIBFILE)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
 
 #kdb.exe - Not implemented for NT - because dbm not available on NT
 #kdb.exe: $(OUT)\kdb.obj $(AFSLIBS) $(KAUTH_LIBFILE) 
-#      $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+#      $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
 #       $(_VC_MANIFEST_EMBED_EXE)
 
 #rebuild.exe 
 $(OUT)\rebuild.exe: $(OUT)\rebuild.obj $(OUT)\kautils.obj $(AFSLIBS) 
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
 
 ############################################################################
index bdc41cd..a4ee909 100644 (file)
@@ -143,7 +143,7 @@ DLLLIBS =\
         $(DESTDIR)\lib\afs\afsreg.lib
 
 $(DLLFILE): $(DLLOBJS) $(DLLLIBS)
-       $(DLLCONLINK) /DEF:afsadminutil.def
+       $(DLLCONLINK) /DEF:afsadminutil.def shell32.lib
         $(_VC_MANIFEST_EMBED_DLL)
        $(DLLPREP)
        $(COPY) $*.lib $(ILIBDIR)
index b8c3c76..d780e3f 100644 (file)
@@ -59,7 +59,7 @@ DLLLIBS =\
         $(DESTDIR)\lib\libafsconf.lib
 
 $(DLLFILE): $(DLLOBJS) $(DLLLIBS)
-       $(DLLCONLINK) /DEF:afscfgadmin.def
+       $(DLLCONLINK) /DEF:afscfgadmin.def shell32.lib
         $(_VC_MANIFEST_EMBED_DLL)
        $(DLLPREP)
        $(COPY) $*.lib $(ILIBDIR)
index 3454623..b216940 100644 (file)
@@ -144,7 +144,7 @@ DLLLIBS =\
         $(DESTDIR)\lib\lanahelper.lib
 
 $(LIBFILE): $(DLLOBJS) $(DLLLIBS) $(RXOBJS)
-       $(DLLCONLINK) /DEF:afsauthent.def rpcrt4.lib dnsapi.lib mpr.lib secur32.lib
+       $(DLLCONLINK) /DEF:afsauthent.def rpcrt4.lib dnsapi.lib mpr.lib secur32.lib shell32.lib
         $(_VC_MANIFEST_EMBED_DLL)
        $(DLLPREP)
 
index 9274687..f94543d 100644 (file)
@@ -76,7 +76,7 @@ PTSERVER_EXELIBS =$(PTSERVER_EXELIBS) $(DESTDIR)\lib\afs\afsprocmgmt.lib
 !ENDIF
 
 $(PTSERVER): $(PTSERVER_EXEOBJS) $(RXKADOBJS) $(PTSERVER_EXELIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP) 
 
@@ -114,12 +114,12 @@ PTS_EXELIBS =\
        $(DESTDIR)\lib\cm_dns.obj
 
 $(PTS): $(PTS_EXEOBJS) $(PTS_EXELIBS) 
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP) 
 
 $(PTCLIENT): $(PTCLIENT_EXEOBJS) $(PTS_EXELIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP) 
 
@@ -211,19 +211,19 @@ clean::
 TEST_LIBS = $(PTS_EXELIBS)
 
 $(OUT)\readgroup.exe: $(OUT)\readgroup.obj $(LIBFILE) $(TEST_LIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
 
 $(OUT)\readpwd.exe: $(OUT)\readpwd.obj $(LIBFILE) $(TEST_LIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
 
 $(OUT)\testpt.exe: $(OUT)\testpt.obj $(LIBFILE) $(TEST_LIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib 
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib 
         $(_VC_MANIFEST_EMBED_EXE)
 
 $(OUT)\db_verify.exe: $(OUT)\db_verify.obj $(OUT)\pterror.obj $(OUT)\display.obj $(LIBFILE) $(TEST_LIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
 
 mkdir:
index ba1f13d..bbac7c1 100644 (file)
@@ -116,7 +116,7 @@ BUTCLIBS=$(DESTDIR)\lib\afs\afsbudb.lib  \
 $(BUTCRES): butc.rc AFS_component_version_number.h
 
 $(BUTCEXE): $(BUTCOBJS) $(BUTCRES) $(BUTCLIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP)
 
index 51f9073..59699f0 100644 (file)
@@ -68,7 +68,7 @@ UDBG_EXELIBS =\
 
 
 $(RS_UDBG_EXEFILE): $(UDBG_EXEOBJS) $(UDBG_EXELIBS)  
-       $(EXECONLINK) iphlpapi.lib
+       $(EXECONLINK) iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP)  
 
index c1cd074..f11ca9d 100644 (file)
@@ -51,7 +51,7 @@ USVR_OBJS = \
        $(OUT)\upserver.res
 
 $(UPSERVER):  $(USVR_OBJS) $(LIBS)
-       $(EXECONLINK) dnsapi.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP) 
 
@@ -67,7 +67,7 @@ UCLNT_OBJS = \
        $(OUT)\upclient.res
 
 $(UPCLIENT):  $(UCLNT_OBJS)  $(LIBS)
-       $(EXECONLINK) dnsapi.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP) 
 
index d40e1f8..9201228 100644 (file)
@@ -89,7 +89,7 @@ VLSERVER_EXECLIBS = \
 
        
 $(VLSERVER): $(VLSERVER_EXEOBJS) $(LIBFILE) $(VLSERVER_EXECLIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP) 
 
@@ -146,7 +146,7 @@ VLCLIENT_LIBS = \
        $(DESTDIR)\lib\afs\afspioctl.lib
 
 $(OUT)\vlclient.exe: $(OUT)\vlclient.obj  $(LIBFILE) $(VLSERVER_EXECLIBS) $(VLCLIENT_LIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
 
 
index 240ea42..32d519f 100644 (file)
@@ -83,7 +83,7 @@ SALVAGER_EXEOBJS =\
        $(OUT)\salvager.res
 
 $(SALVAGER): $(SALVAGER_EXEOBJS) $(EXEC_LIBS)
-       $(EXECONLINK)
+       $(EXECONLINK) shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP)
 
@@ -98,7 +98,7 @@ FSSYNC_DEBUG_EXEOBJS =\
        $(OUT)\fssync-debug.res
 
 $(FSSYNC_DEBUG): $(FSSYNC_DEBUG_EXEOBJS) $(EXEC_LIBS)
-       $(EXECONLINK)
+       $(EXECONLINK) shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP)
 
@@ -107,7 +107,7 @@ $(FSSYNC_DEBUG): $(FSSYNC_DEBUG_EXEOBJS) $(EXEC_LIBS)
 VOLINFO = $(DESTDIR)\root.server\usr\afs\bin\volinfo.exe
 
 $(VOLINFO): $(OUT)\vol-info.obj $(OUT)\physio.obj $(OUT)\volinfo.res $(EXEC_LIBS)
-       $(EXECONLINK)
+       $(EXECONLINK) shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP)
 
@@ -116,7 +116,7 @@ $(VOLINFO): $(OUT)\vol-info.obj $(OUT)\physio.obj $(OUT)\volinfo.res $(EXEC_LIBS
 VOLBLESS = $(DESTDIR)\root.server\usr\afs\bin\vol-bless.exe
 
 $(VOLBLESS): $(OUT)\vol-bless.obj $(OUT)\physio.obj $(OUT)\vol-bless.res $(EXEC_LIBS)
-       $(EXECONLINK)
+       $(EXECONLINK) shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP)
 
index fade17a..7987e7a 100644 (file)
@@ -95,7 +95,7 @@ VOLSERVER_EXELIBS = \
        $(DESTDIR)\lib\afs\afsprocmgmt.lib
 
 $(VOLSERVER_EXEFILE): $(VOLSERVER_EXEOBJS) $(VOLSERVER_EXELIBS) $(EXEC_LIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP) 
 
@@ -121,7 +121,7 @@ VOS_EXELIBS = \
        $(DESTDIR)\lib\afs\afspioctl.lib
 
 $(RS_VOS_EXEFILE): $(VOS_EXEOBJS) $(VOS_EXELIBS) $(EXEC_LIBS)
-       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
+       $(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib shell32.lib
         $(_VC_MANIFEST_EMBED_EXE)
        $(EXEPREP)