r24151: Convert call_trans2getdfsreferral to the new API
authorVolker Lendecke <vlendec@samba.org>
Fri, 3 Aug 2007 10:51:59 +0000 (10:51 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:29:14 +0000 (12:29 -0500)
(This used to be commit 642c58648b2468544e9488cbffe1a8b236949bcc)

source3/smbd/trans2.c

index ce52ba9e703560f4fd772c08506259137077973c..01b1278c2f5ecfa23fa2cd7ecf233517ad054a67 100644 (file)
@@ -6689,9 +6689,11 @@ static void call_trans2findnotifynext(connection_struct *conn,
  Reply to a TRANS2_GET_DFS_REFERRAL - Shirish Kalele <kalele@veritas.com>.
 ****************************************************************************/
 
-static int call_trans2getdfsreferral(connection_struct *conn, char* inbuf, char* outbuf, int length, int bufsize,
-                                       char **pparams, int total_params, char **ppdata, int total_data,
-                                       unsigned int max_data_bytes)
+static void call_trans2getdfsreferral(connection_struct *conn,
+                                     struct smb_request *req,
+                                     char **pparams, int total_params,
+                                     char **ppdata, int total_data,
+                                     unsigned int max_data_bytes)
 {
        char *params = *pparams;
        pstring pathname;
@@ -6702,23 +6704,30 @@ static int call_trans2getdfsreferral(connection_struct *conn, char* inbuf, char*
        DEBUG(10,("call_trans2getdfsreferral\n"));
 
        if (total_params < 3) {
-               return ERROR_NT(NT_STATUS_INVALID_PARAMETER);
+               reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
+               return;
        }
 
        max_referral_level = SVAL(params,0);
 
-       if(!lp_host_msdfs())
-               return ERROR_DOS(ERRDOS,ERRbadfunc);
+       if(!lp_host_msdfs()) {
+               reply_doserror(req, ERRDOS, ERRbadfunc);
+               return;
+       }
 
-       srvstr_pull(inbuf, SVAL(inbuf, smb_flg2), pathname, &params[2],
+       srvstr_pull(params, req->flags2, pathname, &params[2],
                    sizeof(pathname), total_params - 2, STR_TERMINATE);
-       if((reply_size = setup_dfs_referral(conn, pathname,max_referral_level,ppdata,&status)) < 0)
-               return ERROR_NT(status);
+       if((reply_size = setup_dfs_referral(conn, pathname, max_referral_level,
+                                           ppdata,&status)) < 0) {
+               reply_nterror(req, status);
+               return;
+       }
     
-       SSVAL(outbuf,smb_flg2,SVAL(outbuf,smb_flg2) | FLAGS2_DFS_PATHNAMES);
-       send_trans2_replies(inbuf, outbuf,bufsize,0,0,*ppdata,reply_size, max_data_bytes);
+       SSVAL(req->inbuf, smb_flg2,
+             SVAL(req->inbuf,smb_flg2) | FLAGS2_DFS_PATHNAMES);
+       send_trans2_replies_new(req,0,0,*ppdata,reply_size, max_data_bytes);
 
-       return(-1);
+       return;
 }
 
 #define LMCAT_SPL       0x53
@@ -6944,11 +6953,10 @@ static int handle_trans2(connection_struct *conn, struct smb_request *req,
        case TRANSACT2_GET_DFS_REFERRAL:
        {
                START_PROFILE(Trans2_get_dfs_referral);
-               outsize = call_trans2getdfsreferral(
-                       conn, inbuf, outbuf, size, bufsize,
-                       &state->param, state->total_param,
-                       &state->data, state->total_data,
-                       state->max_data_return);
+               call_trans2getdfsreferral(conn, req,
+                                         &state->param, state->total_param,
+                                         &state->data, state->total_data,
+                                         state->max_data_return);
                END_PROFILE(Trans2_get_dfs_referral);
                break;
        }