Commit Graph

30178 Commits

Author SHA1 Message Date
Joshua Colp
a881c52c78 Merge "res_pjsip: Use sorcery prefix operation for contact lookup" into 15 2017-11-20 17:27:07 -06:00
Joshua Colp
67f5875969 Merge "CLI: Create ast_cli_completion_vector." into 15 2017-11-20 17:26:59 -06:00
Joshua Colp
d8965d9bde Merge "acl: Fix allocation related issues." into 15 2017-11-20 16:48:04 -06:00
Joshua Colp
534637e91b Merge "bridge_basic: Ignore answer from transfer target when they've timed out." into 15 2017-11-20 14:46:38 -06:00
Joshua Colp
62001f0221 Merge "doxygen: Remove obsolete contents." into 15 2017-11-20 13:33:29 -06:00
Joshua Colp
8090aaf823 Merge "res_fax: Remove checks for unsigned values being >= 0." into 15 2017-11-20 13:04:28 -06:00
Joshua Colp
882bdcdd60 Merge "res_snmp: Declare RONLY if net-snmp headers do not." into 15 2017-11-20 12:28:30 -06:00
Joshua Colp
6506cb9d21 Merge "iostream: Fix ast_iostream_printf declaration." into 15 2017-11-20 11:49:47 -06:00
Joshua Colp
241e00e310 Merge "tests: Fix warnings found on Mac." into 15 2017-11-20 11:32:42 -06:00
Joshua Colp
86cba949a5 Merge "app_minivm: Fix possible uninitialized return value." into 15 2017-11-20 10:22:06 -06:00
Joshua Colp
489823e3dc Merge "res_pjsip: Fix warning by deferring implicit type cast." into 15 2017-11-20 10:21:48 -06:00
Corey Farrell
65ff827751 res_pjsip: Fix warning by deferring implicit type cast.
Mac doesn't like the comparison of -1 to an enum, so store the result of
ast_sip_str_to_dtmf to an int so we can check for the negative return
value.  ast_sip_str_to_dtmf returns an int so this is only delaying the
implicit type cast.

Change-Id: I0c262c1719ee951aae1f437d733a301cf5f8ad29
2017-11-19 13:31:50 -06:00
Corey Farrell
ef4dc43a75 tests: Fix warnings found on Mac.
test_pbx used raise without explicitly including signal.h.  On Mac for
some reason nothing else includes it.

test_logger checked if an unsigned int was negative.  Switch the
variable to 'int' so that error check can be effective.

Change-Id: Ie1db5dd1818ac25cc2ae41b644f848b5865b1362
2017-11-18 21:15:56 -06:00
Corey Farrell
85f468cd64 res_snmp: Declare RONLY if net-snmp headers do not.
Some net-snmp builds do not provide the RONLY declare, only
NETSNMP_OLDAPI_RONLY.  Map RONLY to NETSNMP_OLDAPI_RONLY to get around
this error.

Change-Id: Ida5c7ad9406515825485c4d3b4a34fd6ad0da577
2017-11-18 20:28:23 -06:00
Corey Farrell
85d675b14c res_fax: Remove checks for unsigned values being >= 0.
It's impossible for gwtimeout or fdtimeout to be less than 0 because
they are unsigned int's.  Remove checks and unreachable branches.

Change-Id: Ib2286960621e6ee245e40013c84986143302bc78
2017-11-18 20:05:03 -06:00
Corey Farrell
9da69ac6c1 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 19:55:20 -06:00
Corey Farrell
19ba25dd96 app_minivm: Fix possible uninitialized return value.
Declare 'res' initialized to -1 to deal with earlier error paths that
could cause 'res' to be returned uninitialized.

Change-Id: I8ac2a5755bf4174d89ef893e924c940f702b104e
2017-11-18 19:36:58 -06:00
Corey Farrell
5a59c6b444 doxygen: Remove obsolete contents.
Remove doxygen contents that have nothing to do with the current state
of Asterisk.

Change-Id: Ic072cc8641f9533a202990ccf275ce87e3efd95c
2017-11-17 20:58:16 -05:00
Sean Bright
3f24d38f6a res_pjsip: Use reasonable buffer lengths for endpoint identification
Domains themselves can be up to 255 characters long (per RFC 1035), so
our current buffer sizes are wholly inadequate for many use cases.

Change-Id: If3f30a68307f1365a1fe06bc4b854c62842c9292
2017-11-17 11:21:58 -05:00
Jenkins2
8fdc7fd1d3 Merge "Build: Make function constructor/destructor attributes mandatory." into 15 2017-11-17 09:45:12 -06:00
Corey Farrell
9029b94c7a 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:10 -05:00
Corey Farrell
2849538b8e 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-17 09:30:04 -05:00
Jenkins2
536e4a31b7 Merge "aoc: Fix memory management issues." into 15 2017-11-17 07:18:57 -06:00
Joshua Colp
d3ada56562 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:42:59 -05:00
Corey Farrell
60d3dbdf84 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 21:34:29 -05:00
Sean Bright
b447c65050 res_pjsip_transport_websocket: Give transport a meaningful description
We were not \0 terminating this string, so any attempt to print it would
in the best case show an empty string and in the worst case potentially
crash.

Change-Id: I63d96ef8f7516ac02a0f91e22dfa8acdc615042c
2017-11-16 17:29:05 -05:00
Sean Bright
4b5ccddd09 res_pjsip: Use sorcery prefix operation for contact lookup
This improves performance for registrations assuming that
res_config_astdb is not in use.

Change-Id: I86f37aa9ef07a4fe63448cb881bbadd996834bb1
2017-11-16 16:49:00 -05:00
Joshua Colp
4fb6b012c9 Merge "ast_coredumper: Add ability to use directory other than /tmp" into 15 2017-11-16 15:44:32 -06:00
Jenkins2
f0aa460712 Merge "pjsip / hep: Provide correct local address for Websockets." into 15 2017-11-16 11:21:55 -06:00
Jenkins2
595735200c Merge "sorcery: Add ast_sorcery_retrieve_by_prefix()" into 15 2017-11-16 10:50:17 -06:00
Jenkins2
4960fc1e69 Merge "chan_pjsip.c: Improve answer failure log messages." into 15 2017-11-16 09:50:51 -06:00
Joshua Colp
3aa630724c Merge "audiohook.c: Fix freeing a frame and still using it." into 15 2017-11-16 08:16:22 -06:00
Richard Mudgett
22197e1161 chan_pjsip.c: Improve answer failure log messages.
* Balanced the session->inv_session refs on answer failure.

Change-Id: I33542d639d37e692cb46550b972a5fcfc3b804b8
2017-11-15 17:53:29 -05:00
Richard Mudgett
fcec0fc644 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:06:53 -05:00
George Joseph
89997cc003 app_record: Don't set RECORD_STATUS chan var until file is closed
We've been calling pbx_builtin_setvar_helper to set the
RECORD_STATUS variable before actually closing the recorded file.
If a client is watching VarSet events and tries to do something with
the file when a RECORD_STATUS event is seen, they might attempt to
do so while the file it's still open.

We now delay calling pbx_builtin_setvar_helper until after we close
the file.

ASTERISK-27423

Change-Id: I7fe9de99953e46b4bafa2b38cf151fe8f6488254
2017-11-15 15:03:14 -05:00
George Joseph
c1a82bcb8c ast_coredumper: Add ability to use directory other than /tmp
The OUTPUTDIR environment variable can now be set either in the
environment itself or in ast_debug_tools.conf.  If set, it's used
for all work products instead of /tmp.

Also added the --tarball-config option that includes the contents
of /etc/asterisk when either --tarball-coredumps or --tarball-results
are used.

Change-Id: I66b2553319df61caea5b313d084f51978f730b4c
2017-11-15 10:43:37 -05:00
Joshua Colp
b8fafd6806 Merge "bundled_pjproject: Update to 2.7.1" into 15 2017-11-14 16:11:53 -06:00
Joshua Colp
3299afaa34 Merge "bundled_pjproject: sip_parser: Fix return code in pjsip_find_msg" into 15 2017-11-14 14:49:29 -06:00
Joshua Colp
b4ef463685 pjsip / hep: Provide correct local address for Websockets.
Previously for PJSIP the local address of WebSocket connections
was set to the remote address. For logging purposes this is
not particularly useful.

The WebSocket API has been extended to allow the local
address to be queried and this is used in PJSIP to set the
local address to the correct value.

The PJSIP HEP support has also been tweaked so that reliable
transports always use the local address on the transport
and do not try to (wrongly) guess. As they are connection
based it is impossible for the source to be anything else.

ASTERISK-26758
ASTERISK-27363

Change-Id: Icd305fd038ad755e2682ab2786e381f6bf29e8ca
2017-11-14 16:50:31 +00:00
Jenkins2
3920741891 Merge "core: Fix configuration of remote console socket path." into 15 2017-11-14 10:46:05 -06:00
Joshua Colp
8c01f7d32c Merge "pjsip: Add patch to allow all transports to be destroyed." into 15 2017-11-14 09:11:29 -06:00
Jenkins2
2c9c99b427 Merge "core: Add cache_media_frames debugging option." into 15 2017-11-14 07:13:54 -06:00
Corey Farrell
bb0d22edaa alertpipe: Correct documented return of ast_alertpipe_write.
Change-Id: I4ea49c441890a81384144479dc93ab5a3989486d
2017-11-13 18:48:05 -05:00
Jenkins2
25f7eda3f1 Merge "vectors: Add new macro and a string vector definition." into 15 2017-11-13 17:24:59 -06:00
Corey Farrell
45b8f444ab 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:28:02 -05:00
Jenkins2
51597fe1df Merge "menuselect: Delete and ignore aclocal.m4." into 15 2017-11-13 16:14:51 -06:00
Sean Bright
2e01b779cc 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.

Patches against 13 and 15 have a compatibility layer needed to
maintain ABI that is not needed in master.

Change-Id: I56f4e20ba1154bd52281f995c27a429a854f6a79
2017-11-13 16:52:22 -05:00
George Joseph
24e7f61d14 bundled_pjproject: sip_parser: Fix return code in pjsip_find_msg
The default return code for pjsip_find_msg was PJ_SUCCESS so if
a Content-Length header wasn't found at all, pjsip_find_msg was
returning PJ_SUCCESS instead of PJSIP_EMISSINGHDR.

Also added the volatile keyword to a few variables that are used
both inside and outside the PJ_TRY/PJ_CATCH block.

Partial fix for ASTERISK_27408

Change-Id: If82ba9de921e3d57df9c68cf96ee45ccc1491f7a
2017-11-13 16:50:00 -05:00
Ben Ford
c6be57b545 bundled_pjproject: Update to 2.7.1
Update from 2.7 to 2.7.1 for bundled pjproject. Changed version
and removed patch files included in the update.

Change-Id: I55cea8e734b318c2df9daf86aa0802c559ec8357
2017-11-13 16:43:28 -05:00
Corey Farrell
f84b2cc417 vectors: Add new macro and a string vector definition.
* AST_VECTOR_STEAL_ELEMENTS - steal the array of elements for use
  with non-vector code.
* struct ast_vector_string - a vector of 'char *'.

Change-Id: I104d1b204be03fccf67e02a195596adcb5ab1e42
2017-11-13 13:38:21 -05:00