summaryrefslogtreecommitdiff
path: root/source3/smbd/trans2.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>1998-07-29 00:27:23 +0000
committerJeremy Allison <jra@samba.org>1998-07-29 00:27:23 +0000
commitc48b3fce6be6d5d952cbcda0ddae223dda5a576f (patch)
tree7159458adde4cc2a2f9991727de74340e4829b8d /source3/smbd/trans2.c
parent83951dd37685ac8c5e45f44270d932250f785be5 (diff)
downloadsamba-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/trans2.c')
-rw-r--r--source3/smbd/trans2.c48
1 files changed, 29 insertions, 19 deletions
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 */
/*