mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 18:55:19 +00:00 
			
		
		
		
	manager.c: Simplify AMI ModuleCheck handling
This code was needlessly complex and would fail to properly delimit the response message if LOW_MEMORY was defined. Change-Id: Iae50bf09ef4bc34f9dc4b49435daa76f8b2c5b6e
This commit is contained in:
		| @@ -6469,36 +6469,30 @@ static int action_loggerrotate(struct mansession *s, const struct message *m) | ||||
| /*! \brief Manager function to check if module is loaded */ | ||||
| static int manager_modulecheck(struct mansession *s, const struct message *m) | ||||
| { | ||||
| 	int res; | ||||
| 	const char *module = astman_get_header(m, "Module"); | ||||
| 	const char *id = astman_get_header(m, "ActionID"); | ||||
| 	char idText[256]; | ||||
| 	char filename[PATH_MAX]; | ||||
| 	char *cut; | ||||
|  | ||||
| 	ast_copy_string(filename, module, sizeof(filename)); | ||||
| 	if ((cut = strchr(filename, '.'))) { | ||||
| 		*cut = '\0'; | ||||
| 	} else { | ||||
| 		cut = filename + strlen(filename); | ||||
| 	} | ||||
| 	snprintf(cut, (sizeof(filename) - strlen(filename)) - 1, ".so"); | ||||
| 	ast_debug(1, "**** ModuleCheck .so file %s\n", filename); | ||||
| 	res = ast_module_check(filename); | ||||
| 	if (!res) { | ||||
| 	ast_debug(1, "**** ModuleCheck .so file %s\n", module); | ||||
| 	if (!ast_module_check(module)) { | ||||
| 		astman_send_error(s, m, "Module not loaded"); | ||||
| 		return 0; | ||||
| 	} | ||||
|  | ||||
| 	astman_append(s, "Response: Success\r\n"); | ||||
|  | ||||
| 	if (!ast_strlen_zero(id)) { | ||||
| 		snprintf(idText, sizeof(idText), "ActionID: %s\r\n", id); | ||||
| 	} else { | ||||
| 		idText[0] = '\0'; | ||||
| 		astman_append(s, "ActionID: %s\r\n", id); | ||||
| 	} | ||||
| 	astman_append(s, "Response: Success\r\n%s", idText); | ||||
|  | ||||
| #if !defined(LOW_MEMORY) | ||||
| 	astman_append(s, "Version: %s\r\n\r\n", ""); | ||||
| 	/* When we switched from subversion to git we lost the ability to | ||||
| 	 * retrieve the 'ASTERISK_FILE_VERSION' from that file, but we retain | ||||
| 	 * the response header here for backwards compatibility. */ | ||||
| 	astman_append(s, "Version: \r\n"); | ||||
| #endif | ||||
|  | ||||
| 	astman_append(s, "\r\n"); | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user