s3-rpc_server rename NTLMSSP functions to auth_generic..()
[mat/samba.git] / source3 / rpc_server / srv_pipe.c
index 72c8f809593d24abbef008c9dde6f897f217bab8..5b2c78ab145b5e6a4fc1ec4353c6290078836449 100644 (file)
@@ -42,6 +42,8 @@
 #include "auth.h"
 #include "ntdomain.h"
 #include "rpc_server/srv_pipe.h"
+#include "rpc_server/rpc_contexts.h"
+#include "lib/param/param.h"
 
 #undef DBGC_CLASS
 #define DBGC_CLASS DBGC_RPC_SRV
@@ -331,33 +333,41 @@ bool setup_fault_pdu(struct pipes_struct *p, NTSTATUS fault_status)
 static bool check_bind_req(struct pipes_struct *p,
                           struct ndr_syntax_id* abstract,
                           struct ndr_syntax_id* transfer,
-                          uint32 context_id)
+                          uint32_t context_id)
 {
        struct pipe_rpc_fns *context_fns;
+       bool ok;
 
        DEBUG(3,("check_bind_req for %s\n",
-                get_pipe_name_from_syntax(talloc_tos(), &p->syntax)));
+                get_pipe_name_from_syntax(talloc_tos(), abstract)));
 
        /* we have to check all now since win2k introduced a new UUID on the lsaprpc pipe */
        if (rpc_srv_pipe_exists_by_id(abstract) &&
           ndr_syntax_id_equal(transfer, &ndr_transfer_syntax)) {
-               DEBUG(3, ("check_bind_req: \\PIPE\\%s -> \\PIPE\\%s\n",
-                       rpc_srv_get_pipe_cli_name(abstract),
-                       rpc_srv_get_pipe_srv_name(abstract)));
+               DEBUG(3, ("check_bind_req: %s -> %s rpc service\n",
+                         rpc_srv_get_pipe_cli_name(abstract),
+                         rpc_srv_get_pipe_srv_name(abstract)));
        } else {
                return false;
        }
 
-       context_fns = SMB_MALLOC_P(struct pipe_rpc_fns);
+       ok = init_pipe_handles(p, abstract);
+       if (!ok) {
+               DEBUG(1, ("Failed to init pipe handles!\n"));
+               return false;
+       }
+
+       context_fns = talloc(p, struct pipe_rpc_fns);
        if (context_fns == NULL) {
-               DEBUG(0,("check_bind_req: malloc() failed!\n"));
-               return False;
+               DEBUG(0,("check_bind_req: talloc() failed!\n"));
+               return false;
        }
 
        context_fns->next = context_fns->prev = NULL;
        context_fns->n_cmds = rpc_srv_get_pipe_num_cmds(abstract);
        context_fns->cmds = rpc_srv_get_pipe_cmds(abstract);
        context_fns->context_id = context_id;
+       context_fns->syntax = *abstract;
 
        /* add to the list of open contexts */
 
@@ -433,6 +443,7 @@ static bool pipe_spnego_auth_bind(struct pipes_struct *p,
                                          true,
                                          &auth_info->credentials,
                                          response,
+                                         p->remote_address,
                                          &spnego_ctx);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, ("Failed SPNEGO negotiate (%s)\n",
@@ -467,6 +478,7 @@ static bool pipe_schannel_auth_bind(struct pipes_struct *p,
        struct netlogon_creds_CredentialState *creds;
        enum ndr_err_code ndr_err;
        struct schannel_state *schannel_auth;
+       struct loadparm_context *lp_ctx;
 
        ndr_err = ndr_pull_struct_blob(
                        &auth_info->credentials, mem_ctx, &neg,
@@ -485,6 +497,12 @@ static bool pipe_schannel_auth_bind(struct pipes_struct *p,
                return false;
        }
 
+       lp_ctx = loadparm_init_s3(p, loadparm_s3_context());
+       if (!lp_ctx) {
+               DEBUG(0,("pipe_schannel_auth_bind: loadparm_init_s3() failed!\n"));
+               return false;
+       }
+
        /*
         * The neg.oem_netbios_computer.a key here must match the remote computer name
         * given in the DOM_CLNT_SRV.uni_comp_name used on all netlogon pipe
@@ -492,10 +510,11 @@ static bool pipe_schannel_auth_bind(struct pipes_struct *p,
         */
 
        become_root();
-       status = schannel_get_creds_state(p, lp_private_dir(),
+       status = schannel_get_creds_state(p, lp_ctx,
                                            neg.oem_netbios_computer.a, &creds);
        unbecome_root();
-
+       
+       talloc_unlink(p, lp_ctx);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, ("pipe_schannel_auth_bind: Attempt to bind using schannel without successful serverauth2\n"));
                return False;
@@ -570,7 +589,7 @@ static bool pipe_ntlmssp_auth_bind(struct pipes_struct *p,
                                   struct dcerpc_auth *auth_info,
                                   DATA_BLOB *response)
 {
-       struct auth_ntlmssp_state *ntlmssp_state = NULL;
+       struct gensec_security *gensec_security = NULL;
         NTSTATUS status;
 
        if (strncmp((char *)auth_info->credentials.data, "NTLMSSP", 7) != 0) {
@@ -579,7 +598,8 @@ static bool pipe_ntlmssp_auth_bind(struct pipes_struct *p,
         }
 
        /* We have an NTLMSSP blob. */
-       status = ntlmssp_server_auth_start(p,
+       status = auth_generic_server_start(p,
+                                          OID_NTLMSSP,
                                           (auth_info->auth_level ==
                                                DCERPC_AUTH_LEVEL_INTEGRITY),
                                           (auth_info->auth_level ==
@@ -587,7 +607,8 @@ static bool pipe_ntlmssp_auth_bind(struct pipes_struct *p,
                                           true,
                                           &auth_info->credentials,
                                           response,
-                                          &ntlmssp_state);
+                                          p->remote_address,
+                                          &gensec_security);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_OK)) {
                DEBUG(0, (__location__ ": auth_ntlmssp_start failed: %s\n",
                          nt_errstr(status)));
@@ -597,7 +618,7 @@ static bool pipe_ntlmssp_auth_bind(struct pipes_struct *p,
        /* Make sure data is bound to the memctx, to be freed the caller */
        talloc_steal(mem_ctx, response->data);
 
-       p->auth.auth_ctx = ntlmssp_state;
+       p->auth.auth_ctx = gensec_security;
        p->auth.auth_type = DCERPC_AUTH_TYPE_NTLMSSP;
 
        DEBUG(10, (__location__ ": NTLMSSP auth started\n"));
@@ -613,37 +634,33 @@ static bool pipe_ntlmssp_auth_bind(struct pipes_struct *p,
 *******************************************************************/
 
 static bool pipe_ntlmssp_verify_final(TALLOC_CTX *mem_ctx,
-                               struct auth_ntlmssp_state *ntlmssp_ctx,
+                               struct gensec_security *gensec_security,
                                enum dcerpc_AuthLevel auth_level,
-                               struct client_address *client_id,
-                               struct ndr_syntax_id *syntax,
-                               struct auth_serversupplied_info **session_info)
+                               struct auth_session_info **session_info)
 {
        NTSTATUS status;
        bool ret;
 
-       DEBUG(5, (__location__ ": pipe %s checking user details\n",
-                get_pipe_name_from_syntax(talloc_tos(), syntax)));
+       DEBUG(5, (__location__ ": checking user details\n"));
 
        /* Finally - if the pipe negotiated integrity (sign) or privacy (seal)
           ensure the underlying NTLMSSP flags are also set. If not we should
           refuse the bind. */
 
-       status = ntlmssp_server_check_flags(ntlmssp_ctx,
+       status = auth_generic_server_check_flags(gensec_security,
                                            (auth_level ==
                                                DCERPC_AUTH_LEVEL_INTEGRITY),
                                            (auth_level ==
                                                DCERPC_AUTH_LEVEL_PRIVACY));
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, (__location__ ": Client failed to negotatie proper "
-                         "security for pipe %s\n",
-                         get_pipe_name_from_syntax(talloc_tos(), syntax)));
+                         "security for rpc connection\n"));
                return false;
        }
 
        TALLOC_FREE(*session_info);
 
-       status = ntlmssp_server_get_user_info(ntlmssp_ctx,
+       status = auth_generic_server_get_user_info(gensec_security,
                                                mem_ctx, session_info);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, (__location__ ": failed to obtain the server info "
@@ -715,8 +732,8 @@ err:
 
 static NTSTATUS pipe_gssapi_verify_final(TALLOC_CTX *mem_ctx,
                                         struct gse_context *gse_ctx,
-                                        struct client_address *client_id,
-                                        struct auth_serversupplied_info **session_info)
+                                        const struct tsocket_address *remote_address,
+                                        struct auth_session_info **session_info)
 {
        NTSTATUS status;
        bool bret;
@@ -732,7 +749,7 @@ static NTSTATUS pipe_gssapi_verify_final(TALLOC_CTX *mem_ctx,
        }
 
        status = gssapi_server_get_user_info(gse_ctx, mem_ctx,
-                                            client_id, session_info);
+                                            remote_address, session_info);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, (__location__ ": failed to obtain the server info "
                          "for authenticated user: %s\n", nt_errstr(status)));
@@ -756,7 +773,7 @@ static NTSTATUS pipe_gssapi_verify_final(TALLOC_CTX *mem_ctx,
 static NTSTATUS pipe_auth_verify_final(struct pipes_struct *p)
 {
        enum spnego_mech auth_type;
-       struct auth_ntlmssp_state *ntlmssp_ctx;
+       struct gensec_security *gensec_security;
        struct spnego_context *spnego_ctx;
        struct gse_context *gse_ctx;
        void *mech_ctx;
@@ -764,11 +781,10 @@ static NTSTATUS pipe_auth_verify_final(struct pipes_struct *p)
 
        switch (p->auth.auth_type) {
        case DCERPC_AUTH_TYPE_NTLMSSP:
-               ntlmssp_ctx = talloc_get_type_abort(p->auth.auth_ctx,
-                                                   struct auth_ntlmssp_state);
-               if (!pipe_ntlmssp_verify_final(p, ntlmssp_ctx,
+               gensec_security = talloc_get_type_abort(p->auth.auth_ctx,
+                                                       struct gensec_security);
+               if (!pipe_ntlmssp_verify_final(p, gensec_security,
                                                p->auth.auth_level,
-                                               p->client_id, &p->syntax,
                                                &p->session_info)) {
                        return NT_STATUS_ACCESS_DENIED;
                }
@@ -777,7 +793,7 @@ static NTSTATUS pipe_auth_verify_final(struct pipes_struct *p)
                gse_ctx = talloc_get_type_abort(p->auth.auth_ctx,
                                                struct gse_context);
                status = pipe_gssapi_verify_final(p, gse_ctx,
-                                                 p->client_id,
+                                                 p->remote_address,
                                                  &p->session_info);
                if (!NT_STATUS_IS_OK(status)) {
                        DEBUG(1, ("gssapi bind failed with: %s",
@@ -800,7 +816,7 @@ static NTSTATUS pipe_auth_verify_final(struct pipes_struct *p)
                        gse_ctx = talloc_get_type_abort(mech_ctx,
                                                        struct gse_context);
                        status = pipe_gssapi_verify_final(p, gse_ctx,
-                                                         p->client_id,
+                                                         p->remote_address,
                                                          &p->session_info);
                        if (!NT_STATUS_IS_OK(status)) {
                                DEBUG(1, ("gssapi bind failed with: %s",
@@ -809,12 +825,10 @@ static NTSTATUS pipe_auth_verify_final(struct pipes_struct *p)
                        }
                        break;
                case SPNEGO_NTLMSSP:
-                       ntlmssp_ctx = talloc_get_type_abort(mech_ctx,
-                                               struct auth_ntlmssp_state);
-                       if (!pipe_ntlmssp_verify_final(p, ntlmssp_ctx,
+                       gensec_security = talloc_get_type_abort(mech_ctx,
+                                               struct gensec_security);
+                       if (!pipe_ntlmssp_verify_final(p, gensec_security,
                                                        p->auth.auth_level,
-                                                       p->client_id,
-                                                       &p->syntax,
                                                        &p->session_info)) {
                                return NT_STATUS_ACCESS_DENIED;
                        }
@@ -855,9 +869,7 @@ static bool api_pipe_bind_req(struct pipes_struct *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)));
+               DEBUG(2,("Rejecting bind request on bound rpc connection\n"));
                return setup_bind_nak(p, pkt);
        }
 
@@ -872,38 +884,35 @@ static bool api_pipe_bind_req(struct pipes_struct *p,
         */
        id = pkt->u.bind.ctx_list[0].abstract_syntax;
        if (rpc_srv_pipe_exists_by_id(&id)) {
-               DEBUG(3, ("api_pipe_bind_req: \\PIPE\\%s -> \\PIPE\\%s\n",
-                       rpc_srv_get_pipe_cli_name(&id),
-                       rpc_srv_get_pipe_srv_name(&id)));
+               DEBUG(3, ("api_pipe_bind_req: %s -> %s rpc service\n",
+                         rpc_srv_get_pipe_cli_name(&id),
+                         rpc_srv_get_pipe_srv_name(&id)));
        } else {
                status = smb_probe_module(
                        "rpc", get_pipe_name_from_syntax(
                                talloc_tos(),
-                               &pkt->u.bind.ctx_list[0].abstract_syntax));
+                               &id));
 
                if (NT_STATUS_IS_ERR(status)) {
-                       DEBUG(3,("api_pipe_bind_req: Unknown pipe name %s in bind request.\n",
-                                get_pipe_name_from_syntax(
-                                       talloc_tos(),
-                                       &pkt->u.bind.ctx_list[0].abstract_syntax)));
+                       DEBUG(3,("api_pipe_bind_req: Unknown rpc service name "
+                                 "%s in bind request.\n",
+                                get_pipe_name_from_syntax(talloc_tos(), &id)));
 
                        return setup_bind_nak(p, pkt);
                }
 
                if (rpc_srv_get_pipe_interface_by_cli_name(
                                get_pipe_name_from_syntax(talloc_tos(),
-                                                         &p->syntax),
+                                                         &id),
                                &id)) {
-                       DEBUG(3, ("api_pipe_bind_req: \\PIPE\\%s -> \\PIPE\\%s\n",
-                               rpc_srv_get_pipe_cli_name(&id),
-                               rpc_srv_get_pipe_srv_name(&id)));
+                       DEBUG(3, ("api_pipe_bind_req: %s -> %s rpc service\n",
+                                 rpc_srv_get_pipe_cli_name(&id),
+                                 rpc_srv_get_pipe_srv_name(&id)));
                } else {
                        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)));
+                                 get_pipe_name_from_syntax(talloc_tos(), &id),
+                                 get_pipe_name_from_syntax(talloc_tos(), &id)));
                        return setup_bind_nak(p, pkt);
                }
        }
@@ -1155,7 +1164,7 @@ bool api_pipe_bind_auth3(struct pipes_struct *p, struct ncacn_packet *pkt)
 {
        struct dcerpc_auth auth_info;
        DATA_BLOB response = data_blob_null;
-       struct auth_ntlmssp_state *ntlmssp_ctx;
+       struct gensec_security *gensec_security;
        struct spnego_context *spnego_ctx;
        struct gse_context *gse_ctx;
        NTSTATUS status;
@@ -1203,9 +1212,9 @@ bool api_pipe_bind_auth3(struct pipes_struct *p, struct ncacn_packet *pkt)
 
        switch (auth_info.auth_type) {
        case DCERPC_AUTH_TYPE_NTLMSSP:
-               ntlmssp_ctx = talloc_get_type_abort(p->auth.auth_ctx,
-                                                   struct auth_ntlmssp_state);
-               status = ntlmssp_server_step(ntlmssp_ctx,
+               gensec_security = talloc_get_type_abort(p->auth.auth_ctx,
+                                                   struct gensec_security);
+               status = auth_generic_server_step(gensec_security,
                                             pkt, &auth_info.credentials,
                                             &response);
                break;
@@ -1274,7 +1283,7 @@ static bool api_pipe_alter_context(struct pipes_struct *p,
        DATA_BLOB auth_resp = data_blob_null;
        DATA_BLOB auth_blob = data_blob_null;
        int pad_len = 0;
-       struct auth_ntlmssp_state *ntlmssp_ctx;
+       struct gensec_security *gensec_security;
        struct spnego_context *spnego_ctx;
        struct gse_context *gse_ctx;
 
@@ -1371,9 +1380,9 @@ static bool api_pipe_alter_context(struct pipes_struct *p,
                                                    &auth_resp);
                        break;
                case DCERPC_AUTH_TYPE_NTLMSSP:
-                       ntlmssp_ctx = talloc_get_type_abort(p->auth.auth_ctx,
-                                                   struct auth_ntlmssp_state);
-                       status = ntlmssp_server_step(ntlmssp_ctx,
+                       gensec_security = talloc_get_type_abort(p->auth.auth_ctx,
+                                                   struct gensec_security);
+                       status = auth_generic_server_step(gensec_security,
                                                     pkt,
                                                     &auth_info.credentials,
                                                     &auth_resp);
@@ -1508,28 +1517,9 @@ static bool api_pipe_alter_context(struct pipes_struct *p,
        return setup_bind_nak(p, pkt);
 }
 
-/****************************************************************************
- Find the set of RPC functions associated with this context_id
-****************************************************************************/
-
-static PIPE_RPC_FNS* find_pipe_fns_by_context( PIPE_RPC_FNS *list, uint32 context_id )
-{
-       PIPE_RPC_FNS *fns = NULL;
-
-       if ( !list ) {
-               DEBUG(0,("find_pipe_fns_by_context: ERROR!  No context list for pipe!\n"));
-               return NULL;
-       }
-
-       for (fns=list; fns; fns=fns->next ) {
-               if ( fns->context_id == context_id )
-                       return fns;
-       }
-       return NULL;
-}
-
 static bool api_rpcTNP(struct pipes_struct *p, struct ncacn_packet *pkt,
-                      const struct api_struct *api_rpc_cmds, int n_cmds);
+                      const struct api_struct *api_rpc_cmds, int n_cmds,
+                      const struct ndr_syntax_id *syntax);
 
 /****************************************************************************
  Find the correct RPC function to call for this request.
@@ -1541,22 +1531,19 @@ static bool api_pipe_request(struct pipes_struct *p,
                                struct ncacn_packet *pkt)
 {
        bool ret = False;
-       bool changed_user = False;
-       PIPE_RPC_FNS *pipe_fns;
-
-       if (p->pipe_bound &&
-           ((p->auth.auth_type == DCERPC_AUTH_TYPE_NTLMSSP) ||
-            (p->auth.auth_type == DCERPC_AUTH_TYPE_KRB5) ||
-            (p->auth.auth_type == DCERPC_AUTH_TYPE_SPNEGO))) {
-               if(!become_authenticated_pipe_user(p->session_info)) {
-                       data_blob_free(&p->out_data.rdata);
-                       return False;
-               }
-               changed_user = True;
+       struct pipe_rpc_fns *pipe_fns;
+
+       if (!p->pipe_bound) {
+               DEBUG(1, ("Pipe not bound!\n"));
+               data_blob_free(&p->out_data.rdata);
+               return false;
        }
 
-       DEBUG(5, ("Requested \\PIPE\\%s\n",
-                 get_pipe_name_from_syntax(talloc_tos(), &p->syntax)));
+       if (!become_authenticated_pipe_user(p->session_info)) {
+               DEBUG(1, ("Failed to become pipe user!\n"));
+               data_blob_free(&p->out_data.rdata);
+               return false;
+       }
 
        /* get the set of RPC functions for this context */
 
@@ -1565,20 +1552,22 @@ static bool api_pipe_request(struct pipes_struct *p,
 
        if ( pipe_fns ) {
                TALLOC_CTX *frame = talloc_stackframe();
-               ret = api_rpcTNP(p, pkt, pipe_fns->cmds, pipe_fns->n_cmds);
+
+               DEBUG(5, ("Requested %s rpc service\n",
+                         get_pipe_name_from_syntax(talloc_tos(), &pipe_fns->syntax)));
+
+               ret = api_rpcTNP(p, pkt, pipe_fns->cmds, pipe_fns->n_cmds,
+                                &pipe_fns->syntax);
+
                TALLOC_FREE(frame);
        }
        else {
                DEBUG(0, ("No rpc function table associated with context "
-                         "[%d] on pipe [%s]\n",
-                         pkt->u.request.context_id,
-                         get_pipe_name_from_syntax(talloc_tos(),
-                                                   &p->syntax)));
+                         "[%d]\n",
+                         pkt->u.request.context_id));
        }
 
-       if (changed_user) {
-               unbecome_authenticated_pipe_user();
-       }
+       unbecome_authenticated_pipe_user();
 
        return ret;
 }
@@ -1588,20 +1577,21 @@ static bool api_pipe_request(struct pipes_struct *p,
  ********************************************************************/
 
 static bool api_rpcTNP(struct pipes_struct *p, struct ncacn_packet *pkt,
-                      const struct api_struct *api_rpc_cmds, int n_cmds)
+                      const struct api_struct *api_rpc_cmds, int n_cmds,
+                      const struct ndr_syntax_id *syntax)
 {
        int fn_num;
        uint32_t offset1;
 
        /* interpret the command */
        DEBUG(4,("api_rpcTNP: %s op 0x%x - ",
-                get_pipe_name_from_syntax(talloc_tos(), &p->syntax),
+                get_pipe_name_from_syntax(talloc_tos(), syntax),
                 pkt->u.request.opnum));
 
        if (DEBUGLEVEL >= 50) {
                fstring name;
                slprintf(name, sizeof(name)-1, "in_%s",
-                        get_pipe_name_from_syntax(talloc_tos(), &p->syntax));
+                        get_pipe_name_from_syntax(talloc_tos(), syntax));
                dump_pdu_region(name, pkt->u.request.opnum,
                                &p->in_data.data, 0,
                                p->in_data.data.length);
@@ -1634,7 +1624,7 @@ static bool api_rpcTNP(struct pipes_struct *p, struct ncacn_packet *pkt,
        /* 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),
+                        get_pipe_name_from_syntax(talloc_tos(), syntax),
                         api_rpc_cmds[fn_num].name));
                data_blob_free(&p->out_data.rdata);
                return False;
@@ -1657,14 +1647,14 @@ static bool api_rpcTNP(struct pipes_struct *p, struct ncacn_packet *pkt,
        if (DEBUGLEVEL >= 50) {
                fstring name;
                slprintf(name, sizeof(name)-1, "out_%s",
-                        get_pipe_name_from_syntax(talloc_tos(), &p->syntax));
+                        get_pipe_name_from_syntax(talloc_tos(), syntax));
                dump_pdu_region(name, pkt->u.request.opnum,
                                &p->out_data.rdata, offset1,
                                p->out_data.rdata.length);
        }
 
        DEBUG(5,("api_rpcTNP: called %s successfully\n",
-                get_pipe_name_from_syntax(talloc_tos(), &p->syntax)));
+                get_pipe_name_from_syntax(talloc_tos(), syntax)));
 
        /* Check for buffer underflow in rpc parsing */
        if ((DEBUGLEVEL >= 10) &&
@@ -1707,8 +1697,8 @@ void set_incoming_fault(struct pipes_struct *p)
        p->in_data.pdu_needed_len = 0;
        p->in_data.pdu.length = 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)));
+
+       DEBUG(10, ("Setting fault state\n"));
 }
 
 static NTSTATUS dcesrv_auth_request(struct pipe_auth_data *auth,
@@ -1842,8 +1832,7 @@ void process_complete_pdu(struct pipes_struct *p)
        bool reply = False;
 
        if(p->fault_state) {
-               DEBUG(10,("process_complete_pdu: pipe %s in fault state.\n",
-                         get_pipe_name_from_syntax(talloc_tos(), &p->syntax)));
+               DEBUG(10,("RPC connection in fault state.\n"));
                goto done;
        }
 
@@ -1875,7 +1864,7 @@ void process_complete_pdu(struct pipes_struct *p)
        /* Store the call_id */
        p->call_id = pkt->call_id;
 
-       DEBUG(10, ("Processing packet type %d\n", (int)pkt->ptype));
+       DEBUG(10, ("Processing packet type %u\n", (unsigned int)pkt->ptype));
 
        switch (pkt->ptype) {
        case DCERPC_PKT_REQUEST:
@@ -1883,19 +1872,12 @@ void process_complete_pdu(struct pipes_struct *p)
                break;
 
        case DCERPC_PKT_PING: /* CL request - ignore... */
-               DEBUG(0, ("process_complete_pdu: Error. "
-                         "Connectionless packet type %d received on "
-                         "pipe %s.\n", (int)pkt->ptype,
-                        get_pipe_name_from_syntax(talloc_tos(),
-                                                  &p->syntax)));
+               DEBUG(0, ("Error - Connectionless packet type %u received\n",
+                         (unsigned int)pkt->ptype));
                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)));
+               DEBUG(0, ("Error - DCERPC_PKT_RESPONSE received from client"));
                break;
 
        case DCERPC_PKT_FAULT:
@@ -1908,11 +1890,8 @@ void process_complete_pdu(struct pipes_struct *p)
        case DCERPC_PKT_CL_CANCEL:
        case DCERPC_PKT_FACK:
        case DCERPC_PKT_CANCEL_ACK:
-               DEBUG(0, ("process_complete_pdu: Error. "
-                         "Connectionless packet type %u received on "
-                         "pipe %s.\n", (unsigned int)pkt->ptype,
-                        get_pipe_name_from_syntax(talloc_tos(),
-                                                  &p->syntax)));
+               DEBUG(0, ("Error - Connectionless packet type %u received\n",
+                         (unsigned int)pkt->ptype));
                break;
 
        case DCERPC_PKT_BIND:
@@ -1926,12 +1905,9 @@ void process_complete_pdu(struct pipes_struct *p)
 
        case DCERPC_PKT_BIND_ACK:
        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)pkt->ptype,
-                        get_pipe_name_from_syntax(talloc_tos(),
-                                                  &p->syntax)));
+               DEBUG(0, ("Error - DCERPC_PKT_BINDACK/DCERPC_PKT_BINDNACK "
+                         "packet type %u received.\n",
+                         (unsigned int)pkt->ptype));
                break;
 
 
@@ -1945,11 +1921,8 @@ void process_complete_pdu(struct pipes_struct *p)
                break;
 
        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)));
+               DEBUG(0, ("Error - DCERPC_PKT_ALTER_RESP received: "
+                         "Should only be server -> client.\n"));
                break;
 
        case DCERPC_PKT_AUTH3:
@@ -1962,11 +1935,8 @@ void process_complete_pdu(struct pipes_struct *p)
                break;
 
        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)));
+               DEBUG(0, ("Error - DCERPC_PKT_SHUTDOWN received: "
+                         "Should only be server -> client.\n"));
                break;
 
        case DCERPC_PKT_CO_CANCEL:
@@ -2011,9 +1981,7 @@ void process_complete_pdu(struct pipes_struct *p)
 
 done:
        if (!reply) {
-               DEBUG(3,("process_complete_pdu: DCE/RPC fault sent on "
-                        "pipe %s\n", get_pipe_name_from_syntax(talloc_tos(),
-                                                               &p->syntax)));
+               DEBUG(3,("DCE/RPC fault sent!"));
                set_incoming_fault(p);
                setup_fault_pdu(p, NT_STATUS(DCERPC_FAULT_OP_RNG_ERROR));
                TALLOC_FREE(pkt);