Commit Graph

39 Commits (620e580ed671ca6bc34e2e6df64ac680dff7c371)

Author SHA1 Message Date
Steve Murphy a897556f7f This is the perhaps the biggest, boldest, most daring change I've ever committed to trunk. Forgive me in advance any disruption this may cause, and please, report any problems via the bugtracker. The upside is that this can speed up large dialplans by 20 times (or more). Context, extension, and priority matching are all fairly constant-time searches. I introduce here my hashtables (hashtabs), and a regression for them. I would have used the ast_obj2 tables, but mine are resizeable, and don't need the object destruction capability. The hashtab stuff is well tested and stable. I introduce a data structure, a trie, for extension pattern matching, in which knowledge of all patterns is accumulated, and all matches can be found via a single traversal of the tree. This is per-context. The trie is formed on the first lookup attempt, and stored in the context for future lookups. Destruction routines are in place for hashtabs and the pattern match trie. You can see the contents of the pattern match trie by using the 'dialplan show' cli command when 'core set debug' has been done to put it in debug mode. The pattern tree traversal only traverses those parts of the tree that are interesting. It uses a scoreboard sort of approach to find the best match. The speed of the traversal is more a function of the length of the pattern than the number of patterns in the tree. The tree also contains the CID matching patterns. See the source code comments for details on how everything works. I believe the approach general enough that any issues that might come up involving fine points in the pattern matching algorithm, can be solved by just tweaking things. We shall see. The current pattern matcher is fairly involved, and replicating every nuance of it is difficult. If you find and report problems, I will try to resolve than as quickly as I can. The trie and hashtabs are added to the existing context and exten structs, and none of the old machinery has been removed for the sake of the multitude of functions that use them. In the future, we can (maybe) weed out the linked lists and save some space.
18 years ago
Luigi Rizzo b80dc41707 Move the last instance of AST_LIBS to the only place it is used,
18 years ago
Steve Murphy 50d5fd877e Merged revisions 86881 via svnmerge from
18 years ago
Russell Bryant d99440e2ed Merged revisions 81342 via svnmerge from
18 years ago
Russell Bryant 50d7fc81aa Merged revisions 80362 via svnmerge from
18 years ago
Joshua Colp 602198c402 Merge audiohooks branch into trunk. This is a new API for developers to listen and manipulate the audio going through a channel.
18 years ago
Steve Murphy 94b934c8f6 Merged revisions 72933 via svnmerge from
19 years ago
Luigi Rizzo 3caa225108 Make sure that we properly recurse in subdirectories to
19 years ago
Joshua Colp 42c63dd2ed Add the adsistub file to the Asterisk makefile, fix a stub definition, and no longer make the symbols from res_adsi global since they don't need to be.
19 years ago
Jason Parker ee7301ac68 With libmmime.a as a .PHONY target, asterisk gets rebuilt every time, but without proper ASTCFLAGS.
19 years ago
Russell Bryant b6b1bf3213 Merge changes from team/russell/events
19 years ago
Russell Bryant 0a9750ef9f Merged revisions 60603 via svnmerge from
19 years ago
Jason Parker 90b75256d9 Merged revisions 59573 via svnmerge from
19 years ago
Russell Bryant ef5aba253e Merged revisions 53464 via svnmerge from
19 years ago
Russell Bryant f351f4278a Merged revisions 52695 via svnmerge from
19 years ago
Russell Bryant 5dfed82cb9 Merged revisions 52647 via svnmerge from
19 years ago
Joshua Colp 9826fc599b Merged revisions 52049 via svnmerge from
19 years ago
Luigi Rizzo 80243d0f0c forgot to add AST_LIBS += $(BKTR_LIB)
19 years ago
Russell Bryant fa16f36aae Merged revisions 51262 via svnmerge from
19 years ago
Kevin P. Fleming 74f401d05f Merged revisions 50867 via svnmerge from
19 years ago
Kevin P. Fleming 4764795b37 Merged revisions 49553 via svnmerge from
19 years ago
Kevin P. Fleming 920de98f68 Merged revisions 48554 via svnmerge from
19 years ago
Kevin P. Fleming 89c41e2403 Merged revisions 48525 via svnmerge from
19 years ago
Joshua Colp 9335b4bc1c Merged revisions 46780 via svnmerge from
19 years ago
Luigi Rizzo c15f7953c8 Fix a few issues in the previous (disabled) HTTPS code,
19 years ago
Joshua Colp e85da9be41 Let's have build.h created a bit earlier so that func_version can use it and not stop the build on a fresh machine that has never had Asterisk installed on it before...
19 years ago
Luigi Rizzo 8d6d166b14 merge compile fixes from 44080:
19 years ago
Kevin P. Fleming 89050169c8 Merged revisions 43996-43997,44008,44011-44012 via svnmerge from
19 years ago
Joshua Colp 4116cfc387 Add ability to set high ToS bits as non-root on Linux using libcap (issue #7047 reported by maddison)
19 years ago
Kevin P. Fleming f1d824aaba Merged revisions 43450 via svnmerge from
19 years ago
Kevin P. Fleming 7e4c790a3e Merged revisions 43405 via svnmerge from
19 years ago
Kevin P. Fleming 9ae105df1d don't let symbols from included static libraries (like codec/ilbc) pollute the global namespace when those modules are embedded
19 years ago
Matthew Fredrickson 2cc96500bd Mergeing in Paul Cadach's chan_h323 changes *holds breath*
19 years ago
Kevin P. Fleming 5cf1c12796 it appears that current Mac OS/X does not need the poll compatibility module at all, and platforms that do need it also need -DPOLLCOMPAT (or they wouldn't have compiled at all)
19 years ago
Jason Parker f18cbf77df Many Solaris fixes - this moves some of the stuff from utils.c to strcompat.c
19 years ago
Kevin P. Fleming d12f54f90b GNU make already knows how to quietly ignore non-existent files in 'include' directives
19 years ago
Kevin P. Fleming 3ba8e0a973 ensure that cross-compiler info is removed from the enviroment before configuring menuselect
19 years ago
Kevin P. Fleming aa7b32d175 more optimizations for embedded systems:
19 years ago
Kevin P. Fleming 0a27d8bfe5 merge new_loader_completion branch, including (at least):
19 years ago