Age | Commit message (Collapse) | Author | Files | Lines |
|
(closes issue #12912)
Reported by: rathaus
Tested by: tilghman, russell, dvossel, dbrooks
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@215958 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@211526 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
These changes address a critical performance issue introduced in the latest
release. The fix for the latest security issue included a change that made
Asterisk randomly choose call numbers to make them more difficult to guess by
attackers. However, due to some inefficient (this is by far, an understatement)
code, when Asterisk chose high call numbers, chan_iax2 became unusable after
just a small number of calls. On a small embedded platform, it would not be
able to handle a single call. On my Intel Core 2 Duo @ 2.33 GHz, I couldn't
run more than about 16 IAX2 channels. Ouch.
These changes address some performance issues of the find_callno() function
that have bothered me for a very long time. On every incoming media frame,
it iterated through every possible call number trying to find a matching
active call. This involved a mutex lock and unlock for each call number
checked. So, if the random call number chosen was 20000, then every media
frame would cause 20000 locks and unlocks. Previously, this problem was
not as obvious since Asterisk always chose the lowest call number it could.
A second container for IAX2 pvt structs has been added. It is an astobj2
hash table. When we know the remote side's call number, the pvt goes into
the hash table with a hash value of the remote side's call number. Then,
lookups for incoming media frames are a very fast hash lookup instead of an
absolutely insane array traversal.
In a quick test, I was able to get more than 3600% more IAX2 channels
on my machine with these changes.
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@115296 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@75257 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
statement for them
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@75251 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
Reported to me on #asterisk on Freenode IRC.
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@71847 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@63903 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
of 2. Using two digits makes it an octal number when put into version.h, which
breaks the compilation of any out of tree module that checks the version for
any version after 1.2.7 (reported by Matteo Brancaleoni on the asterisk-dev
mailing list, who gave credit to vihai for pointing it out)
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@50227 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
changes to add silence files into core instead of extra
patch provided by bug 8177 with minor additions.
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@48394 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
makefile, as per bug 7545
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@42150 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@36290 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@23673 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
should be used (like we do in the editline subdirectory)
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@23638 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
remove old 'look' target which is no longer needed
(these are coming from Debian patches <G>)
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@23636 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
the Makefile more easily)
generate final messages -after- running any post-install script that may be present
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@23305 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
has not needed it since January of 2005 (issue #6613)
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@19353 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@11715 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@11635 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@11607 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@10952 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@9086 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@7340 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
(issue #5875)
remove support for 'patches' subdirectory, it's no longer useful
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@7266 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
(issue #5786)
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@7244 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@7208 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/branches/v1-2@7174 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
fix incorrect portion of yesterday's Solaris fixes
git-svn-id: http://svn.digium.com/svn/asterisk/branches/v1-2@7169 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/branches/v1-2@7165 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/branches/v1-2@7163 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/branches/v1-2@7133 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@7120 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@7111 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@7096 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@7018 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@7003 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@7002 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6994 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6963 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6936 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6848 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6797 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6782 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6737 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6700 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6691 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
(issue #5318 with minor mod)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6688 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
functionality (issue #5297)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6664 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6658 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6653 f38db490-d61c-443f-a65b-d21fe96a405b
|