AFSD_SDKLIBS =\
largeint.lib \
netapi32.lib \
- dnsapi.lib mpr.lib \
+ dnsapi.lib mpr.lib \
rpcrt4.lib \
user32.lib \
- Dbghelp.lib \
- strsafe.lib \
- mpr.lib \
- secur32.lib \
- ole32.lib \
- oleaut32.lib
+ Dbghelp.lib \
+ strsafe.lib \
+ mpr.lib \
+ secur32.lib \
+ ole32.lib \
+ oleaut32.lib
AFSD_EXELIBS =\
$(DESTDIR)\lib\libosi.lib \
$(DESTDIR)\lib\afsrpc.lib \
- $(DESTDIR)\lib\afsrx.lib \
+ $(DESTDIR)\lib\afsrx.lib \
$(DESTDIR)\lib\afsauthent.lib \
$(DESTDIR)\lib\afs\mtafsvldb.lib \
$(DESTDIR)\lib\afs\mtafsint.lib \
$(DESTDIR)\lib\libafsconf.lib \
$(DESTDIR)\lib\afs\afsreg.lib \
- $(LANAHELPERLIB)
+ $(LANAHELPERLIB)
$(AFSD_EXEFILE): $(OUT)\afsd.obj $(AFSDOBJS) $(OUT)\afsd.res $(RXOBJS) $(AFSD_EXELIBS)
$(EXEGUILINK) $(AFSD_SDKLIBS)
#include "afsd.h"
#include <rx\rx.h>
#include <rx\rx_null.h>
-
#include <WINNT/syscfg.h>
#include "smb.h"
extern void cm_InitFreelance();
extern long cm_FreelanceRemoveMount(char *toremove);
extern long cm_FreelanceAddMount(char *filename, char *cellname, char *volume, int rw, cm_fid_t *fidp);
+extern long cm_FreelanceRemoveSymlink(char *toremove);
+extern long cm_FreelanceAddSymlink(char *filename, char *destination, cm_fid_t *fidp);
extern int cm_clearLocalMountPointChange();
extern int cm_FakeRootFid(cm_fid_t *fidp);
code = cm_ParseIoctlPath(ioctlp, userp, &req, &scp);
if (code) return code;
- cellp = cm_FindCellByID(scp->fid.cell);
- if (cellp) {
- strcpy(ioctlp->outDatap, cellp->namep);
+#ifdef AFS_FREELANCE_CLIENT
+ if ( cm_freelanceEnabled &&
+ scp->fid.cell==AFS_FAKE_ROOT_CELL_ID &&
+ scp->fid.volume==AFS_FAKE_ROOT_VOL_ID &&
+ scp->fid.vnode==0x1 && scp->fid.unique==0x1 ) {
+ strcpy(ioctlp->outDatap, "Freelance.Local.Root");
ioctlp->outDatap += strlen(ioctlp->outDatap) + 1;
code = 0;
+ } else
+#endif /* AFS_FREELANCE_CLIENT */
+ {
+ cellp = cm_FindCellByID(scp->fid.cell);
+ if (cellp) {
+ strcpy(ioctlp->outDatap, cellp->namep);
+ ioctlp->outDatap += strlen(ioctlp->outDatap) + 1;
+ code = 0;
+ }
+ else
+ code = CM_ERROR_NOSUCHCELL;
}
- else code = CM_ERROR_NOSUCHCELL;
cm_ReleaseSCache(scp);
return code;
PUSHBUTTON "OK",IDOK,22,53,45,14
PUSHBUTTON "Cancel",IDCANCEL,92,53,45,14
PUSHBUTTON "Help",9,167,53,45,14
- LTEXT "Share Name:",IDC_STATIC,18,10,29,8
+ LTEXT "Submount Name:",IDC_STATIC,18,10,29,8
+ LTEXT "Path Name:",IDC_STATIC,19,25,28,8
+END
+
+IDD_SYMBOLICLINK_ADD DIALOG DISCARDABLE 0, 0, 235, 79
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Add Symbolic Link"
+FONT 8, "MS Sans Serif"
+BEGIN
+ EDITTEXT IDC_NAME,62,8,163,12,ES_AUTOHSCROLL
+ EDITTEXT IDC_DIR,62,23,163,12,ES_AUTOHSCROLL
+ PUSHBUTTON "OK",IDOK,22,53,45,14
+ PUSHBUTTON "Cancel",IDCANCEL,92,53,45,14
+ PUSHBUTTON "Help",9,167,53,45,14
+ LTEXT "Link Name:",IDC_STATIC,18,10,29,8
LTEXT "Path Name:",IDC_STATIC,19,25,28,8
END
DDX_Text(pDX, IDC_NAME, m_strName);
DDV_MaxChars(pDX, m_strName, 63);
DDX_Text(pDX, IDC_DIR, m_strDir);
- DDV_MaxChars(pDX, m_strDir, 63);
+ DDV_MaxChars(pDX, m_strDir, 255);
//}}AFX_DATA_MAP
}