summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2004-08-12 19:32:16 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:57:56 -0500
commitdaa7c984096fb3513a458a0637fdfc0c00ee9fb9 (patch)
tree90e1343a95bc90c9db8bb62491b9ef6558cdf14c
parent28ea8b8785e5e8e3b3f3ddf0c12c0c8c69ea77c5 (diff)
downloadsamba-daa7c984096fb3513a458a0637fdfc0c00ee9fb9.tar.gz
samba-daa7c984096fb3513a458a0637fdfc0c00ee9fb9.tar.bz2
samba-daa7c984096fb3513a458a0637fdfc0c00ee9fb9.zip
r1786: Add support for the 'helpstring' attribute on interfaces
(This used to be commit 85fb26a05d57e58795b0c0ffa93dc9e0fa902431)
-rw-r--r--source4/build/pidl/header.pm5
-rw-r--r--source4/build/pidl/parser.pm1
-rw-r--r--source4/librpc/rpc/dcerpc.h1
-rw-r--r--source4/utils/ndrdump.c6
4 files changed, 12 insertions, 1 deletions
diff --git a/source4/build/pidl/header.pm b/source4/build/pidl/header.pm
index 589f9c6b54..24e618bb48 100644
--- a/source4/build/pidl/header.pm
+++ b/source4/build/pidl/header.pm
@@ -278,7 +278,12 @@ sub HeaderInterface($)
if(!defined $interface->{PROPERTIES}->{version}) { $interface->{PROPERTIES}->{version} = "0.0"; }
$res .= "#define DCERPC_$name\_VERSION $interface->{PROPERTIES}->{version}\n";
+
$res .= "#define DCERPC_$name\_NAME \"$interface->{NAME}\"\n\n";
+
+ if(!defined $interface->{PROPERTIES}->{helpstring}) { $interface->{PROPERTIES}->{helpstring} = "NULL"; }
+ $res .= "#define DCERPC_$name\_HELPSTRING $interface->{PROPERTIES}->{helpstring}\n";
+
$res .= "extern const struct dcerpc_interface_table dcerpc_table_$interface->{NAME};\n";
$res .= "NTSTATUS dcerpc_$interface->{NAME}_init(void);\n\n";
}
diff --git a/source4/build/pidl/parser.pm b/source4/build/pidl/parser.pm
index 5b85337212..621b12aa62 100644
--- a/source4/build/pidl/parser.pm
+++ b/source4/build/pidl/parser.pm
@@ -1383,6 +1383,7 @@ sub FunctionTable($)
pidl "\t\"$interface->{NAME}\",\n";
pidl "\tDCERPC_$uname\_UUID,\n";
pidl "\tDCERPC_$uname\_VERSION,\n";
+ pidl "\tDCERPC_$uname\_HELPSTRING,\n";
pidl "\t$count,\n";
pidl "\t$interface->{NAME}\_calls,\n";
pidl "\t&$interface->{NAME}\_endpoints\n";
diff --git a/source4/librpc/rpc/dcerpc.h b/source4/librpc/rpc/dcerpc.h
index db7552278a..2c36241020 100644
--- a/source4/librpc/rpc/dcerpc.h
+++ b/source4/librpc/rpc/dcerpc.h
@@ -105,6 +105,7 @@ struct dcerpc_interface_table {
const char *name;
const char *uuid;
uint32_t if_version;
+ const char *helpstring;
uint32_t num_calls;
const struct dcerpc_interface_call *calls;
const struct dcerpc_endpoint_list *endpoints;
diff --git a/source4/utils/ndrdump.c b/source4/utils/ndrdump.c
index 1b480c6c4d..ea8071e559 100644
--- a/source4/utils/ndrdump.c
+++ b/source4/utils/ndrdump.c
@@ -69,7 +69,11 @@ static void show_pipes(void)
printf("\nYou must specify a pipe\n");
printf("known pipes are:\n");
for (i=0;dcerpc_pipes[i];i++) {
- printf("\t%s\n", dcerpc_pipes[i]->name);
+ if(dcerpc_pipes[i]->helpstring) {
+ printf("\t%s - %s\n", dcerpc_pipes[i]->name, dcerpc_pipes[i]->helpstring);
+ } else {
+ printf("\t%s\n", dcerpc_pipes[i]->name);
+ }
}
exit(1);
}