s4:kdc Allow a password change when the password is expired
[ira/wip.git] / source4 / kdc / kdc.h
1 /* 
2    Unix SMB/CIFS implementation.
3
4    KDC structures
5
6    Copyright (C) Andrew Tridgell        2005
7    Copyright (C) Andrew Bartlett <abartlet@samba.org> 2005
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 #include "system/kerberos.h"
24 #include "auth/kerberos/kerberos.h"
25 #include <hdb.h>
26 #include <kdc.h>
27 #include <krb5/windc_plugin.h>
28 #include "kdc/pac_glue.h"
29
30 struct kdc_server;
31 struct socket_address;
32
33 extern TALLOC_CTX *kdc_mem_ctx;
34 extern struct tevent_context *kdc_ev_ctx;
35 extern struct loadparm_context *kdc_lp_ctx;
36
37 bool kpasswdd_process(struct kdc_server *kdc,
38                       TALLOC_CTX *mem_ctx, 
39                       DATA_BLOB *input, 
40                       DATA_BLOB *reply,
41                       struct socket_address *peer_addr, 
42                       struct socket_address *my_addr,
43                       int datagram_reply);
44
45 /*
46   top level context structure for the kdc server
47 */
48 struct kdc_server {
49         struct task_server *task;
50         krb5_kdc_configuration *config;
51         struct smb_krb5_context *smb_krb5_context;
52 };
53
54
55 struct hdb_ldb_private {
56         struct ldb_context *samdb;
57         struct smb_iconv_convenience *iconv_convenience;
58         struct loadparm_context *lp_ctx;
59         struct ldb_message *msg;
60         struct ldb_dn *realm_dn;
61         hdb_entry_ex *entry_ex;
62 };