summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2005-05-01 10:00:14 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:56:45 -0500
commit0483dd60ded1239d8a3ab46598e164416f7668b8 (patch)
tree25dc1031e677f26fe88c0388315a7cf09943d757 /source3/smbd
parent431a28a3151f6cb8f9e1de769da11a22c379d9d8 (diff)
downloadsamba-0483dd60ded1239d8a3ab46598e164416f7668b8.tar.gz
samba-0483dd60ded1239d8a3ab46598e164416f7668b8.tar.bz2
samba-0483dd60ded1239d8a3ab46598e164416f7668b8.zip
r6550: Move function make_dir_struct from util to dir.c
Jeremy. (This used to be commit 5b86e3dcdf31dec61449d2faede61d24c3a8d79f)
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/dir.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/source3/smbd/dir.c b/source3/smbd/dir.c
index 3c93c188ff..95a5903c14 100644
--- a/source3/smbd/dir.c
+++ b/source3/smbd/dir.c
@@ -64,6 +64,40 @@ static int dirhandles_open = 0;
#define INVALID_DPTR_KEY (-3)
/****************************************************************************
+ Make a dir struct.
+****************************************************************************/
+
+void make_dir_struct(char *buf, const char *mask, const char *fname,SMB_OFF_T size,int mode,time_t date, BOOL uc)
+{
+ char *p;
+ pstring mask2;
+
+ pstrcpy(mask2,mask);
+
+ if ((mode & aDIR) != 0)
+ size = 0;
+
+ memset(buf+1,' ',11);
+ if ((p = strchr_m(mask2,'.')) != NULL) {
+ *p = 0;
+ push_ascii(buf+1,mask2,8, 0);
+ push_ascii(buf+9,p+1,3, 0);
+ *p = '.';
+ } else
+ push_ascii(buf+1,mask2,11, 0);
+
+ memset(buf+21,'\0',DIR_STRUCT_SIZE-21);
+ SCVAL(buf,21,mode);
+ put_dos_date(buf,22,date);
+ SSVAL(buf,26,size & 0xFFFF);
+ SSVAL(buf,28,(size >> 16)&0xFFFF);
+ /* We only uppercase if FLAGS2_LONG_PATH_COMPONENTS is zero in the input buf.
+ Strange, but verified on W2K3. Needed for OS/2. JRA. */
+ push_ascii(buf+30,fname,12, uc ? STR_UPPER : 0);
+ DEBUG(8,("put name [%s] from [%s] into dir struct\n",buf+30, fname));
+}
+
+/****************************************************************************
Initialise the dir bitmap.
****************************************************************************/