Commit Graph

5752 Commits

Author SHA1 Message Date
Corey Farrell
18cbfcf4f0 aco: Use ast_cli_completion_add for 'config show help'.
In addition this removes:
* RAII_VAR usage
* Duplicate check of pos
* Unneeded arguments.

Change-Id: I2da8eac2670d1d8d6474c04037129804f55ebf39
2018-03-18 18:28:58 -06:00
Joshua Colp
b50331626e Merge "cli: Enable ast_cli_completion_add on public completion generators." into 13 2018-03-16 18:59:52 -05:00
Jenkins2
1f2ff45626 Merge "main/ccss: Use ast_cli_completion_add for core id." into 13 2018-03-16 18:59:16 -05:00
Jenkins2
3b49fb3446 Merge "astobj2_container: Use ast_cli_completion_add for container names." into 13 2018-03-16 11:05:04 -05:00
Corey Farrell
5ac64a4464 main/ccss: Use ast_cli_completion_add for core id.
Change-Id: I44b25d6d24c7d9bc1bb38a50774b38883162f98f
2018-03-15 07:57:27 -06:00
Corey Farrell
7e0c56f800 astobj2_container: Use ast_cli_completion_add for container names.
Change-Id: I4f0fc09e820eb8d8da2354a177dbcf503c56ddd1
2018-03-15 06:31:32 -06:00
Corey Farrell
7e041d6233 main/channel: Use ast_cli_completion_add for channeltypes.
Change-Id: Ia845fae6a84801cc7d9996767b99efb2753cbb48
2018-03-15 06:25:44 -06:00
Corey Farrell
6539b89254 cli: Enable ast_cli_completion_add on public completion generators.
* ast_cli_complete
* ast_complete_channels
* ast_complete_applications

These generators will now use ast_cli_completion_add if state == -1.

Change-Id: I7ff311f0873099be0e43a3dc5415c0cd06d15756
2018-03-15 05:27:41 -06:00
Jenkins2
a243fed64f Merge "core: Remove incorrect usage of attribute_malloc." into 13 2018-03-14 20:53:38 -05:00
Jenkins2
029c9383aa Merge "core: Remove non-critical cleanup from startup aborts." into 13 2018-03-14 06:40:38 -05:00
Corey Farrell
dc738b145f core: Remove incorrect usage of attribute_malloc.
GCC documentation states that when __attribute__((malloc)) is used it
should not return storage which contains any valid pointers.  It
specifically mentions that realloc functions should not have the malloc
attribute, but this also means that complex initializers which could
contain initialized pointers should not use this attribute.

Change-Id: If507f33ffb3ca3b83b702196eb0e8215d27fc7d2
2018-03-13 17:37:12 -04:00
Joshua Colp
f05ac26d4a Merge "Replace direct checks of option_debug with DEBUG_ATLEAST macro." into 13 2018-03-12 08:35:51 -05:00
Corey Farrell
c09a10bb1b core: Remove non-critical cleanup from startup aborts.
When built-in components of Asterisk fail to start they cause the
Asterisk startup to abort.  In these cases only the most critical
cleanup should be performed - closing databases and terminating
proceses.  These cleanups are registered using ast_register_atexit, all
other cleanups should not be run during startup abort.

The main reason for this change is that these cleanup procedures are
untestable from the partially initialized states, if they fail it could
prevent us from ever running the critical cleanup with ast_run_atexits.

Change-Id: Iecc2df98008b21509925ff16740bd5fa29527db3
2018-03-10 04:33:33 -05:00
Corey Farrell
b81eadcefc Replace direct checks of option_debug with DEBUG_ATLEAST macro.
Checking option_debug directly is incorrect as it ignores file/module
specific debug settings.  This system-wide change replaces nearly all
direct checks for option_debug with the DEBUG_ATLEAST macro.

Change-Id: Ic342d4799a945dbc40ac085ac142681094a4ebf0
2018-03-07 17:02:49 -05:00
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