1
0
mirror of https://github.com/samba-team/samba.git synced 2025-12-11 08:23:49 +03:00

r6550: Move function make_dir_struct from util to dir.c

Jeremy.
This commit is contained in:
Jeremy Allison
2005-05-01 10:00:14 +00:00
committed by Gerald (Jerry) Carter
parent 927681c8c4
commit 5b86e3dcdf
2 changed files with 34 additions and 34 deletions

View File

@@ -603,40 +603,6 @@ void unix_clean_name(char *s)
trim_string(s,NULL,"/..");
}
/****************************************************************************
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));
}
/*******************************************************************
Close the low 3 fd's and open dev/null in their place.
********************************************************************/

View File

@@ -63,6 +63,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.
****************************************************************************/