[asterisk-commits] jrose: trunk r398099 - in /trunk: ./ main/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Aug 30 13:30:06 CDT 2013


Author: jrose
Date: Fri Aug 30 13:30:01 2013
New Revision: 398099

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=398099
Log:
features_config: Ignore parkinglots in features.conf instead of failing to load

Parkinglots are defined in res_features.conf now, but this patch fixes
features_config so that features don't fail to load when parkinglots
are present in features.conf

Review: https://reviewboard.asterisk.org/r/2801/
........

Merged revisions 398068 from http://svn.asterisk.org/svn/asterisk/branches/12

Modified:
    trunk/   (props changed)
    trunk/main/config_options.c
    trunk/main/features_config.c

Propchange: trunk/
------------------------------------------------------------------------------
--- branch-12-merged (original)
+++ branch-12-merged Fri Aug 30 13:30:01 2013
@@ -1,1 +1,1 @@
-/branches/12:1-397989,398002,398016,398020,398023,398025,398062
+/branches/12:1-397989,398002,398016,398020,398023,398025,398062,398068

Modified: trunk/main/config_options.c
URL: http://svnview.digium.com/svn/asterisk/trunk/main/config_options.c?view=diff&rev=398099&r1=398098&r2=398099
==============================================================================
--- trunk/main/config_options.c (original)
+++ trunk/main/config_options.c Fri Aug 30 13:30:01 2013
@@ -473,7 +473,7 @@
 
 	field = info->internal->pending + type->item_offset;
 	if (!*field) {
-		ast_log(LOG_ERROR, "No object to update!\n");
+		ast_log(LOG_ERROR, "In %s: %s - No object to update!\n", file->filename, cat);
 		return -1;
 	}
 

Modified: trunk/main/features_config.c
URL: http://svnview.digium.com/svn/asterisk/trunk/main/features_config.c?view=diff&rev=398099&r1=398098&r2=398099
==============================================================================
--- trunk/main/features_config.c (original)
+++ trunk/main/features_config.c Fri Aug 30 13:30:01 2013
@@ -180,7 +180,7 @@
 						format for the recording is determined by the <replaceable>TOUCH_MONITOR_FORMAT</replaceable>
 						channel variable. If this variable is not specified, then <literal>wav</literal> is the
 						default. The filename is constructed in the following manner:</para>
-							
+
 						<para>    prefix-timestamp-filename</para>
 
 						<para>where prefix is either the value of the <replaceable>TOUCH_MONITOR_PREFIX</replaceable>
@@ -547,9 +547,15 @@
 	return group;
 }
 
+/* Used for deprecated parking configuration */
+struct dummy_config {
+	char dummy;
+};
+
 struct features_config {
 	struct features_global_config *global;
 	struct ast_featuremap_config *featuremap;
+	struct dummy_config *parkinglots;
 	struct ao2_container *applicationmap;
 	struct ao2_container *featuregroups;
 };
@@ -588,14 +594,24 @@
 	.item_find = featuregroup_find,
 };
 
+static struct aco_type parkinglot_option = {
+	.type = ACO_GLOBAL,
+	.name = "parkinglot",
+	.category_match = ACO_WHITELIST,
+	.category = "^parkinglot_.*$",
+	.item_offset = offsetof(struct features_config, parkinglots),
+	.hidden = 1,
+};
+
 static struct aco_type *global_options[] = ACO_TYPES(&global_option);
 static struct aco_type *featuremap_options[] = ACO_TYPES(&featuremap_option);
 static struct aco_type *applicationmap_options[] = ACO_TYPES(&applicationmap_option);
 static struct aco_type *featuregroup_options[] = ACO_TYPES(&featuregroup_option);
+static struct aco_type *parkinglot_options[] = ACO_TYPES(&parkinglot_option);
 
 static struct aco_file features_conf = {
 	.filename = "features.conf",
-	.types = ACO_TYPES(&global_option, &featuremap_option, &applicationmap_option, &featuregroup_option),
+	.types = ACO_TYPES(&global_option, &featuremap_option, &applicationmap_option, &featuregroup_option, &parkinglot_option),
 };
 
 AO2_GLOBAL_OBJ_STATIC(globals);
@@ -711,6 +727,11 @@
 
 	cfg->featuremap = ao2_alloc(sizeof(*cfg->featuremap), featuremap_config_destructor);
 	if (!cfg->featuremap || ast_string_field_init(cfg->featuremap, 32)) {
+		return NULL;
+	}
+
+	cfg->parkinglots = ao2_alloc(sizeof(*cfg->parkinglots), NULL);
+	if (!cfg->parkinglots) {
 		return NULL;
 	}
 
@@ -1433,9 +1454,15 @@
 	return pickup_set(pickup, var->name, var->value);
 }
 
+static int parking_warning = 0;
 static int unsupported_handler(const struct aco_option *opt,
 		struct ast_variable *var, void *obj)
 {
+	if (!parking_warning) {
+		ast_log(LOG_WARNING, "Parkinglots are no longer configurable in features.conf; "
+			"parking is now handled by res_parking.conf\n");
+		parking_warning = 1;
+	}
 	ast_log(LOG_WARNING, "The option '%s' is no longer configurable in features.conf.\n", var->name);
 	return 0;
 }
@@ -1708,6 +1735,9 @@
 	aco_option_register_custom(&cfg_info, "^.*$", ACO_REGEX, featuregroup_options,
 			"", featuregroup_handler, 0);
 
+	aco_option_register_custom_nodoc(&cfg_info, "^.*$", ACO_REGEX, parkinglot_options,
+			"", unsupported_handler, 0);
+
 	if (aco_process_config(&cfg_info, 0) == ACO_PROCESS_ERROR) {
 		RAII_VAR(struct features_config *, features_cfg, __features_config_alloc(0), ao2_cleanup);
 




More information about the asterisk-commits mailing list