Commit Graph

19 Commits

Author SHA1 Message Date
David Vossel
5091019af0 Merged revisions 246980 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r246980 | dvossel | 2010-02-16 14:54:48 -0600 (Tue, 16 Feb 2010) | 8 lines
  
  warning message if openssl support is missing while attempting tls connection
  
  (closes issue #16673)
  Reported by: michaesc
  Patches:
        tls_error_msg.diff uploaded by dvossel (license 671)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@246983 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-16 21:05:24 +00:00
David Vossel
4672e2805b Merged revisions 225445 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r225445 | dvossel | 2009-10-22 14:55:51 -0500 (Thu, 22 Oct 2009) | 50 lines
  
  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/branches/1.6.1@225490 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-10-22 22:07:05 +00:00
David Vossel
b4e48dc19e Merged revisions 220365 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r220365 | dvossel | 2009-09-24 15:37:20 -0500 (Thu, 24 Sep 2009) | 8 lines
  
  fixes tcptls_session memory leak caused by ref count error
  
  (closes issue #15939)
  Reported by: dvossel
  
  Review: https://reviewboard.asterisk.org/r/375/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@220371 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-24 20:38:31 +00:00
Jeff Peeler
b3eaf3beef Merged revisions 180719 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r180719 | jpeeler | 2009-03-09 15:58:17 -0500 (Mon, 09 Mar 2009) | 16 lines
  
  Add Doxygen documentation for API changes from 1.6.0 to 1.6.1
  
  Copied from my review board description:
  This is a continuation of the API changes documentation started for describing
  changes between releases. Most of the API changes were pretty simple needing
  only to be brought to attention via the new "Asterisk API Changes" list.
  However, if you see anything that needs further explanation feel free to
  supplement what is there. The current method of documenting is to add (in the
  header file): \version <ver number> <description of changes> and then to add
  the function to the change list in doxyref.h on the AstAPIChanges page. I also
  made sure all the functions that were newly added were tagged with \since
  1.6.1. I think this is a good habit to start both for the historical aspect as
  well as for the future ability to easily add a "New Asterisk API" page.
  
  Review: http://reviewboard.digium.com/r/190/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@180740 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-03-09 21:22:42 +00:00
Tilghman Lesher
a32d0a1a8f Merged revisions 173458 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r173458 | tilghman | 2009-02-04 12:48:06 -0600 (Wed, 04 Feb 2009) | 9 lines
  
  When using a socket as a FILE *, the stdio functions will sometimes try to do
  an fseek() on the stream, which is an invalid operation for a socket.  Turning
  off buffering explicitly lets the stdio functions know they cannot do this,
  thus avoiding a potential error.
  (closes issue #14400)
   Reported by: fnordian
   Patches: 
         tcptls.patch uploaded by fnordian (license 110)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@173459 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-04 18:52:27 +00:00
Russell Bryant
29d0f3c655 Merged revisions 169620 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r169620 | russell | 2009-01-21 04:26:07 -0600 (Wed, 21 Jan 2009) | 10 lines

Fix a regression in TCP support.

This patch fixes a problem that caused chan_sip to think that every open TCP session
was to a remote address of 0.0.0.0:0.

(closes issue #14287)
Reported by: jamesgolovich
Patches:
      bug-14287.diff.txt uploaded by jamesgolovich (license 176)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@169622 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-21 10:29:25 +00:00
Terry Wilson
80bcb37636 Merged revisions 169080 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r169080 | twilson | 2009-01-16 19:56:36 -0600 (Fri, 16 Jan 2009) | 8 lines
  
  Fix qualify for TCP peer
  
  (closes issue #14192)
  Reported by: pabelanger
  Patches: 
        asterisk-bug14192.diff.txt uploaded by jamesgolovich (license 176)
  Tested by: jamesgolovich
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@169082 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-01-17 01:59:37 +00:00
Russell Bryant
7129aba1a5 Merged revisions 163670 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r163670 | russell | 2008-12-12 12:45:03 -0600 (Fri, 12 Dec 2008) | 6 lines

Rename a number of tcptls_session variables.  There are no functional changes here.

The name "ser" was used in a lot of places.  However, it is a relic from when
the struct was a server_instance, not a session_instance.  It was renamed since
it represents both a server or client connection.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@163672 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-12 18:53:37 +00:00
Kevin P. Fleming
f0c712cf4b Merged revisions 151101 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
  r151101 | kpfleming | 2008-10-19 22:11:28 +0300 (Sun, 19 Oct 2008) | 13 lines
  
  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/branches/1.6.1@151135 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-19 19:33:42 +00:00
Brett Bryant
8d353eb15a Fix a crash in tcp and tls connections related to reference counts.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@123692 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-06-18 20:07:56 +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
Russell Bryant
8bbef5f996 Rename ast_tcptls_server_instance to session_instance, since this pertains to
server and client usage.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@108295 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-12 22:13:18 +00:00
Russell Bryant
96e04792bd add a destroy API call for a server instance
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@105804 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-04 22:28:03 +00:00
Russell Bryant
cc55483858 More public API name changes to use an appropriate ast_ prefix
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@105785 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-04 22:23:21 +00:00
Russell Bryant
efb1e30a38 Rename public object server_instance to ast_tcptls_server_instance
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@105773 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-03-04 22:15:18 +00:00
Mark Michelson
fe9821cc10 Get rid of any remaining ast_verbose calls in the code in favor of
ast_verb

(closes issue #11934)
Reported by: mvanbaak
Patches:
      20080205_astverb-2.diff.txt uploaded by mvanbaak (license 7)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@102525 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-02-05 23:00:15 +00:00
Russell Bryant
6100ec9e7d Fix tcptls build when openssl isn't installed
(closes issue #11813)
Reported by: tzafrir
Patches:
      asterisk-tcptls.diff.txt uploaded by jamesgolovich (license 176)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@99922 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-23 17:35:54 +00:00
Olle Johansson
865bb84432 Doxygen updates
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@99464 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-22 08:58:46 +00:00
Russell Bryant
b995c78c31 Merge changes from team/group/sip-tcptls
This set of changes introduces TCP and TLS support for chan_sip.  There are various
new options in configs/sip.conf.sample that are used to enable these features.  Also,
there is a document, doc/siptls.txt that describes some things in more detail.

This code was implemented by Brett Bryant and James Golovich.  It was reviewed
by Joshua Colp and myself.  A number of other people participated in the testing
of this code, but since it was done outside of the bug tracker, I do not have their
names.  If you were one of them, thanks a lot for the help!

(closes issue #4903, but with completely different code that what exists there.)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@99085 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-01-18 22:04:33 +00:00