summaryrefslogtreecommitdiff
path: root/source4/librpc
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2005-05-19 15:45:25 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:16:56 -0500
commit283991e1fff8b74af693aeb634143b10b5e939c8 (patch)
tree1bee3b1a9a56fd1c6fadaa37da5173fb09c70d31 /source4/librpc
parent45511bd09b62266904c547398037fd41fbb8871e (diff)
downloadsamba-283991e1fff8b74af693aeb634143b10b5e939c8.tar.gz
samba-283991e1fff8b74af693aeb634143b10b5e939c8.tar.bz2
samba-283991e1fff8b74af693aeb634143b10b5e939c8.zip
r6907: Unixinfo for samba4, not activated by default.
Volker (This used to be commit 81ddffde369c5b5e91bc130510f43c6841a789c4)
Diffstat (limited to 'source4/librpc')
-rw-r--r--source4/librpc/config.mk15
-rw-r--r--source4/librpc/idl/unixinfo.idl56
2 files changed, 69 insertions, 2 deletions
diff --git a/source4/librpc/config.mk b/source4/librpc/config.mk
index 0ee9c0f501..45cc360f24 100644
--- a/source4/librpc/config.mk
+++ b/source4/librpc/config.mk
@@ -113,6 +113,12 @@ INIT_OBJ_FILES = librpc/gen_ndr/ndr_policyagent.o
NOPROTO = YES
REQUIRED_SUBSYSTEMS = NDR
+[SUBSYSTEM::NDR_UNIXINFO]
+INIT_FUNCTION = dcerpc_unixinfo_init
+INIT_OBJ_FILES = librpc/gen_ndr/ndr_unixinfo.o
+NOPROTO = YES
+REQUIRED_SUBSYSTEMS = NDR
+
[SUBSYSTEM::NDR_SAMR]
INIT_FUNCTION = dcerpc_samr_init
INIT_OBJ_FILES = librpc/gen_ndr/ndr_samr.o
@@ -321,7 +327,7 @@ REQUIRED_SUBSYSTEMS = NDR NDR_NBT
[SUBSYSTEM::NDR_ALL]
REQUIRED_SUBSYSTEMS = NDR_AUDIOSRV NDR_ECHO NDR_DCERPC NDR_EXCHANGE \
NDR_DSBACKUP NDR_EFS NDR_MISC NDR_LSA NDR_DFS NDR_DRSUAPI \
- NDR_POLICYAGENT NDR_SAMR NDR_SPOOLSS NDR_WKSSVC NDR_SRVSVC NDR_ATSVC \
+ NDR_POLICYAGENT NDR_UNIXINFO NDR_SAMR NDR_SPOOLSS NDR_WKSSVC NDR_SRVSVC NDR_ATSVC \
NDR_EVENTLOG NDR_EPMAPPER NDR_DBGIDL NDR_DSSETUP NDR_MSGSVC NDR_WINS \
NDR_WINREG NDR_MGMT NDR_PROTECTED_STORAGE NDR_OXIDRESOLVER \
NDR_REMACT NDR_WZCSVC NDR_BROWSER NDR_W32TIME NDR_SCERPC NDR_NTSVCS \
@@ -384,6 +390,11 @@ ADD_OBJ_FILES = librpc/gen_ndr/ndr_policyagent_c.o
REQUIRED_SUBSYSTEMS = RPC NDR_POLICYAGENT
NOPROTO = YES
+[SUBSYSTEM::RPC_NDR_UNIXINFO]
+ADD_OBJ_FILES = librpc/gen_ndr/ndr_unixinfo_c.o
+REQUIRED_SUBSYSTEMS = RPC NDR_UNIXINFO
+NOPROTO = YES
+
[SUBSYSTEM::RPC_NDR_SAMR]
ADD_OBJ_FILES = librpc/gen_ndr/ndr_samr_c.o
REQUIRED_SUBSYSTEMS = RPC NDR_SAMR
@@ -522,6 +533,6 @@ NOPROTO = YES
################################################
# Start SUBSYSTEM RPC
[SUBSYSTEM::RPC]
-REQUIRED_SUBSYSTEMS = NDR_RAW RPC_RAW LIBSMB NDR_MISC NDR_DCERPC NDR_SCHANNEL NDR_LSA NDR_NETLOGON NDR_SAMR RPC_NDR_NETLOGON RPC_NDR_EPMAPPER
+REQUIRED_SUBSYSTEMS = NDR_RAW RPC_RAW LIBSMB NDR_MISC NDR_DCERPC NDR_SCHANNEL NDR_LSA NDR_NETLOGON NDR_SAMR NDR_UNIXINFO RPC_NDR_NETLOGON RPC_NDR_EPMAPPER
# End SUBSYSTEM RPC
################################################
diff --git a/source4/librpc/idl/unixinfo.idl b/source4/librpc/idl/unixinfo.idl
new file mode 100644
index 0000000000..e740368875
--- /dev/null
+++ b/source4/librpc/idl/unixinfo.idl
@@ -0,0 +1,56 @@
+#include "idl_types.h"
+
+/*
+ Unixinfo interface definition
+*/
+
+[ uuid("9c54e310-a955-4885-bd31-78787147dfa6"),
+ version(0.0),
+ endpoint("ncacn_np:[\\pipe\\unixinfo]", "ncacn_ip_tcp:", "ncalrpc:"),
+ pointer_default(unique),
+ helpstring("Unixinfo specific stuff"),
+ depends(security)
+] interface unixinfo
+{
+ /******************/
+ /* Function: 0x00 */
+ NTSTATUS unixinfo_SidToUid (
+ [in] dom_sid sid,
+ [out] hyper uid
+ );
+
+ /******************/
+ /* Function: 0x01 */
+ NTSTATUS unixinfo_UidToSid (
+ [in] hyper uid,
+ [out] dom_sid *sid
+ );
+
+ /******************/
+ /* Function: 0x02 */
+ NTSTATUS unixinfo_SidToGid (
+ [in] dom_sid sid,
+ [out] hyper gid
+ );
+
+ /******************/
+ /* Function: 0x03 */
+ NTSTATUS unixinfo_GidToSid (
+ [in] hyper gid,
+ [out] dom_sid *sid
+ );
+
+ typedef struct {
+ NTSTATUS status;
+ utf8string homedir;
+ utf8string shell;
+ } unixinfo_GetPWUidInfo;
+
+ /******************/
+ /* Function: 0x04 */
+ NTSTATUS unixinfo_GetPWUid (
+ [in,out,range(0,1023)] uint32 count,
+ [in,size_is(count)] hyper uids[],
+ [out,size_is(count)] unixinfo_GetPWUidInfo infos[]
+ );
+}