mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	res_geolocation: Address user issues, remove complexity, plug leaks
* Added processing for the 'confidence' element. * Added documentation to some APIs. * removed a lot of complex code related to the very-off-nominal case of needing to process multiple location info sources. * Create a new 'ast_geoloc_eprofile_to_pidf' API that just takes one eprofile instead of a datastore of multiples. * Plugged a huge leak in XML processing that arose from insufficient documentation by the libxml/libxslt authors. * Refactored stylesheets to be more efficient. * Renamed 'profile_action' to 'profile_precedence' to better reflect it's purpose. * Added the config option for 'allow_routing_use' which sets the value of the 'Geolocation-Routing' header. * Removed the GeolocProfileCreate and GeolocProfileDelete dialplan apps. * Changed the GEOLOC_PROFILE dialplan function as follows: * Removed the 'profile' argument. * Automatically create a profile if it doesn't exist. * Delete a profile if 'inheritable' is set to no. * Fixed various bugs and leaks * Updated Asterisk WiKi documentation. ASTERISK-30167 Change-Id: If38c23f26228e96165be161c2f5e849cb8e16fa0
This commit is contained in:
		| @@ -25,18 +25,8 @@ | ||||
| #include "asterisk/lock.h" | ||||
| #include "asterisk/res_geolocation.h" | ||||
|  | ||||
| #define CONFIG_STR_TO_ENUM_DECL(_stem) int geoloc_ ## _stem ## _str_to_enum(const char *str); | ||||
| CONFIG_STR_TO_ENUM_DECL(pidf_element) | ||||
| CONFIG_STR_TO_ENUM_DECL(format); | ||||
| CONFIG_STR_TO_ENUM_DECL(action); | ||||
| #define GEOLOC_ENUM_TO_NAME_DECL(_stem) const char * geoloc_ ## _stem ## _to_name(int ix); | ||||
| GEOLOC_ENUM_TO_NAME_DECL(pidf_element) | ||||
| GEOLOC_ENUM_TO_NAME_DECL(format); | ||||
| GEOLOC_ENUM_TO_NAME_DECL(action); | ||||
|  | ||||
|  | ||||
| #define CONFIG_STR_TO_ENUM(_stem) \ | ||||
| int geoloc_ ## _stem ## _str_to_enum(const char *str) \ | ||||
| int ast_geoloc_ ## _stem ## _str_to_enum(const char *str) \ | ||||
| { \ | ||||
| 	int i; \ | ||||
| 	for (i = 0; i < ARRAY_LEN(_stem ## _names); i++) { \ | ||||
| @@ -51,7 +41,7 @@ int geoloc_ ## _stem ## _str_to_enum(const char *str) \ | ||||
| static int _stem ## _handler(const struct aco_option *opt, struct ast_variable *var, void *obj) \ | ||||
| { \ | ||||
| 	struct ast_geoloc_ ## _object *_thisobject = obj; \ | ||||
| 	int enumval = geoloc_ ## _stem ## _str_to_enum(var->value); \ | ||||
| 	int enumval = ast_geoloc_ ## _stem ## _str_to_enum(var->value); \ | ||||
| 	if (enumval == -1) { \ | ||||
| 		return -1; \ | ||||
| 	} \ | ||||
| @@ -61,7 +51,7 @@ static int _stem ## _handler(const struct aco_option *opt, struct ast_variable * | ||||
|  | ||||
|  | ||||
| #define GEOLOC_ENUM_TO_NAME(_stem) \ | ||||
| const char * geoloc_ ## _stem ## _to_name(int ix) \ | ||||
| const char * ast_geoloc_ ## _stem ## _to_name(int ix) \ | ||||
| { \ | ||||
| 	if (!ARRAY_IN_BOUNDS(ix, _stem ## _names)) { \ | ||||
| 		return "none"; \ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user