errors: share dcerpc error function.
authorGünther Deschner <gd@samba.org>
Wed, 29 Oct 2008 22:21:06 +0000 (23:21 +0100)
committerGünther Deschner <gd@samba.org>
Fri, 31 Oct 2008 11:42:09 +0000 (12:42 +0100)
Guenther

librpc/rpc/dcerpc_error.c [moved from source4/librpc/rpc/dcerpc_error.c with 98% similarity]
source3/Makefile.in
source3/include/proto.h
source3/libsmb/dcerpc_err.c [deleted file]
source3/rpc_client/cli_pipe.c
source3/rpc_parse/parse_prs.c
source4/librpc/config.mk

similarity index 98%
rename from source4/librpc/rpc/dcerpc_error.c
rename to librpc/rpc/dcerpc_error.c
index 6ea4563ae6f58ebf2d103d42ac30b0584d37fafe..dbab7835677154d7cc1df3f267c7c613f3f613d5 100644 (file)
@@ -1,20 +1,20 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    dcerpc fault functions
 
    Copyright (C) Stefan Metzmacher 2004
-   
+
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
@@ -37,7 +37,7 @@ static const struct dcerpc_fault_table dcerpc_faults[] =
        { "DCERPC_FAULT_OTHER",                 DCERPC_FAULT_OTHER },
        { "DCERPC_FAULT_ACCESS_DENIED",         DCERPC_FAULT_ACCESS_DENIED },
 
-       { NULL,                                 0}      
+       { NULL,                                 0}
 };
 
 _PUBLIC_ const char *dcerpc_errstr(TALLOC_CTX *mem_ctx, uint32_t fault_code)
index eae7dad7a66d60fc1cf3d6e937083aadfdf2fd84..c737b3246829c32466a0f126be8321d524c8e2b8 100644 (file)
@@ -406,7 +406,7 @@ LIBNMB_OBJ = libsmb/unexpected.o libsmb/namecache.o libsmb/nmblib.o \
 NTERR_OBJ = libsmb/nterr.o
 DOSERR_OBJ = libsmb/doserr.o
 ERRORMAP_OBJ = libsmb/errormap.o
-DCE_RPC_ERR_OBJ = libsmb/dcerpc_err.o
+DCE_RPC_ERR_OBJ = ../librpc/rpc/dcerpc_error.o
 
 LIBSMB_ERR_OBJ0 = $(NTERR_OBJ) $(DOSERR_OBJ) $(ERRORMAP_OBJ) $(DCE_RPC_ERR_OBJ) \
                  libsmb/smbdes.o libsmb/smbencrypt.o libsmb/ntlmssp_parse.o
index f982f43a7fdc7e904e48d96a658f8561ecd2697a..65dda2ac3dfec82aff9f97ede7615674e613301b 100644 (file)
@@ -3072,9 +3072,9 @@ bool netlogon_creds_client_check(const struct dcinfo *dc,
 void netlogon_creds_client_step(struct dcinfo *dc,
                                struct netr_Authenticator *next_cred_out);
 
-/* The following definitions come from libsmb/dcerpc_err.c  */
+/* The following definitions come from ../librpc/rpc/dcerpc_error.c  */
 
-const char *dcerpc_errstr(uint32 fault_code);
+const char *dcerpc_errstr(TALLOC_CTX *mem_ctx, uint32_t fault_code);
 
 /* The following definitions come from libsmb/doserr.c  */
 
diff --git a/source3/libsmb/dcerpc_err.c b/source3/libsmb/dcerpc_err.c
deleted file mode 100644 (file)
index 900b8d7..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/* 
- *  Unix SMB/CIFS implementation.
- *  Copyright (C) Stefan Metzmacher 2004
- *  
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 3 of the License, or
- *  (at your option) any later version.
- *  
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *  
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "includes.h"
-
-struct dcerpc_fault_table {
-       const char *errstr;
-       uint32_t faultcode;
-};
-
-static const struct dcerpc_fault_table dcerpc_faults[] =
-{
-       { "DCERPC_FAULT_OP_RNG_ERROR",          DCERPC_FAULT_OP_RNG_ERROR },
-       { "DCERPC_FAULT_UNK_IF",                DCERPC_FAULT_UNK_IF },
-       { "DCERPC_FAULT_NDR",                   DCERPC_FAULT_NDR },
-       { "DCERPC_FAULT_INVALID_TAG",           DCERPC_FAULT_INVALID_TAG },
-       { "DCERPC_FAULT_CONTEXT_MISMATCH",      DCERPC_FAULT_CONTEXT_MISMATCH },
-       { "DCERPC_FAULT_OTHER",                 DCERPC_FAULT_OTHER },
-       { "DCERPC_FAULT_ACCESS_DENIED",         DCERPC_FAULT_ACCESS_DENIED },
-
-       { NULL,                                 0}      
-};
-
-const char *dcerpc_errstr(uint32 fault_code)
-{
-       char *result;
-       int idx = 0;
-
-       while (dcerpc_faults[idx].errstr != NULL) {
-               if (dcerpc_faults[idx].faultcode == fault_code) {
-                       return dcerpc_faults[idx].errstr;
-               }
-               idx++;
-       }
-
-       result = talloc_asprintf(talloc_tos(), "DCERPC fault 0x%08x",
-                                fault_code);
-       SMB_ASSERT(result != NULL);
-       return result;
-}
index ca9d3392e7b9c72e1f4ae38c412ae6736c89aeec..f0c2f6709efa8a0622fd41fc45737058b4089567 100644 (file)
@@ -751,7 +751,7 @@ static NTSTATUS cli_pipe_validate_current_pdu(struct rpc_pipe_client *cli, RPC_H
 
                        DEBUG(1, ("cli_pipe_validate_current_pdu: RPC fault "
                                  "code %s received from %s!\n",
-                               dcerpc_errstr(NT_STATUS_V(fault_resp.status)),
+                               dcerpc_errstr(debug_ctx(), NT_STATUS_V(fault_resp.status)),
                                rpccli_pipe_txt(debug_ctx(), cli)));
                        if (NT_STATUS_IS_OK(fault_resp.status)) {
                                return NT_STATUS_UNSUCCESSFUL;
index 5eb6c31ee6d0db6c89462e3edc289b1e89178c0d..504cebbb9dad9ef8df7d42e0fa85dc3e3b4b69d9 100644 (file)
@@ -812,7 +812,7 @@ bool prs_dcerpc_status(const char *name, prs_struct *ps, int depth, NTSTATUS *st
        }
 
        DEBUG(5,("%s%04x %s: %s\n", tab_depth(5,depth), ps->data_offset, name, 
-                dcerpc_errstr(NT_STATUS_V(*status))));
+                dcerpc_errstr(debug_ctx(), NT_STATUS_V(*status))));
 
        ps->data_offset += sizeof(uint32);
 
index a988dcf4202baf4beb8eccd5917f20f7a97fd034..b2b9f2e7a79cc86ae2e2ae60436e661edc4508d9 100644 (file)
@@ -613,8 +613,8 @@ dcerpc_VERSION = 0.0.1
 dcerpc_SOVERSION = 0
 
 dcerpc_OBJ_FILES = $(addprefix $(dcerpcsrcdir)/, dcerpc.o dcerpc_auth.o dcerpc_schannel.o dcerpc_util.o \
-                                 dcerpc_error.o dcerpc_smb.o dcerpc_smb2.o dcerpc_sock.o dcerpc_connect.o dcerpc_secondary.o) \
-                                       ../librpc/rpc/binding.o
+                                 dcerpc_smb.o dcerpc_smb2.o dcerpc_sock.o dcerpc_connect.o dcerpc_secondary.o) \
+                                       ../librpc/rpc/binding.o ../librpc/rpc/dcerpc_error.o
 
 $(eval $(call proto_header_template,$(dcerpcsrcdir)/dcerpc_proto.h,$(dcerpc_OBJ_FILES:.o=.c)))