Skip to content
Snippets Groups Projects
config.c 26.2 KiB
Newer Older
  • Learn to ignore specific revisions
  • struct ast_config *ast_load_realtime_multientry(const char *family, ...)
    
    	struct ast_config_engine *eng;
    
    	struct ast_config *res=NULL;
    	va_list ap;
    
    	va_start(ap, family);
    	eng = find_engine(family, db, sizeof(db), table, sizeof(table));
    	if (eng && eng->realtime_multi_func) 
    		res = eng->realtime_multi_func(db, table, ap);
    	va_end(ap);
    
    	return res;
    
    int ast_update_realtime(const char *family, const char *keyfield, const char *lookup, ...)
    
    	struct ast_config_engine *eng;
    	int res = -1;
    
    	va_list ap;
    
    	va_start(ap, lookup);
    	eng = find_engine(family, db, sizeof(db), table, sizeof(table));
    	if (eng && eng->update_func) 
    		res = eng->update_func(db, table, keyfield, lookup, ap);
    	va_end(ap);
    
    	return res;
    
    static int config_command(int fd, int argc, char **argv) 
    {
    
    	struct ast_config_engine *eng;
    
    	ast_mutex_lock(&config_lock);
    
    	ast_cli(fd, "\n\n");
    	for (eng = config_engine_list; eng; eng = eng->next) {
    		ast_cli(fd, "\nConfig Engine: %s\n", eng->name);
    		for (map = config_maps; map; map = map->next)
    			if (!strcasecmp(map->driver, eng->name)) {
    				ast_cli(fd, "===> %s (db=%s, table=%s)\n", map->name, map->database,
    					map->table ? map->table : map->name);
    			}
    
    	}
    	ast_cli(fd,"\n\n");
    	
    
    	ast_mutex_unlock(&config_lock);
    
    
    	return 0;
    
    static char show_config_help[] =
    	"Usage: show config mappings\n"
    	"	Shows the filenames to config engines.\n";
    
    
    static struct ast_cli_entry config_command_struct = {
    
    	{ "show", "config", "mappings", NULL }, config_command, "Show Config mappings (file names to config engines)", show_config_help, NULL
    
    int register_config_cli() 
    {
    
    	return ast_cli_register(&config_command_struct);
    }