jpayne@69
|
1 /* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
jpayne@69
|
2 /*
|
jpayne@69
|
3 * Copyright 2006 Massachusetts Institute of Technology.
|
jpayne@69
|
4 * All Rights Reserved.
|
jpayne@69
|
5 *
|
jpayne@69
|
6 * Export of this software from the United States of America may
|
jpayne@69
|
7 * require a specific license from the United States Government.
|
jpayne@69
|
8 * It is the responsibility of any person or organization contemplating
|
jpayne@69
|
9 * export to obtain such a license before exporting.
|
jpayne@69
|
10 *
|
jpayne@69
|
11 * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
|
jpayne@69
|
12 * distribute this software and its documentation for any purpose and
|
jpayne@69
|
13 * without fee is hereby granted, provided that the above copyright
|
jpayne@69
|
14 * notice appear in all copies and that both that copyright notice and
|
jpayne@69
|
15 * this permission notice appear in supporting documentation, and that
|
jpayne@69
|
16 * the name of M.I.T. not be used in advertising or publicity pertaining
|
jpayne@69
|
17 * to distribution of the software without specific, written prior
|
jpayne@69
|
18 * permission. Furthermore if you modify this software you must label
|
jpayne@69
|
19 * your software as modified software and not distribute it in such a
|
jpayne@69
|
20 * fashion that it might be confused with the original M.I.T. software.
|
jpayne@69
|
21 * M.I.T. makes no representations about the suitability of
|
jpayne@69
|
22 * this software for any purpose. It is provided "as is" without express
|
jpayne@69
|
23 * or implied warranty.
|
jpayne@69
|
24 */
|
jpayne@69
|
25
|
jpayne@69
|
26 /*
|
jpayne@69
|
27 *
|
jpayne@69
|
28 * Service location plugin definitions for Kerberos 5.
|
jpayne@69
|
29 */
|
jpayne@69
|
30
|
jpayne@69
|
31 #ifndef KRB5_LOCATE_PLUGIN_H_INCLUDED
|
jpayne@69
|
32 #define KRB5_LOCATE_PLUGIN_H_INCLUDED
|
jpayne@69
|
33 #include <krb5/krb5.h>
|
jpayne@69
|
34
|
jpayne@69
|
35 enum locate_service_type {
|
jpayne@69
|
36 locate_service_kdc = 1,
|
jpayne@69
|
37 locate_service_primary_kdc,
|
jpayne@69
|
38 locate_service_kadmin,
|
jpayne@69
|
39 locate_service_krb524,
|
jpayne@69
|
40 locate_service_kpasswd
|
jpayne@69
|
41 };
|
jpayne@69
|
42 #define locate_service_master_kdc locate_service_primary_kdc
|
jpayne@69
|
43
|
jpayne@69
|
44 typedef struct krb5plugin_service_locate_ftable {
|
jpayne@69
|
45 int minor_version; /* currently 0 */
|
jpayne@69
|
46 /* Per-context setup and teardown. Returned void* blob is
|
jpayne@69
|
47 private to the plugin. */
|
jpayne@69
|
48 krb5_error_code (*init)(krb5_context, void **);
|
jpayne@69
|
49 void (*fini)(void *);
|
jpayne@69
|
50 /* Callback function returns non-zero if the plugin function
|
jpayne@69
|
51 should quit and return; this may be because of an error, or may
|
jpayne@69
|
52 indicate we've already contacted the service, whatever. The
|
jpayne@69
|
53 lookup function should only return an error if it detects a
|
jpayne@69
|
54 problem, not if the callback function tells it to quit. */
|
jpayne@69
|
55 krb5_error_code (*lookup)(void *,
|
jpayne@69
|
56 enum locate_service_type svc, const char *realm,
|
jpayne@69
|
57 int socktype, int family,
|
jpayne@69
|
58 int (*cbfunc)(void *,int,struct sockaddr *),
|
jpayne@69
|
59 void *cbdata);
|
jpayne@69
|
60 } krb5plugin_service_locate_ftable;
|
jpayne@69
|
61 /* extern krb5plugin_service_locate_ftable service_locator; */
|
jpayne@69
|
62 #endif
|