Fix app_queue's device state callback so that it

can correctly parse custom device states (and any
other device which does not contain a '/').

1.6.1 will be getting this patch as well, but trunk
is going to get a much more massive patch by bbryant
which does some very nice overhauling of some
structures in app_queue.

(closes issue #12979)
Reported by: sigxcpu
Patches:
      12979.patch uploaded by putnopvut (license 60)
Tested by: sigxcpu



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@142090 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.6.0
Mark Michelson 17 years ago
parent b12820f102
commit fac93e8478

@ -733,16 +733,6 @@ static int update_status(const char *interface, const int status)
static void *handle_statechange(struct statechange *sc)
{
struct member_interface *curint;
char *loc;
char *technology;
technology = ast_strdupa(sc->dev);
loc = strchr(technology, '/');
if (loc) {
*loc++ = '\0';
} else {
return NULL;
}
AST_LIST_LOCK(&interfaces);
AST_LIST_TRAVERSE(&interfaces, curint, list) {
@ -759,13 +749,11 @@ static void *handle_statechange(struct statechange *sc)
AST_LIST_UNLOCK(&interfaces);
if (!curint) {
if (option_debug > 2)
ast_log(LOG_DEBUG, "Device '%s/%s' changed to state '%d' (%s) but we don't care because they're not a member of any queue.\n", technology, loc, sc->state, devstate2str(sc->state));
ast_debug(3, "Device '%s' changed to state '%d' (%s) but we don't care because they're not a member of any queue.\n", sc->dev, sc->state, devstate2str(sc->state));
return NULL;
}
if (option_debug)
ast_log(LOG_DEBUG, "Device '%s/%s' changed to state '%d' (%s)\n", technology, loc, sc->state, devstate2str(sc->state));
ast_debug(1, "Device '%s' changed to state '%d' (%s)\n", sc->dev, sc->state, devstate2str(sc->state));
update_status(sc->dev, sc->state);

Loading…
Cancel
Save