Commit Graph

1079 Commits

Author SHA1 Message Date
William King 16f7177c3d resolve an automake warning about subdirs on latest automake
The file 'libs/sofia-sip/s2check/exit77.c' was moved in order to
silence the warning and to keep the build working. There might be a
build problem that results from this file move, but after serveral
build tests I have not found one. The contents of the file are
specifically for the make check target, so I believe it would be
highly unlikely to cause problems with any production feature.

FS-7122 #resolve
2015-01-07 11:30:41 -08:00
Mike Jerris 10c961e65e Merge pull request #155 in FS/freeswitch from bugfix/FS-7122-several-libs-do-not-have-the-subdirs to master
* commit '51f2442a9e3e3478b38bfab882c7cfe4bfc37d92':
  resolve an automake warning about subdirs on latest automake
2015-01-07 12:16:29 -06:00
Anthony Minessale 19a0a0fb00 sofia rebuild 2015-01-07 17:18:21 -06:00
Anthony Minessale 5187aaed79 FS-7117 #comment revert bf5210bf72 and implement it in ws.c please be sure to learn to use git commit hooks to properly associate commits with jiras 2015-01-07 17:17:28 -06:00
William King 51f2442a9e resolve an automake warning about subdirs on latest automake
Latest automake will detect then warn if the Makefile uses source
files that are in subdirectories, but the subdirs option is not
set. In the FreeSWITCH build system the current expected behavior is
to expect the subdirs option to be enabled.

FS-7122 #resolve
2015-01-07 10:04:29 -08:00
Anthony Minessale 7c0c3ab8a6 sofia rebuild 2015-01-07 02:12:48 -06:00
Anthony Minessale 6c1bc0e2f6 sync ws code 2015-01-07 02:12:29 -06:00
Jeff Lenk 357ffad817 fix windows build error 2014-12-15 13:37:07 -06:00
Michael Jerris 19272dc5e2 FS-7078: fix sip_header_as_string to properly null_terminate on larger header strings 2014-12-12 10:25:49 -06:00
Anthony Minessale 87a4670d16 FS-6890 #comment please test 2014-11-12 13:09:39 -06:00
Anthony Minessale 46e74e5853 revert 831832c2c6 2014-11-05 09:26:44 -06:00
Anthony Minessale 831832c2c6 FS-6890 #please test 2014-11-04 18:31:44 -06:00
Brian West 32a9ff3d39 Merge pull request #60 in FS/freeswitch from ~SJTHOMASON/freeswitch:FS-6823 to master
* commit 'afb00b2ecc8a9b049801f3f475c80e1111070fa8':
  Force rport on ADTRAN TA Devices
2014-11-04 07:36:36 -06:00
Anthony Minessale 7ca4ac566c FS-5949 FS-6945 #comment this change should be relevant to both of these issues, please test. This patch improves the hold parsing and ignores connection address of 0 implying hold when ice is present and disables the auto interpretation by the lower level stack of 0.0.0.0 to automatically imply sendonly to allow FS to decide on its own 2014-10-31 13:49:39 -05:00
Jeff Lenk 3c1ad1f014 Merge pull request #66 in FS/freeswitch from ~STEFANO.PICERNO/freeswitch:windows-wait-fix to master
* commit '4c9d9301b0f19b1750d567ce62142a572b163944':
  Workaround for Windows limit in su_wait
2014-10-29 11:04:00 -05:00
Anthony Minessale 59352005d0 force sofia rebuild 2014-10-13 18:28:44 -05:00
Spencer Thomason afb00b2ecc Force rport on ADTRAN TA Devices
ADTRAN Total Access devices do not support sending the rport parameter in
the Via header. This allows us to detect the device and force rport when
using the "safe" parameter, enabling the device to be used behind NAT.

FS-6823 #resolve
2014-10-02 13:09:15 -07:00
Anthony Minessale 35aeae0170 FS-6822 #comment The code in question appears to have been added by me (18f20e24). I think this patch is the correct solution. 2014-10-01 18:11:01 -05:00
Anthony Minessale 0150c862a2 FS-6854 #comment try this patch 2014-09-30 20:35:19 +05:00
Brian West 7c89c21153 FS-6860 #resolve this was fixed once but was lost in the last sync 2014-09-26 09:00:09 -05:00
Anthony Minessale f7de058acd FS-6854 #resolve 2014-09-25 21:44:02 +05:00
Anthony Minessale 9e72c8477f fix possible buffer overrun in websocket uri and sync the ws.c between sofia and verto (missing code from last commit) 2014-09-24 01:09:44 +05:00
Anthony Minessale 59e71341db fix possible buffer overrun in websocket uri and sync the ws.c between sofia and verto 2014-09-23 20:17:20 +05:00
Stefano Picerno 4c9d9301b0 Workaround for Windows limit in su_wait
Windows has a 64 descriptor limit in WSAWaitForMultipleEvents system call.
Implemented some custom login in su_wait to work around this limitation.
Changed SU_WAIT_MAX from 64 to 0x7fffffff, like on other plaftorms.
2014-09-23 13:09:57 +02:00
Travis Cross 3c32dd3bc9 Return NULL from `sub_alloc` for zero size
When zero was passed for the size to `sub_alloc`, we were passing this
size on to `malloc` or `calloc`, which is unusual enough that static
analyzers warn about this (POSIX says that either NULL or a pointer
will be returned).

We'll instead just return NULL right away.
2014-08-22 02:47:04 +00:00
Jeff Lenk 571cf932dc fix VS2010 build warning 2014-08-16 18:22:41 -05:00
Anthony Minessale cbe0bc05d0 force sofia rebuild 2014-08-16 01:34:30 +05:00
Anthony Minessale 24413bfa11 copy changes from verto ws.c to sofia 2014-08-16 00:43:25 +05:00
Anthony Minessale 2411550727 add homer capture line to websocket transport 2014-08-11 21:02:25 +05:00
Travis Cross 8414c498cf Fix line endings per .gitattributes 2014-08-08 15:24:42 +00:00
Brian West 327146cecf Fix WS Compile on MSVC2012 2014-07-25 11:34:08 -05:00
Anthony Minessale 6c80281ce9 buffer websocket headers and body before sending to avoid fragmentation 2014-07-17 01:07:57 +05:00
Anthony Minessale b53ba668fa rebuild 2014-07-12 04:39:56 +05:00
Anthony Minessale cc75547672 merge ws.c change to sofia 2014-07-12 04:39:41 +05:00
Brian West d2a487dce3 date would have done the same thing 2014-06-18 08:58:49 -05:00
Brian West fb92ebc8f2 FS-5223 and FS-6603, don't trust docs... sheesh 2014-06-18 08:33:57 -05:00
Brian West 311889634b FS-5223 FS-6603 on platforms that have SO_REUSEPORT it also implies SO_REUSEADDR, On platforms that only have SO_REUSEADDR it seems to imply both in the absence of SO_REUSEPORT. 2014-06-17 21:15:02 -05:00
Anthony Minessale 0685027bd8 FS-6574 --resolve 2014-06-09 14:29:08 -04:00
Michael Jerris b5a223cd1b CID:1215201 Explicit null dereferenced 2014-05-22 15:39:59 +00:00
Anthony Minessale f0aa0fc1d8 seek chain cert from wss.pem just cat together the cert, the key and the chain cert into wss.pem 2014-05-20 23:18:38 +05:00
Michael Jerris 77bddb9f9c FS-6538: silence gcc 4.9 throwing incorrect warning 2014-05-20 15:46:46 +00:00
Anthony Minessale af6c4b00b7 force sofia rebuild 2014-05-20 20:29:17 +05:00
Michael Jerris f683ac2165 FS-6533: --resolve fix gcc 4.9 warning due to useless right-hand operand of comma expression 2014-05-19 10:36:02 -05:00
Anthony Minessale 88ce7dae1c minor tweak to make ws code work in blocking mode properly when used outside sofia 2014-05-07 06:13:27 +05:00
Natanael Copa 317f4b1442 Fix building with musl libc
POSIX says poll.h and signal.h should not be prefixed with sys/ (ie
poll.h instead of sys/poll.h)

limits.h also defines a TZNAME_MAX so we change name of the define for
spandsp.
2014-05-02 11:20:36 -04:00
Michael Jerris 906467b360 fix log message on sending tport ping over ws to log error in failure cases 2014-05-01 14:20:27 -04:00
Michael Jerris cfd8d28bc8 silence clang unused function warnings and get rid of some unused functions 2014-05-01 09:03:19 -04:00
Michael Jerris fc25bbc23c remove unused function 2014-05-01 08:32:23 -04:00
Michael Jerris b55ba90def fix 2 potential use after free errors 2014-05-01 08:30:52 -04:00
Anthony Minessale 2cdae46b19 FS-6476 regression where sock would sometimes drop while reading logical frames 2014-04-29 18:25:05 -04:00
Anthony Minessale 61e22e8b50 FS-6476 --resolve 2014-04-22 23:25:41 +05:00
Anthony Minessale cbd20d8a05 update 2014-04-17 04:33:02 +05:00
Anthony Minessale bce51017fb FS-6462 --resolve
I found a problem here but it may not completely match your expectations.
I reviewed the RFC 4028 and checked against the code and I discovered we should not be putting a Min-SE in any response at all besides a 422:

section 5:

   The Min-SE header field MUST NOT be used in responses except for
   those with a 422 response code.  It indicates the minimum value of
   the session interval that the server is willing to accept.

I corrected this problem and implemented the 422 response so if you request a value lower than the minimum specified for the profile.
If the value is equal or higher to the minimum, it will be reflected in the Session-Expires header in the response and no Min-SE will be present.
2014-04-17 04:26:43 +05:00
Anthony Minessale 01254eaa5c force sofia rebuild 2014-04-04 13:42:49 -05:00
Anthony Minessale 180282cd9a FS-6287 2014-04-04 13:42:13 -05:00
Anthony Minessale 7ea4acaece FS-6426 --resolve 2014-04-03 23:25:48 +05:00
Michael Jerris f50f04be51 FS-6356: --resolve fix assert when you set the time > 15 days in the future during operation while things are in queue to be processeed 2014-03-28 14:33:47 -04:00
Brian West 74ab9515a4 FS-6294 DragonFly requires this also. 2014-03-21 11:14:15 -05:00
Brian West 16577339be FS-6387 don't fail if your openssl package has been compiled without EC support...LOOKING AT YOU GENTOO 2014-03-20 08:07:53 -05:00
Brian West c4c0f38aab FS-6294 FS-6308 NetBSD support should work test and report back please. 2014-03-19 14:34:07 -05:00
Brian West c210510c15 FS-6375 bump sofia so it rebuilds 2014-03-18 17:44:05 -05:00
Brian West f6d9027282 FS-6375 ifdef for sun in this case 2014-03-18 17:43:46 -05:00
Anthony Minessale 240f5d984f force sofia rebuild 2014-03-17 16:18:24 -05:00
Anthony Minessale bd1492e43e FS-6287 --resolve 2014-03-17 16:16:42 -05:00
Anthony Minessale 1d28639cac revert revert 2014-03-17 16:15:59 -05:00
Brian West be1efcc1fa Revert 6e818216e2, from FS-6287 as it breaks challenge to invites we don't come back and respond 2014-03-17 15:03:08 -05:00
Michael Jerris 340b697e1b FS-6341: --resolve add 3pcc invite w/o sdp support for 100rel/PRACK 2014-03-17 12:27:42 -04:00
Travis Cross 19fc943f59 Mitigate the CRIME TLS flaw
If an attacker can cause a device to make an authenticated request to
a service via TLS while including a payload of the attacker's choice
in that request, and if TLS compression is enabled, the attacker can
uncover the plaintext authentication information by making a series of
guesses and observing changes in the length of the ciphertext.

This is CVE-2012-4929.

FS-6360 --resolve

Thanks-to: Brian West <brian@freeswitch.org>
2014-03-16 16:24:58 +00:00
Anthony Minessale 6a1d552430 force sofia update 2014-03-14 12:27:25 -05:00
Anthony Minessale 6e818216e2 FS-6287 --resolve When a broken registrar sends a 401 unauth then replies with a subsequent 401 unauth without the stale=true attribute, sofia tries to invalidate the auth handle and get stuck in a state where it cannot recover until the reg handle is destroyed. In this case, the provider in question has a bug on thier end when the nonce count rolls from nc=000000ff to nc=00000100 they start sending several consecitive 401 rather than a 401 with stale=true or a 403. This change will allow it to reset properly and try again with nc=00000001 on the next try. 2014-03-14 12:25:48 -05:00
Anthony Minessale 9fd30a2cd9 FS-6339 --resolve 2014-03-11 18:16:23 -05:00
Michael Jerris 2513388d8a clean up some bootstrap warnings 2014-03-07 18:36:26 -05:00
Travis Cross 1990d10057 Reword the websocket TLS cipher list
This generates an identical list of cipher suites, but this commit
restates the cipher spec to be more similar to the way we state it
elsewhere.
2014-03-05 21:37:30 +00:00
Travis Cross 6a3dcc9e0f Drop null-auth suites from our default TLS cipher list
Previously we disallowed anonymous Diffie-Hellman, but there are other
kinds of null-authentication TLS suites.  In particular, disallowing
AECDH is important now that we support elliptic-curve Diffie-Hellman.
2014-03-05 21:37:30 +00:00
Anthony Minessale 4cf14bce50 FS-5814 2014-03-06 00:31:10 +05:00
Anthony Minessale fe2a4bfa53 FS-5814 2014-03-05 13:12:02 -06:00
Anthony Minessale 5dbdbda0e7 force sofia rebuild 2014-03-06 00:03:20 +05:00
Anthony Minessale 7cb91467e0 FS-5814 --resolve 2014-03-06 00:02:40 +05:00
Anthony Minessale 066de4b378 Port commit from gitorious copy of sofia-sip our code now differs but this issue would still be a concern for OS X
commit ee51fa4e2993ab71339e29691aec8b924c810c53
Author: Frode Isaksen <frode.isaksen@bewan.com>
Date:   Thu Aug 18 16:40:58 2011 +0300

    su: fix su_time() on 64-bit OS X

        The field tv_sec in struct timeval is 64bits instead of 32bits as in
	    su_time_t, so you cannot cast su_time_t to struct timeval.
2014-03-05 10:25:39 -06:00
Travis Cross d5760e0d6a Show TLS cipher suite selected in sofia debug
This shows the cipher name, TLS version, the number of cipher bits and
algorithm bits, and a description of the cipher in Sofia's debug
logging output on level 9.
2014-02-28 20:46:34 +00:00
Anthony Minessale 55901ae0f1 FS-6168 --resolve 2014-02-28 23:30:42 +05:00
Moises Silva 461f94870f Merge remote-tracking branch 'origin/master' into moy/tport-log-fix 2014-02-24 19:39:17 -05:00
Michael Jerris fdd4974189 bump 2014-02-21 16:38:46 -05:00
Travis Cross 2fe0516ac2 Fix missing/duplicate declaration
This looks like a copy/paste error.

FS-6037 --resolve

Thanks-to: David Sanders <dsanders@pinger.com>
2014-02-21 21:09:19 +00:00
Michael Jerris 0cebdf8fc5 fix types for reply to 2014-02-21 16:08:30 -05:00
Michael Jerris 63aea267bc change macro name to work around conflict in openbsd 2014-02-21 15:25:50 -05:00
Michael Jerris 19f9dc12d3 change macro name to work around conflict in openbsd 2014-02-21 15:24:44 -05:00
Travis Cross 3449e265a0 Force sofia rebuild
The rebuild is needed for commit d3b9aaba60.
2014-02-11 17:45:45 +00:00
Travis Cross 8b7d58ddf8 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 a0e9639a1f should
have been.

FS-6104
2014-02-11 06:27:20 +00:00
Travis Cross 2b064e6393 Add additional debugging output to keepalive handling 2014-02-11 05:40:41 +00:00
Travis Cross 3ae189ca3f 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 05:33:25 +00:00
Travis Cross f2d544d559 Rebuild sofia 2014-02-06 15:41:33 +00:00
Travis Cross a96eefe8ee 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-06 15:40:35 +00:00
Travis Cross c0101e2ce6 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:02 +00:00
Travis Cross e3b353e911 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:17:13 +00:00
Michael Jerris b6270f4d70 FS-6030: --resolve fix variable scoping issue for more aggressive optimizer 2014-02-05 08:46:04 -05:00
Anthony Minessale 0a3e18a308 FS-6174 --resolve after updating to this revision, put ca-bundle.crt in /usr/local/freeswitch/certs to get chain cert in place for both dtls and wss 2014-01-31 20:16:54 +05:00
Anthony Minessale 0e14b758fc FS-6150 --resolve cool find 2014-01-27 06:57:05 +05:00
Travis Cross a0e9639a1f 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:46:56 +00:00
Seven Du f5b18c0fdd FS-5642 --resolve add back the ETIMEDOUT check, needed on Mac 2013-12-13 11:46:14 +08:00