Steve Murphy
4c992507f4
closes issue #11341 ; made changes to make utils again right with the MTX_PROFILE world.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89595 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-26 17:46:41 +00:00
Luigi Rizzo
6dfc36b639
enable support for stack backtrace for stuff built in utils/
...
(this was present in the main tree but forgotten here).
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89506 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-21 21:30:24 +00:00
Kevin P. Fleming
3826d15993
move these forward declarations back to asterisk.h where they belong... even though asterisk.h includes compat.h, these declarations have nothing to do with the being platform-compatible and are directly related to being part of Asterisk
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89482 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-21 16:07:11 +00:00
Luigi Rizzo
04e1e0069f
more header removal/normalization
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89473 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-21 00:23:49 +00:00
Luigi Rizzo
b693c30a66
move the declaration of struct ast_channel ast_frame and ast_module
...
to compat.h so it is always available - hopefully this will let
us reduce the number of inclusions of channel.h and frame.h
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89426 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-19 19:36:32 +00:00
Luigi Rizzo
7cd78079ae
more cygwin/mingw32 compatibility fixes
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89373 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-17 10:54:52 +00:00
Luigi Rizzo
91475fd3dc
add a return NULL to a function that is expected to return a value
...
so compilers that don't understand that this code is NOTREACHED
will not complain (the fault is not much on the compiler but on the
declaration of pthread_exit on certain platforms)
s/certain platform/cygwin/ if you are really curious
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89368 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-17 09:54:54 +00:00
Luigi Rizzo
d82a631f9c
more removal of duplicate #include lines
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89349 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-17 00:02:33 +00:00
Luigi Rizzo
4afe3b5ba9
remove redundant #include "asterisk/compat.h",
...
but make sure that asterisk/compiler.h is included everywhere
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89336 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-16 21:08:28 +00:00
Luigi Rizzo
fdb7f7ba3d
Start untangling header inclusion in a way that does not affect
...
build times - tested, there is no measureable difference before and
after this commit.
In this change:
use asterisk/compat.h to include a small set of system headers:
inttypes.h, unistd.h, stddef.h, stddint.h, sys/types.h, stdarg.h,
stdlib.h, alloca.h, stdio.h
Where available, the inclusion is conditional on HAVE_FOO_H as determined
by autoconf.
Normally, source files should not include any of the above system headers,
and instead use either "asterisk.h" or "asterisk/compat.h" which does it
better.
For the time being I have left alone second-level directories
(main/db1-ast, etc.).
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89333 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-16 20:04:58 +00:00
Steve Murphy
f033e50a15
Don't forget the ASTERISK_VERSION for the sake of the mtx_prof stuff.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89201 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-12 23:33:55 +00:00
Kevin P. Fleming
c7773aa206
(closes issue #11221 )
...
Reported by: eliel
Patches:
utils.Makefile.patch uploaded by eliel (modified by me) (license 64)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89190 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-12 20:16:13 +00:00
Joshua Colp
098728eb64
Fix building on FreeBSD by including/not including some headers.
...
(closes issue #11218 )
Reported by: ys
Patches:
trunk89169.diff uploaded by ys (license 281)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89177 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-12 13:26:45 +00:00
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.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89129 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-09 16:00:22 +00:00
Kevin P. Fleming
edc78d6023
improve linked-list macros in two ways:
...
- the *_CURRENT macros no longer need the list head pointer argument
- add AST_LIST_MOVE_CURRENT to encapsulate the remove/add operation when moving entries between lists
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89106 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-08 05:28:47 +00:00
Luigi Rizzo
1c55f8424e
Move AUDIO_LIBS outside the top level Makefile. This too is used only
...
in one place.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88770 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-05 21:36:11 +00:00
Tilghman Lesher
e8c781b215
Add pbx_lua as a method of doing extensions
...
Reported by: mnicholson
Patch by: mnicholson
Closes issue #11140
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88250 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-02 15:36:34 +00:00
Steve Murphy
63f2f04cf4
This commits the performance mods that give the priority processing engine in the pbx, a 25-30% speed boost. The two updates used, are, first, to merge the ast_exists_extension() and the ast_spawn_extension() where they are called sequentially in a loop in the code, into a slightly upgraded version of ast_spawn_extension(), with a few extra args; and, second, I modified the substitute_variables_helper_full, so it zeroes out the byte after the evaluated string instead of demanding you pre-zero the buffer; I also went thru the code and removed the code that zeroed this buffer before every call to the substitute_variables_helper_full. The first fix provides about a 9% speedup, and the second the rest. These figures come from the 'PIPS' benchmark I describe in blogs, conf. reports, etc.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88166 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-01 22:26:51 +00:00
Russell Bryant
cac97aa8b4
Remove another copied source file on "make clean".
...
(closes issue #11137 )
Reported by: IgorG
Patches:
addonclean-87971-1.patch uploaded by IgorG (license 20)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88062 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-01 15:18:06 +00:00
Kevin P. Fleming
6ab27c871a
UGH... while trying to fix #10995 , I found all kinds of cruft in this Makefile. It should all be gone now, and as a side effect hashtest2 now builds with --enable-dev-mode enabled without a host of errors
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87498 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-29 22:44:49 +00:00
Kevin P. Fleming
a4b8ca220d
clean up assembler and preprocessor files if they are here too
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87467 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-29 22:24:44 +00:00
Steve Murphy
c9f3efc381
Merged revisions 87168 via svnmerge from
...
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r87168 | murf | 2007-10-26 10:34:02 -0600 (Fri, 26 Oct 2007) | 1 line
closes issue #11086 where a user complains that references to following contexts report a problem; The problem was REALLy that he was referring to empty contexts, which were being ignored. Reporter stated that empty contexts should be OK. I checked it out against extensions.conf, and sure enough, empty contexts ARE ok. So, I removed the restriction from AEL. This, though, highlighted a problem with multiple contexts of the same name. This should be OK, also. So, I added the extend keyword to AEL, and it can preceed the 'context' keyword (mixed with 'abstract', if nec.). This will turn off the warnings in AEL if the same context name is used 2 or more times. Also, I now call ast_context_find_or_create for contexts now, instead of just ast_context_create; I did this because pbx_config does this. The 'extend' keyword thus becomes a statement of intent. AEL can now duplicate the behavior of pbx_config,
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87187 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-26 17:39:39 +00:00
Steve Murphy
a69abc0179
and then, I noticed the clicompat stuff.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@86182 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-17 20:06:28 +00:00
Steve Murphy
e5fa15d812
more stub routines to allow linkage in stand-alone environment, with thread debugs turned on
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@86181 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-17 19:59:49 +00:00
Steve Murphy
65786f15fa
more stub routines to allow linkage in stand-alone environment, with thread debugs turned on
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@86180 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-17 19:58:20 +00:00
Tilghman Lesher
7adbd6bb16
Remove redundant includes (patch by snuffy) (Closes issue #10922 )
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@85140 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-09 16:04:41 +00:00
Joshua Colp
648f67d4c8
Fix up tree so that it compiles when MTX Profiling is enabled.
...
(closes issue #10898 )
Reported by: snuffy
Patches:
10898-mtx_prof.diff uploaded by qwell (license 4)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@85025 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-08 16:12:21 +00:00
Steve Murphy
0d2ee300e7
OK. THis a DEBUG_THREADS situation.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@84331 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-01 23:33:07 +00:00
Steve Murphy
e8c8bb4a14
picky gcc versions... sigh.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@84330 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-01 23:26:50 +00:00
Steve Murphy
db26685460
This mod will allow check_expr to compile in the presence of DEBUG_THREAD situations. At least, it does for me. And it's less expensive than several other approaches I tried.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@84329 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-01 23:20:20 +00:00
Russell Bryant
437b439c61
Add some files to the utils directory svn:ignore and Makefile clean target
...
(closes issue #10808 , reported by mvanbaak)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@83741 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-25 08:09:01 +00:00
Tilghman Lesher
1b949d24c0
Fix build of check_expr and hashtest2 when DEBUG_THREADLOCAL is defined
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@83545 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-22 14:45:42 +00:00
Russell Bryant
9f64905d4e
Merged revisions 83432 via svnmerge from
...
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r83432 | russell | 2007-09-21 09:37:20 -0500 (Fri, 21 Sep 2007) | 4 lines
gcc 4.2 has a new set of warnings dealing with cosnt pointers. This set of
changes gets all of Asterisk (minus chan_alsa for now) to compile with gcc 4.2.
(closes issue #10774 , patch from qwell)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@83433 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-21 14:40:10 +00:00
Russell Bryant
99fb378cdc
Change the traversal to use ao2_callback() instead of an ao2_iterator. Using
...
ao2_callback() is a much more efficient way of performing an operation on every
item in the container. This change makes hashtest2 run in about 25% of the
time it ran before on my system.
In general, I would say that it makes the most sense to use an ao2_iterator if
the operation being performed is going to take a long time and you don't want
to keep the container locked while you work with each object. Otherwise,
the use of ao2_callback is preferred.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82282 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-12 15:53:40 +00:00
Steve Murphy
c88e216a14
This solves an unreported solaris compile problem (missing -lnsl -lsocket).
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82268 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-11 22:37:20 +00:00
Steve Murphy
26d739ff5b
fixing up the pthread stuff for hashtest2
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82256 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-11 17:16:16 +00:00
Joshua Colp
56a31d1d20
Include string compatibility file in hashtest2.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82235 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-11 13:46:08 +00:00
Joshua Colp
c81d14226a
Include compat.h to hopefully make it compatible with FreeBSD.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82234 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-11 13:41:03 +00:00
Joshua Colp
219470dc43
Fix building under FreeBSD. Make sure alloca.h exists before including it.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82233 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-11 13:37:26 +00:00
Steve Murphy
c4133cc03f
Committing my test for astobj2, hashtest2.c, along with makefile changes in utils.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82140 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-10 16:59:18 +00:00
Steve Murphy
b5cd67adc3
This code was in team/murf/bug8684-trunk; it should fix bug 8684 in trunk. I didn't add it to 1.4 yet, because it's not entirely clear to me if this is a bug fix or an enhancement. A lot of files were affected by small changes like ast_variable_new getting an added arg, for the file name the var was defined in; ast_category_new gets added args of filename and lineno; ast_category and ast_variable structures now record file and lineno for each entry; a list of all #include and #execs in a config file (or any of its inclusions are now kept in the ast_config struct; at save time, each entry is put back into its proper file of origin, in order. #include and #exec directives are folded in properly. Headers indicating that the file was generated, are generated also for each included file. Some changes to main/manager.c to take care of file renaming, via the UpdateConfig command. Multiple inclusions of the same file are handled by exploding these into multiple include files, uniquely named. There's probably more, but I can't remember it right now.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81361 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-29 20:55:40 +00:00
Steve Murphy
088d7ef8bc
fix up the MODULEINFO in conf2ael.c as well
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@80748 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-24 15:42:25 +00:00
Russell Bryant
6814e7b77e
Merged revisions 80722 via svnmerge from
...
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r80722 | russell | 2007-08-24 10:28:05 -0500 (Fri, 24 Aug 2007) | 3 lines
Tweak the formatting of this MODULEINFO block. I think this would have caused
a "*" to get in the menuselect-tree file.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@80725 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-24 15:29:16 +00:00
Steve Murphy
6419bd36ba
Merged revisions 80717 via svnmerge from
...
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r80717 | murf | 2007-08-24 08:48:49 -0600 (Fri, 24 Aug 2007) | 1 line
This change addresses JerJer's complaint that aelparse builds and installs even if pbx_ael is unchecked in the menuselect stuff.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@80718 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-24 14:55:34 +00:00
Russell Bryant
483c2bad07
Ensure that the object code for ast_atomic_fetchadd_int() gets included in the
...
check_expr binary when building with LOW_MEMORY defined.
(reported by Brian Capouch on the asterisk-dev list, patch by me)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@80262 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-22 16:27:39 +00:00
Steve Murphy
b69734ae09
Stephn Davies reports that this will help make things work on 64-bit machines
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@80075 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-20 17:37:36 +00:00
Steve Murphy
a9f86a939e
pval.c should not be in svn, in the utils dir
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@80037 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-20 15:27:35 +00:00
Joshua Colp
4edcf623f0
Bring pval.c in utils up to date with pval.c in res/ael.
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@80033 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-20 15:10:55 +00:00
Joshua Colp
ab2c114cd7
(closes issue #10496 )
...
Reported by: caio1982
Fix building on OSX.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@79989 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-20 00:38:20 +00:00
Tilghman Lesher
488f6973cd
Add strcompat dependency for check_expr (needed for platforms that don't have strndup)
...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@79980 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-19 14:17:30 +00:00