look for the last '-' in the channel name instead of the first (issue #5514)
[asterisk/asterisk.git] / devicestate.c
index fabed73..086cadb 100755 (executable)
@@ -195,12 +195,13 @@ static void do_state_change(const char *device)
 
 static int __ast_device_state_changed_literal(char *buf)
 {
-       char *device;
-       char *parse;
+       char *device, *tmp;
        struct state_change *change = NULL;
 
-       parse = buf;
-       device = strsep(&parse, "-");
+       device = buf;
+       tmp = strrchr(device, '-');
+       if (tmp)
+               *tmp = '\0';
        if (change_thread != AST_PTHREADT_NULL)
                change = calloc(1, sizeof(*change) + strlen(device));