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:
parent
7857e7914d
commit
a2eb555230
|
@ -6474,36 +6474,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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue