]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3: smbd: Move the strange OS/2 directory key == -1 close semantics to the caller.
authorJeremy Allison <jra@samba.org>
Mon, 15 Jul 2019 22:57:48 +0000 (15:57 -0700)
committerRalph Boehme <slow@samba.org>
Tue, 6 Aug 2019 14:23:33 +0000 (14:23 +0000)
This will allow us to change dptr_closecnum() to close outstanding fsp
handles for SMB1 later.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
source3/smbd/dir.c
source3/smbd/trans2.c

index 167a7075ee83bb36e08fe8a8b1ec21a25505d00f..03411cbe0023151512f4369e054ce5e7ce8be33b 100644 (file)
@@ -219,17 +219,6 @@ void dptr_close(struct smbd_server_connection *sconn, int *key)
        if(*key == INVALID_DPTR_KEY)
                return;
 
-       /* OS/2 seems to use -1 to indicate "close all directories" */
-       if (*key == -1) {
-               struct dptr_struct *next;
-               for(dptr = sconn->searches.dirptrs; dptr; dptr = next) {
-                       next = dptr->next;
-                       dptr_close_internal(dptr);
-               }
-               *key = INVALID_DPTR_KEY;
-               return;
-       }
-
        dptr = dptr_get(sconn, *key);
 
        if (!dptr) {
index 5b99240e9e88e890acaf4b4ade4aec28f6139bbf..c75f8e277d55b6f9398dce6895cbee78db2827a5 100644 (file)
@@ -9647,7 +9647,15 @@ void reply_findclose(struct smb_request *req)
 
        DEBUG(3,("reply_findclose, dptr_num = %d\n", dptr_num));
 
-       dptr_close(sconn, &dptr_num);
+       /*
+        * OS/2 seems to use -1 to indicate "close all directories"
+        * This has to mean on this specific connection struct.
+        */
+       if (dptr_num == -1) {
+               dptr_closecnum(req->conn);
+       } else {
+               dptr_close(sconn, &dptr_num);
+       }
 
        reply_outbuf(req, 0, 0);