Commit Graph

54 Commits

Author SHA1 Message Date
Kevin P. Fleming
50515ed372 update dev-mode compiler flags to match the ones used by default on Ubuntu Intrepid, so all developers will see the same warnings and errors
since this branch already had some printf format attributes, enable checking for them and tag functions that didn't have them

format attributes in a consistent way



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@159808 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-29 16:58:29 +00:00
Russell Bryant
0522e3d872 Add a new module flag to indicate that a build sum is present. Modules built
against older Asterisk 1.4 headers will now load properly with just a warning
indicating that they are old and may cause problems.
(patch by paravoid)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@91501 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-06 19:11:35 +00:00
Kevin P. Fleming
a90e90384c re-doxygen some comments
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@89462 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-20 19:16:24 +00:00
Kevin P. Fleming
337fb0c37f bring back compile-option checking when loading modules, only this time use a string-based storage and comparison mechanism because it is easier to support on other platforms
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@89461 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-20 19:12:52 +00:00
Russell Bryant
12d60508f3 Temporarily revert revision 89325, which added md5 magic for keeping track of
what build options were used.  We agreed that we should remove this before
making a 1.4 release, and then we can put it back in.  Then, we can take a
month or so to play around with it to get it how we want it.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@89339 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-16 22:26:44 +00:00
Kevin P. Fleming
22b119d188 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/branches/1.4@89325 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-16 16:47:46 +00:00
Russell Bryant
2ef9410363 Fix the AST_MODULE_INFO macro for C++ modules. The load and reload parameters
were in the wrong place.
(closes issue #10846, alebm)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@84146 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-30 20:02:16 +00:00
Russell Bryant
d5fd0cff73 When shutting down "gracefully", go through and run the unload() callbacks for
all of the modules.  "stop now" is considered a non-graceful shutdown and will
not go through this process.
(issue #9804, reported by chrisost, patch by me)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@67308 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-05 15:51:53 +00:00
Olle Johansson
86c973f71f Issue #8246 - Doxygen fixes from kshumard.
An extra big thankyou is given to everyone that contributes to doxygen!

		THANK YOU!



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46433 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-30 16:27:34 +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
Kevin P. Fleming
ed3ffb4b46 various doxygen fixes
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@26170 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-09 16:24:07 +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
Luigi Rizzo
08d6fd6e17 remove an unused function
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@19226 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-11 16:00:23 +00:00
Luigi Rizzo
e785b81c5d as discussed with kevin, move
ast_register_atexit()/ ast_unregister_atexit() into asterisk.h
These are general functions, not restricted to modules, so move
them in a more proper place.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@19223 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-11 15:55:56 +00:00
Kevin P. Fleming
628a3e8d1b update module license key text and update loader to accept it
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@18574 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-08 22:37:30 +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
Luigi Rizzo
a60d8196df small cleanups to module.h and loader.c to start playing with
new-style modules using static symbols.

Everything will still work as before, but new-style modules
can now be defined by putting a '#define STATIC_MODULE' somewhere
before including module.h, then declaring STATIC_MODULE the
various methods (load, unload, key...) that the module is
supposed to supply, and adding a 'STD_MOD(MOD_1, reload_fn, NULL, NULL)'
macro call at the end.
A module compiled in this way will be loaded RTLD_NOW|RTLD_LOCAL
so symbol pollution is reduced, and symbols are resolved immediately.
Removing just the '#define STATIC_MODULE' will restore the old
behaviour.

In order for a module to be loaded RTLD_NOW|RTLD_LOCAL, it must not
export any symbol[1], and all the modules it depends on (e.g. res_*)
must be loaded already.

[1] Mechanisms are in place, and will be enabled later, to still
allow such modules to 'export' symbols and resolving the dependencies
irrespective of the load order.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@17790 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-04-06 09:10:31 +00:00
Olle Johansson
7058495f97 Doxygen fixes
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@15860 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-03-28 23:55:52 +00:00
Luigi Rizzo
2326d0d499 Bring in the new loader code as described in mantis #4377
and updated to today's version.

The core of the patch is only two files, loader.c
and include/asterisk/module.h, with the other files
touched only to adapt non-standard usages of the
reference counts and localuser lists.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@15784 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-03-28 21:15:10 +00:00
Luigi Rizzo
606c7dcb93 remove the long since unused STANDARD_LOCAL_USERS macro
so that new apps will not try to use it by mistake.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@15517 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-03-28 13:52:04 +00:00
Kevin P. Fleming
b0ac62573a revert loader changes that have clearly not undergone adequate testing before commit
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@14952 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-03-25 23:22:44 +00:00
Tilghman Lesher
bdd24455b4 Bug 4377 - Round 2 of the loader updates
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@14886 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-03-25 06:02:46 +00:00
Russell Bryant
cfea89a29a update LOCAL_USER_ADD to use ast_calloc
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@14000 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-03-21 19:19:35 +00:00
Russell Bryant
5f3af13a97 now that there are no modules that define their own version of
'struct localuser' (see issue #6216), redefine STANDARD_LOCAL_USER 
to empty, and define the localuser structure in module.h (issue #6494)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@10223 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-02-15 19:07:48 +00:00
Russell Bryant
2f2530b8e6 remove LOCAL_USER_ACF_ADD since it is now the same as LOCAL_USER_ADD
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@9800 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-02-13 20:12:50 +00:00
Kevin P. Fleming
96bf384e7d major dialplan functions update
deprecate LANGUAGE() and MUSICCLASS(), in favor of CHANNEL()


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@9674 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-02-12 04:28:58 +00:00
Russell Bryant
6f71e1178e constify arguments in more places where strings should not be modified (issue #6286)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@8203 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-01-18 22:17:31 +00:00
Matt O'Gorman
c814734307 allows for use of the originate function from
the cli patch 5847


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@8186 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-01-18 15:42:48 +00:00
Kevin P. Fleming
2c65582b66 remove extraneous svn:executable properties
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@7221 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-11-29 18:24:39 +00:00
Kevin P. Fleming
ce6b727c2c add macros for explicit module usecount increment/decrement
remove unnecessary locking around setting usecount to zero


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6876 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-10-28 16:33:09 +00:00
Russell Bryant
3332a8acd1 clean up a lot of doxygen errors and warnings (issue #5522)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6865 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-10-26 23:11:36 +00:00
Kevin P. Fleming
1632d52795 major header file cleanup: license, copyrights, descriptions, markers, etc.
remove deprecated config_old.c/config_old.h
remove unused cvsid.h


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6454 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-08-30 18:32:10 +00:00
Kevin P. Fleming
0bd1861df8 clear out memory allocated by LOCAL_USER_ADD/LOCAL_USER_ACF_ADD
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6395 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-08-24 23:10:24 +00:00
Kevin P. Fleming
307566933f more extensive documentation (bug #4444)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6212 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-07-25 22:52:25 +00:00
Kevin P. Fleming
79760d4802 add support for multiple-digit extensions in queue exit contexts (bug #4690)
add QUEUEAGENTCOUNT dialplan function (bug #4690)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6114 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-07-12 22:28:51 +00:00
Kevin P. Fleming
4803ab0bb2 don't use locks when reading usecounts (reading only, not writing)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5994 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-06-24 02:15:04 +00:00
Kevin P. Fleming
0e6762dd5f remove experimental module version tags
add per-file revision tags and 'show version files' CLI command


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5864 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-06-06 20:27:51 +00:00
Kevin P. Fleming
43cf15e339 add support for per-module version numbers
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5862 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-06-06 18:31:29 +00:00
Mark Spencer
1496da97fb Optimize module loading (bug #3356)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4814 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-01-16 22:59:30 +00:00
Mark Spencer
160c04b793 Repair // comments to /* */ comments (bug #3347)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4806 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2005-01-15 23:48:12 +00:00
Mark Spencer
3e5368b763 Provide module command completion (make twisted happy)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4022 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2004-10-16 21:14:05 +00:00
Mark Spencer
7c4337dc91 Add option for "show modules like" (bug #2643)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3996 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2004-10-14 04:38:29 +00:00
Mark Spencer
fd7577eed2 Don't try to look offhook with channel banks & Loopstart (bug #2362), also make individual modules reloadable...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3714 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2004-09-02 20:45:24 +00:00
Mark Spencer
cfcc58d96e Don't hard code the RTP payload type to 101 (bug #2192)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3552 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2004-07-31 20:31:11 +00:00
Mark Spencer
727abcdec7 Merge FreeBSD locking fixes (bug #1411)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3176 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2004-06-09 01:45:08 +00:00
Mark Spencer
1bb58646de Totally revamp thread debugging to support locating and removing deadlocks
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1310 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2003-08-13 15:25:16 +00:00
Mark Spencer
01fcb9779a Allow groups to be checked in reverse order, make musiconhold die on restart
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1269 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2003-08-07 03:48:00 +00:00
Mark Spencer
67751c3992 Version 0.2.0 from FTP
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@483 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2002-07-11 16:49:29 +00:00
Mark Spencer
d5930d1fe8 Version 0.1.12 from FTP
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@446 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2002-05-13 22:29:39 +00:00
Mark Spencer
277e550a07 Version 0.1.10 from FTP
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@383 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2001-11-01 20:00:54 +00:00