]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 215338 via svnmerge from
authorDwayne M. Hubbard <dwayne.hubbard@gmail.com>
Wed, 2 Sep 2009 01:36:51 +0000 (01:36 +0000)
committerDwayne M. Hubbard <dwayne.hubbard@gmail.com>
Wed, 2 Sep 2009 01:36:51 +0000 (01:36 +0000)
https://origsvn.digium.com/svn/asterisk/trunk

................
  r215338 | dhubbard | 2009-09-01 20:16:59 -0500 (Tue, 01 Sep 2009) | 18 lines

  Merged revisions 215270 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.4

  ........
    r215270 | dhubbard | 2009-09-01 18:04:52 -0500 (Tue, 01 Sep 2009) | 12 lines

    Use strrchr() so SoftHangup will correctly truncate multi-hyphen channel names

    In general channel names are in the form Foo/Bar-Z, but the channel name
    could have multiple hyphens and look like Foo/B-a-r-Z.  Use strrchr to
    truncate the channel name at the last hyphen.

    (closes issue #15810)
    Reported by: dhubbard
    Patches:
          dw-softhangup-1.4.patch uploaded by dhubbard (license 733)
  ........
................

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

apps/app_softhangup.c

index 7af8525604cbc9a343c7cd2c909785480ba36e89..4bfd4004fafded54b91c3af7ad12ec3a28637dd5 100644 (file)
@@ -84,11 +84,13 @@ static int softhangup_exec(struct ast_channel *chan, void *data)
                ast_copy_string(name, c->name, sizeof(name));
                if (ast_test_flag(&flags, OPTION_ALL)) {
                        /* CAPI is set up like CAPI[foo/bar]/clcnt */ 
-                       if (!strcmp(c->tech->type, "CAPI")) 
+                       if (!strcmp(c->tech->type, "CAPI")) {
                                cut = strrchr(name, '/');
                        /* Basically everything else is Foo/Bar-Z */
-                       else
-                               cut = strchr(name, '-');
+                       } else {
+                               /* use strrchr() because Foo/Bar-Z could actually be Foo/B-a-r-Z */
+                               cut = strrchr(name,'-');
+                       }
                        /* Get rid of what we've cut */
                        if (cut)
                                *cut = 0;