Commit graph

88 commits

Author SHA1 Message Date
Mark Michelson
cd4ebd336f Add IPv6 to Asterisk.
This adds a generic API for accommodating IPv6 and IPv4 addresses
within Asterisk. While many files have been updated to make use of the
API, chan_sip and the RTP code are the files which actually support
IPv6 addresses at the time of this commit. The way has been paved for
easier upgrading for other files in the near future, though.

Big thanks go to Simon Perrault, Marc Blanchet, and Jean-Philippe Dionne
for their hard work on this.

(closes issue #17565)
Reported by: russell
Patches: 
      asteriskv6-test-report.pdf uploaded by russell (license 2)

Review: https://reviewboard.asterisk.org/r/743



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@274783 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-08 22:08:07 +00:00
David Ruggles
4c49e70ec5 Add send DTMF feature to ExternalIVR app
Implemented a new command 'D' that allows client
IVRs to send DTMF digits to the channel.

(closes issue #16615)
Reported by: thedavidfactor

Review: https://reviewboard.asterisk.org/r/465/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@242357 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-22 16:20:43 +00:00
David Ruggles
174cd3c65c Add notification of interrupted file
Add file information to data element of T event so
the file information is sent to the client when it is
interrupted. Previously only notification of pending
files that were dropped was sent

(closes issue #16147)
Reported by: thedavidfactor
Tested by: thedavidfactor

Review: https://reviewboard.asterisk.org/r/449/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@240969 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-18 17:41:44 +00:00
David Ruggles
43ebe5a2ba Fix TCP Client interface
Fix a couple of very minor bugs that prevent the socket client from working. The wrong set of properties were used in one place and the size of the address variable isn't set if the host name is an ip address. Also includes a fix for a bug that was introduced previously.

(closes issue #16121)
Reported by: thedavidfactor
Tested by: thedavidfactor

Review: https://reviewboard.asterisk.org/r/439/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@233545 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-12-07 19:48:14 +00:00
David Ruggles
93afa4cc4f Prevent double closing of FDs by EIVR
This caused a problem when asterisk was under heavy load and running both AGI and EIVR applications.
EIVR would close an FD at which point it would be considered freed and be used by a new AGI instance
the second close would then close the FD now in use by AGI.

(closes issue #16305)
Reported by: diLLec
Tested by: thedavidfactor, diLLec

Review: https://reviewboard.asterisk.org/r/436/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@232587 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-12-02 22:17:22 +00:00
David Ruggles
6e27759d33 Fix/Implement error events for non-existing files
also include a better cmd define for S command

Review: https://reviewboard.asterisk.org/r/430/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@230584 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-20 17:28:01 +00:00
David Ruggles
8d9a12a60a Basic cleanup of ExternalIVR: cleaned up argument parsing; implemented good coding practices where applicable; replaced most notice level logging with verbose logging; replaced warning messages that terminated with error messages; fixed memory leak identified by russellb
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@230438 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-19 14:53:58 +00:00
Tilghman Lesher
8ee06c6c3b Don't crash if no arguments are passed.
(closes issue #16119)
 Reported by: thedavidfactor


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@228015 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-05 17:08:02 +00:00
Tilghman Lesher
d8e0c58437 Expand codec bitfield from 32 bits to 64 bits.
Reviewboard: https://reviewboard.asterisk.org/r/416/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@227580 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-04 14:05:12 +00:00
David Vossel
776a14386a SIP TCP/TLS: move client connection setup/write into tcp helper thread, various related locking/memory fixes.
What this patch fixes
1.Moves sip TCP/TLS connection setup into the TCP helper thread:
  Connection setup takes awhile and before this it was being
  done while holding the monitor lock.
2.Moves TCP/TLS writing to the TCP helper thread:  Through the
  use of a packet queue and an alert pipe, the TCP helper thread
  can now be woken up to write data as well as read data.
3.Locking error: sip_xmit returned an XMIT_ERROR without giving
  up the tcptls_session lock.  This lock has been completely removed
  from sip_xmit and placed in the new sip_tcptls_write() function.
4.Memory leak:  When creating a tcptls_client the tls_cfg was alloced
  but never freed unless the tcptls_session failed to start.  Now the
  session_args for a sip client are an ao2 object which frees the
  tls_cfg on destruction.
5.Pointer to stack variable: During sip_prepare_socket the creation
  of a client's ast_tcptls_session_args was done on the stack and
  stored as a pointer in the newly created tcptls_session.  Depending
  on the events that followed, there was a slight possibility that
  pointer could have been accessed after the stack returned.  Given
  the new changes, it is always accessed after the stack returns
  which is why I found it.

Notable code changes
1.I broke tcptls.c's ast_tcptls_client_start() function into two
  functions.  One for creating and allocating the new tcptls_session,
  and a separate one for starting and handling the new connection.
  This allowed me to create the tcptls_session, launch the helper
  thread, and then establish the connection within the helper thread.
2.Writes to a tcptls_session are now done within the helper thread.
  This is done by using an alert pipe to wake up the thread if new
  data needs to be sent.  The thread's sip_threadinfo object contains
  the alert pipe as well as the packet queue.
3.Since the threadinfo object contains the alert pipe, it must now be
  accessed outside of the helper thread for every write (queuing of a
  packet).  For easy lookup, I moved the threadinfo objects from a
  linked list to an ao2_container.

(closes issue #13136)
Reported by: pabelanger
Tested by: dvossel, whys

(closes issue #15894)
Reported by: dvossel
Tested by: dvossel

Review: https://reviewboard.asterisk.org/r/380/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225445 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-22 19:55:51 +00:00
Kevin P. Fleming
aaeec3b40f Last batch of 'static' qualifiers for module-level global variables.
Fix up modules in the 'apps' directory, and also correct the bad example of
enum definitions in include/asterisk/app.h, which many developers followed
(thanks for reading the documentation!). In addition, add some basic usage
examples of the 'pahole' and 'pglobal' tools to the coding guidelines.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@200656 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-15 19:10:10 +00:00
Eliel C. Sardanons
e18eae86c9 Move application ExternalIVR static documentation to XML.
Move application ExternalIVR static documentation to the new AstXML form.

(issue #15245)
Reported by: eliel
Patches:
      app_externalivr.diff uploaded by eliel (license 64)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@199514 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-07 17:29:44 +00:00
Kevin P. Fleming
e6b2e9a750 Const-ify the world (or at least a good part of it)
This patch adds 'const' tags to a number of Asterisk APIs where they are appropriate (where the API already demanded that the function argument not be modified, but the compiler was not informed of that fact). The list includes:

- CLI command handlers
- CLI command handler arguments
- AGI command handlers
- AGI command handler arguments
- Dialplan application handler arguments
- Speech engine API function arguments

In addition, various file-scope and function-scope constant arrays got 'const' and/or 'static' qualifiers where they were missing.

Review: https://reviewboard.asterisk.org/r/251/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@196072 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-21 21:13:09 +00:00
Mark Michelson
1413e48fca Fix externalivr's setvariable command so that it properly sets multiple variables.
The command had a for loop that was guaranteed to only execute once since
the continuation operation of the loop would set the input buffer NULL. I rewrote
the loop so that its operation was more obvious, and it would set multiple variables
correctly.

I also reduced stack space required for the function, constified the input string,
and modified the function so that it would not modify the input string while I was
at it.

(closes issue #15114)
Reported by: chris-mac
Patches:
      15114.patch uploaded by mmichelson (license 60)
Tested by: chris-mac



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@195316 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-18 18:58:26 +00:00
Kevin P. Fleming
1c988d8996 add 'const' qualifiers in various places where they should have been
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@193832 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-12 13:59:35 +00:00
David Vossel
829b14fc3e Fixes issue with hangups not being sent and external process never terminating.
The ignore_hangup, run_dead, and noanswer flags were never initilized to zero causing hangups to never be issued.  If the external script expects to be notified of a hangup and never receives one, it runs indefinitely. 

(closes issue #14251)
Reported by: chris-mac
Tested by: dvossel



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@174325 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-09 17:26:02 +00:00
Tilghman Lesher
c8223fc957 Merge ast_str_opaque branch (discontinue usage of ast_str internals)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@163991 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-13 08:36:35 +00:00
Kevin P. Fleming
1ddc834b39 cleaup of the TCP/TLS socket API:
1) rename 'struct server_args' to 'struct ast_tcptls_session_args', to follow coding guidelines

2) make ast_make_file_from_fd() static and rename it to something that indicates what it really is for (again coding guidelines)

3) rename address variables inside 'struct ast_tcptls_session_args' to be more descriptive (dare i say it... coding guidelines)

4) change ast_tcptls_client_start() to use the new 'remote_address' field of the session args for the destination of the connection, and use the 'local_address' field to bind() the socket to the proper source address, if one is supplied

5) in chan_sip, ensure that we pass in the PP address we are bound to when creating outbound (client) connections, so that our connections will appear from the correct address



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@151101 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-19 19:11:28 +00:00
Tilghman Lesher
d2247c2573 Missing comma
(closes issue #12891)
 Reported by: chris-mac


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@123865 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-19 15:52:17 +00:00
Brett Bryant
2aae0ba13d Updates all usages of ast_tcptls_session_instance to be managed by reference counts so that they only get destroyed when all threads are done using
them, and memory does not get free'd causing strange issues with SIP. 

This code was originally written by russellb in the team/group/issue_11972/ branch.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@123546 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-17 21:46:57 +00:00
Chris Tooley
39606a9c64 Changes response to the ExternalIVR() P command from pipe delimited to comma delimited. closes issue #12804
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@123115 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-16 20:02:06 +00:00
Michiel van Baak
f1e9371da8 - revert change to ast_queue_hangup and create ast_queue_hangup_with_cause
- make data member of the ast_frame struct a named union instead of a void

Recently the ast_queue_hangup function got a new parameter, the hangupcause
Feedback came in that this is no good and that instead a new function should be created.
This I did.

The hangupcause was stored in the seqno member of the ast_frame struct. This is not very
elegant, and since there's already a data member that one should be used.
Problem is, this member was a void *.
Now it's a named union so it can hold a pointer, an uint32 and there's a padding in case someone
wants to store another type in there in the future.

This commit is so massive, because all ast_frame.data uses have to be
altered to ast_frame.data.data

Thanks russellb and kpfleming for the feedback.

(closes issue #12674)
Reported by: mvanbaak


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@117802 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-22 16:29:54 +00:00
Tilghman Lesher
ce8453f57c Enhance ExternalIVR with new options and commands.
(closes issue #12705)
 Reported by: ctooley
 Patches: 
       new_externalivr_argument_format-v2.diff uploaded by ctooley (license 136)
       new_externalivr_documentation.diff uploaded by ctooley (license 136)
       and a few additional fixes by me


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@117725 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-22 05:10:01 +00:00
Tilghman Lesher
ffc9f89189 On socket-based connections, there is no error FD, so don't try waiting on one.
(closes issue #12697)
 Reported by: ctooley
 Patches: 
       fix_externalivr_waitfor_nandfds-v3.diff uploaded by ctooley (license 136)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@117431 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-21 13:39:41 +00:00
Tilghman Lesher
c15ed0f3f6 Merged revisions 116296 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r116296 | tilghman | 2008-05-14 11:46:48 -0500 (Wed, 14 May 2008) | 2 lines

Detect another way for a connection to have gone away.
(closes issue #12618)
 Reported by: ctooley
 Patches: 
       1.4-externalivr-test_fd.diff uploaded by ctooley (license 136)
       trunk-externalivr-test_fd.diff uploaded by ctooley (license 136)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@116298 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-05-14 16:53:23 +00:00
Tilghman Lesher
527c601d0c Lock around variables retrieved, and copy the values, if they stay persistent,
since another thread could remove them.
(closes issue #12541)
 Reported by: snuffy
 Patches: 
       bug_12156_apps.diff uploaded by snuffy (license 35)
       Several additional changes by me


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114904 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-30 19:21:04 +00:00
Tilghman Lesher
463a5dbd0a Whitespace changes only
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114667 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-25 20:20:10 +00:00
Michiel van Baak
08e674bce0 Pass the hangup cause all the way to the calling app/channel.
(closes issue #11328)
Reported by: rain
Patches:
      20071207__pass_cause_in_hangup_control_frame.diff.txt uploaded by Corydon76 (license 14)
brought up-to-date to trunk by me


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114637 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-24 22:16:48 +00:00
Tilghman Lesher
123ac5fd64 Standardized routines for forking processes (keeps all the specialized code in one place).
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114188 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-04-16 22:57:54 +00:00
Jeff Peeler
3c4c3c0dd2 documenting changes as a result of adding TCP functionality to ExternalIVR
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@108639 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-13 23:12:59 +00:00
Jeff Peeler
5aba7c1cbe set variable to NULL to prevent uninitialized warning
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@108523 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-13 20:38:56 +00:00
Jeff Peeler
b2cad9d925 (closes issue #11827)
Reported by: ctooley
Patches:
      eivr_tcp_generic.patch uploaded by jpeeler (license 325)
This change adds the ability to communicate over a TCP socket instead of forking a child process.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@108404 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-13 18:59:04 +00:00
Jeff Peeler
5404ab35e2 a few syntax changes and safer code
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@103682 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-14 19:47:39 +00:00
Olle Johansson
9cf6138725 Formatting fixes
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@103668 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-14 10:19:09 +00:00
Jeff Peeler
8e4c97bf0a (closes issue #11825)
Reported by: ctooley
Patches:
      additional_eivr_commands.patch uploaded by ctooley (license 136)
Tested by: ctooley


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@103662 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-13 21:04:31 +00:00
Michiel van Baak
4dccb58fb7 whitespace fixes only.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@103249 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-09 11:27:10 +00:00
Mark Michelson
64b5fceb32 Merged revisions 99975 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r99975 | mmichelson | 2008-01-23 14:25:00 -0600 (Wed, 23 Jan 2008) | 3 lines

Fixing a typo.


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@99976 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-23 20:26:19 +00:00
Luigi Rizzo
7e8835e0d7 remove another set of redundant #include "asterisk/options.h"
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89512 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-21 23:24:55 +00:00
Luigi Rizzo
ffd86fc964 more errno.h removal
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89432 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-19 21:12:08 +00:00
Luigi Rizzo
0595b5e2aa include "logger.h" and errno.h from asterisk.h - usage shows that they
were included almost everywhere.
Remove some of the instances.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89424 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-19 18:52:04 +00:00
Luigi Rizzo
fdb7f7ba3d Start untangling header inclusion in a way that does not affect
build times - tested, there is no measureable difference before and
after this commit.

In this change:

use asterisk/compat.h to include a small set of system headers:
inttypes.h, unistd.h, stddef.h, stddint.h, sys/types.h, stdarg.h,
stdlib.h, alloca.h, stdio.h

Where available, the inclusion is conditional on HAVE_FOO_H as determined
by autoconf.

Normally, source files should not include any of the above system headers,
and instead use either "asterisk.h" or "asterisk/compat.h" which does it
better. 

For the time being I have left alone second-level directories
(main/db1-ast, etc.).



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89333 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-11-16 20:04:58 +00:00
Joshua Colp
15c5e25e36 (closes issue #10381)
Reported by: yehavi
Use the filename we parsed using the standard parsing when launching the application specified to ExternalIVR.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@78168 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-06 14:37:52 +00:00
Tilghman Lesher
55b1ee298e Merge the dialplan_aesthetics branch. Most of this patch simply converts applications
using old methods of parsing arguments to using the standard macros.  However, the big
change is that the really old way of specifying application and arguments separated by
a comma will no longer work (e.g. NoOp,foo|bar).  Instead, the way that has been
recommended since long before 1.0 will become the only method available (e.g. NoOp(foo,bar).


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76703 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-23 19:51:41 +00:00
Joshua Colp
b8cd949cce Applications no longer need to call ast_module_user_add and ast_module_user_remove. This is now taken care of in the pbx_exec function outside of the application.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@75200 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-16 14:39:29 +00:00
Joshua Colp
96a646734f It is no longer required for each module that deals with a channel to call ast_module_user_hangup_all in it's unload function. The loader will automatically perform this action for it.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@75183 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-16 13:35:20 +00:00
Tilghman Lesher
9d05ff8ed5 Issue 9869 - replace malloc and memset with ast_calloc, and other coding guidelines changes
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@67864 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-06-06 21:20:11 +00:00
Joshua Colp
1fda861ff8 Make 'H' command do as advertised and add 'E' and 'V' commands to ExternalIVR. (issue #8165 reported by mnicholson)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@51592 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-23 04:45:43 +00:00
Matt O'Gorman
a395bd7c1d Merged revisions 48396 via svnmerge from
https://svn.digium.com/svn/asterisk/branches/1.4

................
r48396 | mogorman | 2006-12-11 16:11:35 -0600 (Mon, 11 Dec 2006) | 12 lines

Merged revisions 48394 via svnmerge from 
https://svn.digium.com/svn/asterisk/branches/1.2

........
r48394 | mogorman | 2006-12-11 15:55:43 -0600 (Mon, 11 Dec 2006) | 4 lines

app_externalivr needs a real silence file, and additional
changes to add silence files into core instead of extra
patch provided by bug 8177 with minor additions.

........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48397 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-11 22:31:20 +00:00
Tilghman Lesher
d670858735 Merged revisions 48375 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r48375 | tilghman | 2006-12-10 18:47:21 -0600 (Sun, 10 Dec 2006) | 13 lines

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/trunk@48376 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-11 00:52:19 +00:00
Russell Bryant
4337a82563 Merged revisions 46363 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r46363 | russell | 2006-10-27 12:39:31 -0500 (Fri, 27 Oct 2006) | 5 lines

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/trunk@46364 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-27 17:42:57 +00:00