aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-01-16 06:01:50 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-01-16 06:01:50 +0000
commit19ee484e4490b4aff857471955d42831a261e49e (patch)
tree014581908ebd1dccefb9a9070808142cbf905468 /include
parent5e9645e4bf538f440a520c6c11a0da28b993ae0e (diff)
config restructure, sip peer completion (bug #3352, #3327)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@4808 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include')
-rwxr-xr-xinclude/asterisk/config.h7
-rwxr-xr-xinclude/asterisk/config_pvt.h32
2 files changed, 21 insertions, 18 deletions
diff --git a/include/asterisk/config.h b/include/asterisk/config.h
index 2d820b3a1..4e7569c26 100755
--- a/include/asterisk/config.h
+++ b/include/asterisk/config.h
@@ -96,6 +96,13 @@ int ast_true(const char *val);
*/
int ast_false(const char *val);
+/*! Retrieve a category if it exists
+ * \param config which config to use
+ * \param category_name name of the category you're looking for
+ * This will search through the categories within a given config file and search for a match. The passed category_name can be a regular string.
+ * Returns pointer to category if found, NULL if not. */
+struct ast_category *ast_category_get(const struct ast_config *config, const char *category_name);
+
/*! Check for category duplicates */
/*!
* \param config which config to use
diff --git a/include/asterisk/config_pvt.h b/include/asterisk/config_pvt.h
index 823be9533..7d5273093 100755
--- a/include/asterisk/config_pvt.h
+++ b/include/asterisk/config_pvt.h
@@ -14,53 +14,49 @@ extern "C" {
struct ast_category {
char name[80];
struct ast_variable *root;
+ struct ast_variable *last;
struct ast_category *next;
};
struct ast_config {
- /* Maybe this structure isn't necessary but we'll keep it
- for now */
struct ast_category *root;
- struct ast_category *prev;
+ struct ast_category *last;
};
-
-struct ast_category;
+typedef struct ast_config *config_static_func(const char *database, const char *table, const char *configfile, struct ast_config *config, struct ast_category **cat, int includelevel);
struct ast_config_reg {
char name[CONFIG_KEYWORD_STRLEN];
- struct ast_config *(*static_func)(const char *database, const char *table, const char *, struct ast_config *,struct ast_category **,struct ast_variable **,int);
+ config_static_func *static_func;
struct ast_variable *(*realtime_func)(const char *database, const char *table, va_list ap);
struct ast_config *(*realtime_multi_func)(const char *database, const char *table, va_list ap);
int (*update_func)(const char *database, const char *table, const char *keyfield, const char *entity, va_list ap);
struct ast_config_reg *next;
};
-
int ast_config_register(struct ast_config_reg *new);
int ast_config_deregister(struct ast_config_reg *del);
void ast_cust_config_on(void);
void ast_cust_config_off(void);
int ast_cust_config_active(void);
void ast_config_destroy_all(void);
-
-
-int ast_category_delete(struct ast_config *cfg, char *category);
-int ast_variable_delete(struct ast_config *cfg, char *category, char *variable, char *value);
-int ast_save(char *filename, struct ast_config *cfg, char *generator);
+int ast_cust_config_register(struct ast_config_reg *new);
+int ast_cust_config_deregister(struct ast_config_reg *new);
+int register_config_cli(void);
+int read_ast_cust_config(void);
struct ast_config *ast_new_config(void);
+
struct ast_category *ast_new_category(char *name);
-struct ast_variable *ast_new_variable(char *name,char *value);
void ast_category_append(struct ast_config *config, struct ast_category *cat);
+int ast_category_delete(struct ast_config *cfg, char *category);
void ast_category_destroy(struct ast_category *cat);
-int ast_cust_config_register(struct ast_config_reg *new);
-int ast_cust_config_deregister(struct ast_config_reg *new);
-int register_config_cli(void);
-int read_ast_cust_config(void);
-struct ast_config *ast_internal_load(const char *configfile, struct ast_config *tmp, struct ast_category **_tmpc, struct ast_variable **_last, int includelevel);
+struct ast_variable *ast_new_variable(char *name,char *value);
+int ast_variable_delete(struct ast_config *cfg, char *category, char *variable, char *value);
+int ast_save(char *filename, struct ast_config *cfg, char *generator);
+struct ast_config *ast_internal_load(const char *configfile, struct ast_config *tmp, struct ast_category **cat, int includelevel);
#if defined(__cplusplus) || defined(c_plusplus)
}