]> git.samba.org - ira/wip.git/commitdiff
s3-dceprc: Store opnum in its own variable
authorSimo Sorce <idra@samba.org>
Fri, 9 Jul 2010 23:35:22 +0000 (19:35 -0400)
committerGünther Deschner <gd@samba.org>
Tue, 13 Jul 2010 12:44:10 +0000 (14:44 +0200)
Signed-off-by: Günther Deschner <gd@samba.org>
source3/include/ntdomain.h
source3/rpc_server/rpc_ncacn_np_internal.c
source3/rpc_server/srv_lsa_nt.c
source3/rpc_server/srv_netlog_nt.c
source3/rpc_server/srv_pipe.c
source3/rpc_server/srv_pipe_hnd.c
source3/rpc_server/srv_samr_nt.c
source3/rpc_server/srv_spoolss_nt.c

index f18bf7facd9f852c83c6f8448a6818aa7530caec..e96b9b553a2151d190f4f016db07d4c249ae83ae 100644 (file)
@@ -222,6 +222,9 @@ typedef struct pipes_struct {
        /* handle database to use on this pipe. */
        struct handle_list *pipe_handles;
 
+       /* operation number retrieved from the rpc header */
+       uint16_t opnum;
+
        /* private data for the interface implementation */
        void *private_data;
 
index d702e4b4d7b03a8c612fc5d8ed05de7a18feb55d..22e03525ff7b62d3e0b94ce638ebb85ecdf44a34 100644 (file)
@@ -301,8 +301,8 @@ static NTSTATUS rpc_pipe_internal_dispatch(struct rpc_pipe_client *cli,
                return NT_STATUS_INVALID_PARAMETER;
        }
 
-       /* set opnum in fake rpc header */
-       cli->pipes_struct->hdr_req.opnum = opnum;
+       /* set opnum */
+       cli->pipes_struct->opnum = opnum;
 
        for (i = 0; i < num_cmds; i++) {
                if (cmds[i].opnum == opnum && cmds[i].fn != NULL) {
index fce0565eacfc30e293d552a08a187c836e2116c2..c035e62eea78ac3dd1fc9f66749f6dc07ca6d7f2 100644 (file)
@@ -979,7 +979,7 @@ NTSTATUS _lsa_LookupSids2(pipes_struct *p,
        struct lsa_TranslatedName2 *names = NULL;
        bool check_policy = true;
 
-       switch (p->hdr_req.opnum) {
+       switch (p->opnum) {
                case NDR_LSA_LOOKUPSIDS3:
                        check_policy = false;
                        break;
@@ -1237,7 +1237,7 @@ NTSTATUS _lsa_LookupNames3(pipes_struct *p,
        int flags = 0;
        bool check_policy = true;
 
-       switch (p->hdr_req.opnum) {
+       switch (p->opnum) {
                case NDR_LSA_LOOKUPNAMES4:
                        check_policy = false;
                        break;
index c7ff3ddeeb55ab96e97d8b24d6a4d932ca1aba8c..ebd37241a6bc1f32fde6fcc98637b2a3f793020d 100644 (file)
@@ -185,7 +185,7 @@ WERROR _netr_LogonControl2Ex(pipes_struct *p,
        const char *fn;
        uint32_t acct_ctrl;
 
-       switch (p->hdr_req.opnum) {
+       switch (p->opnum) {
        case NDR_NETR_LOGONCONTROL:
                fn = "_netr_LogonControl";
                break;
@@ -836,7 +836,7 @@ NTSTATUS _netr_ServerAuthenticate3(pipes_struct *p,
                srv_flgs |= NETLOGON_NEG_SCHANNEL;
        }
 
-       switch (p->hdr_req.opnum) {
+       switch (p->opnum) {
                case NDR_NETR_SERVERAUTHENTICATE:
                        fn = "_netr_ServerAuthenticate";
                        break;
@@ -1226,7 +1226,7 @@ static NTSTATUS _netr_LogonSamLogon_base(pipes_struct *p,
        bool process_creds = true;
        const char *fn;
 
-       switch (p->hdr_req.opnum) {
+       switch (p->opnum) {
                case NDR_NETR_LOGONSAMLOGON:
                        process_creds = true;
                        fn = "_netr_LogonSamLogon";
index a39ed93e718e0481111e62eda3e53b84b74d591e..e3ab09d8db50383bcaa192e4500bbc8d63090f93 100644 (file)
@@ -2515,17 +2515,17 @@ static bool api_rpcTNP(pipes_struct *p,
        /* interpret the command */
        DEBUG(4,("api_rpcTNP: %s op 0x%x - ",
                 get_pipe_name_from_syntax(talloc_tos(), &p->syntax),
-                p->hdr_req.opnum));
+                p->opnum));
 
        if (DEBUGLEVEL >= 50) {
                fstring name;
                slprintf(name, sizeof(name)-1, "in_%s",
                         get_pipe_name_from_syntax(talloc_tos(), &p->syntax));
-               prs_dump(name, p->hdr_req.opnum, &p->in_data.data);
+               prs_dump(name, p->opnum, &p->in_data.data);
        }
 
        for (fn_num = 0; fn_num < n_cmds; fn_num++) {
-               if (api_rpc_cmds[fn_num].opnum == p->hdr_req.opnum && api_rpc_cmds[fn_num].fn != NULL) {
+               if (api_rpc_cmds[fn_num].opnum == p->opnum && api_rpc_cmds[fn_num].fn != NULL) {
                        DEBUG(3,("api_rpcTNP: rpc command: %s\n", api_rpc_cmds[fn_num].name));
                        break;
                }
@@ -2575,7 +2575,7 @@ static bool api_rpcTNP(pipes_struct *p,
                fstring name;
                slprintf(name, sizeof(name)-1, "out_%s",
                         get_pipe_name_from_syntax(talloc_tos(), &p->syntax));
-               prs_dump(name, p->hdr_req.opnum, &p->out_data.rdata);
+               prs_dump(name, p->opnum, &p->out_data.rdata);
        }
        prs_set_offset(&p->out_data.rdata, offset2);
 
index eeb18c14fe9864ab053aac769e1982c658f64d5c..2cecd89781895ee45af5c4ed145827b81cc8a965 100644 (file)
@@ -304,6 +304,9 @@ static bool process_request_pdu(pipes_struct *p, prs_struct *rpc_in_p)
                return False;
        }
 
+       /* Save the operation number */
+       p->opnum = p->hdr_req.opnum;
+
        switch(p->auth.auth_type) {
                case PIPE_AUTH_TYPE_NONE:
                        break;
index 7b74fd8e60e26c0a50d3e687536c3b6320a2f1aa..098b13536f4bd6241f2930e348e032cc78bddd3b 100644 (file)
@@ -3999,7 +3999,7 @@ NTSTATUS _samr_Connect2(pipes_struct *p,
        size_t    sd_size;
        const char *fn = "_samr_Connect2";
 
-       switch (p->hdr_req.opnum) {
+       switch (p->opnum) {
        case NDR_SAMR_CONNECT2:
                fn = "_samr_Connect2";
                break;
index 3b7b2a62dc17390a29c8c1f629d7cd6a35a8096c..27f428b2c45aeb4acb47b891b2309ee0893554ef 100644 (file)
@@ -7352,7 +7352,7 @@ WERROR _spoolss_AddPrinterDriverEx(pipes_struct *p,
        uint32_t version;
        const char *fn;
 
-       switch (p->hdr_req.opnum) {
+       switch (p->opnum) {
                case NDR_SPOOLSS_ADDPRINTERDRIVER:
                        fn = "_spoolss_AddPrinterDriver";
                        break;