Commit graph

5931 commits

Author SHA1 Message Date
Jenkins2
f98dad52d2 Merge "CLI: Remove compatibility code." 2017-11-28 12:50:28 -06:00
Joshua Colp
c7aa6e41c1 Merge "translate: Show sample rate for silk, speex, and slin in translation table." 2017-11-28 12:37:51 -06:00
Corey Farrell
d12a2ab400 CLI: Remove compatibility code.
Previous commits maintained compatibility with older remote console
clients as well as maintaining all API's.

Remove the following compatibility code:
* ast_cli_generatornummatches.
* Remote command "_command nummatches".
* Sorting / duplicate removal by remote console.

Change-Id: I59e6ce94fa57ae564888442049695f7e46746437
2017-11-27 16:23:06 -06:00
Jenkins2
ae342a824f Merge "CLI: Finish conversion of completion handling to vectors." 2017-11-27 15:13:19 -06:00
George Joseph
b4119a4c31 Merge "CLI: Refactor cli_complete." 2017-11-27 14:39:06 -06:00
Joshua Colp
a06bca48e7 Merge "CLI: Rewrite ast_el_strtoarr to use vector's internally." 2017-11-27 14:17:20 -06:00
George Joseph
708189ce02 Merge "CLI: Create ast_cli_completion_add function." 2017-11-27 13:26:43 -06:00
Jenkins2
b69bfc637f Merge "CLI: Refactor ast_cli_display_match_list." 2017-11-27 13:23:52 -06:00
George Joseph
93dba6f396 Merge "CLI: Remove calls to ast_cli_generator." 2017-11-27 12:11:18 -06:00
Alexander Traud
74e7005a74 translate: Show sample rate for silk, speex, and slin in translation table.
ASTERISK-24662

Change-Id: I3822956984292c99c48bca8e97807e498ccc0e88
2017-11-25 11:09:08 +01:00
Joshua Colp
ac6b029fe4 Merge "aoc: Remove silly usage of RAII_VAR." 2017-11-21 11:46:49 -06:00
Joshua Colp
0434f6a255 Merge "abstract_jb: Remove silly usage of RAII_VAR." 2017-11-21 11:04:47 -06:00
Joshua Colp
11cb4f2715 Merge "app: Remove silly usage of RAII_VAR." 2017-11-21 09:42:11 -06:00
Joshua Colp
40c3114013 Merge "ccss: Remove silly usage of RAII_VAR." 2017-11-21 09:27:20 -06:00
Corey Farrell
b79d04f8f8 CLI: Finish conversion of completion handling to vectors.
Change-Id: Ib81318f4ee52a5e73b003316e13fe9be1dd897a1
2017-11-21 09:48:36 -05:00
Corey Farrell
fbb8c0d3e4 CLI: Refactor cli_complete.
* Stop using "_COMMAND NUMMATCHES" on remote consoles.  Using this
  command had doubled the amount of work needed from the Asterisk
  daemon for each completion request.
* Fix code formatting.
* Remove static buffer used to send the command, use the same buffer
  that will receive the results.
* Move sort from ast_cli_display_match_list.

Change-Id: Ie2211b519a3d4bec45bf46e0095bdd01d384cb69
2017-11-21 09:48:36 -05:00
Corey Farrell
1cd24cd726 CLI: Rewrite ast_el_strtoarr to use vector's internally.
This rewrites ast_el_strtoarr to use vector's internally, but still
return the original NULL terminated array of strings.

Change-Id: Ibfe776cbe14f750effa9ca360930acaccc02e957
2017-11-21 09:48:36 -05:00
Corey Farrell
9c0a2110f0 CLI: Refactor ast_cli_display_match_list.
* Stop estimating line count, just print until we run out of matches.
* Stop freeing entries, the caller does that anyways.
* Stop calculating / returning numoutput, it was ignored.

Change-Id: I7f92afa8bea92241a95227587367424c8c32a5cb
2017-11-21 09:48:36 -05:00
Corey Farrell
9587a61f4c CLI: Create ast_cli_completion_add function.
Some completion generators are very inefficent due to the way CLI
requests matches one at a time.  ast_cli_completion_add can be called
multiple times during one invokation of a CLI generator to add all
results without having to reinitialize the search state for each match.

Change-Id: I73d26d270bbbe1e3e6390799cfc1b639e39cceec
2017-11-21 09:39:19 -05:00
Corey Farrell
a02cbc2ef3 CLI: Remove calls to ast_cli_generator.
The ability to add to localized storage cannot be supported by
ast_cli_generator.  The only calls to ast_cli_generator should be by
functions that need to proxy the CLI generator, for example 'cli check
permissions' or 'core show help'.

* ast_cli_generatornummatches now retrieves the vector of matches and
  reports the number of elements (not including 'best' match).
* test_substitution retrieves and iterates the vector.

Change-Id: I8cd6b93905363cf7a33a2d2b0e2a8f8446d9f248
2017-11-21 09:39:19 -05:00
Joshua Colp
3abf8dfeae Merge "cli: Remove silly usage of RAII_VAR." 2017-11-21 07:54:59 -06:00
Joshua Colp
146f6b92eb Merge "loader: Fix comments in struct ast_module." 2017-11-21 06:54:25 -06:00
Joshua Colp
f5b2746355 Merge "CLI: Create ast_cli_completion_vector." 2017-11-21 05:24:07 -06:00
Joshua Colp
81041aacbd Merge "Build: Fix issues building without SSL." 2017-11-21 05:23:24 -06:00
Corey Farrell
10b4b5d200 loader: Fix comments in struct ast_module.
Make the comments follow doxygen format, move comments to the line
before each field they describe.

Change-Id: Ic445468398b5e88f13910f7c2f70bd15aad33a27
2017-11-20 19:20:40 -05:00
Joshua Colp
5db911bf7d Merge "acl: Fix allocation related issues." 2017-11-20 16:47:56 -06:00
Joshua Colp
d415eba990 Merge "bridge_basic: Ignore answer from transfer target when they've timed out." 2017-11-20 14:54:48 -06:00
Corey Farrell
9ae805c900 cli: Remove silly usage of RAII_VAR.
Change-Id: I81aacfee7cd26e4fc5eef07bca582700c2975bd7
2017-11-20 14:32:46 -06:00
Corey Farrell
89ccab95c2 ccss: Remove silly usage of RAII_VAR.
Change-Id: I5ce40035e0a940e4e56f6322c1dcd47fbd509b98
2017-11-20 14:26:11 -06:00
Corey Farrell
5e99c334d1 app: Remove silly usage of RAII_VAR.
Change-Id: Ideb594f7aae134974fb78d5477ba0853b97b8625
2017-11-20 14:21:32 -06:00
Corey Farrell
abdd9fa1a8 aoc: Remove silly usage of RAII_VAR.
Change-Id: I07907f833b81aeb0128bc9442a2abb52679c7511
2017-11-20 14:05:25 -06:00
Corey Farrell
48e1b39b28 abstract_jb: Remove silly usage of RAII_VAR.
Change-Id: I9d56175369363d1dc735504cf78a3a5577069f49
2017-11-20 14:03:25 -06:00
Corey Farrell
999e0c17d7 Build: Fix issues building without SSL.
* Fix conditional in libasteriskssl.
* Use variables produced by configure to link the SSL and uuid libraries
  into libasteriskpj.so instead of hard-coding them.

ASTERISK-27431

Change-Id: I3977931fd3ef8c4e4376349ccddb354eb839b58d
2017-11-19 14:27:25 -06:00
Corey Farrell
b4862e463c iostream: Fix ast_iostream_printf declaration.
This adds the printf attribute and changes 'fmt' from 'const void *' to
'const char *'.  This resolves a warning from some compiler for
vsnprintf needing a literal string for format.

Change-Id: I71c33a8262590042ee451e1146760c10bb22fb78
2017-11-18 20:50:48 -05:00
Joshua Colp
4181b6f377 Merge "DEBUG_FD_LEAKS: Add missing FD creators." 2017-11-17 09:26:48 -06:00
Corey Farrell
c4f11911ea acl: Fix allocation related issues.
Add checks for allocation errors, cleanup and report failure when they
occur.

* ast_duplicate_acl_list: Replace log warnings with errors, add missing
  line-feed.
* ast_append_acl: Add missing line-feed to logger message.
* ast_append_ha: Avoid ast_strdupa in loop by moving debug message to
  separate function.
* ast_ha_join: Use two separate calls to ast_str_append to avoid using
  ast_strdupa in a loop.

Change-Id: Ia19eaaeb0b139ff7ce7b971c7550e85c8b78ab76
2017-11-17 09:36:14 -05:00
Joshua Colp
781a520b73 bridge_basic: Ignore answer from transfer target when they've timed out.
This is a fun one.

Given the following attended transfer scenario:

1. Transfer target is called
2. Transferer hangs up
3. Transfer target call attempt reaches timeout
4. Transfer target is told to hang up
5. Transfer target answers before channel is hung up
6. Transferer recall target is called

A crash would occur. This is because the transfer target call
attempt, despite being told to hang up, would raise a recall
target answer before the recall target had been answered. As it
had not answered there would be no recall target channel and it
would implode.

This change makes it so that if the transfer target has been
hung up we don't tell the attended transfer code that it has
answered. We also clear out the stimulus that the recall target
has been answered after telling the transfer target to hang up,
in case it was able to raise the information before we told it
to hangup.

ASTERISK-27361

Change-Id: Ifb8b255a9c4d2c5c1b8ad77bf54f659ed286df99
2017-11-17 07:43:05 -05:00
Corey Farrell
a95f2994c6 aoc: Fix memory management issues.
aoc_publish_blob failed to check for msg allocation error and never
released msg.

Change-Id: Ib31a9ffb81056a0d496a49d7eec795005a44bcd5
2017-11-16 20:40:43 -05:00
Jenkins2
d89dc864eb Merge "sorcery: Add ast_sorcery_retrieve_by_prefix()" 2017-11-16 10:27:00 -06:00
Richard Mudgett
b7b800b689 audiohook.c: Fix freeing a frame and still using it.
Memory corruption happened to the media frame caches when an audio hook
freed a frame when it shouldn't.  I think the freed frame was because a
jitter buffer interpolated a missing frame and the audio hook
unconditionally freed it.

* Made audiohook.c:audio_audiohook_write_list() not free an interpolated
frame if it is the same frame as what was passed into the routine.

* Made plc.c:normalise_history() use memmove() instead of memcpy() on a
memory block that could overlap.  Found by valgrind investigating this
issue.

ASTERISK-27238
ASTERISK-27412

Change-Id: I548d86894281fc4529aefeb9f161f2131ecc6fde
2017-11-15 17:07:07 -05:00
Joshua Colp
a6d2926e5d Merge "core: Fix configuration of remote console socket path." 2017-11-14 10:31:40 -06:00
Joshua Colp
9d7b096023 Merge "core: Use ast_alertpipe for Asterisk signal monitoring thread." 2017-11-14 07:32:24 -06:00
Jenkins2
f616147487 Merge "core: Add cache_media_frames debugging option." 2017-11-14 06:56:54 -06:00
Corey Farrell
edd1016dd8 core: Use ast_alertpipe for Asterisk signal monitoring thread.
Reduce the signal monitoring thread file descriptor use from two to one
on systems that support eventfd.

Change-Id: Id4041a237d481ff699639e153ea6982fee14a462
2017-11-13 17:41:07 -05:00
Corey Farrell
cdaaa14a5f core: Fix configuration of remote console socket path.
The remote console socket path is the combination of asterisk.conf
settings astrundir from [directories] and astctl from [files].
Unconditionally combine the two strings after processing all values
to ensure we end up with the correct socket path.

ASTERISK-27415

Change-Id: Ib1e2805d55d6b0955c6430a1a2a93acbf9b091e8
2017-11-13 17:20:27 -05:00
Sean Bright
ffccce76d9 sorcery: Add ast_sorcery_retrieve_by_prefix()
Some consumers of the sorcery API use ast_sorcery_retrieve_by_regex
only so that they can anchor the potential match as a prefix and not
because they truly need regular expressions.

Rather than using regular expressions for simple prefix lookups, add
a new operation - ast_sorcery_retrieve_by_prefix - that does them.

Change-Id: I56f4e20ba1154bd52281f995c27a429a854f6a79
2017-11-13 15:15:33 -05:00
Corey Farrell
14d60cee0c CLI: Create ast_cli_completion_vector.
This is a rewrite of ast_cli_completion_matches using a vector to build
the list.  The original function calls the vector version, NULL
terminates the vector and extracts the elements array.

One change in behavior the results are now sorted and deduplicated. This
will solve bugs where some duplicate checking was done before the list
was sorted.

Change-Id: Iede20c5b4d965fa5ec71fda136ce9425eeb69519
2017-11-13 13:37:59 -05:00
Richard Mudgett
90bb0a3e10 core: Add cache_media_frames debugging option.
The media frame cache gets in the way of finding use after free errors of
media frames.  Tools like valgrind and MALLOC_DEBUG don't know when a
frame is released because it gets put into the cache instead of being
freed.

* Added the "cache_media_frames" option to asterisk.conf.  Disabling the
option helps track down media frame mismanagement when using valgrind or
MALLOC_DEBUG.  The cache gets in the way of determining if the frame is
used after free and who freed it.  NOTE: This option has no effect when
Asterisk is compiled with the LOW_MEMORY compile time option enabled
because the cache code does not exist.

To disable the media frame cache simply disable the cache_media_frames
option in asterisk.conf and restart Asterisk.

Sample asterisk.conf setting:
[options]
cache_media_frames=no

ASTERISK-27413

Change-Id: I0ab2ce0f4547cccf2eb214901835c2d951b78c00
2017-11-11 14:46:15 -05:00
Richard Mudgett
b865d29f1c frame.c: Make ast_frame_free()/ast_frfree() NULL tolerant
Change-Id: Ic49d821ef88ada38a31bdd835b9531443c55d793
2017-11-11 14:04:55 -05:00
Corey Farrell
bb77666620 core: Remove disabled code.
handle_quit has been disabled since 2003, remove it.

Change-Id: Idc3aaa6c81676160547078f9b71e8aa43de2db18
2017-11-09 21:34:32 -05:00