Commit Graph

131 Commits

Author SHA1 Message Date
Kevin P. Fleming
50515ed372 update dev-mode compiler flags to match the ones used by default on Ubuntu Intrepid, so all developers will see the same warnings and errors
since this branch already had some printf format attributes, enable checking for them and tag functions that didn't have them

format attributes in a consistent way



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@159808 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-29 16:58:29 +00:00
Kevin P. Fleming
add5ff5b05 fix a bunch of potential problems found by gcc 4.3.x, primarily bare strings being passed to printf()-like functions and ignored results from read()/write() and friends
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@153337 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-01 18:22:39 +00:00
Jeff Peeler
fc2e08f823 (closes issue #13425)
Reported by: mdu113
Tested by: mdu113

Similar to r143204, masquerade the channel in the case of Park being called from AGI.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@146129 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-03 20:44:22 +00:00
Tilghman Lesher
0e8f3075bc Reverting behavior change (AGI should not exit non-zero on SUCCESS)
(closes issue #13434)
 Reported by: francesco_r


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@141503 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-06 15:23:42 +00:00
Jeff Peeler
1c8fff43ad (closes issue #11979)
Fixes multiple parking problems:
Crash when executing a park on an extension dialed by AGI due to not returning the proper return code.
Crash when using a builtin feature that was a subset of a enabled dynamic feature.
Crash due to always hanging up the peer despite the fact that the peer was supposed to be parked.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@141028 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-04 17:00:29 +00:00
Tilghman Lesher
0dff9821d6 launch_netscript sometimes returns -1, which fails to set AGISTATUS. Map
failure to -1, so that AGISTATUS is always set.
(closes issue #13199)
 Reported by: smw1218


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@134480 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-30 19:03:44 +00:00
Tilghman Lesher
01f5aee7ac Avoid zombies when the channel exits before the AGI.
(closes issue #12648)
 Reported by: gkloepfer
 Patches: 
       20080514__bug12648.diff.txt uploaded by Corydon76 (license 14)
 Tested by: gkloepfer


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@116466 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-14 21:38:09 +00:00
Tilghman Lesher
176add9ecd Add special case for when the agi cannot be executed, to comply with the documentation that
we return failure in that case.
(closes issue #12462)
 Reported by: fmueller
 Patches: 
       20080416__bug12462.diff.txt uploaded by Corydon76 (license 14)
 Tested by: fmueller


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@114195 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-17 12:56:38 +00:00
Joshua Colp
ebdf2940b8 If the channel is hungup during RECORD FILE send a result code of -1 to be uniform with everything else.
(closes issue #11743)
Reported by: davevg
Patches:
      res_agi.diff uploaded by davevg (license 209)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@98317 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-11 19:28:30 +00:00
Tilghman Lesher
804d837c7d Change help documentation to match actual behavior (FAILURE vs FAILED).
Reported by: angeloxx-sir
Patch by: tilghman
(Closes issue #11548)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@92933 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-12-14 15:01:10 +00:00
Russell Bryant
63217678cb Add another sanity check in the AGI read loop. We really don't care about
EAGAIN unless we didn't read an entire line.  If there is a newline at the
end if the read buffer, break, because we got the whole thing.
(reported and patched by bmd)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@84236 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-01 19:56:28 +00:00
Russell Bryant
0f23b76a39 Add a new patch to handle interrupting the fgets() call when using FastAGI.
This version of the patch maintains the original behavior of the code when
not using FastAGI.
(closes issue #10553)
Reported by: juggie
Patches:
      res_agi_fgets-4.patch uploaded by juggie (license 24)
      res_agi_fgets_1.4svn.patch uploaded by juggie (license 24)
	  Slight mods by me
Tested by: juggie, festr


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82929 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-18 22:42:27 +00:00
Russell Bryant
4b6653a436 Fix a check of the wrong pointer, as pointed out by an XXX comment left in
the code.  The problem was harmless, however.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82296 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-12 21:56:32 +00:00
Russell Bryant
347dce5c71 revert patch from issue #10553, as someone not using fastagi reported that this
broke their system.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82278 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-12 15:11:11 +00:00
Russell Bryant
faad24c675 (closes issue #10553)
Reported by: juggie
Patches:
      res_agi_fgets-2.patch uploaded by juggie (license 24)
Tested by: juggie

When using fastagi, fgets() can return before a full line is read.  Add explicit
handling for the case where it gets interrupted.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@82245 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-09-11 15:26:51 +00:00
Russell Bryant
fa1bc2a13b Revert res_agi fix that didn't quite work until we get it right ...
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80469 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-23 15:49:28 +00:00
Russell Bryant
99adc3f020 Juggie in #asterisk-dev was reporting problems where fgets would return
without reading  the whole line when using fastagi.  When this happens,
errno was set to EINTR or EAGAIN.  This patch accounts for the possibility
and lets fgets continue in that case.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@80360 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-22 19:53:30 +00:00
Russell Bryant
0bc611f555 (closes issue #10279)
Reported by: seanbright
Patches:
      res_agi.carefulwrite.1.4.07252007.patch uploaded by seanbright (license 71)
      res_agi.carefulwrite.trunk.07252007.patch uploaded by seanbright (license 71)

Allow the "agi_network: yes" line to be printed out in the AGI debug output.
Also, allow partial writes to be handled when writing out this line just like
it is for all of the others.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@77788 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-30 19:13:31 +00:00
Tilghman Lesher
834260a648 Merged revisions 77782 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r77782 | tilghman | 2007-07-30 13:40:54 -0500 (Mon, 30 Jul 2007) | 2 lines

Revert change in revision 71656, even though it fixed a bug, because many people were depending upon the (broken) behavior.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@77783 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-30 18:43:55 +00:00
Russell Bryant
bdf09824c6 (issue #10210)
Reported by: juggie
Patches:
      10210-1.4-grr.patch uploaded by juggie (license #24)
Tested by: juggie, blitzrage

Log a warning if someone uses DeadAGI on a live channel.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@75437 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-17 20:33:06 +00:00
Russell Bryant
6f40b0d2b4 Remove a duplicated newline character in AGI debug output.
(closes issue #10207, patch by seanbright)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@75401 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-17 19:45:07 +00:00
Tilghman Lesher
ad5ad13662 Merged revisions 71656 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r71656 | tilghman | 2007-06-25 13:12:37 -0500 (Mon, 25 Jun 2007) | 2 lines

Issue 10035 - handle_exec returns a result inconsistent with all of the other AGI commands

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@71657 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-25 18:14:59 +00:00
Jason Parker
e107da04b4 Merged revisions 71065 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r71065 | qwell | 2007-06-22 09:52:18 -0500 (Fri, 22 Jun 2007) | 4 lines

Fix a few silly usages of ast_playstream() - it only ever returns 0...

Issue 10035

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@71068 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-22 15:00:30 +00:00
Joshua Colp
ed7775bc53 Make the new "agi debug off" CLI command work. (issue #9890 reported by eliel)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@67597 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-06 12:34:06 +00:00
Joshua Colp
0a992b39de res_agi needs to export two symbols (ast_agi_register and ast_agi_unregister) for usage by others. (issue #9755 reported by mnicholson)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@65250 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-05-20 17:59:58 +00:00
Olle Johansson
a945ccf652 Merged revisions 54771 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r54771 | oej | 2007-02-16 12:38:03 +0100 (Fri, 16 Feb 2007) | 2 lines

Issue #9069 - If we open with TH we should not close with /TD. (seanbright)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@54772 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-16 11:39:55 +00:00
Tilghman Lesher
cb95f19c3f Merged revisions 48374 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r48374 | tilghman | 2006-12-10 18:33:59 -0600 (Sun, 10 Dec 2006) | 5 lines

When doing a fork() and exec(), two problems existed (Issue 8086):
1) Ignored signals stayed ignored after the exec().
2) Signals could possibly fire between the fork() and exec(), causing Asterisk
signal handlers within the child to execute, which caused nasty race conditions.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@48375 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-11 00:47:21 +00:00
Tilghman Lesher
56a1e60c54 More changes making the CLI more consistent with "category verb arguments" (continuation of issue 8236)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@47053 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-02 23:49:13 +00:00
Tilghman Lesher
e05a2752e8 Reverse change of "show" to "list" and make several other commands more consistent with "category verb arguments"
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@47051 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-02 23:00:20 +00:00
Russell Bryant
f124a6d1fc Merged revisions 46557 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r46557 | russell | 2006-10-31 01:13:09 -0500 (Tue, 31 Oct 2006) | 3 lines

fix some copy/paste bugs in the checking of arguments for the 
"control stream file" AGI command (issue #8255, mnicholson)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46558 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-31 06:14:13 +00:00
Russell Bryant
d7f9b5f912 We should always be using _exit() after a fork() or vfork() instead of exit().
This is because exit() does some extra cleanup which in some implementations
of vfork(), for example, can actually modify the state of the parent process,
causing very weird bugs or crashes.  (issue #7971, Nick Gavrikov)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46363 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-27 17:39:31 +00:00
Mark Spencer
72a23ce184 Fix FastAGI when there is no pid (bug #7628, #8147)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46142 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-24 20:30:25 +00:00
Kevin P. Fleming
ea399862c4 move more API into the ast_ namespace
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43310 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-20 04:45:45 +00:00
Kevin P. Fleming
fcb999c01c merge qwell's CLI verbification work
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43212 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-18 19:54:18 +00:00
Joshua Colp
31cc08295c Merged revisions 42148 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r42148 | file | 2006-09-06 16:02:59 -0400 (Wed, 06 Sep 2006) | 2 lines

Don't close the second file descriptor if it's the same as the first one, as it will have already been closed elsewhere and could cause massive panic. (issue #7699 reported by bn999)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@42149 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-06 20:04:17 +00:00
Joshua Colp
c6977b9983 Merge in VLDTMF support with Zaptel/Core done by the ever great Darumkilla Russell Bryant and the RTP portion done by myself, Muffinlicious Joshua Colp. This has gone through so many discussions/revisions it's not funny but we finally have it!
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41507 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-31 01:59:02 +00:00
Tilghman Lesher
ec7bd6614a Merged revisions 40901 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r40901 | tilghman | 2006-08-23 11:05:26 -0500 (Wed, 23 Aug 2006) | 2 lines

Revert last change - breaks retrieval of builtin variables

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40904 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-23 16:14:18 +00:00
Kevin P. Fleming
0a27d8bfe5 merge new_loader_completion branch, including (at least):
- restructured build tree and makefiles to eliminate recursion problems
  - support for embedded modules
  - support for static builds
  - simpler cross-compilation support
  - simpler module/loader interface (no exported symbols)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40722 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-21 02:11:39 +00:00
Russell Bryant
b6a99250ed Merged revisions 39935 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r39935 | russell | 2006-08-15 18:49:41 -0400 (Tue, 15 Aug 2006) | 3 lines

use pbx_builtin_getvar_helper() so that GET VARIABLE can retrieve global
variables (issue #7609)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@39936 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-15 22:51:49 +00:00
Russell Bryant
92bd7f19f7 Merge team/russell/ast_verbose_threadstorage
- instead of defining a free() wrapper in a bunch of files, define it as
  ast_free() in utils.h and remove the copies from all the files.

- centralize and abstract the code used for doing thread storage. The code
  lives in threadstorage.h, with one function being implemented in utils.c.
  This new API includes generic thread storage as well as special functions
  for handling thread local dynamic length string buffers.

- update ast_inet_ntoa() to use the new threadstorage API
- update ast_state2str() to use the new threadstorage API
- update ast_cli() to use the new threadstorage API

- Modify manager_event() to use thread storage. Instead of using a buffer of
  4096 characters as the workspace for building the manager event, use a thread
  local dynamic string.  Now there is no length limitation on the length of the
  body of a manager event.

- Significantly simplify the handling of ast_verbose() ...
  - Instead of using a static char buffer and a lock to make sure only one
    thread can be using ast_verbose() at a time, use a thread local dynamic
    string as the workspace for preparing the verbose message. Instead of
    locking around the entire function, the only locking done now is when the
    message has been built and is being deliviered to the list of registered
    verbose message handlers.
  - This function was doing a strdup() on every message passed to it and
    keeping a queue of the last 200 messages in memory. This has been
    completely removed. The only place this was used was that if there were
    any messages in the verbose queue when a verbose handler was registered,
    all of the messages in the queue would be fed to it.  So, I just made sure
    that the console verbose handler and the network verbose handler (for
    remote asterisk consoles) were registered before any verbose messages.
    pbx_gtkconsole and pbx_kdeconsole will now lose a few verbose messages at
    startup, but I didn't feel the performance hit of this message queue was
    worth saving the initial verbose output for these very rarely used modules.
  - I have removed the last three arguments to the verbose handlers, leaving
    only the string itself because they aren't needed anymore. For example,
    ast_verbose had some logic for telling the verbose handler to add
    a newline if the buffer was completely full. Now that the buffer can grow
    as needed, this doesn't matter anymore.
  - remove unused function, ast_verbose_dmesg() which was to dispatch the
    message queue
  - Convert the list of verbose handlers to use the linked list macros.

- add missing newline characters to a few ast_verbose() calls

- convert the list of log channels to use the linked list macros in logger.c

- fix close_logger() to close all of the files it opened for logging

- update ast_log() to use a thread local dynamic string for its workspace
  for preparing log messages instead of a buffer of size BUFSIZ (8kB on my
  system) allocated on the stack.  The dynamic string in this case is limited
  to only growing to a maximum size of BUFSIZ.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@39272 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-08 06:32:04 +00:00
Russell Bryant
233aab68a6 add a verbose message to the AGI command, STREAM FILE, similar to the
verbose messages when using Playback, Background, or the GET DATA command
(issue #7297, softins)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@38021 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-20 16:18:07 +00:00
Kevin P. Fleming
6d0742fc16 merge Russell's 'hold_handling' branch, finally implementing music-on-hold handling the way it was decided at AstriDevCon Europe 2006 (and the way people really want it to be)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@37988 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-19 20:44:39 +00:00
Kevin P. Fleming
5b639e6135 Merged revisions 37419 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r37419 | kpfleming | 2006-07-12 08:54:10 -0500 (Wed, 12 Jul 2006) | 2 lines

remove some more bad examples of using printf

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@37433 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-07-12 14:04:16 +00:00
Russell Bryant
a483f6eafc Merged revisions 33693 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r33693 | russell | 2006-06-12 16:40:11 -0400 (Mon, 12 Jun 2006) | 2 lines

fix a place where a frame would be free'd twice

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@33694 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-12 20:40:56 +00:00
Tilghman Lesher
1d8804c117 Merged revisions 33615 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r33615 | tilghman | 2006-06-12 10:27:18 -0500 (Mon, 12 Jun 2006) | 4 lines

Move set priority up, because at this point in the code, stdout is no longer
the console.  If we're unable to set priority, the error goes to Asterisk as
if it were an AGI command (issue 7335).

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@33616 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-12 15:30:32 +00:00
Kevin P. Fleming
472c1ca282 simplify autoconfig include mechanism (make tholo happy he can use lint again :-)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@32846 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-06-07 18:54:56 +00:00
Russell Bryant
6ff6536f13 Merged revisions 31194 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r31194 | russell | 2006-05-31 19:50:00 -0400 (Wed, 31 May 2006) | 3 lines

if the connection to a FastAGI server fails because of a timeout, log a more
informative log message

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@31195 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-31 23:51:39 +00:00
Joshua Colp
1c158f0ea4 Add the video stream for AGI function STREAM FILE (issue #5392 reported by areski -- minor mods by me)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@30547 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-26 17:43:11 +00:00
Russell Bryant
26271fbd3a allow setting a channel variable to disable sending SIGHUP to the AGI process
(issue #6491, original patch by juggie, channel variable patch by corydon,
 committed patch modified to change variable name and update documentation)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@30337 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-25 19:01:26 +00:00
Russell Bryant
238cdb249f Add the ability to retrieve the exit code of the forked AGI process. If there
is an error executing the AGI script, or the AGI script itself returns a
non-zero value, the AGISTATUS variable will now be set to FAILURE instead of
SUCCESS.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@30328 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-05-25 18:31:19 +00:00