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.4@215270 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Dwayne M. Hubbard
2009-09-01 23:04:52 +00:00
parent fa27e8dffa
commit fad010ebe7

View File

@@ -79,11 +79,13 @@ static int softhangup_exec(struct ast_channel *chan, void *data)
/* XXX watch out, i think it is wrong to access c-> after unlocking! */
if (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;