summaryrefslogtreecommitdiff
path: root/source4/librpc/idl
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2003-11-21 13:14:17 +0000
committerAndrew Tridgell <tridge@samba.org>2003-11-21 13:14:17 +0000
commita465add90f3291f022104600c6221e8d90287e64 (patch)
tree155a7f43e7a50027be5d9144755bf134ee585810 /source4/librpc/idl
parent82d6f5587b6052a226f90a82314573fb348fb0ce (diff)
downloadsamba-a465add90f3291f022104600c6221e8d90287e64.tar.gz
samba-a465add90f3291f022104600c6221e8d90287e64.tar.bz2
samba-a465add90f3291f022104600c6221e8d90287e64.zip
* changed the way strings are handled in pidl to a much more general
interface. We now support an arbitrary set of flags to each parser, and these can be used to control the string types. I have provided some common IDL string types in librpc/idl/idl_types.h which needs to be included in every IDL file. * added IDL for the endpoint mapper. Added a test suite that enumerates all endpoints on the server. (This used to be commit d2665f36a75b482ff82733f72ffac938c2acf87a)
Diffstat (limited to 'source4/librpc/idl')
-rw-r--r--source4/librpc/idl/atsvc.idl2
-rw-r--r--source4/librpc/idl/dfs.idl2
-rw-r--r--source4/librpc/idl/echo.idl3
-rw-r--r--source4/librpc/idl/epmapper.idl134
-rw-r--r--source4/librpc/idl/eventlog.idl2
-rw-r--r--source4/librpc/idl/lsa.idl4
-rw-r--r--source4/librpc/idl/misc.idl2
-rw-r--r--source4/librpc/idl/samr.idl24
-rw-r--r--source4/librpc/idl/spoolss.idl4
-rw-r--r--source4/librpc/idl/srvsvc.idl4
-rw-r--r--source4/librpc/idl/winreg.idl2
-rw-r--r--source4/librpc/idl/wkssvc.idl2
12 files changed, 179 insertions, 6 deletions
diff --git a/source4/librpc/idl/atsvc.idl b/source4/librpc/idl/atsvc.idl
index 81394c747b..39add81b09 100644
--- a/source4/librpc/idl/atsvc.idl
+++ b/source4/librpc/idl/atsvc.idl
@@ -2,6 +2,8 @@
atsvc interface definition
*/
+#include "idl_types.h"
+
[ uuid(1ff70682-0a51-30e8-076d-740be8cee98b),
version(1.0),
pointer_default(unique)
diff --git a/source4/librpc/idl/dfs.idl b/source4/librpc/idl/dfs.idl
index 8e8488e367..fd9e164ffa 100644
--- a/source4/librpc/idl/dfs.idl
+++ b/source4/librpc/idl/dfs.idl
@@ -2,6 +2,8 @@
dfs interface definition
*/
+#include "idl_types.h"
+
[ uuid(4fc742e0-4a10-11cf-8273-00aa004ae673),
version(3.0),
pointer_default(unique)
diff --git a/source4/librpc/idl/echo.idl b/source4/librpc/idl/echo.idl
index 38650e990d..e6d93e52c4 100644
--- a/source4/librpc/idl/echo.idl
+++ b/source4/librpc/idl/echo.idl
@@ -1,3 +1,6 @@
+#include "idl_types.h"
+
+
[
uuid(60a15ec5-4de8-11d7-a637-005056a20182),
version(1.0)
diff --git a/source4/librpc/idl/epmapper.idl b/source4/librpc/idl/epmapper.idl
new file mode 100644
index 0000000000..c58ceb1fc0
--- /dev/null
+++ b/source4/librpc/idl/epmapper.idl
@@ -0,0 +1,134 @@
+#include "idl_types.h"
+
+/*
+ endpoint mapper interface
+*/
+
+[
+ uuid(e1af8308-5d1f-11c9-91a4-08002b14a0fa),
+ version(3.0),
+ pointer_default(unique)
+]
+interface epmapper
+{
+
+ typedef struct {
+ GUID uuid;
+ uint16 version;
+ } epm_prot_uuid;
+
+ typedef [nodiscriminant] union {
+ [case(13)] epm_prot_uuid uuid;
+ [default] ;
+ } epm_protocol_info;
+
+ typedef struct {
+ uint8 protocol;
+ [switch_is(protocol)] epm_protocol_info info;
+ } epm_lhs;
+
+ typedef struct {
+ uint16 unknown;
+ } epm_rhs;
+
+ typedef struct {
+ [subcontext(2)] epm_lhs lhs;
+ [subcontext(2)] epm_rhs rhs;
+ } epm_floor;
+
+ typedef [flag(NDR_NOALIGN)] struct {
+ uint16 num_floors;
+ epm_floor floors[num_floors];
+ } epm_towers;
+
+ typedef struct {
+ uint32 tower_length;
+ [subcontext(4)] epm_towers towers;
+ } twr_t;
+
+ typedef struct {
+ GUID object;
+ twr_t *tower;
+ ascstr2 annotation;
+ } epm_entry_t;
+
+ typedef struct {
+ GUID uuid;
+ uint16 vers_major;
+ uint16 vers_minor;
+ } rpc_if_id_t;
+
+ /**********************/
+ /* Function 0x0 */
+ void epm_Insert(
+ [in] uint32 num_ents,
+ [in,size_is(num_ents)] epm_entry_t entries[],
+ [in] uint32 replace,
+ [out] uint32 *status
+ );
+
+ /**********************/
+ /* Function 0x1 */
+ void epm_Delete(
+ [in] uint32 num_ents,
+ [in, size_is(num_ents)] epm_entry_t entries[],
+ [out] uint32 *status
+ );
+
+ /**********************/
+ /* Function 0x02 */
+ void epm_Lookup(
+ [in] uint32 inquiry_type,
+ [in] GUID *object,
+ [in] rpc_if_id_t *interface_id,
+ [in] uint32 vers_option,
+ [in, out, ref] policy_handle *entry_handle,
+ [in] uint32 max_ents,
+ [out] uint32 num_ents,
+ [out, length_is(num_ents), size_is(max_ents)] epm_entry_t entries[],
+ [out] uint32 status
+ );
+
+
+ /**********************/
+ /* Function 0x03 */
+
+ typedef struct {
+ twr_t *twr;
+ } twr_p_t;
+
+ void epm_Map(
+ [in] GUID *object,
+ [in] twr_t *map_tower,
+ [in, out] policy_handle *entry_handle,
+ [in] uint32 max_towers,
+ [out] uint32 *num_towers,
+ [out, length_is(*num_towers), size_is(max_towers)] twr_p_t towers[],
+ [out] uint32 *status
+ );
+
+
+ /**********************/
+ /* Function 0x04 */
+ void epm_LookupHandleFree(
+ [in, out] policy_handle *entry_handle,
+ [out] uint32 *status
+ );
+
+ /**********************/
+ /* Function 0x05 */
+ void epm_InqObject(
+ [out] GUID *epm_object,
+ [out] uint32 *status
+ );
+
+
+ /**********************/
+ /* Function 0x05 */
+ void epm_MgmtDelete(
+ [in] uint32 object_speced,
+ [in] GUID *object,
+ [in] twr_t *tower,
+ [out] uint32 *status
+ );
+}
diff --git a/source4/librpc/idl/eventlog.idl b/source4/librpc/idl/eventlog.idl
index a8eba4ae16..ee5bd8bba8 100644
--- a/source4/librpc/idl/eventlog.idl
+++ b/source4/librpc/idl/eventlog.idl
@@ -1,3 +1,5 @@
+#include "idl_types.h"
+
/*
eventlog interface definition
*/
diff --git a/source4/librpc/idl/lsa.idl b/source4/librpc/idl/lsa.idl
index 6aedd33b97..7b2de5bd8f 100644
--- a/source4/librpc/idl/lsa.idl
+++ b/source4/librpc/idl/lsa.idl
@@ -1,3 +1,5 @@
+#include "idl_types.h"
+
/*
lsa interface definition
*/
@@ -54,7 +56,7 @@
typedef struct {
uint32 size;
- [subcontext] security_descriptor *sd;
+ [subcontext(4)] security_descriptor *sd;
} sec_desc_buf;
NTSTATUS lsa_QuerySecObj (
diff --git a/source4/librpc/idl/misc.idl b/source4/librpc/idl/misc.idl
index 031ca89821..04e03fc814 100644
--- a/source4/librpc/idl/misc.idl
+++ b/source4/librpc/idl/misc.idl
@@ -1,3 +1,5 @@
+#include "idl_types.h"
+
/*
miscellaneous IDL structures
*/
diff --git a/source4/librpc/idl/samr.idl b/source4/librpc/idl/samr.idl
index 29ba402503..bb0e85b7de 100644
--- a/source4/librpc/idl/samr.idl
+++ b/source4/librpc/idl/samr.idl
@@ -1,6 +1,7 @@
+#include "idl_types.h"
+
/*
samr interface definition
-
*/
/*
@@ -44,7 +45,7 @@
typedef struct {
uint32 sd_size;
- [subcontext] security_descriptor *sd;
+ [subcontext(4)] security_descriptor *sd;
} samr_SdBuf;
NTSTATUS samr_QuerySecurity (
@@ -727,9 +728,26 @@
/* Function 0x2b */
NTSTATUS samr_TEST_PRIVATE_FUNCTIONS_USER();
+
/************************/
/* Function 0x2c */
- NTSTATUS samr_GET_USRDOM_PWINFO();
+
+/*
+const ULONG DOMAIN_PASSWORD_COMPLEX = 0x00000001;
+const ULONG DOMAIN_PASSWORD_NO_ANON_CHANGE = 0x00000002;
+const ULONG DOMAIN_PASSWORD_NO_CLEAR_CHANGE = 0x00000004;
+const ULONG DOMAIN_PASSWORD_STORE_CLEARTEXT = 0x00000010;
+const ULONG DOMAIN_REFUSE_PASSWORD_CHANGE = 0x00000020;
+*/
+ typedef struct {
+ uint16 min_pwd_len;
+ uint32 passwd_properties;
+ } samr_PwInfo;
+
+ NTSTATUS samr_GetUserPwInfo(
+ [in,ref] policy_handle *handle,
+ [out] samr_PwInfo info
+ );
/************************/
/* Function 0x2d */
diff --git a/source4/librpc/idl/spoolss.idl b/source4/librpc/idl/spoolss.idl
index 586536b69c..a9d653458b 100644
--- a/source4/librpc/idl/spoolss.idl
+++ b/source4/librpc/idl/spoolss.idl
@@ -1,3 +1,5 @@
+#include "idl_types.h"
+
/*
spoolss interface definitions
*/
@@ -179,7 +181,7 @@
[in,ref] policy_handle *handle,
[in] uint32 level,
[in] DATA_BLOB *buffer,
- [out,subcontext,switch_is(level)] spoolss_PrinterInfo *info,
+ [out,subcontext(4),switch_is(level)] spoolss_PrinterInfo *info,
[in,out,ref] uint32 *buf_size
);
diff --git a/source4/librpc/idl/srvsvc.idl b/source4/librpc/idl/srvsvc.idl
index 530b19d6cf..ac421d8626 100644
--- a/source4/librpc/idl/srvsvc.idl
+++ b/source4/librpc/idl/srvsvc.idl
@@ -1,3 +1,5 @@
+#include "idl_types.h"
+
/*
srvsvc interface definitions
*/
@@ -302,7 +304,7 @@
unistr *path;
uint32 *password;
uint32 unknown;
- [subcontext] security_descriptor *sd;
+ [subcontext(4)] security_descriptor *sd;
} srvsvc_NetShare502;
typedef struct {
diff --git a/source4/librpc/idl/winreg.idl b/source4/librpc/idl/winreg.idl
index 68b13f8245..84250a61a5 100644
--- a/source4/librpc/idl/winreg.idl
+++ b/source4/librpc/idl/winreg.idl
@@ -1,3 +1,5 @@
+#include "idl_types.h"
+
/*
winreg interface definition
*/
diff --git a/source4/librpc/idl/wkssvc.idl b/source4/librpc/idl/wkssvc.idl
index 2a1fb83f79..31e37d4759 100644
--- a/source4/librpc/idl/wkssvc.idl
+++ b/source4/librpc/idl/wkssvc.idl
@@ -1,3 +1,5 @@
+#include "idl_types.h"
+
/*
wkssvc interface definitions
*/