Commit Graph

6371 Commits

Author SHA1 Message Date
Corey Farrell 04490fb1d8 json: Add conditionals to avoid locking if Jansson is thread safe.
Jansson is thread safe for all read-only functions and reference
counting starting v2.11.  This allows simplification of our code and
removal of locking around reference counting and dumping.

Change-Id: Id985cb3ffa6681f9ac765642e20fcd187bd4aeee
2018-02-12 13:27:08 -05:00
Corey Farrell 9fddc8b4dc core: Remove embedded editline.
This removes the embedded copy of editline from the Asterisk source
tree, making a system copy of libedit mandatory in Asterisk 16+.

ASTERISK-27634 #close

Change-Id: Iedb64ad92acb78419f3caefedaa2bb7cd2a1a33f
2018-02-12 04:44:26 -05:00
Alexander Traud 32e610d9e6 backtrace: Avoid potential spurious output.
clang 4.0 found this via -Wlogical-not-parentheses.

ASTERISK-27642

Change-Id: I9ec3e144d425a976c02811bd23cd0c533d2eca4e
2018-02-10 14:55:42 +01:00
Richard Mudgett b2fcb30d38 cdr.c: Fix runtime leak of CDR records.
Need to remove all CDR's listed by a CDR object from the active_cdrs_all
container including the root/master record.

ASTERISK-27656

Change-Id: I48b4970663fea98baa262593d2204ef304aaf80e
2018-02-09 14:26:46 -06:00
Jenkins2 2d90b1efd9 Merge "manager.c: Fixed "(null):" header in AMI AsyncAGIEnd event" 2018-02-05 12:23:19 -06:00
Jenkins2 5c524e3287 Merge "manager_channels.c: Reordered ast_manager_build_channel_state_string_prefix()" 2018-02-03 10:26:55 -06:00
Sungtae Kim 7e32adf044 manager.c: Fixed "(null):" header in AMI AsyncAGIEnd event
* Changed to create ami_event string only when the given blob is not
json_null().
* Fixed bad expression.

ASTERISK-27621

Change-Id: Ice58c16361f9d9e8648261c9ed5d6c8245fb0d8f
2018-02-01 17:24:14 -06:00
Richard Mudgett 3419a048b9 manager.c: Fix potential memory leak and corruption.
ast_str_append_event_header() could potentially leak and corrupt memory if
the ast_str needed to expand to add the AMI event header.

* Fixed to return error if the ast_str_append() failed.

Change-Id: I92f36b855540743b208d76e274152ee2d758176d
2018-02-01 13:51:27 -06:00
Richard Mudgett bcfe172f8d manager_channels.c: Reordered ast_manager_build_channel_state_string_prefix()
* Made not allocate memory if the channel snapshot is an internal channel.

* Free memory earlier when no longer needed.

Change-Id: Ia06e0c065f1bd095781aa3f4a626d58fa4d28b38
2018-02-01 12:28:32 -06:00
Richard Mudgett b9024197ab app_confbridge: Update dsp_silence_threshold and dsp_talking_threshold docs.
The dsp_talking_threshold does not represent time in milliseconds.  It
represents the average magnitude per sample in the audio packets.  This is
what the DSP uses to determine if a packet is silence or talking/noise.

Change-Id: If6f939c100eb92a5ac6c21236559018eeaf58443
2018-01-31 13:13:27 -06:00
Jenkins2 093484d137 Merge "loader: Use ast_cli_completion_add for 'module load' completion." 2018-01-31 07:48:21 -06:00
Jenkins2 8f6978d7b8 Merge "pbx_variables.c: Misc fixes in variable substitution." 2018-01-31 06:52:24 -06:00
Jenkins2 da4ddb1faa Merge "Build System: Require __sync or __atomic functions." 2018-01-30 06:56:08 -06:00
Jenkins2 21bcd85bba Merge "core: Fix unused variable error in handle_show_sysinfo." 2018-01-29 11:45:27 -06:00
Jenkins2 1e44d50893 Merge "core: Tweak startup order." 2018-01-29 10:49:58 -06:00
Jenkins2 7c77365549 Merge "editline: Avoid shifting a negative signed value." 2018-01-29 10:44:44 -06:00
Corey Farrell 84a6365164 loader: Use ast_cli_completion_add for 'module load' completion.
This addresses all performance issues with 'module load' completion.  In
addition to using ast_cli_completion_add we stop using libedit's
filename_completion_function, instead using ast_file_read_dir.  This
ensures all results are produced from a single call to opendir.

Change-Id: I8bf51ffaa7ef1606f3bd1b5bb13f1905d72c6134
2018-01-27 15:18:45 -05:00
Alexander Traud d9e42f27b9 core: Fix unused variable error in handle_show_sysinfo.
The previous fix broke the case
HAVE_SYSINFO = no
HAVE_SYSCTL = yes
HAVE_SWAPCTL = no
which occurs on FreeBSD 11.1 for example.

ASTERISK-26563

Change-Id: If77c39bc75f0b83a6c8a24ecb2fa69be8846160a
2018-01-27 16:44:21 +01:00
Alexander Traud 3c26eec043 editline: Avoid shifting a negative signed value.
clang 4.0 warned about this.

ASTERISK-27630

Change-Id: Ie2725048c661c1792d8b1d498575144350b6e9ba
2018-01-27 15:54:24 +01:00
Corey Farrell 39fcecad59 core: Tweak startup order.
Move initialization of units which do not require configuration to occur
before preload modules.  This leaves only units which load config between
module preload and regular load stages.

Change-Id: I1d15384acad16a22c3498124421af474fa517478
2018-01-25 20:23:31 -05:00
Corey Farrell 23381d2c5e Build System: Require __sync or __atomic functions.
This change causes the configure script to throw an error if neither
__sync nor __atomic builtin functions are available.

ASTERISK-27619

Change-Id: Ie01a281e0f5c41dfeeb5f250c1ccea8752f56ef9
2018-01-25 10:38:45 -05:00
Corey Farrell a164b7ccfb loader: Correct overly strict startup checks.
The code which handled loading modules had too many situations which
would result in halting Asterisk startup.  Treat most errors as declines
instead of failures.  The exception is when the module load function
returns AST_MODULE_LOAD_FAILURE or an invalid code.

Clear the missingdeps vector when appropriate to ensure the next loop
starts clean.

ASTERISK-27620

Change-Id: I45547d9641fd45bd86d80250224417625631ad84
2018-01-25 00:04:51 -05:00
Jenkins2 d4e9f7c940 Merge "loader: Add support for built-in modules." 2018-01-22 16:35:09 -06:00
Jenkins2 cec16d8e4f Merge "loader: Rework load_resource_list." 2018-01-22 16:31:29 -06:00
Richard Mudgett 2f78dc2bfa pbx_variables.c: Misc fixes in variable substitution.
* Copy more than one character at a time when there is nothing to
substitute.

* Fix off by one error if a '}' or ']' is missing.

* Eliminated the requirement that the "used" parameter had to point to a
variable.  The current callers were always declaring a variable to meet
the requirement and discarding the value put into that variable.  Now it
can be NULL.

* In ast_str_substitute_variables_full() fixed using the bogus channel to
evaluate a function.  We were not using the bogus channel we just created
to help evaluate a subexpression.

Change-Id: Ia83d99f4f16abe47f329eb39b6ff2013ae7c9854
2018-01-22 12:38:13 -06:00
Joshua Colp 908e39f186 Merge "loader: Remove global symbol only startup phase." 2018-01-22 10:33:18 -06:00
Jenkins2 2c27205e4e Merge "loader: Process module dependencies." 2018-01-22 10:16:29 -06:00
Jenkins2 fd32ca51e8 Merge "pbx: Reduce verbosity while loading extensions" 2018-01-22 09:39:22 -06:00
krells 77f2814d01 pbx: Reduce verbosity while loading extensions
Each time the dial plan is reloaded, a lot of logs like these are generated:
"Added extension 'XXXXX' priority 1 to YYYYYYYYYYY"
This patch changes the log level for those logs.

ASTERISK-27084

Change-Id: I5662902161c50890997ddc56835d4cafb456c529
2018-01-18 20:36:14 -06:00
Corey Farrell 25cb1ab05b loader: Add support for built-in modules.
* Add SRC_EMBEDDED variable to main/Makefile.  Built-in module sources
  must be listed in this variable to ensure they get the correct CFLAGS.

Change-Id: I920852bc17513a9c2627061a4ad40511e3a20499
2018-01-17 19:25:00 -05:00
Corey Farrell e6142a1282 loader: Rework load_resource_list.
Use a single loop in a loop to scan the resource list attempting to
dlopen each module.  The inner loop is repeated until it doesn't do any
work, then it is run one more time to allow printing of error messages.

Change-Id: I60c15cd57ff9680b62e2a94c7519401fa4a38e45
2018-01-17 19:19:14 -05:00
Corey Farrell a80cbb046e loader: Remove global symbol only startup phase.
Dependency loader is now in place so we no longer need a separate loader
phase for global symbols only.  This simplifies the loader and allows us
to minimize calls to dlopen.

Change-Id: I33e3174d67f3b4552d3d536326dcaf0ebabb097d
2018-01-17 17:57:18 -05:00
Corey Farrell 3b73ed28c5 loader: Process module dependencies.
* Add string vectors for requires, optional_apis and enhances.
* Add reffed_deps module vector for holding references to dependencies.
* Initialize string vectors after final dlopen of each module.
* Free string vectors and clear references from reffed_deps in
  module_destroy.
* Create functions necessary to process module dependencies and enforce
  load order.

Module dependencies result in automatic references being managed by the
module loader.  This enforces unload order.

Change-Id: I9be08d1dd331aceadc1dcba00b804d71360b2fbb
2018-01-17 17:56:59 -05:00
Corey Farrell 4fd303b630 loader: Miscellaneous fixes.
* Remove comment about lazy load.
* Improve message about module already being loaded and running.
* Handle allocation error in add_to_load_order.
* Dead code elimination from modules_shutdown.

Change-Id: I22261599c46d0f416e568910ec9502f45143197f
2018-01-17 11:02:43 -06:00
Richard Mudgett 7ed7d525fb taskprocessor.c: Increase the number of tps_singletons container buckets.
Since v12 the number of taskprocessors in the system has increased a lot.
Small systems can easily have over a hundred and larger systems can have
thousands.

Most uses of the tps_singletons container deal with creating and
destroying the taskprocessors.  However, the pjsip distributor looks up
taskprocessors/serializers by name frequently.  It needs to find the
serializer for incoming SIP responses to distribute them to the
appropriate serializer.

Change-Id: Ice0603606614ba49f7c0c316c524735c064e7e43
2018-01-16 12:42:06 -06:00
Corey Farrell 35ae99c712 vector: Additional string vector definitions.
ast_vector_string_split:
This function will add items to an ast_vector_string by splitting values
of a string buffer.  Items are appended to the vector in the order they
are found.

ast_vector_const_string:
A vector of 'const char *'.

Change-Id: I1bf02a1efeb2baeea11c59c557d39dd1197494d7
2018-01-15 13:25:45 -05:00
Jenkins2 8a6febd980 Merge "stasis_message_router: Remove silly usage of RAII_VAR." 2018-01-11 08:46:34 -06:00
Jenkins2 f94c56d388 Merge "stasis_endpoints: Remove silly usage of RAII_VAR." 2018-01-11 07:58:08 -06:00
Jenkins2 a13578e789 Merge "stasis_system: Remove silly usage of RAII_VAR." 2018-01-11 07:25:51 -06:00
Jenkins2 4534f32fca Merge "stasis: Remove silly usage of RAII_VAR." 2018-01-11 06:58:10 -06:00
Jenkins2 ae723f85ee Merge "stasis_bridges: Remove silly usage of RAII_VAR." 2018-01-11 06:43:33 -06:00
Jenkins2 19523cd5a1 Merge "stasis_cache: Remove silly usage of RAII_VAR." 2018-01-11 06:16:07 -06:00
Corey Farrell f0eb00d1e7 stasis: Remove silly usage of RAII_VAR.
Change-Id: Ib11193531e797bcb16bba560a408eab155f706d1
2018-01-10 16:09:50 -06:00
Corey Farrell a383e1ddb1 stasis_cache_pattern: Remove silly usage of RAII_VAR.
Change-Id: Ic98a51f555062cd863b6db3f8d76065943a9dea3
2018-01-10 16:01:17 -06:00
Corey Farrell 0de004dd85 stasis_bridges: Remove silly usage of RAII_VAR.
Change-Id: I0fa7ab05454f183dc4ff10e26d18776d2b0fcf1f
2018-01-09 21:20:02 -06:00
Corey Farrell 01127e1664 stasis_cache: Remove silly usage of RAII_VAR.
Change-Id: Ifa95e5801c949df296c7e4376347730fb0ed52ef
2018-01-09 20:43:17 -06:00
Corey Farrell 175a9ef873 stasis_endpoints: Remove silly usage of RAII_VAR.
Change-Id: Ic099dc552f36c353c89783a4bcfd09f010432733
2018-01-09 20:36:52 -06:00
Corey Farrell 4b655184b0 stasis_message_router: Remove silly usage of RAII_VAR.
Change-Id: I50d6ae230920e0b878ed9cc8f79eef746e06701d
2018-01-09 18:55:46 -06:00
Corey Farrell 3074c4165c stasis_system: Remove silly usage of RAII_VAR.
Change-Id: Iedbe5656cee68cd3a96a953558764aa02d4a0c3b
2018-01-09 18:55:06 -06:00
Alexander Traud 3a7d917256 translate: Avoid absolute value on unsigned substraction.
ast_format_get_sample_rate(.) returns an unsigned type. The difference of a
substraction between two unsigned types does not get implicitly converted to a
signed type. Therefore, using abs(.) did not make sense.

ASTERISK-27549

Change-Id: Ib904d9ee0d46b6fdd1476fbc464fbbf813304017
2018-01-09 11:37:08 -05:00