1/* 2 Unix SMB/CIFS implementation. 3 4 endpoint server for the samr pipe - definitions 5 6 Copyright (C) Andrew Tridgell 2004 7 8 This program is free software; you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 3 of the License, or 11 (at your option) any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program. If not, see <http://www.gnu.org/licenses/>. 20*/ 21 22#include "param/param.h" 23 24/* 25 this type allows us to distinguish handle types 26*/ 27enum samr_handle { 28 SAMR_HANDLE_CONNECT, 29 SAMR_HANDLE_DOMAIN, 30 SAMR_HANDLE_USER, 31 SAMR_HANDLE_GROUP, 32 SAMR_HANDLE_ALIAS 33}; 34 35 36/* 37 state asscoiated with a samr_Connect*() operation 38*/ 39struct samr_connect_state { 40 struct ldb_context *sam_ctx; 41 uint32_t access_mask; 42}; 43 44/* 45 state associated with a samr_OpenDomain() operation 46*/ 47struct samr_domain_state { 48 struct samr_connect_state *connect_state; 49 void *sam_ctx; 50 uint32_t access_mask; 51 struct dom_sid *domain_sid; 52 const char *domain_name; 53 struct ldb_dn *domain_dn; 54 enum server_role role; 55 bool builtin; 56 struct loadparm_context *lp_ctx; 57}; 58 59/* 60 state associated with a open account handle 61*/ 62struct samr_account_state { 63 struct samr_domain_state *domain_state; 64 void *sam_ctx; 65 uint32_t access_mask; 66 struct dom_sid *account_sid; 67 const char *account_name; 68 struct ldb_dn *account_dn; 69}; 70