2009-09-11 15:46:58 +04:00
/*
2020-08-09 17:14:02 +03:00
Unix SMB / CIFS Implementation .
2009-09-11 15:46:58 +04:00
KCC service
Copyright ( C ) Andrew Tridgell 2009
based on drepl service code
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/>.
*/
# ifndef _DSDB_REPL_KCC_SERVICE_H_
# define _DSDB_REPL_KCC_SERVICE_H_
# include "librpc/gen_ndr/ndr_drsuapi_c.h"
2016-07-18 04:10:23 +03:00
# include "dsdb/common/util.h"
2009-09-11 15:46:58 +04:00
struct kccsrv_service {
/* the whole kcc service is in one task */
struct task_server * task ;
/* the time the service was started */
struct timeval startup_time ;
/* dn of our configuration partition */
struct ldb_dn * config_dn ;
/*
* system session info
* with machine account credentials
*/
struct auth_session_info * system_session_info ;
/* list of local partitions */
2016-07-18 04:10:23 +03:00
struct dsdb_ldb_dn_list_node * partitions ;
2009-09-11 15:46:58 +04:00
/*
* a connection to the local samdb
*/
struct ldb_context * samdb ;
/* the guid of our NTDS Settings object, which never changes! */
struct GUID ntds_guid ;
/* some stuff for periodic processing */
struct {
/*
* the interval between to periodic runs
*/
uint32_t interval ;
/*
* the timestamp for the next event ,
* this is the timstamp passed to event_add_timed ( )
*/
struct timeval next_event ;
/* here we have a reference to the timed event the schedules the periodic stuff */
struct tevent_timer * te ;
2011-12-04 21:04:49 +04:00
/* samba_runcmd_send service for samba_kcc */
struct tevent_req * subreq ;
/* return status of samba_kcc */
NTSTATUS status ;
2009-09-11 15:46:58 +04:00
} periodic ;
2009-12-30 13:40:17 +03:00
time_t last_deleted_check ;
2010-09-22 22:18:04 +04:00
2018-05-29 06:50:19 +03:00
time_t last_dns_scavenge ;
time_t last_dns_tombstone_collection ;
2011-11-15 15:38:51 +04:00
time_t last_full_scan_deleted_check ;
2010-09-22 22:18:04 +04:00
bool am_rodc ;
2011-07-06 06:39:05 +04:00
2011-12-04 21:04:49 +04:00
/* run new samba_kcc topology generator code */
bool samba_kcc_code ;
2009-09-11 15:46:58 +04:00
} ;
2010-01-16 02:36:56 +03:00
struct kcc_connection_list ;
2016-07-18 04:10:23 +03:00
# include "dsdb/kcc/garbage_collect_tombstones.h"
2018-06-01 07:07:46 +03:00
# include "dsdb/kcc/scavenge_dns_records.h"
2009-09-11 15:46:58 +04:00
# include "dsdb/kcc/kcc_service_proto.h"
# endif /* _DSDB_REPL_KCC_SERVICE_H_ */