svn commit: samba r20612 - in branches/SAMBA_3_0/source/smbd: .

vlendec at samba.org vlendec at samba.org
Mon Jan 8 15:36:34 GMT 2007


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);



More information about the samba-cvs mailing list