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
constant string into a buffer that we know is big enough, don't use a length
limited copy at all, use strcpy.
... as stated in the coding guidelines.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@18721 65c4cc65-6c06-0410-ace0-fbb531ad65f3
nested statements in a block without branches, which is a violation of the
coding guidelines.
As a matter of fact, this module violates the coding guidelines in multiple
ways that including formatting and code issues. In my opinion, this module
should not have been merged into the trunk in this form.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@18693 65c4cc65-6c06-0410-ace0-fbb531ad65f3