2004-10-10 01:35:33 +00:00
/*
Unix SMB / CIFS implementation .
endpoint server for the drsuapi pipe
Copyright ( C ) Stefan Metzmacher 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 02:07:03 +00:00
the Free Software Foundation ; either version 3 of the License , or
2004-10-10 01:35:33 +00: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 02:07:03 +00:00
along with this program . If not , see < http : //www.gnu.org/licenses/>.
2004-10-10 01:35:33 +00:00
*/
/*
this type allows us to distinguish handle types
*/
enum drsuapi_handle {
DRSUAPI_BIND_HANDLE ,
} ;
/*
state asscoiated with a drsuapi_DsBind * ( ) operation
*/
struct drsuapi_bind_state {
2007-02-23 07:56:29 +00:00
struct ldb_context * sam_ctx ;
struct GUID remote_bind_guid ;
struct drsuapi_DsBindInfo28 remote_info28 ;
struct drsuapi_DsBindInfo28 local_info28 ;
2009-09-25 15:18:02 -07:00
struct drsuapi_getncchanges_state * getncchanges_state ;
2004-10-10 01:35:33 +00:00
} ;
2009-09-08 11:49:28 +10:00
/* prototypes of internal functions */
WERROR dcesrv_drsuapi_DsReplicaUpdateRefs ( struct dcesrv_call_state * dce_call , TALLOC_CTX * mem_ctx ,
struct drsuapi_DsReplicaUpdateRefs * r ) ;
2009-09-09 21:00:01 +10:00
WERROR dcesrv_drsuapi_DsGetNCChanges ( struct dcesrv_call_state * dce_call , TALLOC_CTX * mem_ctx ,
struct drsuapi_DsGetNCChanges * r ) ;
WERROR dcesrv_drsuapi_DsAddEntry ( struct dcesrv_call_state * dce_call , TALLOC_CTX * mem_ctx ,
struct drsuapi_DsAddEntry * r ) ;
2009-09-08 11:49:28 +10:00
char * drs_ObjectIdentifier_to_string ( TALLOC_CTX * mem_ctx ,
struct drsuapi_DsReplicaObjectIdentifier * nc ) ;
2009-09-09 21:00:01 +10:00
int drsuapi_search_with_extended_dn ( struct ldb_context * ldb ,
TALLOC_CTX * mem_ctx ,
struct ldb_result * * _res ,
struct ldb_dn * basedn ,
enum ldb_scope scope ,
const char * const * attrs ,
2009-09-22 17:07:33 -07:00
const char * sort_attrib ,
2009-09-23 15:47:14 -07:00
const char * filter ) ;
2009-09-09 21:00:01 +10:00
2009-09-19 15:08:19 -07:00
WERROR drs_security_level_check ( struct dcesrv_call_state * dce_call ,
const char * call ) ;
s4: Handle DRSUAPI_DS_REPLICA_NEIGHBOUR_SPECIAL_SECRET_PROCESSING in getncchanges
When this flag is specified in the request these attributes are treated as
secret: currentValue, dBCSPwd, initialAuthIncoming, initialAuthOutgoing,
lmPwdHistory, ntPwdHistory, priorValue, supplementalCredentials,
trustAuthIncoming, trustAuthOutgoing, unicodePwd
Their value is changed to NULL and the meta_data.originating_change_time to 0
2009-09-23 16:51:55 -07:00
void drsuapi_process_secret_attribute ( struct drsuapi_DsReplicaAttribute * attr ,
struct drsuapi_DsReplicaMetaData * meta_data ) ;