Commit graph

107 commits

Author SHA1 Message Date
Russell Bryant
32e03f9e4a Add the ability to dynamically specify weights for responses to DUNDi queries.
This can be done using a global variable or a dialplan function.  Using the
SHELL() function will allow you to use an external script to determine what the
weight in the response should be.  This can be very useful in load balancing
applications.
(inspired by discussions with blitzrage and jsmith in #asterisk-bugs)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@58304 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-03-07 22:30:52 +00:00
Joshua Colp
e7b03a991e Convert the PBX core to use read/write locks. This yields a nifty performance improvement when it comes to simultaneous calls going through the dialplan. Using murf's test the old mutex based core took an average of 57.3 seconds while the rwlock based core took 31.1 seconds. That's a nifty 26.2 seconds performance improvement. The other good part is that if we do need to switch back then we just have to change the lock/unlock API calls. I converted everywhere that used to touch the mutex locks directly to use them.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@57184 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-28 20:46:01 +00:00
Russell Bryant
b233892198 Merged revisions 53046 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r53046 | russell | 2007-01-31 15:32:08 -0600 (Wed, 31 Jan 2007) | 11 lines

Merged revisions 53045 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r53045 | russell | 2007-01-31 15:25:11 -0600 (Wed, 31 Jan 2007) | 3 lines

Fix a bunch of places where pthread_attr_init() was called, but
pthread_attr_destroy() was not.

........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@53047 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-31 21:35:15 +00:00
Kevin P. Fleming
cd73a483f1 const-ify some more APIs, and fix rev 49710 from branch-1.4 in a better way here
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@49711 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-05 23:32:42 +00:00
Russell Bryant
17a2888d2e Staticize one, and Constify a bunch of usage strings for CLI commands.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48303 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-06 07:28:56 +00:00
Joshua Colp
eceb5c60d7 Fine, take this.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47465 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-10 20:05:31 +00:00
Joshua Colp
3521586712 Hello compiler working, goodbye compiler warning. (fix compiler warning introduced from pbx_dundi optimizations)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47461 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-10 19:42:15 +00:00
Russell Bryant
74b6314d50 Various little bits of code cleanup to reduce nesting, remove useless casts,
and to remove a duplicated error message after a memory allocation error


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47410 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-10 04:30:23 +00:00
Russell Bryant
908b6ed6bc Make pbx_dundi compile again. Sorry. :(
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47213 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-05 01:04:29 +00:00
Russell Bryant
b1e7dd843a use the AST_MODULE_LOAD_* return codes from load_module()
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47207 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-04 22:08:35 +00:00
Russell Bryant
121bd75fcc simplify a couple of loops
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47206 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-04 21:54:37 +00:00
Russell Bryant
4b5ad8fb98 Do some minor cleanup to the section of code that sets the EID by getting the
mac address for an ethernet interface


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47204 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-04 21:44:48 +00:00
Russell Bryant
4ffc388358 Add the ability to pass options to the Dial application when using the DUNDi
switch in the dialplan by setting the DUNDIDIALARGS channel variable.
(issue #8084, patch by bluecrow76, with small modifications and documentation
updates)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46781 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-01 18:40:13 +00:00
Russell Bryant
fef9ec96c7 put flags in an enum and remove a couple of unused defines
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@44944 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-12 16:51:31 +00:00
Kevin P. Fleming
3c876af5cf Merged revisions 44378 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r44378 | kpfleming | 2006-10-04 14:47:22 -0500 (Wed, 04 Oct 2006) | 4 lines

update thread creation code a bit
reduce standard thread stack size slightly to allow the pthreads library to allocate the stack+data and not overflow a power-of-2 allocation in the kernel and waste memory/address space
add a new stack size for 'background' threads (those that don't handle PBX calls) when LOW_MEMORY is defined

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@44379 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-04 19:51:38 +00:00
Matt O'Gorman
ae8cc3e18b bug #8076 check option_debug before printing to debug channel.
patch provided in bugnote, with minor changes.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@44253 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-03 15:53:07 +00:00
Kevin P. Fleming
fcb999c01c merge qwell's CLI verbification work
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43212 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-18 19:54:18 +00:00
Matt O'Gorman
05a695af72 everything that loads a config that needs a config file to run
now reports AST_MODULE_LOAD_DECLINE when loading if config file
is not there, also fixed an error in res_config_pgsql where it 
had a non static function when it should.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41633 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-31 21:00:20 +00:00
Kevin P. Fleming
0a27d8bfe5 merge new_loader_completion branch, including (at least):
- restructured build tree and makefiles to eliminate recursion problems
  - support for embedded modules
  - support for static builds
  - simpler cross-compilation support
  - simpler module/loader interface (no exported symbols)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40722 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-21 02:11:39 +00:00
Russell Bryant
ca9ba719b6 Merge a new implementation of ast_inet_ntoa, our thread safe replacement for
inet_ntoa, which uses thread specific data (aka thread local storage) instead
of stack allocatted buffers to store the result.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@38042 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-21 17:31:28 +00:00
Kevin P. Fleming
472c1ca282 simplify autoconfig include mechanism (make tholo happy he can use lint again :-)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@32846 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-07 18:54:56 +00:00
Russell Bryant
04ecb29d03 remove almost all of the checks of the result from ast_strdupa() or alloca().
As it turns out, all of these checks were useless, because alloca will never
return NULL.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@26451 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-10 13:22:15 +00:00
Russell Bryant
b7c2ae9dba - use ast_calloc instead of malloc+memset
- conver one malloc to ast_malloc


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@25356 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-07 15:19:13 +00:00
Russell Bryant
0765f065ca staticize the list heads from my recent conversions to list macros
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24139 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-02 04:40:09 +00:00
Russell Bryant
02eda146ac - convert permission lists to use list macros
- remove unused precachesend and precachereceive variables from dundi_peer

This concludes the visit to pbx_dundi ...


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23831 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-01 01:26:37 +00:00
Russell Bryant
5a60431c29 conver the lists of dundi packets to use the list macros
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23810 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-01 00:56:04 +00:00
Russell Bryant
7ce2726c09 - convert the dundi precache list to use the list macros
- change an instance of malloc+memset to ast_calloc


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23808 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-01 00:33:24 +00:00
Russell Bryant
b992d92742 - convert the lists of dundi_transactions to the list macros
- remove an unused variable, keypending, from the dundi_peer struct


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23769 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-30 23:01:50 +00:00
Russell Bryant
31cd56f76e remove unneeded define - it is already in asterisk.h
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23494 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-30 05:27:57 +00:00
Russell Bryant
03d005e472 convert the dundi_request list to use the list macros
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23493 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-30 05:24:10 +00:00
Russell Bryant
dbbe944da8 convert existing comments to doxygen format
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23492 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-30 05:15:53 +00:00
Russell Bryant
149e45924a fix indentation for this function
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23491 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-30 05:09:34 +00:00
Russell Bryant
fcb2809e45 immediately handle ast_strdupa result so that one more level of indentation
can be removed from this function


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23490 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-30 05:07:52 +00:00
Russell Bryant
ef775bbd66 fix the indentation of a large block
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23489 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-30 05:06:14 +00:00
Russell Bryant
ed320702d9 handle a memory allocation failure immediately so the following large block
does not have to be indented


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23480 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-30 05:02:07 +00:00
Russell Bryant
4cfcacf6c9 - convert the list of dundi mappings to use the list macros
- change an instance of malloc+memset to use ast_calloc, instead


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23468 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-30 04:59:36 +00:00
Russell Bryant
d9fa5f3c89 change a list traversal to use a for loop
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23466 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-30 04:28:47 +00:00
Russell Bryant
c7fea723a3 fix the indentation of a large block of code
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23465 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-30 04:26:11 +00:00
Russell Bryant
059f0bd108 immediately handle a memory allocation failure so the rest of the function
doesn't have to be indented (indentation still to be fixed)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23464 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-30 04:23:09 +00:00
Russell Bryant
d66de679d9 - convert some comments to doxygen format
- convert the list of dundi peers to use the list macros
- convert a use of malloc+memset to use ast_calloc


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23463 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-30 04:20:20 +00:00
Russell Bryant
8682a7378d add a small optimization for deleting all the members of a list
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@23271 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-29 04:13:07 +00:00
Kevin P. Fleming
574e14cbea Thanks to the fine work of Russell Bryant and Dancho Lazarov, we now have autoconf and menuselect tools for Asterisk!
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@22267 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-24 17:11:45 +00:00
Luigi Rizzo
e43bc6634d This rather large commit changes the way modules are loaded.
As partly documented in loader.c and include/asterisk/module.h,
modules are now expected to return all of their methods and flags
into a structure 'mod_data', and are normally loaded with RTLD_NOW
| RTLD_LOCAL, so symbols are resolved immediately and conflicts
should be less likely.  Only in a small number of cases (res_*,
typically) modules are loaded RTLD_GLOBAL, so they can export
symbols.
 
The core of the change is only the two files loader.c and
include/asterisk/module.h, all the rest is simply adaptation of the
existing modules to the new API, a rather mechanical (but believe
me, time and finger-consuming!) process whose detail you can figure
out by svn diff'ing any single module.

Expect some minor compilation issue after this change, please
report it on mantis http://bugs.digium.com/view.php?id=6968
so we collect all the feedback in one place.

I am just sorry that this change missed SVN version number 20000!



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@20003 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-14 14:08:19 +00:00
Kevin P. Fleming
f10f427d49 since the module API is changing, it's a good time to const-ify the description() and key() return values
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@18552 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-08 22:01:19 +00:00
Tilghman Lesher
756c7cbb12 Bug 6873 - Finish moving from the non-threadsafe (and poor randomness) rand() to threadsafe ast_random()
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@17627 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-05 17:44:44 +00:00
Luigi Rizzo
6c232811c0 as discussed with Mark a few weeks ago, the 'newstack' argument
in pbx_exec is always 1 so it can be removed.

This change also takes away ast_exec_extension(), and lets all
switch functions (exists, canmatch, exec, matchmore) all use the same
prototype, which makes the code a bit cleaner.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@16558 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-03-30 21:29:39 +00:00
Luigi Rizzo
d0bc6c20a7 - remove an unnecessary cast and recomputation of (timeout - now);
- remove useless recomputations of strlen(word) in a loop, and
  normalize the form of complete_peer_helper();
- move LOCAL_USER_ADD() to after the verification of arguments,
  thus removing the need for one LOCAL_USER_REMOVE() call.

The three chunks of the patch are fully disjoint.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@15581 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-03-28 15:19:32 +00:00
Kevin P. Fleming
302c943001 add 'consumed' argument to ast_get_time_t, so callers can know how many characters were used in the parser
update pbx_dundi to use ast_get_time_t
eliminate some compiler warnings


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@10871 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-02-23 17:13:57 +00:00
Mark Spencer
c3447c7cce Fix a few compile warnings (turned errors) and disable -Werror on the
normal build.  If people want this they can turn it on, and don't anyone 
turn it on by default until you fix building on GCC 4.x


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@10842 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-02-23 04:38:38 +00:00
Russell Bryant
a0d438fb6c remove the uses of the deprecated STANDARD_LOCAL_USER
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@10241 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-02-15 20:11:56 +00:00