From daa7c984096fb3513a458a0637fdfc0c00ee9fb9 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 12 Aug 2004 19:32:16 +0000 Subject: r1786: Add support for the 'helpstring' attribute on interfaces (This used to be commit 85fb26a05d57e58795b0c0ffa93dc9e0fa902431) --- source4/build/pidl/header.pm | 5 +++++ source4/build/pidl/parser.pm | 1 + source4/librpc/rpc/dcerpc.h | 1 + source4/utils/ndrdump.c | 6 +++++- 4 files changed, 12 insertions(+), 1 deletion(-) (limited to 'source4') 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); } -- cgit