From 678c401d3ed6f480e237e519aa9aeeaa12b0ab52 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 2 Mar 2007 12:47:51 +0000 Subject: [PATCH] r21650: Update ndrdump to work in samba3 (This used to be commit 10295d9bdd035c008fa7dafef0426c1e86250ac9) --- source4/librpc/tools/ndrdump.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/source4/librpc/tools/ndrdump.c b/source4/librpc/tools/ndrdump.c index 205d094fe76..7fc3e57ff32 100644 --- a/source4/librpc/tools/ndrdump.c +++ b/source4/librpc/tools/ndrdump.c @@ -20,11 +20,13 @@ */ #include "includes.h" +#if (_SAMBA_BUILD_ >= 4) #include "lib/cmdline/popt_common.h" #include "system/filesys.h" #include "system/locale.h" #include "librpc/rpc/dcerpc.h" #include "librpc/rpc/dcerpc_table.h" +#endif static const struct dcerpc_interface_call *find_function( const struct dcerpc_interface_table *p, @@ -47,6 +49,7 @@ static const struct dcerpc_interface_call *find_function( return &p->calls[i]; } +#if (_SAMBA_BUILD_ >= 4) static void show_pipes(void) { @@ -63,6 +66,8 @@ static void show_pipes(void) exit(1); } +#endif + static void show_functions(const struct dcerpc_interface_table *p) { int i; @@ -159,7 +164,9 @@ const struct dcerpc_interface_table *load_iface_from_plugin(const char *plugin, { NULL } }; +#if (_SAMBA_BUILD_ >= 4) dcerpc_table_init(); +#endif pc = poptGetContext("ndrdump", argc, argv, long_options, 0); @@ -187,14 +194,21 @@ const struct dcerpc_interface_table *load_iface_from_plugin(const char *plugin, if (!pipe_name) { poptPrintUsage(pc, stderr, 0); +#if (_SAMBA_BUILD_ >= 4) show_pipes(); +#endif exit(1); } if (plugin != NULL) { p = load_iface_from_plugin(plugin, pipe_name); + } +#if (_SAMBA_BUILD_ <= 3) + else { + fprintf(stderr, "Only loading from DSO's supported in Samba 3\n"); + exit(1); } - +#else if (!p) { p = idl_iface_by_name(pipe_name); } @@ -208,6 +222,7 @@ const struct dcerpc_interface_table *load_iface_from_plugin(const char *plugin, p = idl_iface_by_uuid(&uuid); } } +#endif if (!p) { printf("Unknown pipe or UUID '%s'\n", pipe_name); @@ -257,7 +272,11 @@ const struct dcerpc_interface_table *load_iface_from_plugin(const char *plugin, exit(1); } +#if (_SAMBA_BUILD_ >= 4) data = (uint8_t *)file_load(ctx_filename, &size, mem_ctx); +#else + data = (uint8_t *)file_load(ctx_filename, &size, 0); +#endif if (!data) { perror(ctx_filename); exit(1); @@ -283,7 +302,11 @@ const struct dcerpc_interface_table *load_iface_from_plugin(const char *plugin, } if (filename) +#if (_SAMBA_BUILD_ >= 4) data = (uint8_t *)file_load(filename, &size, mem_ctx); +#else + data = (uint8_t *)file_load(filename, &size, 0); +#endif else data = (uint8_t *)stdin_load(mem_ctx, &size); -- 2.11.4.GIT