russell
e40f5364c1
Fix the build of astman. Any file that includes any asterisk sub-headers
...
needs to first include asterisk.h.
(closes issue #11394 )
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@91029 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-04 23:01:15 +00:00
kpfleming
e95d92fac9
let's try this again... *all* compilation and linking in Asterisk should be done using the standard compilation rules, not manually created ones. changing hashtest.c to use these rules caused the compiler to notice a large number of coding guidelines violations, so those are fixed too.
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@90150 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-29 13:38:11 +00:00
murf
753634f9ca
closes issue #11341 ; made changes to make utils again right with the MTX_PROFILE world.
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89595 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-26 17:46:41 +00:00
rizzo
971fcdc9ff
enable support for stack backtrace for stuff built in utils/
...
(this was present in the main tree but forgotten here).
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89506 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-21 21:30:24 +00:00
kpfleming
6d30ebbac7
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: http://svn.digium.com/svn/asterisk/trunk@89482 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-21 16:07:11 +00:00
rizzo
0043b6cd58
more header removal/normalization
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89473 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-21 00:23:49 +00:00
rizzo
f89608896c
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: http://svn.digium.com/svn/asterisk/trunk@89426 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-19 19:36:32 +00:00
rizzo
163cc146a7
more cygwin/mingw32 compatibility fixes
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89373 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-17 10:54:52 +00:00
rizzo
1fe4d3a41f
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: http://svn.digium.com/svn/asterisk/trunk@89368 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-17 09:54:54 +00:00
rizzo
ba761e2427
more removal of duplicate #include lines
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89349 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-17 00:02:33 +00:00
rizzo
82c12f8105
remove redundant #include "asterisk/compat.h",
...
but make sure that asterisk/compiler.h is included everywhere
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89336 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-16 21:08:28 +00:00
rizzo
883346d64a
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: http://svn.digium.com/svn/asterisk/trunk@89333 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-16 20:04:58 +00:00
murf
8a1c2d1509
Don't forget the ASTERISK_VERSION for the sake of the mtx_prof stuff.
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89201 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-12 23:33:55 +00:00
kpfleming
7d0d020dce
(closes issue #11221 )
...
Reported by: eliel
Patches:
utils.Makefile.patch uploaded by eliel (modified by me) (license 64)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89190 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-12 20:16:13 +00:00
file
4b753c1924
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: http://svn.digium.com/svn/asterisk/trunk@89177 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-12 13:26:45 +00:00
murf
aef44ae684
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: http://svn.digium.com/svn/asterisk/trunk@89129 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-09 16:00:22 +00:00
kpfleming
a45a413db3
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: http://svn.digium.com/svn/asterisk/trunk@89106 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-08 05:28:47 +00:00
rizzo
6ba6ba6e24
Move AUDIO_LIBS outside the top level Makefile. This too is used only
...
in one place.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@88770 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-05 21:36:11 +00:00
tilghman
bad99f6a2a
Add pbx_lua as a method of doing extensions
...
Reported by: mnicholson
Patch by: mnicholson
Closes issue #11140
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@88250 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-02 15:36:34 +00:00
murf
47c8ea00b8
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: http://svn.digium.com/svn/asterisk/trunk@88166 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-01 22:26:51 +00:00
russell
d8a12a9c6b
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: http://svn.digium.com/svn/asterisk/trunk@88062 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-01 15:18:06 +00:00
kpfleming
9e40a36718
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: http://svn.digium.com/svn/asterisk/trunk@87498 f38db490-d61c-443f-a65b-d21fe96a405b
2007-10-29 22:44:49 +00:00
kpfleming
5aafb5a5e4
clean up assembler and preprocessor files if they are here too
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@87467 f38db490-d61c-443f-a65b-d21fe96a405b
2007-10-29 22:24:44 +00:00
murf
15b76d347e
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: http://svn.digium.com/svn/asterisk/trunk@87187 f38db490-d61c-443f-a65b-d21fe96a405b
2007-10-26 17:39:39 +00:00
murf
3af535a31c
and then, I noticed the clicompat stuff.
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@86182 f38db490-d61c-443f-a65b-d21fe96a405b
2007-10-17 20:06:28 +00:00
murf
b45a66b50e
more stub routines to allow linkage in stand-alone environment, with thread debugs turned on
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@86181 f38db490-d61c-443f-a65b-d21fe96a405b
2007-10-17 19:59:49 +00:00
murf
6b95b67666
more stub routines to allow linkage in stand-alone environment, with thread debugs turned on
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@86180 f38db490-d61c-443f-a65b-d21fe96a405b
2007-10-17 19:58:20 +00:00
tilghman
69a84d074b
Remove redundant includes (patch by snuffy) (Closes issue #10922 )
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@85140 f38db490-d61c-443f-a65b-d21fe96a405b
2007-10-09 16:04:41 +00:00
file
8cd1b4daba
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: http://svn.digium.com/svn/asterisk/trunk@85025 f38db490-d61c-443f-a65b-d21fe96a405b
2007-10-08 16:12:21 +00:00
murf
6685951d10
OK. THis a DEBUG_THREADS situation.
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@84331 f38db490-d61c-443f-a65b-d21fe96a405b
2007-10-01 23:33:07 +00:00
murf
60e7a00008
picky gcc versions... sigh.
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@84330 f38db490-d61c-443f-a65b-d21fe96a405b
2007-10-01 23:26:50 +00:00
murf
2c8dd534a7
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: http://svn.digium.com/svn/asterisk/trunk@84329 f38db490-d61c-443f-a65b-d21fe96a405b
2007-10-01 23:20:20 +00:00
russell
ea4c42d1e6
Add some files to the utils directory svn:ignore and Makefile clean target
...
(closes issue #10808 , reported by mvanbaak)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@83741 f38db490-d61c-443f-a65b-d21fe96a405b
2007-09-25 08:09:01 +00:00
tilghman
480f725cc1
Fix build of check_expr and hashtest2 when DEBUG_THREADLOCAL is defined
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@83545 f38db490-d61c-443f-a65b-d21fe96a405b
2007-09-22 14:45:42 +00:00
russell
16927b7f7a
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: http://svn.digium.com/svn/asterisk/trunk@83433 f38db490-d61c-443f-a65b-d21fe96a405b
2007-09-21 14:40:10 +00:00
russell
6fa2c158cc
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: http://svn.digium.com/svn/asterisk/trunk@82282 f38db490-d61c-443f-a65b-d21fe96a405b
2007-09-12 15:53:40 +00:00
murf
4d7d64c096
This solves an unreported solaris compile problem (missing -lnsl -lsocket).
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@82268 f38db490-d61c-443f-a65b-d21fe96a405b
2007-09-11 22:37:20 +00:00
murf
a4f9e795c2
fixing up the pthread stuff for hashtest2
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@82256 f38db490-d61c-443f-a65b-d21fe96a405b
2007-09-11 17:16:16 +00:00
file
13fbf56ca2
Include string compatibility file in hashtest2.
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@82235 f38db490-d61c-443f-a65b-d21fe96a405b
2007-09-11 13:46:08 +00:00
file
86db19ffc0
Include compat.h to hopefully make it compatible with FreeBSD.
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@82234 f38db490-d61c-443f-a65b-d21fe96a405b
2007-09-11 13:41:03 +00:00
file
3c5783a144
Fix building under FreeBSD. Make sure alloca.h exists before including it.
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@82233 f38db490-d61c-443f-a65b-d21fe96a405b
2007-09-11 13:37:26 +00:00
murf
32f5cd5202
Committing my test for astobj2, hashtest2.c, along with makefile changes in utils.
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@82140 f38db490-d61c-443f-a65b-d21fe96a405b
2007-09-10 16:59:18 +00:00
murf
88e10708c5
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: http://svn.digium.com/svn/asterisk/trunk@81361 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-29 20:55:40 +00:00
murf
ddcd4809bf
fix up the MODULEINFO in conf2ael.c as well
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@80748 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-24 15:42:25 +00:00
russell
181ac01389
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: http://svn.digium.com/svn/asterisk/trunk@80725 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-24 15:29:16 +00:00
murf
02ba9efa48
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: http://svn.digium.com/svn/asterisk/trunk@80718 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-24 14:55:34 +00:00
russell
b80981fc9e
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: http://svn.digium.com/svn/asterisk/trunk@80262 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-22 16:27:39 +00:00
murf
a295b03cb1
Stephn Davies reports that this will help make things work on 64-bit machines
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@80075 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-20 17:37:36 +00:00
murf
0bd0ded5c0
pval.c should not be in svn, in the utils dir
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@80037 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-20 15:27:35 +00:00
file
f5d4c789d6
Bring pval.c in utils up to date with pval.c in res/ael.
...
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@80033 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-20 15:10:55 +00:00