1/* 2 Unix SMB/CIFS mplementation. 3 4 KCC service 5 6 Copyright (C) Andrew Tridgell 2009 7 based on drepl service code 8 9 This program is free software; you can redistribute it and/or modify 10 it under the terms of the GNU General Public License as published by 11 the Free Software Foundation; either version 3 of the License, or 12 (at your option) any later version. 13 14 This program is distributed in the hope that it will be useful, 15 but WITHOUT ANY WARRANTY; without even the implied warranty of 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 GNU General Public License for more details. 18 19 You should have received a copy of the GNU General Public License 20 along with this program. If not, see <http://www.gnu.org/licenses/>. 21 22*/ 23 24#ifndef _DSDB_REPL_KCC_SERVICE_H_ 25#define _DSDB_REPL_KCC_SERVICE_H_ 26 27#include "librpc/gen_ndr/ndr_drsuapi_c.h" 28 29struct kccsrv_partition { 30 struct kccsrv_partition *prev, *next; 31 struct kccsrv_service *service; 32 33 /* the dn of the partition */ 34 struct ldb_dn *dn; 35}; 36 37 38struct kccsrv_service { 39 /* the whole kcc service is in one task */ 40 struct task_server *task; 41 42 /* the time the service was started */ 43 struct timeval startup_time; 44 45 /* dn of our configuration partition */ 46 struct ldb_dn *config_dn; 47 48 /* 49 * system session info 50 * with machine account credentials 51 */ 52 struct auth_session_info *system_session_info; 53 54 /* list of local partitions */ 55 struct kccsrv_partition *partitions; 56 57 /* 58 * a connection to the local samdb 59 */ 60 struct ldb_context *samdb; 61 62 /* the guid of our NTDS Settings object, which never changes! */ 63 struct GUID ntds_guid; 64 65 /* some stuff for periodic processing */ 66 struct { 67 /* 68 * the interval between to periodic runs 69 */ 70 uint32_t interval; 71 72 /* 73 * the timestamp for the next event, 74 * this is the timstamp passed to event_add_timed() 75 */ 76 struct timeval next_event; 77 78 /* here we have a reference to the timed event the schedules the periodic stuff */ 79 struct tevent_timer *te; 80 } periodic; 81}; 82 83#include "dsdb/kcc/kcc_service_proto.h" 84 85#endif /* _DSDB_REPL_KCC_SERVICE_H_ */ 86