|
|
|
@ -1208,6 +1208,11 @@ int ast_device_state_changed(const char *fmt, ...)
|
|
|
|
|
vsnprintf(device, sizeof(device)-1, fmt, ap);
|
|
|
|
|
va_end(ap);
|
|
|
|
|
|
|
|
|
|
rest = strchr(device, '-');
|
|
|
|
|
if (rest) {
|
|
|
|
|
*rest = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pthread_mutex_lock(&hintlock);
|
|
|
|
|
|
|
|
|
|
list = hints;
|
|
|
|
@ -1223,7 +1228,7 @@ int ast_device_state_changed(const char *fmt, ...)
|
|
|
|
|
rest++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!strncmp(cur, device, strlen(cur))) {
|
|
|
|
|
if (!strcmp(cur, device)) {
|
|
|
|
|
// Found extension execute callbacks
|
|
|
|
|
state = ast_extension_state2(list->exten);
|
|
|
|
|
if ((state != -1) && (state != list->laststate)) {
|
|
|
|
@ -3770,6 +3775,9 @@ int ast_pbx_outgoing_app(char *type, int format, void *data, int timeout, char *
|
|
|
|
|
|
|
|
|
|
static void destroy_exten(struct ast_exten *e)
|
|
|
|
|
{
|
|
|
|
|
if (e->priority == PRIORITY_HINT)
|
|
|
|
|
ast_remove_hint(e);
|
|
|
|
|
|
|
|
|
|
if (e->datad)
|
|
|
|
|
e->datad(e->data);
|
|
|
|
|
free(e);
|
|
|
|
@ -3812,11 +3820,6 @@ void ast_context_destroy(struct ast_context *con, char *registrar)
|
|
|
|
|
free(swl);
|
|
|
|
|
swl = sw;
|
|
|
|
|
}
|
|
|
|
|
for (e = tmp->root; e; ) {
|
|
|
|
|
if (e->priority == PRIORITY_HINT)
|
|
|
|
|
ast_remove_hint(e);
|
|
|
|
|
e = e->next;
|
|
|
|
|
}
|
|
|
|
|
for (e = tmp->root; e;) {
|
|
|
|
|
for (en = e->peer; en;) {
|
|
|
|
|
el = en;
|
|
|
|
|