$(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)
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)
# 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)
secur32.lib \
ole32.lib \
oleaut32.lib \
- iphlpapi.lib
+ iphlpapi.lib shell32.lib
AFSD_EXELIBS =\
$(DESTDIR)\lib\libosi.lib \
# 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)
#include <afs/stds.h>
#include <windows.h>
+#include <shlobj.h>
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
char wdir[512];
int tlen;
char *path = NULL;
- int rc;
DWORD cbPath;
cbPath = GetEnvironmentVariable("AFSCONF", NULL, 0);
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);
}
EXESDKLIBS=\
ole32.lib \
- oleaut32.lib
+ oleaut32.lib \
+ shell32.lib
$(EXEFILE): $(EXEOBJS) $(EXELIBS)
$(EXECONLINK) $(EXESDKLIBS)
EXELIBS = \
rpcrt4.lib rpcns4.lib \
- Ws2_32.lib \
+ Ws2_32.lib shell32.lib \
$(DESTDIR)\lib\libosi.lib
############################################################################
$(SETKEY_EXEFILE): $(SETKEY_EXEOBJS) $(EXELIBS)
- $(EXECONLINK) dnsapi.lib
+ $(EXECONLINK) dnsapi.lib shell32.lib
$(_VC_MANIFEST_EMBED_EXE)
$(EXEPREP)
$(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)
$(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)
$(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)
$(EXEFILE): $(EXEOBJS) $(EXELIBS)
- $(EXECONLINK) dnsapi.lib iphlpapi.lib
+ $(EXECONLINK) dnsapi.lib iphlpapi.lib shell32.lib
$(_VC_MANIFEST_EMBED_EXE)
$(EXEPREP)
$(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)
$(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)
$(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)
$(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)
############################################################################
$(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)
$(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)
$(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)
!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)
$(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)
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:
$(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)
$(RS_UDBG_EXEFILE): $(UDBG_EXEOBJS) $(UDBG_EXELIBS)
- $(EXECONLINK) iphlpapi.lib
+ $(EXECONLINK) iphlpapi.lib shell32.lib
$(_VC_MANIFEST_EMBED_EXE)
$(EXEPREP)
$(OUT)\upserver.res
$(UPSERVER): $(USVR_OBJS) $(LIBS)
- $(EXECONLINK) dnsapi.lib iphlpapi.lib
+ $(EXECONLINK) dnsapi.lib iphlpapi.lib shell32.lib
$(_VC_MANIFEST_EMBED_EXE)
$(EXEPREP)
$(OUT)\upclient.res
$(UPCLIENT): $(UCLNT_OBJS) $(LIBS)
- $(EXECONLINK) dnsapi.lib iphlpapi.lib
+ $(EXECONLINK) dnsapi.lib iphlpapi.lib shell32.lib
$(_VC_MANIFEST_EMBED_EXE)
$(EXEPREP)
$(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)
$(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)
$(OUT)\salvager.res
$(SALVAGER): $(SALVAGER_EXEOBJS) $(EXEC_LIBS)
- $(EXECONLINK)
+ $(EXECONLINK) shell32.lib
$(_VC_MANIFEST_EMBED_EXE)
$(EXEPREP)
$(OUT)\fssync-debug.res
$(FSSYNC_DEBUG): $(FSSYNC_DEBUG_EXEOBJS) $(EXEC_LIBS)
- $(EXECONLINK)
+ $(EXECONLINK) shell32.lib
$(_VC_MANIFEST_EMBED_EXE)
$(EXEPREP)
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)
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)
$(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)
$(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)