Commit Graph

738 Commits

Author SHA1 Message Date
Travis Cross 92e2caf86b Rework handling of Linux TCP keepalives in Sofia
This separates out the Linux socket TCP keepalive timeout interval
from Sofia's internal mechanisms.  Earlier we tied these together.  In
retrospect this seems improper.

These two values can now be set separately.

You might, for example, want to keep the Sofia internal mechanism
disabled completely while enabling the platform-based mechanism if
your platform supports it.

We also here reform the default value of the socket TCP keepalive
parameter to 30 seconds.

This is what commit 1bf17857c9 should
have been.

FS-6104
2014-02-11 06:39:50 +00:00
Travis Cross f7c4dd79f5 Add additional debugging output to keepalive handling 2014-02-11 06:34:43 +00:00
Travis Cross 01a4aeaaeb Synchronize Sofia and Linux TCP keepalive timeout units
Sofia keeps the TCP keepalive timeout in milliseconds, but Linux
expects the value in seconds.  Before this change, it's unlikely the
TCP_KEEPIDLE and TCP_KEEPINTVL calls were having much effect as we
would have been passing them a huge value.

FS-6104
2014-02-11 06:34:40 +00:00
Travis Cross e2639e1d4d Add ifdefs around TLS v1.1 and v1.2 handling
This is needed to support squeeze for awhile longer.
2014-02-10 04:09:52 +00:00
Travis Cross d1e40b088a Add OpenSSL version check around ECDH
...we'll try to support ancient OpenSSL versions on v1.2 for awhile
longer.
2014-02-09 22:33:52 +00:00
Travis Cross 1398975622 Add support for EECDH to Sofia-SIP
This adds support for the ephemeral elliptic curve Diffie-Hellman key
exchange, which provides for forward secrecy in the event that
long-term keys are compromised.

For the moment, we've hard-coded the curve as prime256v1.
2014-02-09 20:13:44 +00:00
Travis Cross 25c65d52c5 Allow setting TLS cipher suites through Sofia-SIP API
Previously there was no way to override the hard-coded cipher suite
specification of "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH".

This commit does leave in place the hardcoded cipher spec for WebRTC
of "HIGH:!DSS:!aNULL@STRENGTH".
2014-02-06 06:04:32 +00:00
Travis Cross 7f772b2601 Allow setting enabled TLS versions in Sofia-SIP
Previously if the TPTAG_TLS_VERSION was set to a non-zero value we
supported only TLSv1 (but not TLSv1.1 or TLSv1.2), and if was set to
zero we supported all versions of TLS and SSL (including the
ridiculous SSLv2).

Now we take an integer field where various bits can be set indicating
which versions of TLS we would like to support.
2014-02-06 02:45:50 +00:00
Anthony Minessale a6cd8c5cc5 FS-6150 --resolve cool find 2014-01-27 06:57:21 +05:00
Travis Cross 1bf17857c9 Handle Linux TCP keepalives better in Sofia
Sofia accepts a value for the TCP keepalive timeout interval via
TPTAG_KEEPALIVE, however it fails to use this value for the Linux
keepalive socket options TCP_KEEPIDLE and TCP_KEEPINTVL.  In fact, on
Linux it enables the sending of TCP keepalives even if tpp_keepalive
is set to zero which would disable Sofia's internal keepalive
mechanisms.  Sofia then uses a hard coded value of 30 seconds for
these keepalive intervals which affects battery life on mobile
devices.

With this commit we harmonize the sending of TCP keepalives on Linux
with other platforms by using the value from TPTAG_KEEPALIVE and not
enabling the sending of TCP keepalives at all if the value of the
parameter is zero.

FS-6104 --resolve
2014-01-18 15:49:01 +00:00
Jeff Lenk 3687892e91 FS-6010 VS2013 build changes 2013-12-21 16:50:09 -06:00
Anthony Minessale 76f30ae090 FS-6005 --resolve
Conflicts:
	libs/sofia-sip/.update
2013-11-27 21:21:45 +05:00
Anthony Minessale 9764fb33cd FS-5855 please try lastest HEAD
Conflicts:
	libs/sofia-sip/.update
2013-10-08 23:05:45 +05:00
Michael Jerris 2f556d4802 FS-5819: don't assigne variable to itself 2013-09-30 13:29:04 -04:00
Chris Rienzo 5c9479db1c FS-5819 fix typo 2013-09-27 22:24:21 -04:00
Michael Jerris 4dcb448d10 FS-5819: fix bounds check on enum type 2013-09-27 21:27:52 -04:00
Michael Jerris d732c855cc FS-5819: fix useless assignment in sofia 2013-09-27 12:40:13 -04:00
Anthony Minessale c6dd7b8fe4 ignore a= lines when m= port is 0
Conflicts:
	libs/sofia-sip/.update
2013-09-20 00:39:34 +05:00
Brian West 2645113465 similar fix to 53d17a1312 2013-09-12 16:57:19 -05:00
Anthony Minessale 439e582dc6 FS-5780 --resolve
Conflicts:
	libs/sofia-sip/.update
2013-09-12 00:11:06 +05:00
Anthony Minessale 795498da83 FS-5714 --resolve
Conflicts:
	libs/sofia-sip/.update
2013-09-05 20:56:51 +05:00
Anthony Minessale b9c3dc071a FS-5714 --resolve That is probably the right place 2013-09-05 20:39:58 +05:00
Anthony Minessale c0e75741b0 FS-5641 --resolve 2013-07-29 16:07:14 -05:00
Jeff Lenk 5e2f808de6 FS-5527 fix compiler error windows
(cherry picked from commit a52a604fbb)
2013-06-28 11:10:58 -05:00
Anthony Minessale 74740cca5f FS-5527 --resolve
Conflicts:
	libs/sofia-sip/.update
	libs/sofia-sip/libsofia-sip-ua/nta/nta.c
2013-06-28 10:45:33 -05:00
Anthony Minessale 9a67ce5c1a fix gcc bug patch
Conflicts:
	libs/sofia-sip/.update
2013-06-20 10:52:10 -05:00
Anthony Minessale adf61e4bf5 newer gcc does not like when you use out of bounds array indexes to access other elements in a struct (at least at -O2) 2013-06-20 10:17:17 -05:00
Anthony Minessale 4ea6369d1d disable dialog matching for subscribe reqs so it always uses a new handle to avoid conflicting with notify transactions 2013-06-12 23:46:52 -05:00
Brian West 83c6f4250b add kirk wireless servers to safe as they do not do rport 2013-05-31 11:56:53 -05:00
Anthony Minessale d7e107a46a add tcp keepalive where possible 2013-04-25 12:15:30 -05:00
Anthony Minessale 03f9daf002 remember to file your tps reports 2013-04-24 15:52:10 -05:00
Anthony Minessale 31f294e417 FS-5343 --resolve
Conflicts:
	libs/sofia-sip/.update
2013-04-24 12:11:02 -05:00
Anthony Minessale 9b11dbe4b9 FS-4452 --resolve 2013-03-06 12:58:30 -06:00
Ken Rice c35a41e4ca FS-3772 --resolve please no vanity comments 2013-03-01 15:48:48 -06:00
Anthony Minessale 45d849ab74 FS-5095 --resolve all boils down to uninitialized vars grrr 2013-02-19 13:11:50 -06:00
Anthony Minessale 1c9a10162f FS-5068 --resolve this was an edge case assert in a DNS error. You may want to check that you have valid DNS servers but this should stop the crash 2013-01-31 13:53:50 -06:00
Anthony Minessale f0bf3b917d FS-5047 --resolve This seems to be a problem in libsofia, this should fix it. 2013-01-30 17:20:19 -06:00
Michael Jerris 63deed9fc9 fix double-destroy seg 2013-01-14 12:02:28 -05:00
Michael Jerris 41b2ce51d2 add support for RTP/SAVPF to sofia stack 2013-01-14 08:31:10 -05:00
Anthony Minessale 8e78ca69e5 add some missing macros to typically disabled stun code 2012-12-07 08:42:54 -06:00
Anthony Minessale 18f20e24bf fix bad return vals on sending messages when under stress 2012-11-13 17:56:31 -06:00
Anthony Minessale e8f3e42f8b FS-4779 try this patch 2012-11-08 09:52:20 -06:00
Anthony Minessale 6627dc8696 fix some contention issues under really high load...That doesn't mean you need to push it this hard and bug me about it =p 2012-11-07 14:53:16 -06:00
Anthony Minessale e884de5b07 add NUTAG_RETRY_AFTER_ENABLE() tag to lib sofia and use it in mod_sofia to disable processing retry-after headers on a per-call basis 2012-11-02 13:54:54 -05:00
Seven Du 3ef548eeb5 fix compile, please review 2012-10-27 08:24:01 +08:00
Anthony Minessale 63e2044a7e modify sofia debug code to print file, line numbers and function name 2012-10-26 14:15:14 -05:00
Anthony Minessale 5f469ad2bd FS-4753 --resolve this should properly detect it everywhere 2012-10-23 13:14:51 -04:00
Seven Du 0263ce9247 FS-4695 fix apple build, seems there's no pthread_setschedprio on Mac, not sure if windows has the same problem in apr/threadproc/unix/thread.c 2012-10-08 09:03:34 +08:00
Jeff Lenk 5620d6d063 windows fixes for priority - needs to be revisited when apr and pthread versions support calls. 2012-10-01 20:34:15 -05:00
Anthony Minessale 0f477d1586 increase pri in sofia 2012-10-01 12:25:10 -05:00