diff options
author | Jeremy Allison <jra@samba.org> | 2005-05-01 10:00:14 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:56:45 -0500 |
commit | 0483dd60ded1239d8a3ab46598e164416f7668b8 (patch) | |
tree | 25dc1031e677f26fe88c0388315a7cf09943d757 /source3/smbd | |
parent | 431a28a3151f6cb8f9e1de769da11a22c379d9d8 (diff) | |
download | samba-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.c | 34 |
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. ****************************************************************************/ |