diff options
author | Andrew Tridgell <tridge@samba.org> | 2005-06-05 06:53:07 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:17:37 -0500 |
commit | bf1ffa283caef6a3c98b5cc7f5bc8205c2818b06 (patch) | |
tree | 11b434e632aaee2472c906b7ddb9d14fdfd48e38 /source4/librpc | |
parent | 03840652354598db203a3596077ecc55726880c8 (diff) | |
download | samba-bf1ffa283caef6a3c98b5cc7f5bc8205c2818b06.tar.gz samba-bf1ffa283caef6a3c98b5cc7f5bc8205c2818b06.tar.bz2 samba-bf1ffa283caef6a3c98b5cc7f5bc8205c2818b06.zip |
r7294: implemented the irpc messaging system. This is the core of the
management system I proposed on samba-technical a couple of days
ago. Essentially it is a very lightweight way for any code in Samba to
make IDL based rpc calls to anywhere else in the code, without the
client or server having to go to the trouble of setting up a full rpc
service.
It can be used with any of our existing IDL, but I expect it will
mostly be used for a new set of Samba specific management calls.
The LOCAL-IRPC torture test demonstrates how it can be used by calling
the echo_AddOne() call over this transport.
(This used to be commit 3d589a09954eb8b318f567e1150b0c27412fb942)
Diffstat (limited to 'source4/librpc')
-rw-r--r-- | source4/librpc/config.mk | 6 | ||||
-rw-r--r-- | source4/librpc/idl/irpc.idl | 23 |
2 files changed, 29 insertions, 0 deletions
diff --git a/source4/librpc/config.mk b/source4/librpc/config.mk index 6d3cfcb8eb..4fe50352f6 100644 --- a/source4/librpc/config.mk +++ b/source4/librpc/config.mk @@ -55,6 +55,12 @@ INIT_OBJ_FILES = librpc/gen_ndr/ndr_echo.o NOPROTO = YES REQUIRED_SUBSYSTEMS = NDR_RAW +[SUBSYSTEM::NDR_IRPC] +INIT_FUNCTION = dcerpc_irpc_init +INIT_OBJ_FILES = librpc/gen_ndr/ndr_irpc.o +NOPROTO = YES +REQUIRED_SUBSYSTEMS = NDR_RAW + [SUBSYSTEM::NDR_EXCHANGE] INIT_FUNCTION = dcerpc_exchange_init INIT_OBJ_FILES = librpc/gen_ndr/ndr_exchange.o diff --git a/source4/librpc/idl/irpc.idl b/source4/librpc/idl/irpc.idl new file mode 100644 index 0000000000..8db945c9bd --- /dev/null +++ b/source4/librpc/idl/irpc.idl @@ -0,0 +1,23 @@ +#include "idl_types.h" + +/* + definitions for irpc primitives +*/ +[ +pointer_default(unique) +] +interface irpc +{ + typedef bitmap { + IRPC_FLAG_REPLY = 0x0001 + } irpc_flags; + + typedef [public] struct { + GUID uuid; + uint32 if_version; + uint32 callnum; + uint32 callid; + irpc_flags flags; + NTSTATUS status; + } irpc_header; +} |