1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00
samba-mirror/source4/auth/kerberos/krb5_init_context.h
Stefan Metzmacher eb5c3bb951 s4:kerberos: adapt the heimdal send_to_kdc hooks to the send_to_kdc/realm plugin interface
With the recent heimdal upgrade we better try to use the send_to_realm()
hooks as it allows us to handle the KDC lookup as well as only getting
each logical request just once in the testing code, which makes it
let dependend on the heimdal internal kdc lookup logic.

NOTE: THIS COMMIT WON'T COMPILE/WORK ON ITS OWN!

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Joseph Sutton <josephsutton@catalyst.net.nz>
2022-01-19 20:50:35 +00:00

80 lines
2.8 KiB
C

/*
Unix SMB/CIFS implementation.
simple kerberos5 routines for active directory
Copyright (C) Andrew Bartlett 2005
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 _KRB5_INIT_CONTEXT_H_
#define _KRB5_INIT_CONTEXT_H_
struct smb_krb5_context {
krb5_context krb5_context;
void *pvt_log_data;
struct tevent_context *current_ev;
};
struct tevent_context;
struct loadparm_context;
krb5_error_code
smb_krb5_init_context_basic(TALLOC_CTX *tmp_ctx,
struct loadparm_context *lp_ctx,
krb5_context *_krb5_context);
krb5_error_code smb_krb5_init_context(void *parent_ctx,
struct loadparm_context *lp_ctx,
struct smb_krb5_context **smb_krb5_context);
#ifdef SAMBA4_USES_HEIMDAL
typedef krb5_error_code (*smb_krb5_send_to_realm_func)(struct smb_krb5_context *smb_krb5_context,
void *,
krb5_const_realm realm,
time_t,
const krb5_data *,
krb5_data *);
typedef krb5_error_code (*smb_krb5_send_to_kdc_func)(struct smb_krb5_context *smb_krb5_context,
void *,
krb5_krbhst_info *,
time_t,
const krb5_data *,
krb5_data *);
krb5_error_code smb_krb5_set_send_to_kdc_func(struct smb_krb5_context *smb_krb5_context,
smb_krb5_send_to_realm_func send_to_realm,
smb_krb5_send_to_kdc_func send_to_kdc,
void *private_data);
krb5_error_code smb_krb5_send_and_recv_func(struct smb_krb5_context *smb_krb5_context,
void *data,
krb5_krbhst_info *hi,
time_t timeout,
const krb5_data *send_buf,
krb5_data *recv_buf);
krb5_error_code smb_krb5_send_and_recv_func_forced_tcp(struct smb_krb5_context *smb_krb5_context,
struct addrinfo *ai,
time_t timeout,
const krb5_data *send_buf,
krb5_data *recv_buf);
krb5_error_code smb_krb5_context_set_event_ctx(struct smb_krb5_context *smb_krb5_context,
struct tevent_context *ev,
struct tevent_context **previous_ev);
krb5_error_code smb_krb5_context_remove_event_ctx(struct smb_krb5_context *smb_krb5_context,
struct tevent_context *previous_ev,
struct tevent_context *ev);
#endif
#endif /* _KRB5_INIT_CONTEXT_H_ */