summaryrefslogtreecommitdiff
path: root/source4/librpc
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2006-07-31 15:38:18 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:15:17 -0500
commite48ed74f4a2fe490d70c444dca3aa9419409579f (patch)
tree5dd259e04d4c6e1b3ea8f825923320994e57ffc9 /source4/librpc
parent7a845bcb0141a895d5685afcef1ffe7f93428d0f (diff)
downloadsamba-e48ed74f4a2fe490d70c444dca3aa9419409579f.tar.gz
samba-e48ed74f4a2fe490d70c444dca3aa9419409579f.tar.bz2
samba-e48ed74f4a2fe490d70c444dca3aa9419409579f.zip
r17342: implement a SamLogon via IRPC in samba4's winbind
metze (This used to be commit c3ce7a0c3708f0c8e784404e86034f7a00685f88)
Diffstat (limited to 'source4/librpc')
-rw-r--r--source4/librpc/config.mk7
-rw-r--r--source4/librpc/idl/netlogon.idl4
-rw-r--r--source4/librpc/idl/winbind.idl40
3 files changed, 49 insertions, 2 deletions
diff --git a/source4/librpc/config.mk b/source4/librpc/config.mk
index 9e920b9d39..353c58644c 100644
--- a/source4/librpc/config.mk
+++ b/source4/librpc/config.mk
@@ -329,6 +329,13 @@ SO_VERSION = 0
OBJ_FILES = gen_ndr/ndr_winsrepl.o
PUBLIC_DEPENDENCIES = LIBNDR NDR_NBT
+[LIBRARY::NDR_WINBIND]
+VERSION = 0.0.1
+SO_VERSION = 0
+OBJ_FILES = gen_ndr/ndr_winbind.o
+PUBLIC_HEADERS = gen_ndr/winbind.h
+PUBLIC_DEPENDENCIES = LIBNDR NDR_NETLOGON
+
librpc/gen_ndr/tables.c: $(IDL_NDR_PARSE_H_FILES)
@echo Generating librpc/gen_ndr/tables.c
@$(PERL) $(srcdir)/librpc/tables.pl --output=librpc/gen_ndr/tables.c $(IDL_NDR_PARSE_H_FILES) > librpc/gen_ndr/tables.x
diff --git a/source4/librpc/idl/netlogon.idl b/source4/librpc/idl/netlogon.idl
index 95289b7ea9..533095eea6 100644
--- a/source4/librpc/idl/netlogon.idl
+++ b/source4/librpc/idl/netlogon.idl
@@ -118,7 +118,7 @@ interface netlogon
netr_ChallengeResponse lm;
} netr_NetworkInfo;
- typedef [switch_type(uint16)] union {
+ typedef [public,switch_type(uint16)] union {
[case(1)] netr_PasswordInfo *password;
[case(2)] netr_NetworkInfo *network;
[case(3)] netr_PasswordInfo *password;
@@ -221,7 +221,7 @@ interface netlogon
lsa_String unknown4;
} netr_PacInfo;
- typedef [switch_type(uint16)] union {
+ typedef [public,switch_type(uint16)] union {
[case(2)] netr_SamInfo2 *sam2;
[case(3)] netr_SamInfo3 *sam3;
[case(4)] netr_PacInfo *pac;
diff --git a/source4/librpc/idl/winbind.idl b/source4/librpc/idl/winbind.idl
new file mode 100644
index 0000000000..c3f54e0132
--- /dev/null
+++ b/source4/librpc/idl/winbind.idl
@@ -0,0 +1,40 @@
+/*
+ winbind IRPC interface
+*/
+
+#include "idl_types.h"
+
+[
+ uuid("245f3e6b-3c5d-6e21-3a2d-2a3d645b7221"),
+ version(1.0),
+ pointer_default(unique),
+ pointer_default_top(unique),
+ depends(netlogon)
+]
+
+interface winbind
+{
+ declare [switch_type(uint16)] union netr_LogonLevel;
+ declare [switch_type(uint16)] union netr_Validation;
+
+ /* a call to get runtime informations */
+ void winbind_information(/* TODO */);
+
+ /*
+ * a call to trigger some internal events,
+ * for use in torture tests...
+ */
+ NTSTATUS winbind_remote_control(/* TODO */);
+
+ /*
+ * do a netr_LogonSamLogon() against the right DC
+ */
+ NTSTATUS winbind_SamLogon(
+ [in] uint16 logon_level,
+ [in] [switch_is(logon_level)] netr_LogonLevel logon,
+ [in] uint16 validation_level,
+ [out] [switch_is(validation_level)] netr_Validation validation,
+ [out] uint8 authoritative,
+ [in,out] uint32 flags
+ );
+}