Author: vlendec Date: 2007-01-08 15:36:33 +0000 (Mon, 08 Jan 2007) New Revision: 20612
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=20612 Log: A checkin I've wanted to do for ages: For bad_path==False set_bad_path_error is equivalent to UNIX_ERROR. Expand the last reference. Lets see if I can kill that as well :-) Volker Modified: branches/SAMBA_3_0/source/smbd/nttrans.c branches/SAMBA_3_0/source/smbd/reply.c branches/SAMBA_3_0/source/smbd/trans2.c Changeset: Modified: branches/SAMBA_3_0/source/smbd/nttrans.c =================================================================== --- branches/SAMBA_3_0/source/smbd/nttrans.c 2007-01-08 15:26:17 UTC (rev 20611) +++ branches/SAMBA_3_0/source/smbd/nttrans.c 2007-01-08 15:36:33 UTC (rev 20612) @@ -639,8 +639,7 @@ if (!check_name(fname,conn)) { restore_case_semantics(conn, file_attributes); END_PROFILE(SMBntcreateX); - return set_bad_path_error(errno, False, outbuf, - ERRDOS,ERRbadpath); + return UNIXERROR(ERRDOS, ERRbadpath); } #if 0 @@ -1266,7 +1265,7 @@ /* All file access must go through check_name() */ if (!check_name(fname,conn)) { restore_case_semantics(conn, file_attributes); - return set_bad_path_error(errno, False, outbuf, ERRDOS,ERRbadpath); + return UNIXERROR(ERRDOS, ERRbadpath); } #if 0 Modified: branches/SAMBA_3_0/source/smbd/reply.c =================================================================== --- branches/SAMBA_3_0/source/smbd/reply.c 2007-01-08 15:26:17 UTC (rev 20611) +++ branches/SAMBA_3_0/source/smbd/reply.c 2007-01-08 15:36:33 UTC (rev 20612) @@ -948,8 +948,7 @@ if (!ok) { END_PROFILE(SMBgetatr); - return set_bad_path_error(errno, False, outbuf, - ERRDOS,ERRbadfile); + return UNIXERROR(ERRDOS, ERRbadfile); } outsize = set_message(outbuf,10,0,True); @@ -1024,15 +1023,13 @@ if (file_set_dosmode(conn,fname,mode,&sbuf,False) != 0) { END_PROFILE(SMBsetatr); - return set_bad_path_error(errno, False, outbuf, - ERRDOS, ERRnoaccess); + return UNIXERROR(ERRDOS, ERRnoaccess); } } if (!set_filetime(conn,fname,mtime)) { END_PROFILE(SMBsetatr); - return set_bad_path_error(errno, False, outbuf, - ERRDOS, ERRnoaccess); + return UNIXERROR(ERRDOS, ERRnoaccess); } outsize = set_message(outbuf,0,0,False); @@ -1212,7 +1209,10 @@ if (dptr_num < 0) { if(dptr_num == -2) { END_PROFILE(SMBsearch); - return set_bad_path_error(errno, bad_path, outbuf, ERRDOS, ERRnofids); + if ((errno == ENOENT) && bad_path) { + return ERROR_NT(NT_STATUS_OBJECT_PATH_NOT_FOUND); + } + return UNIXERROR(ERRDOS, ERRnofids); } END_PROFILE(SMBsearch); return ERROR_DOS(ERRDOS,ERRnofids); @@ -4007,8 +4007,7 @@ if (!ok) { END_PROFILE(SMBrmdir); - return set_bad_path_error(errno, False, outbuf, - ERRDOS, ERRbadpath); + return UNIXERROR(ERRDOS, ERRbadpath); } outsize = set_message(outbuf,0,0,False); Modified: branches/SAMBA_3_0/source/smbd/trans2.c =================================================================== --- branches/SAMBA_3_0/source/smbd/trans2.c 2007-01-08 15:26:17 UTC (rev 20611) +++ branches/SAMBA_3_0/source/smbd/trans2.c 2007-01-08 15:36:33 UTC (rev 20612) @@ -807,8 +807,7 @@ } if (!check_name(fname,conn)) { - return set_bad_path_error(errno, False, outbuf, - ERRDOS, ERRnoaccess); + return UNIXERROR(ERRDOS, ERRnoaccess); } if (open_ofun == 0) { @@ -1726,8 +1725,7 @@ return ERROR_NT(NT_STATUS_OBJECT_PATH_NOT_FOUND); } if(!check_name(directory,conn)) { - return set_bad_path_error(errno, False, outbuf, - ERRDOS,ERRbadpath); + return UNIXERROR(ERRDOS, ERRbadpath); } p = strrchr_m(directory,'/'); @@ -2704,21 +2702,6 @@ return outsize; } -/**************************************************************************** - Utility function to set bad path error. -****************************************************************************/ - -int set_bad_path_error(int err, BOOL bad_path, char *outbuf, int def_class, uint32 def_code) -{ - DEBUG(10,("set_bad_path_error: err = %d bad_path = %d\n", - err, (int)bad_path )); - - if ((err == ENOENT) && bad_path) { - return ERROR_NT(NT_STATUS_OBJECT_PATH_NOT_FOUND); - } - return UNIXERROR(def_class,def_code); -} - #if defined(HAVE_POSIX_ACLS) /**************************************************************************** Utility function to count the number of entries in a POSIX acl. @@ -2908,14 +2891,11 @@ /* Always do lstat for UNIX calls. */ if (SMB_VFS_LSTAT(conn,fname,&sbuf)) { DEBUG(3,("call_trans2qfilepathinfo: SMB_VFS_LSTAT of %s failed (%s)\n",fname,strerror(errno))); - return set_bad_path_error( - errno, False, outbuf, - ERRDOS,ERRbadpath); + return UNIXERROR(ERRDOS, ERRbadpath); } } else if (SMB_VFS_STAT(conn,fname,&sbuf)) { DEBUG(3,("call_trans2qfilepathinfo: SMB_VFS_STAT of %s failed (%s)\n",fname,strerror(errno))); - return set_bad_path_error(errno, False, outbuf, - ERRDOS,ERRbadpath); + return UNIXERROR(ERRDOS, ERRbadpath); } delete_pending = get_delete_on_close_flag(sbuf.st_dev, sbuf.st_ino); @@ -2959,21 +2939,18 @@ } if (!check_name(fname,conn)) { DEBUG(3,("call_trans2qfilepathinfo: fileinfo of %s failed (%s)\n",fname,strerror(errno))); - return set_bad_path_error(errno, False, outbuf, - ERRDOS,ERRbadpath); + return UNIXERROR(ERRDOS, ERRbadpath); } if (INFO_LEVEL_IS_UNIX(info_level)) { /* Always do lstat for UNIX calls. */ if (SMB_VFS_LSTAT(conn,fname,&sbuf)) { DEBUG(3,("call_trans2qfilepathinfo: SMB_VFS_LSTAT of %s failed (%s)\n",fname,strerror(errno))); - return set_bad_path_error(errno, False, outbuf, - ERRDOS,ERRbadpath); + return UNIXERROR(ERRDOS, ERRbadpath); } } else if (!VALID_STAT(sbuf) && SMB_VFS_STAT(conn,fname,&sbuf) && (info_level != SMB_INFO_IS_NAME_VALID)) { DEBUG(3,("call_trans2qfilepathinfo: SMB_VFS_STAT of %s failed (%s)\n",fname,strerror(errno))); - return set_bad_path_error(errno, False, outbuf, - ERRDOS,ERRbadpath); + return UNIXERROR(ERRDOS, ERRbadpath); } delete_pending = get_delete_on_close_flag(sbuf.st_dev, sbuf.st_ino); @@ -3819,8 +3796,7 @@ pstrcpy(fname, fsp->fsp_name); if (SMB_VFS_STAT(conn,fname,&sbuf) != 0) { DEBUG(3,("call_trans2setfilepathinfo: fileinfo of %s failed (%s)\n",fname,strerror(errno))); - return set_bad_path_error(errno, False, outbuf, - ERRDOS,ERRbadpath); + return UNIXERROR(ERRDOS, ERRbadpath); } } else if (fsp && fsp->print_file) { /* @@ -3872,13 +3848,11 @@ if(!VALID_STAT(sbuf) && !INFO_LEVEL_IS_UNIX(info_level)) { DEBUG(3,("call_trans2setfilepathinfo: stat of %s failed (%s)\n", fname, strerror(errno))); - return set_bad_path_error(errno, False, outbuf, - ERRDOS,ERRbadpath); + return UNIXERROR(ERRDOS, ERRbadpath); } if(!check_name(fname, conn)) { - return set_bad_path_error(errno, False, outbuf, - ERRDOS,ERRbadpath); + return UNIXERROR(ERRDOS, ERRbadpath); } } @@ -4871,8 +4845,7 @@ if (!check_name(directory,conn)) { DEBUG(5,("call_trans2mkdir error (%s)\n", strerror(errno))); - return set_bad_path_error(errno, False, outbuf, ERRDOS, - ERRnoaccess); + return UNIXERROR(ERRDOS, ERRnoaccess); } status = create_directory(conn, directory);