Windows: Use "Name not found" instead of "File not found"
authorJeffrey Altman <jaltman@secure-endpoints.com>
Sat, 19 Sep 2009 08:55:09 +0000 (04:55 -0400)
committerJeffrey Altman <jaltman|account-1000011@unknown>
Sat, 19 Sep 2009 18:14:38 +0000 (11:14 -0700)
When a file cannot be opened because the name of the file or
a directory in the path cannot be found, return "Name not found"
instead of "File not found".  "File not found" is the error returned
by the smb redirector to the application when the file cannot be
located in the search path.  "Name not found" indicates that the
entry is not present at the location requested.

The use of "File not found" prevented execution of applications
from the \\AFS name space on Windows 7.

LICENSE MIT

Reviewed-on: http://gerrit.openafs.org/469
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>

src/WINNT/afsd/smb.c

index 8a259a4..7e2ddec 100644 (file)
@@ -2996,10 +2996,10 @@ void smb_MapNTError(long code, unsigned long *NTStatusp)
         NTStatus = 0;
     } 
     else if (code == CM_ERROR_NOSUCHCELL) {
-        NTStatus = 0xC000000FL;        /* No such file */
+        NTStatus = 0xC0000034L;        /* Name not found */
     }
     else if (code == CM_ERROR_NOSUCHVOLUME) {
-        NTStatus = 0xC000000FL;        /* No such file */
+        NTStatus = 0xC0000034L;        /* Name not found */
     }
     else if (code == CM_ERROR_TIMEDOUT) {
 #ifdef COMMENT
@@ -3019,7 +3019,7 @@ void smb_MapNTError(long code, unsigned long *NTStatusp)
     }
     else if (code == CM_ERROR_NOSUCHFILE ||
              code == CM_ERROR_BPLUS_NOMATCH) {
-        NTStatus = 0xC000000FL;        /* No such file */
+        NTStatus = 0xC0000034L;        /* Name not found */
     }
     else if (code == CM_ERROR_NOSUCHPATH) {
         NTStatus = 0xC000003AL;        /* Object path not found */