summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2009-11-08 10:43:34 +0100
committerVolker Lendecke <vl@samba.org>2009-11-08 13:12:14 +0100
commit9621306351cdb469ef393a6d8cbeea456bc4bd9f (patch)
treef3317aca52f1ca5c3cc9f7ed4a429250295941d4
parentdaa964013bc5d036f4da571ce22c0052ef40943a (diff)
downloadsamba-9621306351cdb469ef393a6d8cbeea456bc4bd9f.tar.gz
samba-9621306351cdb469ef393a6d8cbeea456bc4bd9f.tar.bz2
samba-9621306351cdb469ef393a6d8cbeea456bc4bd9f.zip
s3: Consolidate getting the name out of a pipes_struct
-rw-r--r--source3/include/proto.h1
-rw-r--r--source3/rpc_server/srv_lsa_hnd.c5
-rw-r--r--source3/rpc_server/srv_pipe.c44
-rw-r--r--source3/rpc_server/srv_pipe_hnd.c49
4 files changed, 39 insertions, 60 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index a0355732e7..3d62e505b3 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -5836,6 +5836,7 @@ bool api_pipe_request(pipes_struct *p);
pipes_struct *get_first_internal_pipe(void);
pipes_struct *get_next_internal_pipe(pipes_struct *p);
+const char *get_pipe_name_tos(struct pipes_struct *p);
bool fsp_is_np(struct files_struct *fsp);
NTSTATUS np_open(TALLOC_CTX *mem_ctx, const char *name,
diff --git a/source3/rpc_server/srv_lsa_hnd.c b/source3/rpc_server/srv_lsa_hnd.c
index 695164679f..4233b6f0e6 100644
--- a/source3/rpc_server/srv_lsa_hnd.c
+++ b/source3/rpc_server/srv_lsa_hnd.c
@@ -286,8 +286,7 @@ void close_policy_by_pipe(pipes_struct *p)
SAFE_FREE(p->pipe_handles);
DEBUG(10,("close_policy_by_pipe: deleted handle list for "
- "pipe %s\n",
- get_pipe_name_from_syntax(talloc_tos(), &p->syntax)));
+ "pipe %s\n", get_pipe_name_tos(p)));
}
}
@@ -329,7 +328,7 @@ void *_policy_handle_create(struct pipes_struct *p, struct policy_handle *hnd,
if (p->pipe_handles->count > MAX_OPEN_POLS) {
DEBUG(0, ("policy_handle_create: ERROR: too many handles (%d) "
"on pipe %s.\n", (int)p->pipe_handles->count,
- get_pipe_name_from_syntax(talloc_tos(), &p->syntax)));
+ get_pipe_name_tos(p)));
*pstatus = NT_STATUS_INSUFFICIENT_RESOURCES;
return NULL;
}
diff --git a/source3/rpc_server/srv_pipe.c b/source3/rpc_server/srv_pipe.c
index 90eb4f96c3..17cc13edf5 100644
--- a/source3/rpc_server/srv_pipe.c
+++ b/source3/rpc_server/srv_pipe.c
@@ -647,7 +647,7 @@ static bool pipe_ntlmssp_verify_final(pipes_struct *p, DATA_BLOB *p_resp_blob)
bool ret;
DEBUG(5,("pipe_ntlmssp_verify_final: pipe %s checking user details\n",
- get_pipe_name_from_syntax(talloc_tos(), &p->syntax)));
+ get_pipe_name_tos(p)));
ZERO_STRUCT(reply);
@@ -671,8 +671,7 @@ static bool pipe_ntlmssp_verify_final(pipes_struct *p, DATA_BLOB *p_resp_blob)
if (!(a->ntlmssp_state->neg_flags & NTLMSSP_NEGOTIATE_SIGN)) {
DEBUG(0,("pipe_ntlmssp_verify_final: pipe %s : packet integrity requested "
"but client declined signing.\n",
- get_pipe_name_from_syntax(talloc_tos(),
- &p->syntax)));
+ get_pipe_name_tos(p)));
return False;
}
}
@@ -680,8 +679,7 @@ static bool pipe_ntlmssp_verify_final(pipes_struct *p, DATA_BLOB *p_resp_blob)
if (!(a->ntlmssp_state->neg_flags & NTLMSSP_NEGOTIATE_SEAL)) {
DEBUG(0,("pipe_ntlmssp_verify_final: pipe %s : packet privacy requested "
"but client declined sealing.\n",
- get_pipe_name_from_syntax(talloc_tos(),
- &p->syntax)));
+ get_pipe_name_tos(p)));
return False;
}
}
@@ -996,8 +994,7 @@ static bool check_bind_req(struct pipes_struct *p,
int i=0;
struct pipe_rpc_fns *context_fns;
- DEBUG(3,("check_bind_req for %s\n",
- get_pipe_name_from_syntax(talloc_tos(), &p->syntax)));
+ DEBUG(3,("check_bind_req for %s\n", get_pipe_name_tos(p)));
/* we have to check all now since win2k introduced a new UUID on the lsaprpc pipe */
@@ -1609,8 +1606,7 @@ bool api_pipe_bind_req(pipes_struct *p, prs_struct *rpc_in_p)
/* No rebinds on a bound pipe - use alter context. */
if (p->pipe_bound) {
DEBUG(2,("api_pipe_bind_req: rejecting bind request on bound "
- "pipe %s.\n",
- get_pipe_name_from_syntax(talloc_tos(), &p->syntax)));
+ "pipe %s.\n", get_pipe_name_tos(p)));
return setup_bind_nak(p);
}
@@ -1693,8 +1689,7 @@ bool api_pipe_bind_req(pipes_struct *p, prs_struct *rpc_in_p)
for (i = 0; i < rpc_lookup_size; i++) {
if (strequal(rpc_lookup[i].pipe.clnt,
- get_pipe_name_from_syntax(talloc_tos(),
- &p->syntax))) {
+ get_pipe_name_tos(p))) {
DEBUG(3, ("api_pipe_bind_req: \\PIPE\\%s -> \\PIPE\\%s\n",
rpc_lookup[i].pipe.clnt, rpc_lookup[i].pipe.srv));
break;
@@ -1703,11 +1698,8 @@ bool api_pipe_bind_req(pipes_struct *p, prs_struct *rpc_in_p)
if (i == rpc_lookup_size) {
DEBUG(0, ("module %s doesn't provide functions for "
- "pipe %s!\n",
- get_pipe_name_from_syntax(talloc_tos(),
- &p->syntax),
- get_pipe_name_from_syntax(talloc_tos(),
- &p->syntax)));
+ "pipe %s!\n", get_pipe_name_tos(p),
+ get_pipe_name_tos(p)));
goto err_exit;
}
}
@@ -2364,8 +2356,7 @@ bool api_pipe_request(pipes_struct *p)
changed_user = True;
}
- DEBUG(5, ("Requested \\PIPE\\%s\n",
- get_pipe_name_from_syntax(talloc_tos(), &p->syntax)));
+ DEBUG(5, ("Requested \\PIPE\\%s\n", get_pipe_name_tos(p)));
/* get the set of RPC functions for this context */
@@ -2378,8 +2369,7 @@ bool api_pipe_request(pipes_struct *p)
}
else {
DEBUG(0,("api_pipe_request: No rpc function table associated with context [%d] on pipe [%s]\n",
- p->hdr_req.context_id,
- get_pipe_name_from_syntax(talloc_tos(), &p->syntax)));
+ p->hdr_req.context_id, get_pipe_name_tos(p)));
}
if (changed_user) {
@@ -2400,14 +2390,12 @@ static bool api_rpcTNP(pipes_struct *p,
uint32 offset1, offset2;
/* interpret the command */
- DEBUG(4,("api_rpcTNP: %s op 0x%x - ",
- get_pipe_name_from_syntax(talloc_tos(), &p->syntax),
+ DEBUG(4,("api_rpcTNP: %s op 0x%x - ", get_pipe_name_tos(p),
p->hdr_req.opnum));
if (DEBUGLEVEL >= 50) {
fstring name;
- slprintf(name, sizeof(name)-1, "in_%s",
- get_pipe_name_from_syntax(talloc_tos(), &p->syntax));
+ slprintf(name, sizeof(name)-1, "in_%s", get_pipe_name_tos(p));
prs_dump(name, p->hdr_req.opnum, &p->in_data.data);
}
@@ -2435,8 +2423,7 @@ static bool api_rpcTNP(pipes_struct *p,
fn_num, api_rpc_cmds[fn_num].fn));
/* do the actual command */
if(!api_rpc_cmds[fn_num].fn(p)) {
- DEBUG(0,("api_rpcTNP: %s: %s failed.\n",
- get_pipe_name_from_syntax(talloc_tos(), &p->syntax),
+ DEBUG(0,("api_rpcTNP: %s: %s failed.\n", get_pipe_name_tos(p),
api_rpc_cmds[fn_num].name));
prs_mem_free(&p->out_data.rdata);
return False;
@@ -2460,14 +2447,13 @@ static bool api_rpcTNP(pipes_struct *p,
prs_set_offset(&p->out_data.rdata, offset1);
if (DEBUGLEVEL >= 50) {
fstring name;
- slprintf(name, sizeof(name)-1, "out_%s",
- get_pipe_name_from_syntax(talloc_tos(), &p->syntax));
+ slprintf(name, sizeof(name)-1, "out_%s", get_pipe_name_tos(p));
prs_dump(name, p->hdr_req.opnum, &p->out_data.rdata);
}
prs_set_offset(&p->out_data.rdata, offset2);
DEBUG(5,("api_rpcTNP: called %s successfully\n",
- get_pipe_name_from_syntax(talloc_tos(), &p->syntax)));
+ get_pipe_name_tos(p)));
/* Check for buffer underflow in rpc parsing */
diff --git a/source3/rpc_server/srv_pipe_hnd.c b/source3/rpc_server/srv_pipe_hnd.c
index 254241c743..e7d94d70ec 100644
--- a/source3/rpc_server/srv_pipe_hnd.c
+++ b/source3/rpc_server/srv_pipe_hnd.c
@@ -55,6 +55,11 @@ pipes_struct *get_next_internal_pipe(pipes_struct *p)
return p->next;
}
+const char *get_pipe_name_tos(struct pipes_struct *p)
+{
+ return get_pipe_name_from_syntax(talloc_tos(), &p->syntax);
+}
+
/****************************************************************************
Initialise an outgoing packet.
****************************************************************************/
@@ -177,7 +182,7 @@ static void set_incoming_fault(pipes_struct *p)
p->in_data.pdu_received_len = 0;
p->fault_state = True;
DEBUG(10, ("set_incoming_fault: Setting fault state on pipe %s\n",
- get_pipe_name_from_syntax(talloc_tos(), &p->syntax)));
+ get_pipe_name_tos(p)));
}
/****************************************************************************
@@ -344,10 +349,8 @@ static void free_pipe_context(pipes_struct *p)
"%lu\n", (unsigned long)talloc_total_size(p->mem_ctx) ));
talloc_free_children(p->mem_ctx);
} else {
- p->mem_ctx = talloc_init(
- "pipe %s %p", get_pipe_name_from_syntax(talloc_tos(),
- &p->syntax),
- p);
+ p->mem_ctx = talloc_init("pipe %s %p", get_pipe_name_tos(p),
+ p);
if (p->mem_ctx == NULL) {
p->fault_state = True;
}
@@ -515,7 +518,7 @@ static void process_complete_pdu(pipes_struct *p)
if(p->fault_state) {
DEBUG(10,("process_complete_pdu: pipe %s in fault state.\n",
- get_pipe_name_from_syntax(talloc_tos(), &p->syntax)));
+ get_pipe_name_tos(p)));
set_incoming_fault(p);
setup_fault_pdu(p, NT_STATUS(DCERPC_FAULT_OP_RNG_ERROR));
return;
@@ -544,14 +547,12 @@ static void process_complete_pdu(pipes_struct *p)
case DCERPC_PKT_PING: /* CL request - ignore... */
DEBUG(0,("process_complete_pdu: Error. Connectionless packet type %u received on pipe %s.\n",
(unsigned int)p->hdr.pkt_type,
- get_pipe_name_from_syntax(talloc_tos(),
- &p->syntax)));
+ get_pipe_name_tos(p)));
break;
case DCERPC_PKT_RESPONSE: /* No responses here. */
DEBUG(0,("process_complete_pdu: Error. DCERPC_PKT_RESPONSE received from client on pipe %s.\n",
- get_pipe_name_from_syntax(talloc_tos(),
- &p->syntax)));
+ get_pipe_name_tos(p)));
break;
case DCERPC_PKT_FAULT:
@@ -564,8 +565,7 @@ static void process_complete_pdu(pipes_struct *p)
case DCERPC_PKT_CANCEL_ACK:
DEBUG(0,("process_complete_pdu: Error. Connectionless packet type %u received on pipe %s.\n",
(unsigned int)p->hdr.pkt_type,
- get_pipe_name_from_syntax(talloc_tos(),
- &p->syntax)));
+ get_pipe_name_tos(p)));
break;
case DCERPC_PKT_BIND:
@@ -581,8 +581,7 @@ static void process_complete_pdu(pipes_struct *p)
case DCERPC_PKT_BIND_NAK:
DEBUG(0,("process_complete_pdu: Error. DCERPC_PKT_BINDACK/DCERPC_PKT_BINDNACK packet type %u received on pipe %s.\n",
(unsigned int)p->hdr.pkt_type,
- get_pipe_name_from_syntax(talloc_tos(),
- &p->syntax)));
+ get_pipe_name_tos(p)));
break;
@@ -597,8 +596,7 @@ static void process_complete_pdu(pipes_struct *p)
case DCERPC_PKT_ALTER_RESP:
DEBUG(0,("process_complete_pdu: Error. DCERPC_PKT_ALTER_RESP on pipe %s: Should only be server -> client.\n",
- get_pipe_name_from_syntax(talloc_tos(),
- &p->syntax)));
+ get_pipe_name_tos(p)));
break;
case DCERPC_PKT_AUTH3:
@@ -612,8 +610,7 @@ static void process_complete_pdu(pipes_struct *p)
case DCERPC_PKT_SHUTDOWN:
DEBUG(0,("process_complete_pdu: Error. DCERPC_PKT_SHUTDOWN on pipe %s: Should only be server -> client.\n",
- get_pipe_name_from_syntax(talloc_tos(),
- &p->syntax)));
+ get_pipe_name_tos(p)));
break;
case DCERPC_PKT_CO_CANCEL:
@@ -652,8 +649,7 @@ static void process_complete_pdu(pipes_struct *p)
if (!reply) {
DEBUG(3,("process_complete_pdu: DCE/RPC fault sent on "
- "pipe %s\n", get_pipe_name_from_syntax(talloc_tos(),
- &p->syntax)));
+ "pipe %s\n", get_pipe_name_tos(p)));
set_incoming_fault(p);
setup_fault_pdu(p, NT_STATUS(DCERPC_FAULT_OP_RNG_ERROR));
prs_mem_free(&rpc_in);
@@ -808,8 +804,7 @@ static ssize_t read_from_internal_pipe(struct pipes_struct *p, char *data, size_
return -1;
}
- DEBUG(6,(" name: %s len: %u\n",
- get_pipe_name_from_syntax(talloc_tos(), &p->syntax),
+ DEBUG(6,(" name: %s len: %u\n", get_pipe_name_tos(p),
(unsigned int)n));
/*
@@ -826,8 +821,7 @@ static ssize_t read_from_internal_pipe(struct pipes_struct *p, char *data, size_
if(n > RPC_MAX_PDU_FRAG_LEN) {
DEBUG(5,("read_from_pipe: too large read (%u) requested on "
"pipe %s. We can only service %d sized reads.\n",
- (unsigned int)n,
- get_pipe_name_from_syntax(talloc_tos(), &p->syntax),
+ (unsigned int)n, get_pipe_name_tos(p),
RPC_MAX_PDU_FRAG_LEN ));
n = RPC_MAX_PDU_FRAG_LEN;
}
@@ -848,7 +842,7 @@ static ssize_t read_from_internal_pipe(struct pipes_struct *p, char *data, size_
DEBUG(10,("read_from_pipe: %s: current_pdu_len = %u, "
"current_pdu_sent = %u returning %d bytes.\n",
- get_pipe_name_from_syntax(talloc_tos(), &p->syntax),
+ get_pipe_name_tos(p),
(unsigned int)prs_offset(&p->out_data.frag),
(unsigned int)p->out_data.current_pdu_sent,
(int)data_returned));
@@ -869,8 +863,7 @@ static ssize_t read_from_internal_pipe(struct pipes_struct *p, char *data, size_
DEBUG(10,("read_from_pipe: %s: fault_state = %d : data_sent_length "
"= %u, prs_offset(&p->out_data.rdata) = %u.\n",
- get_pipe_name_from_syntax(talloc_tos(), &p->syntax),
- (int)p->fault_state,
+ get_pipe_name_tos(p), (int)p->fault_state,
(unsigned int)p->out_data.data_sent_length,
(unsigned int)prs_offset(&p->out_data.rdata) ));
@@ -891,7 +884,7 @@ static ssize_t read_from_internal_pipe(struct pipes_struct *p, char *data, size_
if(!create_next_pdu(p)) {
DEBUG(0,("read_from_pipe: %s: create_next_pdu failed.\n",
- get_pipe_name_from_syntax(talloc_tos(), &p->syntax)));
+ get_pipe_name_tos(p)));
return -1;
}