summaryrefslogtreecommitdiffstats
path: root/src/lib/krb5/krb/walk_rtree.c
diff options
context:
space:
mode:
authorZhanna Tsitkov <tsitkova@mit.edu>2010-01-04 06:22:41 +0000
committerZhanna Tsitkov <tsitkova@mit.edu>2010-01-04 06:22:41 +0000
commit0032360557cdac7a52615a19c0533d59dd289d33 (patch)
tree60e6f070e4ca5c4438f4fe441b6d927c8bb4e95e /src/lib/krb5/krb/walk_rtree.c
parente056821a27bed3f3794631747f222b50be06ffe8 (diff)
downloadkrb5-0032360557cdac7a52615a19c0533d59dd289d33.tar.gz
krb5-0032360557cdac7a52615a19c0533d59dd289d33.tar.xz
krb5-0032360557cdac7a52615a19c0533d59dd289d33.zip
For the better code modularity keep some "free" routines closer to the resource allocators. Also, reindent cleanup in the touched files
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23576 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/krb/walk_rtree.c')
-rw-r--r--src/lib/krb5/krb/walk_rtree.c153
1 files changed, 77 insertions, 76 deletions
diff --git a/src/lib/krb5/krb/walk_rtree.c b/src/lib/krb5/krb/walk_rtree.c
index d1be2270f..3c5a94524 100644
--- a/src/lib/krb5/krb/walk_rtree.c
+++ b/src/lib/krb5/krb/walk_rtree.c
@@ -25,6 +25,7 @@
* or implied warranty.
*
* krb5_walk_realm_tree()
+ * krb5_free_realm_tree()
*
* internal function, used by krb5_get_cred_from_kdc()
*/
@@ -44,51 +45,45 @@ struct hstate {
};
static krb5_error_code
-rtree_capath_tree(
- krb5_context context,
- const krb5_data *client,
- const krb5_data *server,
- char **vals,
- krb5_principal **tree);
+rtree_capath_tree(krb5_context context,
+ const krb5_data *client,
+ const krb5_data *server,
+ char **vals,
+ krb5_principal **tree);
static krb5_error_code
-rtree_capath_vals(
- krb5_context context,
- const krb5_data *client,
- const krb5_data *server,
- char ***vals);
+rtree_capath_vals(krb5_context context,
+ const krb5_data *client,
+ const krb5_data *server,
+ char ***vals);
static krb5_error_code
-rtree_hier_tree(
- krb5_context context,
- const krb5_data *client,
- const krb5_data *server,
- krb5_principal **rettree,
- int sep);
+rtree_hier_tree(krb5_context context,
+ const krb5_data *client,
+ const krb5_data *server,
+ krb5_principal **rettree,
+ int sep);
static krb5_error_code
-rtree_hier_realms(
- krb5_context context,
- const krb5_data *client,
- const krb5_data *server,
- krb5_data **realms,
- size_t *nrealms,
- int sep);
+rtree_hier_realms(krb5_context context,
+ const krb5_data *client,
+ const krb5_data *server,
+ krb5_data **realms,
+ size_t *nrealms,
+ int sep);
static void
-free_realmlist(
- krb5_context context,
- krb5_data *realms,
- size_t nrealms);
+free_realmlist(krb5_context context,
+ krb5_data *realms,
+ size_t nrealms);
static krb5_error_code
-rtree_hier_tweens(
- krb5_context context,
- struct hstate *realm,
- krb5_data **tweens,
- size_t *ntweens,
- int dotail,
- int sep);
+rtree_hier_tweens(krb5_context context,
+ struct hstate *realm,
+ krb5_data **tweens,
+ size_t *ntweens,
+ int dotail,
+ int sep);
static void
adjtail(struct hstate *c, struct hstate *s, int sep);
@@ -97,12 +92,11 @@ static void
comtail(struct hstate *c, struct hstate *s, int sep);
krb5_error_code
-krb5_walk_realm_tree(
- krb5_context context,
- const krb5_data *client,
- const krb5_data *server,
- krb5_principal **tree,
- int realm_sep)
+krb5_walk_realm_tree( krb5_context context,
+ const krb5_data *client,
+ const krb5_data *server,
+ krb5_principal **tree,
+ int realm_sep)
{
krb5_error_code retval = 0;
char **capvals;
@@ -188,12 +182,11 @@ krb5_walk_realm_tree(
* walk_rtree_capath_vals().
*/
static krb5_error_code
-rtree_capath_tree(
- krb5_context context,
- const krb5_data *client,
- const krb5_data *server,
- char **vals,
- krb5_principal **rettree)
+rtree_capath_tree(krb5_context context,
+ const krb5_data *client,
+ const krb5_data *server,
+ char **vals,
+ krb5_principal **rettree)
{
krb5_error_code retval = 0;
unsigned int nvals, nlinks, nprincs, i;
@@ -253,11 +246,10 @@ error:
* by not finding anything.
*/
static krb5_error_code
-rtree_capath_vals(
- krb5_context context,
- const krb5_data *client,
- const krb5_data *server,
- char ***vals)
+rtree_capath_vals(krb5_context context,
+ const krb5_data *client,
+ const krb5_data *server,
+ char ***vals)
{
krb5_error_code retval = 0;
/* null-terminated realm names */
@@ -306,12 +298,11 @@ error:
* Build tree by hierarchical traversal.
*/
static krb5_error_code
-rtree_hier_tree(
- krb5_context context,
- const krb5_data *client,
- const krb5_data *server,
- krb5_principal **rettree,
- int sep)
+rtree_hier_tree(krb5_context context,
+ const krb5_data *client,
+ const krb5_data *server,
+ krb5_principal **rettree,
+ int sep)
{
krb5_error_code retval;
krb5_data *realms;
@@ -356,13 +347,12 @@ error:
* Construct list of realms between client and server.
*/
static krb5_error_code
-rtree_hier_realms(
- krb5_context context,
- const krb5_data *client,
- const krb5_data *server,
- krb5_data **realms,
- size_t *nrealms,
- int sep)
+rtree_hier_realms(krb5_context context,
+ const krb5_data *client,
+ const krb5_data *server,
+ krb5_data **realms,
+ size_t *nrealms,
+ int sep)
{
krb5_error_code retval;
struct hstate c, s;
@@ -418,10 +408,9 @@ error:
}
static void
-free_realmlist(
- krb5_context context,
- krb5_data *realms,
- size_t nrealms)
+free_realmlist(krb5_context context,
+ krb5_data *realms,
+ size_t nrealms)
{
size_t i;
@@ -439,13 +428,12 @@ free_realmlist(
* make copies as needed and not call krb5_free_data_contents, etc.
*/
static krb5_error_code
-rtree_hier_tweens(
- krb5_context context,
- struct hstate *realm,
- krb5_data **tweens,
- size_t *ntweens,
- int dotail,
- int sep)
+rtree_hier_tweens(krb5_context context,
+ struct hstate *realm,
+ krb5_data **tweens,
+ size_t *ntweens,
+ int dotail,
+ int sep)
{
char *p, *r, *rtail, *lp;
size_t rlen, n;
@@ -579,3 +567,16 @@ comtail(struct hstate *c, struct hstate *s, int sep)
c->dot = cdot;
s->dot = sdot;
}
+
+void
+krb5_free_realm_tree(krb5_context context, krb5_principal *realms)
+{
+ register krb5_principal *nrealms = realms;
+ if (realms == NULL)
+ return;
+ while (*nrealms) {
+ krb5_free_principal(context, *nrealms);
+ nrealms++;
+ }
+ free(realms);
+}