diff options
author | Jeremy Allison <jra@samba.org> | 1998-07-29 00:27:23 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 1998-07-29 00:27:23 +0000 |
commit | c48b3fce6be6d5d952cbcda0ddae223dda5a576f (patch) | |
tree | 7159458adde4cc2a2f9991727de74340e4829b8d /source3/smbd | |
parent | 83951dd37685ac8c5e45f44270d932250f785be5 (diff) | |
download | samba-c48b3fce6be6d5d952cbcda0ddae223dda5a576f.tar.gz samba-c48b3fce6be6d5d952cbcda0ddae223dda5a576f.tar.bz2 samba-c48b3fce6be6d5d952cbcda0ddae223dda5a576f.zip |
locking.c: Print messages when we downgrade a lock.
reply.c: Do the same mask expansion we do in trans2.c - needed for Win98.
trans2.c: Make the mask expansion into a function call now we have to
do it twice.
Jeremy.
(This used to be commit 7b3a9d6285cc0d1967155a68845e28c6296ecc67)
Diffstat (limited to 'source3/smbd')
-rw-r--r-- | source3/smbd/reply.c | 3 | ||||
-rw-r--r-- | source3/smbd/trans2.c | 48 |
2 files changed, 32 insertions, 19 deletions
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index c9daf14b4b..f05ba2eee6 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -1081,6 +1081,9 @@ int reply_search(char *inbuf,char *outbuf, int dum_size, int dum_buffsize) } } + /* Convert the formatted mask. (This code lives in trans2.c) */ + mask_convert(mask); + { for (p=mask; *p; p++) { diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c index a0aa65601f..2fcab32afb 100644 --- a/source3/smbd/trans2.c +++ b/source3/smbd/trans2.c @@ -574,6 +574,33 @@ static int get_lanman2_dir_entry(int cnum,char *path_mask,int dirtype,int info_l } /**************************************************************************** + Convert the directory masks formated for the wire. +****************************************************************************/ + +void mask_convert( char *mask) +{ + /* + * We know mask is a pstring. + */ + char *p = mask; + while (*p) { + if (*p == '<') { + pstring expnd; + if(p[1] != '"' && p[1] != '.') { + pstrcpy( expnd, p+1 ); + *p++ = '*'; + *p = '.'; + safe_strcpy( p+1, expnd, sizeof(pstring) - (p - mask) - 2); + } else + *p = '*'; + } + if (*p == '>') *p = '?'; + if (*p == '"') *p = '.'; + p++; + } +} + +/**************************************************************************** reply to a TRANS2_FINDFIRST ****************************************************************************/ static int call_trans2findfirst(char *inbuf, char *outbuf, int bufsize, int cnum, @@ -678,25 +705,8 @@ static int call_trans2findfirst(char *inbuf, char *outbuf, int bufsize, int cnum if (dptr_num < 0) return(ERROR(ERRDOS,ERRbadfile)); - /* convert the formatted masks */ - { - p = mask; - while (*p) { - if (*p == '<') { - pstring expnd; - if(p[1] != '"' && p[1] != '.') { - pstrcpy( expnd, p+1 ); - *p++ = '*'; - *p = '.'; - safe_strcpy( p+1, expnd, sizeof(mask) - (p - mask) - 2); - } else - *p = '*'; - } - if (*p == '>') *p = '?'; - if (*p == '"') *p = '.'; - p++; - } - } + /* Convert the formatted mask. */ + mask_convert(mask); #if 0 /* JRA */ /* |