dect
/
asterisk
Archived
13
0
Fork 0
Commit Graph

206 Commits

Author SHA1 Message Date
murf 94140239f2 The fixes in this commit are mainly to allow compiling of trunk with --enable-dev-mode, mutex profiling, lock debugging, etc. Mainly, the version.c needs to be in the OBJS line; asterisk.h was chosen to have the prototypes for ast_get_version, ast_get_version_num; and the ASTERISK_FILE_VERSION macro needs to be used after including asterisk.h in a few files. I hope I did the right thing. If not, let me know.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@97656 f38db490-d61c-443f-a65b-d21fe96a405b
2008-01-10 00:50:39 +00:00
file d2509a4bb7 Make ast_atomic_fetchadd_int_slow magically appear in extconf.
(closes issue #11703)
Reported by: dmartin


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@97041 f38db490-d61c-443f-a65b-d21fe96a405b
2008-01-08 15:26:50 +00:00
rizzo 0a8518b7c8 modify http://svn.digium.com/view/asterisk?view=rev&rev=93603
so that paths and filename are writable by asterisk.c without
causing segfaults.

This involves defining the variables as const char *,
and having them point to as static, writable buffer
defined in asterisk.c

On passing, fix some errors in using these variables
in some files in utils/ , and in res/snmp/agent.c
which was redefining a variable without using paths.h

(not applicable to 1.4)



git-svn-id: http://svn.digium.com/svn/asterisk/trunk@94168 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-20 09:55:05 +00:00
tilghman 11a5516081 Add a canary process, for high priority mode (asterisk -p) to ensure that if
Asterisk goes into a busy loop, the machine will be recoverable.  We'd still
need to do a restart to put Asterisk back into high priority mode, but at
least a reboot won't be required. (Closes issue #11559)


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@93804 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-18 23:06:05 +00:00
rizzo 553ab5f770 make configuration variable const so they are not accidentally
modified.
This requires casting the strings in asterisk.c when writing to
them, so we do it through a macro to do it consistently.



git-svn-id: http://svn.digium.com/svn/asterisk/trunk@93603 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-18 10:24:58 +00:00
rizzo 659205253c remove unnecessary (char *) casts for ast_config_AST_* variables.
There are some left in the .flex files, left to the maintainer...



git-svn-id: http://svn.digium.com/svn/asterisk/trunk@93582 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-18 09:46:18 +00:00
file 985bcbeb23 Add ast_atomic_fetchadd_int_slow to check_expr for platforms that need it.
(closes issue #11484)
Reported by: snuffy


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@92206 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-10 16:48:18 +00:00
rizzo 9401a82c4d remove relative paths and use ASTTOPDIR instead.
Give a default value to ASTTOPDIR if unset so we can at least
do a 'make clean' without too much trouble.

The proper fix, however, is to partition the top level
Makefile in a 'setup' and a 'main' part, in a way that the
'setup' part can be included from subdirs' Makefiles and
allow targets to be built without going through the
top level Makefile.



git-svn-id: http://svn.digium.com/svn/asterisk/trunk@92104 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-10 08:40:59 +00:00
rizzo 82d7685704 simplify this file
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@92103 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-10 08:35:35 +00:00
rizzo 5d9a306f24 add hashtab.c to the list of files deleted
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@92042 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-09 22:55:58 +00:00
rizzo b50ce18fe8 normalize subdirs' Makefile by using ASTTOPDIR and not .. to reference
the top level directory.



git-svn-id: http://svn.digium.com/svn/asterisk/trunk@92022 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-09 21:29:37 +00:00
rizzo 0c67039eb1 normalize header order, and add a comment on the need
to clean up this file.



git-svn-id: http://svn.digium.com/svn/asterisk/trunk@91930 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-08 03:27:16 +00:00
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