r21650: Update ndrdump to work in samba3
authorJelmer Vernooij <jelmer@samba.org>
Fri, 2 Mar 2007 12:47:51 +0000 (12:47 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:49:04 +0000 (14:49 -0500)
(This used to be commit 10295d9bdd035c008fa7dafef0426c1e86250ac9)

source4/librpc/tools/ndrdump.c

index 205d094fe7678800834ad6ec3262f3c70928a255..7fc3e57ff3256adeb4cbc536e96607d2cebebf01 100644 (file)
 */
 
 #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);