prof_get.c: Add new public profile_iterator functions for iterating
authorTheodore Tso <tytso@mit.edu>
Fri, 4 Dec 1998 08:19:28 +0000 (08:19 +0000)
committerTheodore Tso <tytso@mit.edu>
Fri, 4 Dec 1998 08:19:28 +0000 (08:19 +0000)
over values found in the profile file.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@11062 dc483132-0cff-0310-8789-dd5450dbe970

src/util/profile/ChangeLog
src/util/profile/prof_get.c
src/util/profile/prof_int.h
src/util/profile/prof_tree.c
src/util/profile/profile.hin

index a0a48dad3ed2720d7eee9eb58cf0f685589b5db5..554357a584d45b370033d05004470a957b10ac9e 100644 (file)
@@ -1,3 +1,8 @@
+1998-12-04  Theodore Ts'o  <tytso@rsts-11.mit.edu>
+
+       * prof_get.c: Add new public profile_iterator functions for
+               iterating over values found in the profile file.
+
 1998-11-17  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * prof_get.c (profile_get_values): If there are no relations
index 7f1d3c5ce4a274782e8dc12580ce15b9757fb3e5..ff07bc3ef2774e36a4c6bd1ff25b3d125fd82674 100644 (file)
@@ -344,3 +344,31 @@ cleanup:
        end_list(&values, 0);
        return retval;
 }
+
+errcode_t profile_iterator_create(profile, names, flags, ret_iter)
+       profile_t       profile;
+       const char      **names;
+       int             flags;
+       void            **ret_iter;
+{
+       return profile_node_iterator_create(profile, names, flags, ret_iter);
+}
+
+void profile_iterator_free(iter_p)
+       void    **iter_p;
+{
+       profile_node_iterator_free(iter_p);
+}
+
+errcode_t profile_iterator(iter_p, ret_name, ret_value)
+       void    **iter_p;
+       char **ret_name, **ret_value;
+{
+       return profile_node_iterator(iter_p, 0, ret_name, ret_value);
+}
+
+void profile_release_string(str)
+       char *str;
+{
+       free(str);
+}
index 99d7fc1ae65bf03540fbcc302d9819982e2d283c..1a0304f4c8e96dbcfadb21f31ee09e3a9df8d57c 100644 (file)
@@ -62,7 +62,7 @@ struct _profile_t {
 typedef struct _profile_t *profile_t;
 
 /*
- * Used by the profile node iterator in prof_tre.c
+ * Used by the profile iterator in prof_get.c
  */
 #define PROFILE_ITER_LIST_SECTION      0x0001
 #define PROFILE_ITER_SECTIONS_ONLY     0x0002
@@ -70,7 +70,6 @@ typedef struct _profile_t *profile_t;
 
 #define PROFILE_ITER_FINAL_SEEN                0x0100
 
-
 /* profile_parse.c */
 
 errcode_t profile_parse_file
@@ -181,3 +180,13 @@ errcode_t profile_get_relation_names
 errcode_t profile_get_subsection_names
        PROTOTYPE((profile_t profile, const char **names, char ***ret_names));
 
+errcode_t profile_iterator_create
+       PROTOTYPE((profile_t profile, const char **names,
+                  int flags, void **ret_iter));
+
+void profile_iterator_free PROTOTYPE((void **iter_p));
+       
+errcode_t profile_iterator
+       PROTOTYPE((void **iter_p, char **ret_name, char **ret_value));
+
+void profile_release_string PROTOTYPE((char *str));
index 3bb05d29ff99a2606f71eceb589d77f645a5f319..ddfa08f4403e0218eae189c52a82f57542222b61 100644 (file)
@@ -531,5 +531,3 @@ get_new_file:
                *ret_value = p->value;
        return 0;
 };
-
-
index 42dc7fa2abd477dc39e53b59146c3b361dfb83ca..8984570f319ee36647b33d9a8a1388b0ceb0941b 100644 (file)
@@ -18,7 +18,6 @@
 #define NEAR
 #endif
 
-
 typedef struct _profile_t *profile_t;
 
 #if !defined(PROTOTYPE)
@@ -29,6 +28,13 @@ typedef struct _profile_t *profile_t;
 #endif
 #endif
 
+/*
+ * Used by the profile iterator in prof_get.c
+ */
+#define PROFILE_ITER_LIST_SECTION      0x0001
+#define PROFILE_ITER_SECTIONS_ONLY     0x0002
+#define PROFILE_ITER_RELATIONS_ONLY    0x0004
+
 long profile_init
        PROTOTYPE ((const char **filenames, profile_t *ret_profile));
 
@@ -59,4 +65,15 @@ long profile_get_relation_names
 long profile_get_subsection_names
        PROTOTYPE((profile_t profile, const char **names, char ***ret_names));
 
+long profile_iterator_create
+       PROTOTYPE((profile_t profile, const char **names,
+                  int flags, void **ret_iter));
+
+void profile_iterator_free PROTOTYPE((void **iter_p));
+       
+long profile_iterator
+       PROTOTYPE((void **iter_p, char **ret_name, char **ret_value));
+
+void profile_release_string PROTOTYPE((char *str));
+
 #endif /* _KRB5_PROFILE_H */