summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2001-06-20 00:00:05 +0000
committerKen Raeburn <raeburn@mit.edu>2001-06-20 00:00:05 +0000
commit3ef1ecb6226c6d976b2eccc4d6882c7dafa466fa (patch)
tree02bf1f45da8e111538085773324f2dd52e65feaf /src/include
parent26444a8941bed940c588602eb9371825b2fa58eb (diff)
downloadkrb5-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/ChangeLog10
-rw-r--r--src/include/k5-int.h22
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;