Merge 1f9bc6e9349718d1c7b9536f97d69ca18636b3de into 675bd8f27d7ef201673f21c4ae6dd6fef73383b4

This commit is contained in:
Marc Olivier Chouinard 2025-03-10 20:39:23 +00:00 committed by GitHub
commit d037a9bf0b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -284,7 +284,22 @@ static struct dist_node *find_next(struct dist_list *list, int etotal, char **ex
return NULL;
}
switch_bool_t dist_exist(const char *name) {
switch_bool_t result = SWITCH_FALSE;
struct dist_list *lp;
switch_mutex_lock(globals.mod_lock);
for (lp = globals.list; lp; lp = lp->next) {
if (!strcasecmp(name, lp->name)) {
result = SWITCH_TRUE;
break;
}
}
switch_mutex_unlock(globals.mod_lock);
return result;
}
static char *dist_engine(const char *name)
{
struct dist_node *np = NULL;
@ -351,6 +366,19 @@ SWITCH_STANDARD_API(distributor_function)
}
SWITCH_STANDARD_API(distributor_exist_function)
{
if (!zstr(cmd)) {
switch_bool_t ret = dist_exist(cmd);
stream->write_function(stream, "%s", ret?"true":"false");
} else {
stream->write_function(stream, "-err");
}
return SWITCH_STATUS_SUCCESS;
}
static struct dist_list *find_list(const char *name)
{
struct dist_list *lp = NULL;
@ -508,6 +536,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_distributor_load)
SWITCH_ADD_API(api_interface, "distributor", "Distributor API", distributor_function, "<list name>[ <exception1> <exceptionN>]");
SWITCH_ADD_API(api_interface, "distributor_ctl", "Distributor API", distributor_ctl_function, "[reload]");
SWITCH_ADD_API(api_interface, "distributor_exist", "Distributor Exist API", distributor_exist_function, "<list name>");
SWITCH_ADD_APP(app_interface, "distributor", "Distributor APP", "Distributor APP", distributor_exec, "<list name>[ <exception1> <exceptionN>]",
SAF_SUPPORT_NOMEDIA | SAF_ROUTING_EXEC);