2 Unix SMB/CIFS implementation.
4 provide glue functions between heimdal and samba
6 Copyright (C) Andrew Tridgell 2005
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 3 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <http://www.gnu.org/licenses/>.
23 #include "system/network.h"
24 #include "system/kerberos.h"
25 #include "lib/socket/netif.h"
26 #include "param/param.h"
29 get the list of IP addresses for configured interfaces
31 krb5_error_code KRB5_LIB_FUNCTION
krb5_get_all_client_addrs(krb5_context context
, krb5_addresses
*res
)
34 struct interface
*ifaces
;
36 load_interfaces(NULL
, lp_interfaces(global_loadparm
), &ifaces
);
38 res
->len
= iface_count(ifaces
);
39 res
->val
= malloc_array_p(HostAddress
, res
->len
);
40 if (res
->val
== NULL
) {
44 for (i
=0;i
<res
->len
;i
++) {
45 const char *ip
= iface_n_ip(ifaces
, i
);
46 res
->val
[i
].addr_type
= AF_INET
;
47 res
->val
[i
].address
.length
= 4;
48 res
->val
[i
].address
.data
= malloc(4);
49 if (res
->val
[i
].address
.data
== NULL
) {
53 ((struct in_addr
*)res
->val
[i
].address
.data
)->s_addr
= inet_addr(ip
);
61 #include "heimdal/lib/krb5/krb5_locl.h"
63 const krb5_cc_ops krb5_scc_ops
= {
66 NULL
, /* scc_retrieve */
67 NULL
, /* scc_get_principal */
68 NULL
, /* scc_get_first */
69 NULL
, /* scc_get_next */
70 NULL
, /* scc_end_get */
71 NULL
, /* scc_remove_cred */
72 NULL
, /* scc_set_flags */
74 NULL
, /* scc_get_cache_first */
75 NULL
, /* scc_get_cache_next */
76 NULL
, /* scc_end_cache_get */
78 NULL
, /* scc_get_default_name */
79 NULL
/* scc_set_default */