diff options
| author | Ken Raeburn <raeburn@mit.edu> | 2001-06-20 00:00:05 +0000 |
|---|---|---|
| committer | Ken Raeburn <raeburn@mit.edu> | 2001-06-20 00:00:05 +0000 |
| commit | 3ef1ecb6226c6d976b2eccc4d6882c7dafa466fa (patch) | |
| tree | 02bf1f45da8e111538085773324f2dd52e65feaf /src/include | |
| parent | 26444a8941bed940c588602eb9371825b2fa58eb (diff) | |
| download | krb5-3ef1ecb6226c6d976b2eccc4d6882c7dafa466fa.tar.gz krb5-3ef1ecb6226c6d976b2eccc4d6882c7dafa466fa.tar.xz krb5-3ef1ecb6226c6d976b2eccc4d6882c7dafa466fa.zip | |
Use a "struct addrlist" instead of separate count and pointer-to-pointer values
for internal interfaces for looking up servers. Add a new routine to free the
addrlist contents, so that memory management can be changed in one place.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@13390 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/ChangeLog | 10 | ||||
| -rw-r--r-- | src/include/k5-int.h | 22 |
2 files changed, 23 insertions, 9 deletions
diff --git a/src/include/ChangeLog b/src/include/ChangeLog index cb73197a1..8858905f8 100644 --- a/src/include/ChangeLog +++ b/src/include/ChangeLog @@ -1,3 +1,13 @@ +2001-06-19 Ken Raeburn <raeburn@mit.edu> + + * k5-int.h (struct addrlist): New type. + (ADDRLIST_INIT): New macro. + (krb5int_free_addrlist): Declare. + (krb5int_locate_server): Update declaration. + (KRB5INT_ACCESS_STRUCT_VERSION): Update to 3. + (struct _krb5int_access): Change locale_server prototype. Add + free_addrlist function pointer field. + 2001-06-11 Ezra Peisach <epeisach@mit.edu> * k5-util.h: Add prototypes for krb5_compat_recvauth_version() and diff --git a/src/include/k5-int.h b/src/include/k5-int.h index 0a6c9a8fb..a58d2821d 100644 --- a/src/include/k5-int.h +++ b/src/include/k5-int.h @@ -544,14 +544,18 @@ void krb5_os_free_context (krb5_context); krb5_error_code krb5_find_config_files (void); +struct addrlist { + struct sockaddr **addrs; + int naddrs; + int space; +}; +#define ADDRLIST_INIT { 0, 0, 0 } +extern void krb5int_free_addrlist (struct addrlist *); + krb5_error_code krb5int_locate_server (krb5_context, const krb5_data *realm, - /* Thing pointed to will be filled in with a - pointer to a block of sockaddr pointers, - with each sockaddr allocated separately - (wasteful, oh well). */ - struct sockaddr ***addrs, int *naddrs, + struct addrlist *, /* Only meaningful for kdc, really... */ int want_masters, /* look up [realms]->$realm->$name in krb5.conf */ @@ -1566,16 +1570,16 @@ 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 2 +#define KRB5INT_ACCESS_STRUCT_VERSION 3 typedef struct _krb5int_access { krb5_error_code (*krb5_locate_kdc) (krb5_context, const krb5_data *, - struct sockaddr ***, int *, int); + struct addrlist *, int); krb5_error_code (*krb5_locate_server) (krb5_context, const krb5_data *, - struct sockaddr ***, int *, - int, + struct addrlist *, int, const char *, const char *, int, int, int); + void (*free_addrlist) (struct addrlist *); unsigned int krb5_max_skdc_timeout; unsigned int krb5_skdc_timeout_shift; unsigned int krb5_skdc_timeout_1; |
