Commit Graph

5738 Commits

Author SHA1 Message Date
Alexander Traud 725fd32428 utils: In Solaris, avoid a warning about an unused variable.
When HAVE_GETHOSTBYNAME_R_5 was set by the script ./configure, GCC 7.3.0 found
an unused variable. Actually, the variable was used (set to a dummy value) but
the compiler optimization might have removed that. Instead, this change ensures
that the variable 'res' is only used when it is really required.

Change-Id: Ic3ea23ccf84ac4bc2d501b514985b989030abab5
2018-03-07 09:33:46 -06:00
Jenkins2 359a0cc5a2 Merge "BuildSystem: Cast any intptr_t explicitly to its proposed type." into 13 2018-03-06 11:23:50 -06:00
Jenkins2 91193807c8 Merge "BuildSystem: Detect whether uselocale(.) is available." into 13 2018-03-05 11:58:51 -06:00
Jenkins2 2961dd6c6d Merge "core: Fix handling of maximum length lines in config files." into 13 2018-03-05 08:10:02 -06:00
Alexander Traud 6b899b2849 BuildSystem: Cast any intptr_t explicitly to its proposed type.
ASTERISK-27713

Change-Id: I90c769e3c7f8c26de8a3af11335862cec15a1b22
2018-03-03 08:30:47 -06:00
Alexander Traud 98e8e849da BuildSystem: Detect whether uselocale(.) is available.
ASTERISK-27712
Reported by: Joerg Sonnenberger, D'Arcy Cain

Change-Id: Idf1c9d43617a3e13028b95b313415903d80ef807
2018-03-03 06:57:42 -06:00
Richard Mudgett 104468ad3a pjproject: Add cache_pools debugging option.
The pool cache gets in the way of finding use after free errors of memory
pool contents.  Tools like valgrind and MALLOC_DEBUG don't know when a
pool is released because it gets put into the cache instead of being
freed.

* Added the "cache_pools" option to pjproject.conf.  Disabling the option
helps track down pool content mismanagement when using valgrind or
MALLOC_DEBUG.  The cache gets in the way of determining if the pool
contents are used after free and who freed it.

To disable the pool caching simply disable the cache_pools option in
pjproject.conf and restart Asterisk.

Sample pjproject.conf setting:
[startup]
cache_pools=no

* Made current users of the caching pool factory initialization and
destruction calls call common routines to create and destroy cached pools.

ASTERISK-27704

Change-Id: I64d5befbaeed2532f93aa027a51eb52347d2b828
2018-02-28 11:38:40 -06:00
Corey Farrell caad0c09cd core: Fix handling of maximum length lines in config files.
When a line is the maximum length "\n" is found at sizeof(buf) - 2 since
the last character is actually the null terminator.  In addition if a
line was exactly 8190 plus a multiple of 8192 characters long the config
parser would skip the following line.

Additionally fix comment in voicemail.conf sample config.  It previously
stated that emailbody can only contain up to 512 characters which is
always wrong.  The buffer is normally 8192 characters unless LOW_MEMORY
is enabled then it is 512 characters.  The updated comment states that
the line can be up to 8190 or 510 characters since the line feed and
NULL terminator each use a character.

ASTERISK-26688 #close

Change-Id: I80864a0d40d2e2d8cd79d72af52a8f0a3a99c015
2018-02-23 11:14:59 -06:00
Jenkins2 f49e5d3998 Merge "core: Rename sounds_index.c to sounds.c." into 13 2018-02-20 06:36:26 -06:00
Jenkins2 ee9bee7e05 Merge "config: Fix locking for extconfig reload." into 13 2018-02-20 05:57:52 -06:00
Corey Farrell e532b982b3 core: Rename sounds_index.c to sounds.c.
This will make the source filename match the 'module reload sounds'
command.  This will allow conversion to a built-in module in Asterisk 16
without needing to redefine AST_MODULE.

Change-Id: Ifb8e489575b27eb33d8c0b6a531f266670557f6e
2018-02-19 05:00:23 -05:00
Corey Farrell 9c8763e4d2 config: Fix locking for extconfig reload.
Expand locking to include full reload process for extconfig to ensure
nothing can read the config mappings between clearing and reloading.

Change-Id: I378316bad04f1b599ea82d0fef62b8978a644b92
2018-02-19 03:49:45 -05:00
Alexander Traud 6eb22964ba rtp_engine: Load format name / mime type in uppercase again.
This reverts a previous change partly.

ASTERISK-27689

Change-Id: Ia3d2f282db6995be8c1c253b5d52f6038761e8af
2018-02-17 08:49:48 -06:00
Sean Bright 48acd5cd26 bridge_roles: Use a non-locking linked list where appropriate
Also explicitly initialize with the AST_LIST_HEAD_NOLOCK_INIT macro for
clarity.

Change-Id: I4bc39ec33bc3ff77e1a971a01ace87deb965be3f
2018-02-15 15:30:35 -05:00
Jenkins2 8212fd6bf4 Merge "main/asterisk.c: Remove silly usage of RAII_VAR." into 13 2018-02-14 12:43:48 -06:00
Corey Farrell 4e5d5b2ce2 main/asterisk.c: Remove silly usage of RAII_VAR.
Change-Id: I7e2996397fbd3c3a6a69dd805c38448ddfc34ae9
2018-02-12 23:04:26 -05:00
Corey Farrell 6c72c22d51 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 12:27:19 -06:00
Jenkins2 f16a623ac0 Merge "cdr.c: Fix runtime leak of CDR records." into 13 2018-02-12 09:35:30 -06:00
Alexander Traud b1c6a644d3 backtrace: Avoid potential spurious output.
clang 4.0 found this via -Wlogical-not-parentheses.

ASTERISK-27642

Change-Id: I9ec3e144d425a976c02811bd23cd0c533d2eca4e
2018-02-10 07:56:28 -06:00
Richard Mudgett dcfcf310a1 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:25:25 -06:00
Jenkins2 2bb68c707f Merge "manager.c: Fixed "(null):" header in AMI AsyncAGIEnd event" into 13 2018-02-05 12:17:55 -06:00
Jenkins2 65c8b7d6b4 Merge "manager_channels.c: Reordered ast_manager_build_channel_state_string_prefix()" into 13 2018-02-03 10:03:18 -06:00
Sungtae Kim dd9690f68c 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-02 06:25:06 -06:00
Richard Mudgett 665444b772 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:50:47 -06:00
Richard Mudgett ef1aeb9437 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:19:08 -06:00
Richard Mudgett 4a337b1a76 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:11:55 -06:00
Jenkins2 d82da7afff Merge "loader: Use ast_cli_completion_add for 'module load' completion." into 13 2018-01-31 07:30:09 -06:00
Jenkins2 cee39bf820 Merge "pbx_variables.c: Misc fixes in variable substitution." into 13 2018-01-31 06:58:49 -06:00
Jenkins2 c956349667 Merge "core: Fix unused variable error in handle_show_sysinfo." into 13 2018-01-29 11:22:33 -06:00
Corey Farrell 154bccf147 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 14:18:39 -06:00
Alexander Traud 4bb38022ea 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 10:12:04 -06:00
Alexander Traud 021168f06f editline: Avoid shifting a negative signed value.
clang 4.0 warned about this.

ASTERISK-27630

Change-Id: Ie2725048c661c1792d8b1d498575144350b6e9ba
2018-01-27 08:55:25 -06:00
Richard Mudgett 85b384728c 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:32:37 -06:00
Jenkins2 86aa3572ee Merge "pbx: Reduce verbosity while loading extensions" into 13 2018-01-22 09:42:51 -06:00
krells d5bcbd460e 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:42:06 -06:00
Corey Farrell 22edb10c44 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:59:40 -05:00
Richard Mudgett 1bbd9f4a47 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 08:32:20 -06:00
Jenkins2 1f1b8e85b0 Merge "stasis_endpoints: Remove silly usage of RAII_VAR." into 13 2018-01-11 07:53:20 -06:00
Joshua Colp fab209e746 Merge "stasis_message_router: Remove silly usage of RAII_VAR." into 13 2018-01-11 07:28:58 -06:00
Jenkins2 8d642b8d07 Merge "stasis_system: Remove silly usage of RAII_VAR." into 13 2018-01-11 07:03:48 -06:00
Jenkins2 2697904f0e Merge "stasis: Remove silly usage of RAII_VAR." into 13 2018-01-11 06:36:16 -06:00
Jenkins2 6acabbeaca Merge "stasis_bridges: Remove silly usage of RAII_VAR." into 13 2018-01-11 06:10:18 -06:00
Jenkins2 7c4733bf7f Merge "stasis_cache: Remove silly usage of RAII_VAR." into 13 2018-01-11 05:46:07 -06:00
Jenkins2 ffec53b528 Merge "stasis_cache_pattern: Remove silly usage of RAII_VAR." into 13 2018-01-11 05:42:47 -06:00
Corey Farrell 608112ced3 stasis: Remove silly usage of RAII_VAR.
Change-Id: Ib11193531e797bcb16bba560a408eab155f706d1
2018-01-10 17:09:04 -05:00
Corey Farrell b7c25740fa stasis_bridges: Remove silly usage of RAII_VAR.
Change-Id: I0fa7ab05454f183dc4ff10e26d18776d2b0fcf1f
2018-01-09 22:12:24 -05:00
Corey Farrell dedf0ff2bf stasis_cache: Remove silly usage of RAII_VAR.
Change-Id: Ifa95e5801c949df296c7e4376347730fb0ed52ef
2018-01-09 12:10:27 -05:00
Corey Farrell 8a6b3537b1 stasis_cache_pattern: Remove silly usage of RAII_VAR.
Change-Id: Ic98a51f555062cd863b6db3f8d76065943a9dea3
2018-01-09 12:09:08 -05:00
Corey Farrell 909e642918 stasis_endpoints: Remove silly usage of RAII_VAR.
Change-Id: Ic099dc552f36c353c89783a4bcfd09f010432733
2018-01-09 11:57:50 -05:00
Corey Farrell bd11159dbc stasis_message_router: Remove silly usage of RAII_VAR.
Change-Id: I50d6ae230920e0b878ed9cc8f79eef746e06701d
2018-01-09 11:55:37 -05:00