From 65184d3858714e1a326f18053f6509050b069518 Mon Sep 17 00:00:00 2001 From: Tom Yu Date: Sat, 7 Dec 2002 04:14:07 +0000 Subject: Fix some KRB5_CALLCONV botches that were causing trouble for Windows build Update send_to_kdc() to use various krb5 internals to talk to the krb4 KDC. Add a new internal function to optionally return the local address used to talk to the KDC. Many changes to lib/krb5/os to support this. Fix bug in krb5int_sendto() that prevented correct UDP length from being returned. Update callers of internal locate_* and sendto_* functions. ticket: 1189 status: open git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@15038 dc483132-0cff-0310-8789-dd5450dbe970 --- src/include/ChangeLog | 7 +++++++ src/include/k5-int.h | 15 +++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) (limited to 'src/include') diff --git a/src/include/ChangeLog b/src/include/ChangeLog index 0cf22ca70..06c7f1666 100644 --- a/src/include/ChangeLog +++ b/src/include/ChangeLog @@ -1,3 +1,10 @@ +2002-12-06 Tom Yu + + * k5-int.h: Update prototype of krb5int_locate_server() to take + protocol family argument. Update krb5int_access to current call + signatures of locate_kdc() and locate_server(), as well as to add + add_host_to_list() for use by krb4 library. + 2002-11-26 Tom Yu * port-sockets.h: Add SOCKET_CONNECT, SOCKET_GETSOCKNAME, and diff --git a/src/include/k5-int.h b/src/include/k5-int.h index 90d2c9caa..8b1b683d7 100644 --- a/src/include/k5-int.h +++ b/src/include/k5-int.h @@ -529,6 +529,8 @@ struct addrlist { #define ADDRLIST_INIT { 0, 0, 0 } extern void krb5int_free_addrlist (struct addrlist *); extern int krb5int_grow_addrlist (struct addrlist *, int); +extern int krb5int_add_host_to_list (struct addrlist *, const char *, + int, int, int, int); krb5_error_code krb5int_locate_server (krb5_context, @@ -546,7 +548,8 @@ krb5int_locate_server (krb5_context, itself. Use 0 for dflport2 if there's no secondary port (most common, except kdc case). */ - int dflport1, int dflport2); + int dflport1, int dflport2, + int family); #endif /* KRB5_LIBOS_PROTO__ */ @@ -1637,15 +1640,15 @@ void krb5int_set_prompt_types /* To keep happy libraries which are (for now) accessing internal stuff */ /* Make sure to increment by one when changing the struct */ -#define KRB5INT_ACCESS_STRUCT_VERSION 5 +#define KRB5INT_ACCESS_STRUCT_VERSION 6 typedef struct _krb5int_access { krb5_error_code (*krb5_locate_kdc) (krb5_context, const krb5_data *, - struct addrlist *, int, int); + struct addrlist *, int, int, int); krb5_error_code (*krb5_locate_server) (krb5_context, const krb5_data *, struct addrlist *, int, const char *, const char *, - int, int, int); + int, int, int, int); void (*free_addrlist) (struct addrlist *); unsigned int krb5_max_skdc_timeout; unsigned int krb5_skdc_timeout_shift; @@ -1660,6 +1663,10 @@ typedef struct _krb5int_access { krb5_error_code (*sendto_udp) (krb5_context, const krb5_data *msg, const struct addrlist *, krb5_data *reply, struct sockaddr *, socklen_t *); + krb5_error_code (*add_host_to_list)(struct addrlist *lp, + const char *hostname, + int port, int secport, + int socktype, int family); } krb5int_access; #define KRB5INT_ACCESS_VERSION \ -- cgit