1/* 2 Unix SMB/CIFS implementation. 3 4 endpoint server for the drsuapi pipe 5 6 Copyright (C) Stefan Metzmacher 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/* 23 this type allows us to distinguish handle types 24*/ 25enum drsuapi_handle { 26 DRSUAPI_BIND_HANDLE, 27}; 28 29/* 30 state asscoiated with a drsuapi_DsBind*() operation 31*/ 32struct drsuapi_bind_state { 33 struct ldb_context *sam_ctx; 34 struct GUID remote_bind_guid; 35 struct drsuapi_DsBindInfo28 remote_info28; 36 struct drsuapi_DsBindInfo28 local_info28; 37 struct drsuapi_getncchanges_state *getncchanges_state; 38}; 39 40 41/* prototypes of internal functions */ 42WERROR dcesrv_drsuapi_DsReplicaUpdateRefs(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, 43 struct drsuapi_DsReplicaUpdateRefs *r); 44WERROR dcesrv_drsuapi_DsGetNCChanges(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, 45 struct drsuapi_DsGetNCChanges *r); 46WERROR dcesrv_drsuapi_DsAddEntry(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, 47 struct drsuapi_DsAddEntry *r); 48 49char *drs_ObjectIdentifier_to_string(TALLOC_CTX *mem_ctx, 50 struct drsuapi_DsReplicaObjectIdentifier *nc); 51 52int drsuapi_search_with_extended_dn(struct ldb_context *ldb, 53 TALLOC_CTX *mem_ctx, 54 struct ldb_result **_res, 55 struct ldb_dn *basedn, 56 enum ldb_scope scope, 57 const char * const *attrs, 58 const char *sort_attrib, 59 const char *filter); 60 61WERROR drs_security_level_check(struct dcesrv_call_state *dce_call, 62 const char* call); 63 64void drsuapi_process_secret_attribute(struct drsuapi_DsReplicaAttribute *attr, 65 struct drsuapi_DsReplicaMetaData *meta_data); 66