summaryrefslogtreecommitdiff
path: root/source4/librpc/idl
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2004-09-27 16:37:41 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:59:24 -0500
commitfc3c05e63f4fedb1532e86d9421490fda6435c79 (patch)
treef92acca1dfb09c9c299031339c1f4639bb5d4169 /source4/librpc/idl
parenteac532ee3af95654b62d4db57feea0df6abab345 (diff)
downloadsamba-fc3c05e63f4fedb1532e86d9421490fda6435c79.tar.gz
samba-fc3c05e63f4fedb1532e86d9421490fda6435c79.tar.bz2
samba-fc3c05e63f4fedb1532e86d9421490fda6435c79.zip
r2696: DCOM updates:
- Start working on OXIDResolver interface - Add torture test for SimplePing() (This used to be commit b54d14a01a71082251ff926ab57974c6eb3c0a41)
Diffstat (limited to 'source4/librpc/idl')
-rw-r--r--source4/librpc/idl/dcom.idl79
-rw-r--r--source4/librpc/idl/oxidresolver.idl95
2 files changed, 95 insertions, 79 deletions
diff --git a/source4/librpc/idl/dcom.idl b/source4/librpc/idl/dcom.idl
index c537a01509..df0bcbc80e 100644
--- a/source4/librpc/idl/dcom.idl
+++ b/source4/librpc/idl/dcom.idl
@@ -35,9 +35,6 @@ interface ObjectRpcBaseTypes
// Object Identifer
#define OID HYPER_T
- // Ping Set Identifier
-#define SETID HYPER_T
-
// Interface Pointer Identifier
#define IPID GUID
@@ -379,82 +376,6 @@ interface IRemUnknown2 : IRemUnknown
);
}
-[
- uuid(99fcfec4-5260-101b-bbcb-00aa0021347a),
- helpstring("Object Exporter ID Resolver"),
- pointer_default(unique)
-]
-interface IOXIDResolver
-{
- // Method to get the protocol sequences, string bindings
- // and machine id for an object server given its OXID.
-
- typedef [public] struct {
- DUALSTRINGARRAY *ppdsaOxidBindings;
- } ppdsaOxidBindingsArray;
-
- [idempotent] WERROR ResolveOxid (
- [in] OXID *pOxid,
- [in] uint16 cRequestedProtseqs,
- [in, size_is(cRequestedProtseqs)] uint16 arRequestedProtseqs[],
- [out, ref] ppdsaOxidBindingsArray *ppdsaOxidBindings,
- [out, ref] IPID *pipidRemUnknown,
- [out, ref] uint32 *pAuthnHint
- );
-
- // Simple ping is used to ping a Set. Client machines use this
- // to inform the object exporter that it is still using the
- // members of the set.
- // Returns S_TRUE if the SetId is known by the object exporter,
- // S_FALSE if not.
- [idempotent] WERROR SimplePing (
- [in] SETID *pSetId // Must not be zero
- );
-
- // Complex ping is used to create sets of OIDs to ping. The
- // whole set can subsequently be pinged using SimplePing,
- // thus reducing network traffic.
- [idempotent] WERROR ComplexPing (
- [in, out] SETID *pSetId, // In of 0 on first call for new set.
- [in] uint16 SequenceNum,
- [in] uint16 cAddToSet,
- [in] uint16 cDelFromSet,
- // add these OIDs to the set
- [in, unique, size_is(cAddToSet)] OID AddToSet[],
- //remove these OIDs from the set
- [in, unique, size_is(cDelFromSet)] OID DelFromSet[],
- [out] uint16 *pPingBackoffFactor// 2^factor = multipler
- );
- // In some cases the client maybe unsure that a particular
- // binding will reach the server. (For example, when the oxid
- // bindings have more then one TCP/IP binding) This call
- // can be used to validate the binding
- // from the client.
- [idempotent] WERROR ServerAlive ();
-
- // Method to get the protocol sequences, string bindings,
- // RemoteUnknown IPID and COM version for an object server
- // given its OXID. Supported by DCOM
- // version 5.2 and above.
- [idempotent] WERROR ResolveOxid2 (
- [in] OXID *pOxid,
- [in] uint16 cRequestedProtseqs,
- [in, size_is(cRequestedProtseqs)]
- uint16 arRequestedProtseqs[],
- [out, ref] ppdsaOxidBindingsArray *ppdsaOxidBindings,
- [out, ref] IPID *pipidRemUnknown,
- [out, ref] uint32 *pAuthnHint,
- [out, ref] COMVERSION *pComVersion
- );
-
- [idempotent] WERROR ServerAlive2 (
- [out] COMVERSION version,
- [out] uint8 unknown1[4],
- [out] DUALSTRINGARRAY dualstring,
- [out] uint8 unknown2[5]);
-
-}
-
[
uuid(4d9f4ab8-7d1c-11cf-861e-0020af6e7c57),
version(0.0),
diff --git a/source4/librpc/idl/oxidresolver.idl b/source4/librpc/idl/oxidresolver.idl
new file mode 100644
index 0000000000..57c5cd439f
--- /dev/null
+++ b/source4/librpc/idl/oxidresolver.idl
@@ -0,0 +1,95 @@
+#include "idl_types.h"
+
+/**
+ DCOM interfaces
+ http://www.grimes.demon.co.uk/DCOM/DCOMSpec.htm
+ */
+
+/*
+ The OXID Resolver can turn a OXID (Object Exporter ID) into a
+ RPC binding string that can be used to contact an object
+
+ (used by DCOM)
+ */
+
+[
+ uuid(99fcfec4-5260-101b-bbcb-00aa0021347a),
+ helpstring("Object Exporter ID Resolver"),
+ endpoints(epmapper, TCP-135),
+ pointer_default(unique)
+]
+interface IOXIDResolver
+{
+#define OXID HYPER_T
+#define SETID HYPER_T
+#define IPID GUID
+#define OID GUID
+
+ // Method to get the protocol sequences, string bindings
+ // and machine id for an object server given its OXID.
+
+ typedef [public] struct {
+ DUALSTRINGARRAY *ppdsaOxidBindings;
+ } ppdsaOxidBindingsArray;
+
+ [idempotent] WERROR ResolveOxid (
+ [in] OXID *pOxid,
+ [in] uint16 cRequestedProtseqs,
+ [in, size_is(cRequestedProtseqs)] uint16 arRequestedProtseqs[],
+ [out, ref] ppdsaOxidBindingsArray *ppdsaOxidBindings,
+ [out, ref] IPID *pipidRemUnknown,
+ [out, ref] uint32 *pAuthnHint
+ );
+
+ // Simple ping is used to ping a Set. Client machines use this
+ // to inform the object exporter that it is still using the
+ // members of the set.
+ // Returns S_TRUE if the SetId is known by the object exporter,
+ // S_FALSE if not.
+ [idempotent] WERROR SimplePing (
+ [in] SETID *SetId // Must not be zero
+ );
+
+ // Complex ping is used to create sets of OIDs to ping. The
+ // whole set can subsequently be pinged using SimplePing,
+ // thus reducing network traffic.
+ [idempotent] WERROR ComplexPing (
+ [in, out] SETID *pSetId, // In of 0 on first call for new set.
+ [in] uint16 SequenceNum,
+ [in] uint16 cAddToSet,
+ [in] uint16 cDelFromSet,
+ // add these OIDs to the set
+ [in, size_is(cAddToSet)] OID AddToSet[],
+ //remove these OIDs from the set
+ [in, size_is(cDelFromSet)] OID DelFromSet[],
+ [out] uint16 *pPingBackoffFactor// 2^factor = multipler
+ );
+
+ // In some cases the client maybe unsure that a particular
+ // binding will reach the server. (For example, when the oxid
+ // bindings have more then one TCP/IP binding) This call
+ // can be used to validate the binding
+ // from the client.
+ [idempotent] WERROR ServerAlive ();
+
+ // Method to get the protocol sequences, string bindings,
+ // RemoteUnknown IPID and COM version for an object server
+ // given its OXID. Supported by DCOM
+ // version 5.2 and above.
+ [idempotent] WERROR ResolveOxid2 (
+ [in] OXID *pOxid,
+ [in] uint16 cRequestedProtseqs,
+ [in, size_is(cRequestedProtseqs)]
+ uint16 arRequestedProtseqs[],
+ [out, ref] ppdsaOxidBindingsArray *ppdsaOxidBindings,
+ [out, ref] IPID *pipidRemUnknown,
+ [out, ref] uint32 *pAuthnHint,
+ [out, ref] COMVERSION *pComVersion
+ );
+
+ [idempotent] WERROR ServerAlive2 (
+ [out] COMVERSION version,
+ [out] uint8 unknown1[4],
+ [out] DUALSTRINGARRAY dualstring,
+ [out] uint8 unknown2[5]);
+}