summaryrefslogtreecommitdiff
path: root/librpc
diff options
context:
space:
mode:
Diffstat (limited to 'librpc')
-rw-r--r--librpc/idl/smb_acl.idl63
-rw-r--r--librpc/idl/wscript_build2
-rw-r--r--librpc/wscript_build5
3 files changed, 69 insertions, 1 deletions
diff --git a/librpc/idl/smb_acl.idl b/librpc/idl/smb_acl.idl
new file mode 100644
index 0000000000..9586958bc6
--- /dev/null
+++ b/librpc/idl/smb_acl.idl
@@ -0,0 +1,63 @@
+/*
+ Unix SMB/CIFS implementation.
+ Portable SMB ACL interface
+ Copyright (C) Jeremy Allison 2000
+ Copyright (C) Andrew Bartlett 2012
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+
+/* Allow the smb_acl interface to be pushed into an NDR blob and read/written in python */
+[
+ pointer_default(unique)
+]
+interface smb_acl
+{
+
+ const int SMB_ACL_READ = 4;
+ const int SMB_ACL_WRITE = 2;
+ const int SMB_ACL_EXECUTE = 1;
+
+ /* Types of ACLs. */
+ typedef enum {
+ SMB_ACL_TAG_INVALID = 0,
+ SMB_ACL_USER = 1,
+ SMB_ACL_USER_OBJ = 2,
+ SMB_ACL_GROUP = 3,
+ SMB_ACL_GROUP_OBJ = 4,
+ SMB_ACL_OTHER = 5,
+ SMB_ACL_MASK = 6
+ } smb_acl_tag_t;
+
+ typedef struct {
+ smb_acl_tag_t a_type;
+ mode_t a_perm;
+ uid_t uid;
+ gid_t gid;
+ } smb_acl_entry;
+
+ typedef struct {
+ int size;
+ int count;
+ int next;
+ smb_acl_entry *acl;
+ } smb_acl_t;
+
+ const int SMB_ACL_FIRST_ENTRY = 0;
+ const int SMB_ACL_NEXT_ENTRY = 1;
+
+ const int SMB_ACL_TYPE_ACCESS = 0;
+ const int SMB_ACL_TYPE_DEFAULT = 1;
+}
diff --git a/librpc/idl/wscript_build b/librpc/idl/wscript_build
index 58d3181cb5..2dbf1a3f83 100644
--- a/librpc/idl/wscript_build
+++ b/librpc/idl/wscript_build
@@ -4,7 +4,7 @@ bld.SAMBA_PIDL_LIST('PIDL',
'''atsvc.idl auth.idl drsuapi.idl epmapper.idl initshutdown.idl
misc.idl ntlmssp.idl schannel.idl trkwks.idl
audiosrv.idl dfsblobs.idl dsbackup.idl eventlog.idl file_id.idl keysvc.idl
- msgsvc.idl ntsvcs.idl remact.idl security.idl unixinfo.idl wzcsvc.idl
+ msgsvc.idl ntsvcs.idl remact.idl security.idl smb_acl.idl unixinfo.idl wzcsvc.idl
browser.idl dfs.idl dssetup.idl frsapi.idl krb5pac.idl
named_pipe_auth.idl orpc.idl rot.idl spoolss.idl w32time.idl xattr.idl
dbgidl.idl dnsserver.idl echo.idl frsrpc.idl lsa.idl nbt.idl dns.idl
diff --git a/librpc/wscript_build b/librpc/wscript_build
index 1dd755eb30..8dbbe2de05 100644
--- a/librpc/wscript_build
+++ b/librpc/wscript_build
@@ -239,6 +239,11 @@ bld.SAMBA_SUBSYSTEM('NDR_SECURITY',
header_path='gen_ndr'
)
+bld.SAMBA_SUBSYSTEM('NDR_SMB_ACL',
+ source='gen_ndr/ndr_smb_acl.c',
+ deps='ndr',
+ )
+
bld.SAMBA_SUBSYSTEM('NDR_SVCCTL',
source='gen_ndr/ndr_svcctl.c ndr/ndr_svcctl.c',
public_deps='ndr NDR_SECURITY'