r24243: Remove reply_prep_legacy from api_reply
authorVolker Lendecke <vlendec@samba.org>
Sun, 5 Aug 2007 11:19:24 +0000 (11:19 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:29:20 +0000 (12:29 -0500)
(This used to be commit b01664b43b0bd94bb59dec57480d2be954a7298a)

source3/smbd/ipc.c
source3/smbd/lanman.c

index 3b26ded71f3c2fa36c81a2236bd76d373338049e..f865af2fc74c6a0f6b2b798512e53f2c23ff726b 100644 (file)
@@ -375,20 +375,10 @@ static void named_pipe(connection_struct *conn, uint16 vuid,
        DEBUG(3,("named pipe command on <%s> name\n", name));
 
        if (strequal(name,"LANMAN")) {
-               char *inbuf, *outbuf;
-               int size, bufsize;
-
-               if (!reply_prep_legacy(req, &inbuf, &outbuf, &size, &bufsize)) {
-                       reply_nterror(req, NT_STATUS_NO_MEMORY);
-                       return;
-               }
-
-               reply_post_legacy(
-                       req,
-                       api_reply(conn, vuid, inbuf, outbuf,
-                                 data, params,
-                                 tdscnt, tpscnt,
-                                 mdrcnt, mprcnt));
+               api_reply(conn, vuid, req,
+                         data, params,
+                         tdscnt, tpscnt,
+                         mdrcnt, mprcnt);
                return;
        }
 
index f7a4f9b0bdebda8580de6640910e763ee1960dd4..3673998f798becc7647fefe06538e777b6cafc29 100644 (file)
@@ -4366,16 +4366,11 @@ static const struct {
  Handle remote api calls.
 ****************************************************************************/
 
-int api_reply(connection_struct *conn,
-               uint16 vuid,
-               const char *inbuf,
-               char *outbuf,
-               char *data,
-               char *params,
-               int tdscnt,
-               int tpscnt,
-               int mdrcnt,
-               int mprcnt)
+void api_reply(connection_struct *conn, uint16 vuid,
+              struct smb_request *req,
+              char *data, char *params,
+              int tdscnt, int tpscnt,
+              int mdrcnt, int mprcnt)
 {
        int api_command;
        char *rdata = NULL;
@@ -4389,11 +4384,13 @@ int api_reply(connection_struct *conn,
 
        if (!params) {
                DEBUG(0,("ERROR: NULL params in api_reply()\n"));
-               return 0;
+               reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
+               return;
        }
 
        if (tpscnt < 2) {
-               return 0;
+               reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
+               return;
        }
        api_command = SVAL(params,0);
        /* Is there a string at position params+2 ? */
@@ -4426,7 +4423,8 @@ int api_reply(connection_struct *conn,
                user_struct *user = get_valid_user_struct(vuid);
 
                if (!user || user->guest) {
-                       return ERROR_NT(NT_STATUS_ACCESS_DENIED);
+                       reply_nterror(req, NT_STATUS_ACCESS_DENIED);
+                       return;
                }
        }
 
@@ -4444,7 +4442,8 @@ int api_reply(connection_struct *conn,
                DEBUG(0,("api_reply: malloc fail !\n"));
                SAFE_FREE(rdata);
                SAFE_FREE(rparam);
-               return -1;
+               reply_nterror(req, NT_STATUS_NO_MEMORY);
+               return;
        }
 
        reply = api_commands[i].fn(conn,
@@ -4468,16 +4467,11 @@ int api_reply(connection_struct *conn,
 
        /* If api_Unsupported returns false we can't return anything. */
        if (reply) {
-               send_trans_reply(inbuf,
-                               outbuf,
-                               rparam,
-                               rparam_len,
-                               rdata,
-                               rdata_len,
-                               False);
+               send_trans_reply_new(req, rparam, rparam_len,
+                                    rdata, rdata_len, False);
        }
 
        SAFE_FREE(rdata);
        SAFE_FREE(rparam);
-       return -1;
+       return;
 }