Merged revisions 64276 via svnmerge from
authorJoshua Colp <jcolp@digium.com>
Mon, 14 May 2007 18:39:16 +0000 (18:39 +0000)
committerJoshua Colp <jcolp@digium.com>
Mon, 14 May 2007 18:39:16 +0000 (18:39 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r64276 | file | 2007-05-14 14:36:34 -0400 (Mon, 14 May 2007) | 10 lines

Merged revisions 64275 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r64275 | file | 2007-05-14 14:34:06 -0400 (Mon, 14 May 2007) | 2 lines

Only perform stripping of - strings from the channel name for Zap channels. Anywhere else we might remove a legitimate part of a device name. (issue #9668 reported by stevedavies)

........

................

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@64277 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/devicestate.c

index c13d635..d0b9722 100644 (file)
@@ -437,15 +437,19 @@ static void do_state_change(const char *device)
 
 static int __ast_device_state_changed_literal(char *buf)
 {
-       char *device, *tmp;
+       char *device;
        struct state_change *change;
 
        if (option_debug > 2)
                ast_log(LOG_DEBUG, "Notification of state change to be queued on device/channel %s\n", buf);
 
        device = buf;
-       if ((tmp = strrchr(device, '-')))
-               *tmp = '\0';
+
+       if (!strncasecmp(device, "Zap", 3)) {
+               char *tmp = strrchr(device, '-');
+               if (tmp)
+                       *tmp = '\0';
+       }
 
        if (change_thread == AST_PTHREADT_NULL || !(change = ast_calloc(1, sizeof(*change) + strlen(device)))) {
                /* we could not allocate a change struct, or */