Merge remote branch 'origin/andrei/tcp_tls_changes'
authorAndrei Pelinescu-Onciul <andrei@iptel.org>
Mon, 16 Aug 2010 00:18:57 +0000 (02:18 +0200)
committerAndrei Pelinescu-Onciul <andrei@iptel.org>
Mon, 16 Aug 2010 00:18:57 +0000 (02:18 +0200)
Asynchronous TLS support and various TCP and io_wait fixes
(especially on BSDs).

* origin/andrei/tcp_tls_changes: (67 commits)
  tls: fix partial write on write-wants-read queue flush
  tls: more config vars displayed by the tls.options RPC
  tls: fix trailing space in new modparams
  tls: verbose debugging for SSL_ERROR_WANT_WRITE
  tls: add lib64 to LIBS path
  tls: doc - notes about enabling debugging
  tls: added debug log level modparam
  tls: modparams for ct write queue params
  tls: doc - new & async related config options
  tls: no tls_bio debugging by default
  tls: change read_ahead, buffers and freelist defaults
  tcp: verbose and safer close()
  tls: enable PARTIAL_WRITE by default
  tls: partial SSL_write support when reading (tls_read_f)
  tls: don't report SSL protocol errors as bugs
  tls: more consistent low memory checking
  io_wait: kqueue: use the entire array during too many errors fallback
  tcp: fix dispatching closed connections to tcp readers
  tcp: more complete error messages
  tls: support for partial encoding and reseting send_flags
  tcp: support for tls partial encoding
  tls: update & fix repeated send & delayed send
  tcp: change tls send callback interface
  tsend: s/char*/const char*/ in function params.
  tls: very verbose debug logging
  tls: fix tls_send out-of-mem on new connection
  tcp: force eof after read if write side hangup
  tcp: don't reset read_flags on RD_CONN_REPEAT_READ
  tls: deal with internal openssl buffering
  tls: fix initial state error handling
  tcp: more consistent IO_FD_CLOSING usage
  io_wait: kqueue: use a bigger array
  io_wait: kqueue: handle ENOENT and more robust error handling
  io_wait: fix kqueue io_wait_add & POLLIN
  io_wait: don't update FD watched status on error
  io_wait: fix kqueue and too many errors in changelist
  io_wait: fix: check for EV_ERROR for kqueue()
  tcp: fix fd passing bug
  tls: config option for sending close notify alerts
  tls: SSL_shutdown() only fully established connections
  tls: ssl_flush() fix and re-worked error reporting
  tls: tls.list rpc:  fix timeout & ip display
  tls: fix queue accounting
  tls: rpc: tls.list and tls.options update
  tls: config options for the internal queues
  tls: fix wrong wbio usage
  tls: fix empty files treatment
  tls: added tls.options rpc
  tls: migrated to the runtime cfg framework
  db_flatstore: updated get_abs_pathname use
  core: get_abs_pathname() uses now pkg_malloc()
  core: str.h - s/NULL/0/
  tls: doc - removed handshake_timeout and send_timeout
  tls: removed handshake_timeout and send_timeout
  tls: s/tls_cfg/tls_domains_cfg
  tls: added tls_info rpc
  tls: fix unregistered rpc commands
  tls: async support (major tls core rewrite)
  tls: tls_bio ctrl cmd support, fixes and debug
  tls: clear text write queue implementation
  tls: added a minimum overhead shm buffer queue
  tls: safer destroy_cfg
  tcp: new tls hooks interface and async tls changes
  tls: added custom memory based bio
  tcp: minor cleanups & spelling
  tcp: tcp_send() split in 3 smaller functions
  tcp: comments & new internal command

1  2 
NEWS
io_wait.c
tcp_read.c
ut.c

diff --cc NEWS
--- 1/NEWS
--- 2/NEWS
+++ b/NEWS
@@@ -6,34 -6,7 +6,35 @@@ $Id
  sip-router 3.1 chages
  
  core:
 +  - Dragonfly BSD support
 +  - statistics / counters support for tcp and sctp (enable by default)
 +  - statistics / counters api
 +  - networks addresses support in ip comparisons (src_ip, dst_ip, to_ip)
 +    with strings or rvalue expressions.
 +    E.g.: $ip=10.0.0.0;  if (src_ip == $ip +"/8") ....
 +  - lots of module functions automatically support now expressions or
 +      variables in function parameters. This applies to all the module
 +      functions declared without a fixup, with a fixup and the corresponding
 +      free_fixup function or with a compatible ser or kamailio style standard
 +      fixup (declared in sr_module.h or mod_fix.h).
 +      E.g.: f($a, "b = " + $b);  t_set_fr($v + 2 + $x).
 +            t_set_fr($foo) (equivalent now with t_set_fr("$foo")).
 +  - all the module functions can now be called with any constant expression
 +      as parameters. E.g.: f("7 *" +" 6 = " + 7 * 6);
 +  - major performance increase on Linux multi-cpu machines that send a lot
 +     of UDP IPv4 packets (40-50% faster in stateless mode). For it to work
 +     udp4_raw must be enabled or set into auto mode in sr.cfg and sr must be
 +     started as root or with CAP_NET_RAW. Note that even if udp4_raw is
 +     off (default), if sr was started with enough privileges, it can be
 +     enabled at runtime.
 +     The support for using raw sockets is also available on FreeBSD (compiled
 +     by default but not tested for performance yet), NetBSD, OpenBSD and
 +     Darwin (not tested and not compiled by default, needs
 +     make cfg extra_defs=-DUSE_RAW_SOCKS). To check if the support is
 +     compiled, use ser -V |grep --color RAW_SOCKS or for a running
 +     ser: sercmd core.udp4_raw_info.
 +     See udp4_raw, udp4_raw_mtu and udp4_raw_ttl below.
+   - asynchronous TLS support
    - onreply_route {...} is now equivalent with onreply_route[0] {...}
    - global, per protocol blacklist ignore masks (via extended send_flags).
      See dst_blacklist_udp_imask a.s.o (dst_blacklist_*_imask).
diff --cc io_wait.c
Simple merge
diff --cc tcp_read.c
Simple merge
diff --cc ut.c
--- 1/ut.c
--- 2/ut.c
+++ b/ut.c
   */
  
  
- /** various general purpose/helper functions.
-  * @file
 -/** various utility functions.
++/** various general purpose/utility functions.
+  * @file ut.c
   * @ingroup core
-- * Module: @ref core
++ * Module: core
   */
  
  #include <sys/types.h>