Don't return DOS error on SMBsearch return if using NT error codes (NT1
authorJeremy Allison <jra@samba.org>
Tue, 19 Aug 2003 01:02:41 +0000 (01:02 +0000)
committerJeremy Allison <jra@samba.org>
Tue, 19 Aug 2003 01:02:41 +0000 (01:02 +0000)
protocol level). Fix for Samba4 tester.
Jeremy.

source/smbd/reply.c

index 34200b0cab83fb3b5241b87be2b10d636aef02f3..32b9c39aed900a6ce164a11414b068782505485f 100644 (file)
@@ -768,21 +768,23 @@ int reply_search(connection_struct *conn, char *inbuf,char *outbuf, int dum_size
 
   SearchEmpty:
 
-       if (numentries == 0 || !ok) {
-               SCVAL(outbuf,smb_rcls,ERRDOS);
-               SSVAL(outbuf,smb_err,ERRnofiles);
-               dptr_close(&dptr_num);
-       }
-
        /* If we were called as SMBffirst with smb_search_id == NULL
                and no entries were found then return error and close dirptr 
                (X/Open spec) */
 
        if(ok && expect_close && numentries == 0 && status_len == 0) {
-               SCVAL(outbuf,smb_rcls,ERRDOS);
-               SSVAL(outbuf,smb_err,ERRnofiles);
+               if (Protocol < PROTOCOL_NT1) {
+                       SCVAL(outbuf,smb_rcls,ERRDOS);
+                       SSVAL(outbuf,smb_err,ERRnofiles);
+               }
                /* Also close the dptr - we know it's gone */
                dptr_close(&dptr_num);
+       } else if (numentries == 0 || !ok) {
+               if (Protocol < PROTOCOL_NT1) {
+                       SCVAL(outbuf,smb_rcls,ERRDOS);
+                       SSVAL(outbuf,smb_err,ERRnofiles);
+               }
+               dptr_close(&dptr_num);
        }
 
        /* If we were called as SMBfunique, then we can close the dirptr now ! */