From 184872fdfd033d29bcf2d99d688d7b046dfdc778 Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Tue, 17 Feb 2009 17:33:38 +0000 Subject: [PATCH] Fix a race condition that caused device states to become incorrect for hints. The problem here is that the hint processing code was subscribed to the wrong event type. So, it started processing state for a hint too soon, before the device state cache had been updated. Also, fix a similar bug in app_queue, as it was also subscribed to the wrong event type. (closes issue #14461) Reported by: alecdavis git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@176557 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_queue.c | 2 +- main/pbx.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/app_queue.c b/apps/app_queue.c index 15472cdc5a..58b68cda3c 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -7095,7 +7095,7 @@ static int load_module(void) ast_log(LOG_WARNING, "devicestate taskprocessor reference failed - devicestate notifications will not occur\n"); } - if (!(device_state_sub = ast_event_subscribe(AST_EVENT_DEVICE_STATE_CHANGE, device_state_cb, NULL, AST_EVENT_IE_END))) { + if (!(device_state_sub = ast_event_subscribe(AST_EVENT_DEVICE_STATE, device_state_cb, NULL, AST_EVENT_IE_END))) { res = -1; } diff --git a/main/pbx.c b/main/pbx.c index 96e42db458..4c2b273664 100644 --- a/main/pbx.c +++ b/main/pbx.c @@ -9102,7 +9102,7 @@ int load_pbx(void) /* Register manager application */ ast_manager_register2("ShowDialPlan", EVENT_FLAG_CONFIG | EVENT_FLAG_REPORTING, manager_show_dialplan, "List dialplan", mandescr_show_dialplan); - if (!(device_state_sub = ast_event_subscribe(AST_EVENT_DEVICE_STATE_CHANGE, device_state_cb, NULL, + if (!(device_state_sub = ast_event_subscribe(AST_EVENT_DEVICE_STATE, device_state_cb, NULL, AST_EVENT_IE_END))) { return -1; }