/* fid pointer */
struct smb_fid *fidp;
+
+ /* uid pointer */
+ smb_user_t *uidp;
+
} smb_ioctl_t;
/* flags for smb_ioctl_t */
#define SMB_FID_LOOKSLIKECOPY (SMB_FID_LENGTHSETDONE | SMB_FID_MTIMESETDONE)
#define SMB_FID_NTOPEN 0x100 /* have dscp and pathp */
+/*
+ * SMB file attributes
+ */
+#define SMB_ATTR_ARCHIVE 0x20
+#define SMB_ATTR_COMPRESSED 0x800 /* file or dir is compressed */
+#define SMB_ATTR_NORMAL 0x80 /* normal file. Only valid if used alone */
+#define SMB_ATTR_HIDDEN 0x2 /* hidden file for the purpose of dir listings */
+#define SMB_ATTR_READONLY 0x1
+#define SMB_ATTR_TEMPORARY 0x100
+#define SMB_ATTR_DIRECTORY 0x10
+#define SMB_ATTR_SYSTEM 0x4
+
/* for tracking in-progress directory searches */
typedef struct smb_dirSearch {
osi_queue_t q; /* queue of all outstanding cookies */
/* type for patching directory listings */
typedef struct smb_dirListPatch {
osi_queue_t q;
- char *dptr; /* ptr to attr, time, data, sizel, sizeh */
+ char *dptr; /* ptr to attr, time, data, sizel, sizeh */
+ long flags; /* flags. See below */
cm_fid_t fid;
cm_dirEntry_t *dep; /* temp */
} 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 */
+
/* waiting lock list elements */
typedef struct smb_waitingLock {
osi_queue_t q;
void *lockp;
} smb_waitingLock_t;
-smb_waitingLock_t *smb_allWaitingLocks;
+extern smb_waitingLock_t *smb_allWaitingLocks;
typedef long (smb_proc_t)(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp);
extern void smb_UnixTimeFromDosUTime(long *unixTimep, long dosUTime);
-extern smb_vc_t *smb_FindVC(unsigned short lsn, int flags, int lana);\r
+extern smb_vc_t *smb_FindVC(unsigned short lsn, int flags, int lana);
extern void smb_ReleaseVC(smb_vc_t *vcp);
extern smb_user_t *smb_FindUID(smb_vc_t *vcp, unsigned short uid, int flags);
+extern smb_username_t *smb_FindUserByName(char *usern, char *machine, int flags);
+
+extern smb_user_t *smb_FindUserByNameThisSession(smb_vc_t *vcp, char *usern);
+
+extern smb_username_t *smb_FindUserByName(char *usern, char *machine, int flags);
+
+extern smb_user_t *smb_FindUserByNameThisSession(smb_vc_t *vcp, char *usern);
+
extern void smb_ReleaseUID(smb_user_t *uidp);
extern cm_user_t *smb_GetUser(smb_vc_t *vcp, smb_packet_t *inp);
extern int smb_FindShare(smb_vc_t *vcp, smb_packet_t *inp, char *shareName, char **pathNamep);
+extern int smb_FindShareCSCPolicy(char *shareName);
+
extern smb_dirSearch_t *smb_FindDirSearchNL(long cookie);
extern void smb_DeleteDirSearch(smb_dirSearch_t *dsp);
extern int smb_LogoffTokenTransfer;
extern unsigned long smb_LogoffTransferTimeout;
+extern int smb_maxVCPerServer; /* max # of VCs per server */
+extern int smb_maxMpxRequests; /* max # of mpx requests */
+
+extern int smb_hideDotFiles;
+extern unsigned int smb_IsDotFile(char *lastComp);
+
extern void smb_FormatResponsePacket(smb_vc_t *vcp, smb_packet_t *inp,
smb_packet_t *op);
+extern char *myCrt_2Dispatch(int i);
+
+extern char *myCrt_2Dispatch(int i);
+
extern unsigned int smb_Attributes(cm_scache_t *scp);
extern int smb_ChainFID(int fid, smb_packet_t *inp);
extern BOOL smb_IsLegalFilename(char *filename);
+extern char *smb_GetSharename(void);
+
/* include other include files */
#include "smb3.h"
#include "smb_ioctl.h"
#include "smb_iocons.h"
-\r
-cm_user_t *smb_FindOrCreateUser(smb_vc_t *vcp, char *usern);\r
+cm_user_t *smb_FindOrCreateUser(smb_vc_t *vcp, char *usern);
+
+#ifdef NOTSERVICE
+extern void smb_LogPacket(smb_packet_t *packet);
+#endif /* NOTSERVICE */
#endif /* whole file */