call prs_dump() on every input and output packet so we have plenty of
authorAndrew Tridgell <tridge@samba.org>
Mon, 15 May 2000 09:59:58 +0000 (09:59 +0000)
committerAndrew Tridgell <tridge@samba.org>
Mon, 15 May 2000 09:59:58 +0000 (09:59 +0000)
data to work with
(This used to be commit 839ab0e33255be37d72c113c2e09baaa34d50ce4)

source3/rpc_server/srv_pipe.c

index 9c1ad2ef5a2b72a2b2b17528031f163635dcc15b..853c1b8ed6bf913fa985e2ff6be26e185d62103b 100644 (file)
@@ -1080,11 +1080,14 @@ BOOL api_rpcTNP(pipes_struct *p, char *rpc_name, struct api_struct *api_rpc_cmds
                                prs_struct *rpc_in)
 {
        int fn_num;
-
+       fstring name;
+       uint32 offset1, offset2;
        /* interpret the command */
        DEBUG(4,("api_rpcTNP: %s op 0x%x - ", rpc_name, p->hdr_req.opnum));
 
-       prs_dump(rpc_name, p->hdr_req.opnum, rpc_in);
+       slprintf(name, sizeof(name), "in_%s", rpc_name);
+       prs_dump(name, p->hdr_req.opnum, rpc_in);
 
        for (fn_num = 0; api_rpc_cmds[fn_num].name; fn_num++) {
                if (api_rpc_cmds[fn_num].opnum == p->hdr_req.opnum && api_rpc_cmds[fn_num].fn != NULL) {
@@ -1104,6 +1107,8 @@ BOOL api_rpcTNP(pipes_struct *p, char *rpc_name, struct api_struct *api_rpc_cmds
                return True;
        }
 
+       offset1 = p->out_data.rdata.data_offset;
+
        /* do the actual command */
        if(!api_rpc_cmds[fn_num].fn(rpc_in, &p->out_data.rdata)) {
                DEBUG(0,("api_rpcTNP: %s: failed.\n", rpc_name));
@@ -1111,6 +1116,12 @@ BOOL api_rpcTNP(pipes_struct *p, char *rpc_name, struct api_struct *api_rpc_cmds
                return False;
        }
 
+       slprintf(name, sizeof(name), "out_%s", rpc_name);
+       offset2 = p->out_data.rdata.data_offset;
+       p->out_data.rdata.data_offset = offset1;
+       prs_dump(name, p->hdr_req.opnum, &p->out_data.rdata);
+       p->out_data.rdata.data_offset = offset2;
+
        DEBUG(5,("api_rpcTNP: called %s successfully\n", rpc_name));
 
        return True;