Author: vlendec Date: 2005-08-23 09:21:05 +0000 (Tue, 23 Aug 2005) New Revision: 9508
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9508 Log: mkdir does return NT_STATUS_NOT_A_DIRECTORY as a 32-bit error code if you try to mkdir a:b, and it does return 267 (ERRbaddirectory) if you negotiate DOS error codes. Tested with smbclient (no torture test, sorry...) Is this worth transferring to 3_0 individually? Volker Modified: trunk/source/libsmb/errormap.c trunk/source/libsmb/smberr.c trunk/source/smbd/open.c trunk/source/smbd/reply.c Changeset: Modified: trunk/source/libsmb/errormap.c =================================================================== --- trunk/source/libsmb/errormap.c 2005-08-23 08:02:24 UTC (rev 9507) +++ trunk/source/libsmb/errormap.c 2005-08-23 09:21:05 UTC (rev 9508) @@ -338,7 +338,7 @@ {ERRDOS, 203, NT_STATUS(0xc0000100)}, {ERRDOS, 145, NT_STATUS_DIRECTORY_NOT_EMPTY}, {ERRHRD, ERRgeneral, NT_STATUS_FILE_CORRUPT_ERROR}, - {ERRDOS, 267, NT_STATUS_NOT_A_DIRECTORY}, + {ERRDOS, ERRbaddirectory, NT_STATUS_NOT_A_DIRECTORY}, {ERRHRD, ERRgeneral, NT_STATUS_BAD_LOGON_SESSION_STATE}, {ERRHRD, ERRgeneral, NT_STATUS_LOGON_SESSION_COLLISION}, {ERRDOS, 206, NT_STATUS_NAME_TOO_LONG}, Modified: trunk/source/libsmb/smberr.c =================================================================== --- trunk/source/libsmb/smberr.c 2005-08-23 08:02:24 UTC (rev 9507) +++ trunk/source/libsmb/smberr.c 2005-08-23 09:21:05 UTC (rev 9508) @@ -75,6 +75,7 @@ {"ERRlogonfailure",ERRlogonfailure,"Logon failure"}, {"ERRdiskfull",ERRdiskfull,"Disk full"}, {"ERRgeneral",ERRgeneral, "General failure"}, + {"ERRbaddirectory", ERRbaddirectory, "Bad directory name"}, {"ERRunknownlevel",ERRunknownlevel, "Unknown info level"}, {NULL,-1,NULL}}; Modified: trunk/source/smbd/open.c =================================================================== --- trunk/source/smbd/open.c 2005-08-23 08:02:24 UTC (rev 9507) +++ trunk/source/smbd/open.c 2005-08-23 09:21:05 UTC (rev 9508) @@ -1833,9 +1833,7 @@ if (is_ntfs_stream_name(fname)) { DEBUG(0,("open_directory: %s is a stream name!\n", fname )); - /* NB. Is the DOS error ERRbadpath or ERRbaddirectory ? */ - set_saved_error_triple(ERRDOS, ERRbadpath, - NT_STATUS_NOT_A_DIRECTORY); + set_saved_ntstatus(NT_STATUS_NOT_A_DIRECTORY); return NULL; } Modified: trunk/source/smbd/reply.c =================================================================== --- trunk/source/smbd/reply.c 2005-08-23 08:02:24 UTC (rev 9507) +++ trunk/source/smbd/reply.c 2005-08-23 09:21:05 UTC (rev 9508) @@ -3738,7 +3738,7 @@ if( is_ntfs_stream_name(directory)) { DEBUG(5,("reply_mkdir: failing create on filename %s with colon in name\n", directory)); END_PROFILE(SMBmkdir); - return ERROR_FORCE_DOS(ERRDOS, ERRinvalidname); + return ERROR_NT(NT_STATUS_NOT_A_DIRECTORY); } status = mkdir_internal(conn, directory,bad_path);
