2004-05-24 09:35:59 +04:00
/*
Unix SMB / CIFS implementation .
endpoint server for the samr pipe - definitions
Copyright ( C ) Andrew Tridgell 2004
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
2007-07-10 06:07:03 +04:00
the Free Software Foundation ; either version 3 of the License , or
2004-05-24 09:35:59 +04:00
( 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
2007-07-10 06:07:03 +04:00
along with this program . If not , see < http : //www.gnu.org/licenses/>.
2004-05-24 09:35:59 +04:00
*/
2007-12-07 04:37:13 +03:00
# include "param/param.h"
2004-05-24 09:35:59 +04:00
/*
this type allows us to distinguish handle types
*/
enum samr_handle {
SAMR_HANDLE_CONNECT ,
SAMR_HANDLE_DOMAIN ,
SAMR_HANDLE_USER ,
SAMR_HANDLE_GROUP ,
SAMR_HANDLE_ALIAS
} ;
/*
state asscoiated with a samr_Connect * ( ) operation
*/
struct samr_connect_state {
2009-04-23 14:19:10 +04:00
struct ldb_context * sam_ctx ;
2004-05-25 20:24:13 +04:00
uint32_t access_mask ;
2004-05-24 09:35:59 +04:00
} ;
/*
state associated with a samr_OpenDomain ( ) operation
*/
struct samr_domain_state {
struct samr_connect_state * connect_state ;
void * sam_ctx ;
2004-05-25 20:24:13 +04:00
uint32_t access_mask ;
2005-06-24 04:18:20 +04:00
struct dom_sid * domain_sid ;
2004-05-24 09:35:59 +04:00
const char * domain_name ;
2006-11-22 03:59:34 +03:00
struct ldb_dn * domain_dn ;
2007-12-07 04:37:13 +03:00
enum server_role role ;
2008-03-14 04:26:03 +03:00
bool builtin ;
struct loadparm_context * lp_ctx ;
2004-05-24 09:35:59 +04:00
} ;
/*
state associated with a open account handle
*/
struct samr_account_state {
struct samr_domain_state * domain_state ;
void * sam_ctx ;
2004-05-25 20:24:13 +04:00
uint32_t access_mask ;
2005-06-24 04:18:20 +04:00
struct dom_sid * account_sid ;
2004-05-24 09:35:59 +04:00
const char * account_name ;
2006-11-22 03:59:34 +03:00
struct ldb_dn * account_dn ;
2004-05-24 09:35:59 +04:00
} ;