svn commit: samba r24393 - in branches/SAMBA_3_2/source/smbd: .

vlendec at samba.org vlendec at samba.org
Tue Aug 14 06:21:04 GMT 2007


Author: vlendec
Date: 2007-08-14 06:21:02 +0000 (Tue, 14 Aug 2007)
New Revision: 24393

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=24393

Log:
Convert call_nt_transact_set_user_quota to the new API
Modified:
   branches/SAMBA_3_2/source/smbd/nttrans.c


Changeset:
Modified: branches/SAMBA_3_2/source/smbd/nttrans.c
===================================================================
--- branches/SAMBA_3_2/source/smbd/nttrans.c	2007-08-14 06:18:55 UTC (rev 24392)
+++ branches/SAMBA_3_2/source/smbd/nttrans.c	2007-08-14 06:21:02 UTC (rev 24393)
@@ -2983,10 +2983,15 @@
  Reply to set user quota
 ****************************************************************************/
 
-static int call_nt_transact_set_user_quota(connection_struct *conn, char *inbuf, char *outbuf, int length, int bufsize, 
-                                  uint16 **ppsetup, uint32 setup_count,
-				  char **ppparams, uint32 parameter_count,
-				  char **ppdata, uint32 data_count, uint32 max_data_count)
+static void call_nt_transact_set_user_quota(connection_struct *conn,
+					    struct smb_request *req,
+					    uint16 **ppsetup,
+					    uint32 setup_count,
+					    char **ppparams,
+					    uint32 parameter_count,
+					    char **ppdata,
+					    uint32 data_count,
+					    uint32 max_data_count)
 {
 	char *params = *ppparams;
 	char *pdata = *ppdata;
@@ -3002,7 +3007,8 @@
 	if (current_user.ut.uid != 0) {
 		DEBUG(1,("set_user_quota: access_denied service [%s] user [%s]\n",
 			lp_servicename(SNUM(conn)),conn->user));
-		return ERROR_DOS(ERRDOS,ERRnoaccess);
+		reply_doserror(req, ERRDOS, ERRnoaccess);
+		return;
 	}
 
 	/*
@@ -3011,19 +3017,22 @@
 
 	if (parameter_count < 2) {
 		DEBUG(0,("TRANSACT_SET_USER_QUOTA: requires %d >= 2 bytes parameters\n",parameter_count));
-		return ERROR_DOS(ERRDOS,ERRinvalidparam);
+		reply_doserror(req, ERRDOS, ERRinvalidparam);
+		return;
 	}
 	
 	/* maybe we can check the quota_fnum */
 	fsp = file_fsp(SVAL(params,0));
 	if (!CHECK_NTQUOTA_HANDLE_OK(fsp,conn)) {
 		DEBUG(3,("TRANSACT_GET_USER_QUOTA: no valid QUOTA HANDLE\n"));
-		return ERROR_NT(NT_STATUS_INVALID_HANDLE);
+		reply_nterror(req, NT_STATUS_INVALID_HANDLE);
+		return;
 	}
 
 	if (data_count < 40) {
 		DEBUG(0,("TRANSACT_SET_USER_QUOTA: requires %d >= %d bytes data\n",data_count,40));
-		return ERROR_DOS(ERRDOS,ERRunknownlevel);		
+		reply_doserror(req, ERRDOS, ERRunknownlevel);
+		return;
 	}
 
 	/* offset to next quota record.
@@ -3036,7 +3045,8 @@
 
 	if (data_count < 40+sid_len) {
 		DEBUG(0,("TRANSACT_SET_USER_QUOTA: requires %d >= %lu bytes data\n",data_count,(unsigned long)40+sid_len));
-		return ERROR_DOS(ERRDOS,ERRunknownlevel);		
+		reply_doserror(req, ERRDOS, ERRunknownlevel);
+		return;
 	}
 
 	/* unknown 8 bytes in pdata 
@@ -3052,7 +3062,8 @@
 		((qt.usedspace != 0xFFFFFFFF)||
 		(IVAL(pdata,20)!=0xFFFFFFFF))) {
 		/* more than 32 bits? */
-		return ERROR_DOS(ERRDOS,ERRunknownlevel);
+		reply_doserror(req, ERRDOS, ERRunknownlevel);
+		return;
 	}
 #endif /* LARGE_SMB_OFF_T */
 
@@ -3065,7 +3076,8 @@
 		((qt.softlim != 0xFFFFFFFF)||
 		(IVAL(pdata,28)!=0xFFFFFFFF))) {
 		/* more than 32 bits? */
-		return ERROR_DOS(ERRDOS,ERRunknownlevel);
+		reply_doserror(req, ERRDOS, ERRunknownlevel);
+		return;
 	}
 #endif /* LARGE_SMB_OFF_T */
 
@@ -3078,7 +3090,8 @@
 		((qt.hardlim != 0xFFFFFFFF)||
 		(IVAL(pdata,36)!=0xFFFFFFFF))) {
 		/* more than 32 bits? */
-		return ERROR_DOS(ERRDOS,ERRunknownlevel);
+		reply_doserror(req, ERRDOS, ERRunknownlevel);
+		return;
 	}
 #endif /* LARGE_SMB_OFF_T */
 	
@@ -3088,13 +3101,12 @@
 	/* 44 unknown bytes left... */
 
 	if (vfs_set_ntquota(fsp, SMB_USER_QUOTA_TYPE, &sid, &qt)!=0) {
-		return ERROR_DOS(ERRSRV,ERRerror);	
+		reply_doserror(req, ERRSRV, ERRerror);
+		return;
 	}
 
-	send_nt_replies(inbuf, outbuf, bufsize, NT_STATUS_OK, params, param_len,
-			pdata, data_len);
-
-	return -1;
+	send_nt_replies_new(req, NT_STATUS_OK, params, param_len,
+			    pdata, data_len);
 }
 #endif /* HAVE_SYS_QUOTAS */
 
@@ -3233,28 +3245,13 @@
 
 		case NT_TRANSACT_SET_USER_QUOTA:
 		{
-			char *inbuf, *outbuf;
-			int size, bufsize;
-
 			START_PROFILE(NT_transact_set_user_quota);
-
-			if (!reply_prep_legacy(req, &inbuf, &outbuf, &size,
-					       &bufsize)) {
-				reply_nterror(req, NT_STATUS_NO_MEMORY);
-				END_PROFILE(SMBnttrans);
-				return;
-			}
-
-			reply_post_legacy(
-				req,
-				call_nt_transact_set_user_quota(
-					conn, inbuf, outbuf,
-					size, bufsize,
-					&state->setup, state->setup_count,
-					&state->param, state->total_param,
-					&state->data, state->total_data,
-					state->max_data_return));
-
+			call_nt_transact_set_user_quota(
+				conn, req,
+				&state->setup, state->setup_count,
+				&state->param, state->total_param,
+				&state->data, state->total_data,
+				state->max_data_return);
 			END_PROFILE(NT_transact_set_user_quota);
 			break;					
 		}



More information about the samba-cvs mailing list