diff options
Diffstat (limited to 'librpc')
-rw-r--r-- | librpc/idl/smb_acl.idl | 63 | ||||
-rw-r--r-- | librpc/idl/wscript_build | 2 | ||||
-rw-r--r-- | librpc/wscript_build | 5 |
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' |