/* 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;
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) {
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;
int flags = 0;
bool check_policy = true;
- switch (p->hdr_req.opnum) {
+ switch (p->opnum) {
case NDR_LSA_LOOKUPNAMES4:
check_policy = false;
break;
const char *fn;
uint32_t acct_ctrl;
- switch (p->hdr_req.opnum) {
+ switch (p->opnum) {
case NDR_NETR_LOGONCONTROL:
fn = "_netr_LogonControl";
break;
srv_flgs |= NETLOGON_NEG_SCHANNEL;
}
- switch (p->hdr_req.opnum) {
+ switch (p->opnum) {
case NDR_NETR_SERVERAUTHENTICATE:
fn = "_netr_ServerAuthenticate";
break;
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";
/* 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;
}
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);
return False;
}
+ /* Save the operation number */
+ p->opnum = p->hdr_req.opnum;
+
switch(p->auth.auth_type) {
case PIPE_AUTH_TYPE_NONE:
break;
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;
uint32_t version;
const char *fn;
- switch (p->hdr_req.opnum) {
+ switch (p->opnum) {
case NDR_SPOOLSS_ADDPRINTERDRIVER:
fn = "_spoolss_AddPrinterDriver";
break;