Commit Graph

1428 Commits

Author SHA1 Message Date
Luigi Rizzo
9f7fdc983f if alloca.h is not present, try malloc.h
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89392 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-17 19:29:54 +00:00
Luigi Rizzo
a4f9397028 prefer socket.h over other variants (winsock etc.)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89385 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-17 16:32:18 +00:00
Luigi Rizzo
a0f06d0dd5 start using asterisk/network.h for network related headers.
Also remove some unnecessary includes.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89380 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-17 14:11:53 +00:00
Luigi Rizzo
616189c6ec wrapper for all generic network headers that have different names
and locations on the various systems.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89379 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-17 14:00:24 +00:00
Luigi Rizzo
a45c53bc5b use autoconf results to conditionally compile timersub
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89372 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-17 10:32:56 +00:00
Luigi Rizzo
f728d220df compatibility fixes for cygwin
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89371 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-17 10:28:55 +00:00
Luigi Rizzo
813fe77801 some version of flex produce code that wants __STDC_VERSION__
defined, but the compiler does not always define it.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89370 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-17 10:26:21 +00:00
Luigi Rizzo
59efa92285 timersub is a macro not a function, so write the check in a way
that detects both formats.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89363 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-17 09:30:22 +00:00
Russell Bryant
505499588b Update the configure script check for sys/poll.h to also provide the result in
include/asterisk/autoconfig.h.  Also, move the conditional include of sys/poll.h
or asterisk/poll-compat.h into asterisk/config.h instead of the two headers it
existed in before.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89361 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-17 06:33:07 +00:00
Luigi Rizzo
aeba4fef65 add detection for timersub() and winsock.h/winsock2.h
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89357 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-17 04:17:53 +00:00
Luigi Rizzo
882f5a69fa provide definitions for __LITTLE_ENDIAN and __BIG_ENDIAN if not present.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89356 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-17 03:28:31 +00:00
Luigi Rizzo
5862c55451 use poll as detected by configure
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89355 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-17 03:07:06 +00:00
Luigi Rizzo
732c1d30c3 acinclude.m4: add a function to help checking sdl-config, gtk-config
and the like (this could be used for gtk and gtk2 as well)
Other files: add tests for sdl, sdl_image and avcodec and regenerate
	configure and autoconfig.h.in



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89351 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-17 01:49:26 +00:00
Luigi Rizzo
d209cb090e add check for the presence of glob
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89350 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-17 00:31:32 +00:00
Luigi Rizzo
7b523bf896 paths are already in include/asterisk/paths.h so don't duplicate
them in include/asterisk.h



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89345 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-16 23:28:28 +00:00
Luigi Rizzo
1f6dcae007 whitespace only change - adjust indentation and add some
comments on the content of these two files.

utils.h (which is included in over 150 files) contains a lot of
unrelated functions which require the inclusion of a large number
of other headers.  At some point we should partition its content
in a better way.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89341 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-16 22:37:17 +00:00
Luigi Rizzo
89ffa642a1 logger.h does not need options.h
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89338 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-16 21:23:50 +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
Kevin P. Fleming
547306835e Merged revisions 89325 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89325 | kpfleming | 2007-11-16 10:47:46 -0600 (Fri, 16 Nov 2007) | 4 lines

To help combat problems where people build external modules (asterisk-addons or others) and then change the build options of the Asterisk build in a way that makes the incompatible without warning, this commit introduces an MD5 signature of the important build-time options and includes that signature into modules when they are built. When the loader loads one of these modules and notices the problem, it will emit a warning to console and refuse to initialize the module, as doing so could cause the system to be unstable or even crash.

If you upgrade to this version of Asterisk, you must rebuild *all* of your modules that came from other sources before trying to run this version. If you are using Digium's G.729 binary codec module, you will need v33 or newer.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89326 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-16 16:56:59 +00:00
Luigi Rizzo
02733f3290 add a small new function to retrieve variables from a config
once we have a pointer to the category.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89322 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-16 10:07:24 +00:00
Tilghman Lesher
8309f54e39 If we're going to be passing a negative value for the size of a stringfield,
in order to indicate something, then using an UNSIGNED parameter is bad,
mmmmmkay?


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89312 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-15 23:50:15 +00:00
Luigi Rizzo
09d9cce1d8 access channel locks through ast_channel_lock/unlock/trylock and not
through ast_mutex primitives.

To detect all occurrences, I have renamed the lock field in struct ast_channel
so it is clear that it shouldn't be used directly.

There are some uses in res/res_features.c (see details of the diff)
that are error prone as they try and lock two channels without
caring about the order (or without explaining why it is safe).



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89293 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-15 16:20:47 +00:00
Luigi Rizzo
7f8ecd2cd3 make the 'name' and 'value' fields in ast_variable const char *
This prevents modifying the strings in the stored variables, 
and catched a few instances where this was actually done.

Given the differences between trunk and 1.4 (and the fact that this
is effectively an API change) it is better to fix 1.4 independently.
These are

chan_sip.c::sip_register()
chan_skinny.c:: near line 2847
config.c:: near line 1774
logger.c::make_components()
res_adsi.c:: near line 1049

I may have missed some instances for modules that do not build here.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89268 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-14 13:18:40 +00:00
Russell Bryant
d3414c7552 Fix up various coding guidelines issues ...
- handle memory allocation failures
 - add an ast_ prefix to a publicly exported function
 - put curly braces in the right places
 - add a bunch of spaces where they should be be used


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89266 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-14 03:22:09 +00:00
Russell Bryant
9eff81dad9 This fixes a build error on my mac. It also works on my linux box. Let me
know if it breaks any other platform ...


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89253 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-13 21:01:14 +00:00
Jason Parker
cfbc4f5fb8 Doxygen fixes.
Also fix a common typo I kept seeing (arguement) in various files.

Closes issue #11222, patch by snuffy (with arguement > argument by me).


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89202 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-12 23:44:20 +00:00
Steve Murphy
db1000b803 Thanks to snuffy for this doxygen update to hashtab.h; closes issue #11223
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89198 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-12 21:50:02 +00:00
Steve Murphy
fd1fbb0223 Thanks to snuff-work, who brought up that these fixes might need to be made.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89196 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-12 20:49:27 +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
Russell Bryant
4afb905cf0 Print out the channel name as a prefix to the "agi debug" output. This makes
AGI debugging on busy systems much easier.

(closes issue #10730)
Reported by: junky
Patches: 
      agi_debug_chan.diff uploaded by junky (license 177)
	  20070923_10730.diff uploaded by mvanbaak (license 7)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89074 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-07 00:00:38 +00:00
Tilghman Lesher
7c56918262 Commit some cleanups to the format type code.
- Remove the AST_FORMAT_MAX_* types, as these are consuming 3 out of our available 32 bits.
 - Add a native slin16 type, so that 16kHz codecs can translate without losing resolution.
   (This doesn't affect anything immediately, until another codec has wb support.)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89071 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-06 22:51:48 +00:00
Tilghman Lesher
3c9bc8827b Merged revisions 89045 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89045 | tilghman | 2007-11-06 13:09:06 -0600 (Tue, 06 Nov 2007) | 2 lines

We went to the trouble of creating a method of tracking failed trylocks, then never turned it on (oops).

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89049 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-06 19:16:02 +00:00
Olle Johansson
6519abeffc Additional TDD changes (preparing for SIP changes - adding TDD support to SIP)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89048 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-06 19:10:26 +00:00
Jason Parker
2c582c7cfb Allow gtalk and jingle to use TLS connections again.
Closes issue #9972


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89041 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-06 18:44:19 +00:00
Tilghman Lesher
32701f5031 Set up detection of IP_PKTINFO in autoconf for chan_unistim
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88973 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-06 15:01:56 +00:00
Russell Bryant
9bfd82cec2 Merged revisions 88805 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r88805 | russell | 2007-11-05 16:07:54 -0600 (Mon, 05 Nov 2007) | 12 lines

After seeing crashes related to channel variables, I went looking around at the
ways that channel variables are handled.  In general, they were not handled in
a thread-safe way.  The channel _must_ be locked when reading or writing from/to
the channel variable list.

What I have done to improve this situation is to make pbx_builtin_setvar_helper()
and friends lock the channel when doing their thing.  Asterisk API calls almost 
all lock the channel for you as necessary, but this family of functions did not.

(closes issue #10923, reported by atis)
(closes issue #11159, reported by 850t)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88934 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-06 14:08:54 +00:00
Russell Bryant
ed6e62a8e5 Merged revisions 88931 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r88931 | russell | 2007-11-06 07:50:15 -0600 (Tue, 06 Nov 2007) | 8 lines

Remove some checks to see if locks are initialized from the non-DEBUG_THREADS
versions of the lock routines.  These are incorrect for a number of reasons:
 - It breaks the build on mac.
 - If there is a problem with locks not getting initialized, then the proper
   fix is to find that place and fix the code so that it does get initialized.
 - If additional debug code is needed to help find the problem areas, then this
   type of things should _only_ be put in the DEBUG_THREADS wrappers.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88932 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-06 13:57:16 +00:00
Kevin P. Fleming
1c96946877 Merged revisions 88862 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r88862 | kpfleming | 2007-11-05 20:52:05 -0600 (Mon, 05 Nov 2007) | 2 lines

update comment to match the state of the code

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88863 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-06 02:53:13 +00:00
Russell Bryant
aecb21e822 Merged revisions 88719 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r88719 | russell | 2007-11-05 14:40:01 -0600 (Mon, 05 Nov 2007) | 7 lines

Merge changes from asterisk/team/kpfleming/SRV-priority-handling

Previously, the SRV record support in Asterisk was broken.  There was no
guarantee on what record Asterisk would choose to actually use.  This set of
changes improves the situation by ensuring that Asterisk will choose the
highest priority record.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88740 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-05 20:44:05 +00:00
Luigi Rizzo
08b10da53b Simplify the implementation and the API for stringfields;
details and examples are in include/asterisk/stringfields.h.

Not applicable to older branches except for 1.4 which will
receive a fix for the routines that free memory pools.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88454 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-04 19:44:31 +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
Tilghman Lesher
ce90623010 Merged revisions 88210 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r88210 | tilghman | 2007-11-02 08:03:03 -0500 (Fri, 02 Nov 2007) | 5 lines

Fix build on Solaris
Reported by: snuffy
Patch by: ys
Closes issue #11143

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88211 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-02 13:10:29 +00:00
Jason Parker
2902601eea Remove traces of gnutls, since we no longer use/need it.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88184 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-01 23:26:51 +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
Jason Parker
5a58a4c475 Switch res_jabber to use openssl rather than gnutls.
Closes issue #9972, patch by phsultan.  Copied from branch at http://svn.digium.com/svn/asterisk/team/phsultan/res_jabber-openssl/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88164 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-01 22:10:33 +00:00
Joshua Colp
2b33aca04c Remove old whisper remnants from channel.h
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87815 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-31 16:07:50 +00:00
Tilghman Lesher
59ca511408 Merged revisions 87739 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r87739 | tilghman | 2007-10-30 18:02:22 -0500 (Tue, 30 Oct 2007) | 5 lines

Fix for uninitialized mutexes on *BSD
Reported by: ys
Fixed by: ys
Closes issue #11116

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87740 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-30 23:08:59 +00:00
Russell Bryant
f7782d60d1 Merged revisions 87396 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r87396 | russell | 2007-10-29 15:22:07 -0500 (Mon, 29 Oct 2007) | 5 lines

Add some more details to the output of "core show locks".  When a thread
is waiting for a lock, this will now show the details about who currently
has it locked.
(inspired by issue #11100)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87397 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-29 20:24:47 +00:00