FilterConfig: move code to filter_chain_append_new()
This commit is contained in:
		| @@ -64,6 +64,28 @@ filter_plugin_config(const char *filter_template_name, Error &error) | |||||||
| 	return NULL; | 	return NULL; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | static bool | ||||||
|  | filter_chain_append_new(Filter &chain, const char *template_name, Error &error) | ||||||
|  | { | ||||||
|  | 	const struct config_param *cfg = | ||||||
|  | 		filter_plugin_config(template_name, error); | ||||||
|  | 	if (cfg == nullptr) | ||||||
|  | 		// The error has already been set, just stop. | ||||||
|  | 		return false; | ||||||
|  |  | ||||||
|  | 	// Instantiate one of those filter plugins with the template name as a hint | ||||||
|  | 	Filter *f = filter_configured_new(*cfg, error); | ||||||
|  | 	if (f == nullptr) | ||||||
|  | 		// The error has already been set, just stop. | ||||||
|  | 		return false; | ||||||
|  |  | ||||||
|  | 	const char *plugin_name = cfg->GetBlockValue("plugin", | ||||||
|  | 						     "unknown"); | ||||||
|  | 	filter_chain_append(chain, plugin_name, f); | ||||||
|  |  | ||||||
|  | 	return true; | ||||||
|  | } | ||||||
|  |  | ||||||
| unsigned int | unsigned int | ||||||
| filter_chain_parse(Filter &chain, const char *spec, Error &error) | filter_chain_parse(Filter &chain, const char *spec, Error &error) | ||||||
| { | { | ||||||
| @@ -79,24 +101,9 @@ filter_chain_parse(Filter &chain, const char *spec, Error &error) | |||||||
| 		// Squeeze whitespace | 		// Squeeze whitespace | ||||||
| 		g_strstrip(*template_names); | 		g_strstrip(*template_names); | ||||||
|  |  | ||||||
| 		const struct config_param *cfg = | 		if (!filter_chain_append_new(chain, *template_names, error)) | ||||||
| 			filter_plugin_config(*template_names, error); |  | ||||||
| 		if (cfg == NULL) { |  | ||||||
| 			// The error has already been set, just stop. |  | ||||||
| 			break; | 			break; | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		// Instantiate one of those filter plugins with the template name as a hint |  | ||||||
| 		Filter *f = filter_configured_new(*cfg, error); |  | ||||||
| 		if (f == NULL) { |  | ||||||
| 			// The error has already been set, just stop. |  | ||||||
| 			break; |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		const char *plugin_name = cfg->GetBlockValue("plugin", |  | ||||||
| 							     "unknown"); |  | ||||||
|  |  | ||||||
| 		filter_chain_append(chain, plugin_name, f); |  | ||||||
| 		++added_filters; | 		++added_filters; | ||||||
|  |  | ||||||
| 		++template_names; | 		++template_names; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Max Kellermann
					Max Kellermann