More updates from git
This commit is contained in:
		
							parent
							
								
									f33dcda578
								
							
						
					
					
						commit
						24424c5121
					
				| @ -1,3 +1,35 @@ | |||||||
|  | commit 30a0c230ae9b70c572060ad3037f68e102e4759a | ||||||
|  | Author: Olivier Crête <olivier.crete@collabora.com> | ||||||
|  | Date:   Mon Jun 6 18:31:22 2016 -0400 | ||||||
|  | 
 | ||||||
|  |     conncheck: Remove pairs before freeing candidate | ||||||
|  |      | ||||||
|  |     Remove the whole pair before the candidate is | ||||||
|  |     to be freed. | ||||||
|  |      | ||||||
|  |     https://phabricator.freedesktop.org/T7460 | ||||||
|  | 
 | ||||||
|  | commit 71f7ed3eda829c3dc6afe9ed013c0ab826a1aa40 | ||||||
|  | Author: Olivier Crête <olivier.crete@collabora.com> | ||||||
|  | Date:   Fri Feb 19 15:01:03 2016 -0500 | ||||||
|  | 
 | ||||||
|  |     stun timer: Do 7 retransmissions as recommended | ||||||
|  |      | ||||||
|  |     Also reduce the normal timeout to make the test bearable. | ||||||
|  |      | ||||||
|  |     This is what RFC 5389 section 7.2.1 | ||||||
|  |      | ||||||
|  |     Differential Revision: https://phabricator.freedesktop.org/D1056 | ||||||
|  |     Maniphest Task: https://phabricator.freedesktop.org/T3339 | ||||||
|  | 
 | ||||||
|  | commit dc1e1b7a1b258fb54ba582d2fe77ccd159c9fe88 | ||||||
|  | Author: Olivier Crête <olivier.crete@collabora.com> | ||||||
|  | Date:   Mon Jun 6 16:21:54 2016 -0400 | ||||||
|  | 
 | ||||||
|  |     timer: Maximum retransmission should include the original one | ||||||
|  |      | ||||||
|  |     We really care about the maximum transmissions, the first one counts. | ||||||
|  | 
 | ||||||
| commit fad72879fa4a0896c55ac6fc5f77f6c05e369a2b | commit fad72879fa4a0896c55ac6fc5f77f6c05e369a2b | ||||||
| Author: Olivier Crête <olivier.crete@collabora.com> | Author: Olivier Crête <olivier.crete@collabora.com> | ||||||
| Date:   Fri Jun 3 18:42:59 2016 -0400 | Date:   Fri Jun 3 18:42:59 2016 -0400 | ||||||
| @ -4669,7 +4701,7 @@ index 7ded710..6712794 100644 | |||||||
|   |   | ||||||
|  TurnServer * |  TurnServer * | ||||||
| diff --git a/agent/conncheck.c b/agent/conncheck.c
 | diff --git a/agent/conncheck.c b/agent/conncheck.c
 | ||||||
| index 057fc81..5cba478 100644
 | index 057fc81..7e03985 100644
 | ||||||
| --- a/agent/conncheck.c
 | --- a/agent/conncheck.c
 | ||||||
| +++ b/agent/conncheck.c
 | +++ b/agent/conncheck.c
 | ||||||
| @@ -61,18 +61,20 @@
 | @@ -61,18 +61,20 @@
 | ||||||
| @ -6310,8 +6342,14 @@ index 057fc81..5cba478 100644 | |||||||
|      NiceSocket *sock) |      NiceSocket *sock) | ||||||
|  { |  { | ||||||
|    GSList *l; |    GSList *l; | ||||||
| @@ -3379,7 +3675,8 @@ conn_check_prune_socket (NiceAgent *agent, Stream *stream, Component *component,
 | @@ -3375,14 +3671,20 @@ conn_check_prune_socket (NiceAgent *agent, Stream *stream, Component *component,
 | ||||||
|  |    } | ||||||
|  |   | ||||||
|  |    /* Prune from the candidate check pairs. */ | ||||||
|  | -  for (l = stream->conncheck_list; l != NULL; l = l->next) {
 | ||||||
|  | +  for (l = stream->conncheck_list; l != NULL;) {
 | ||||||
|      CandidateCheckPair *p = l->data; |      CandidateCheckPair *p = l->data; | ||||||
|  | +    GSList *next = l->next;
 | ||||||
|   |   | ||||||
|      if ((p->local != NULL && p->local->sockptr == sock) || |      if ((p->local != NULL && p->local->sockptr == sock) || | ||||||
| -        (p->remote != NULL && p->remote->sockptr == sock)) {
 | -        (p->remote != NULL && p->remote->sockptr == sock)) {
 | ||||||
| @ -6320,6 +6358,13 @@ index 057fc81..5cba478 100644 | |||||||
|        nice_debug ("Agent %p : Retransmissions failed, giving up on " |        nice_debug ("Agent %p : Retransmissions failed, giving up on " | ||||||
|            "connectivity check %p", agent, p); |            "connectivity check %p", agent, p); | ||||||
|        candidate_check_pair_fail (stream, agent, p); |        candidate_check_pair_fail (stream, agent, p); | ||||||
|  | +      conn_check_free_item (p);
 | ||||||
|  | +      stream->conncheck_list = g_slist_delete_link (stream->conncheck_list, l);
 | ||||||
|  |      } | ||||||
|  | +
 | ||||||
|  | +    l = next;
 | ||||||
|  |    } | ||||||
|  |  } | ||||||
| diff --git a/agent/conncheck.h b/agent/conncheck.h
 | diff --git a/agent/conncheck.h b/agent/conncheck.h
 | ||||||
| index e6c2c62..431c606 100644
 | index e6c2c62..431c606 100644
 | ||||||
| --- a/agent/conncheck.h
 | --- a/agent/conncheck.h
 | ||||||
| @ -9044,6 +9089,19 @@ index 9faa64b..558fe5e 100644 | |||||||
|      return STUN_MESSAGE_BUFFER_INVALID; // RTP or other non-STUN packet |      return STUN_MESSAGE_BUFFER_INVALID; // RTP or other non-STUN packet | ||||||
|    } |    } | ||||||
|   |   | ||||||
|  | diff --git a/stun/tests/test-bind.c b/stun/tests/test-bind.c
 | ||||||
|  | index 0c7646f..2cf4feb 100644
 | ||||||
|  | --- a/stun/tests/test-bind.c
 | ||||||
|  | +++ b/stun/tests/test-bind.c
 | ||||||
|  | @@ -438,7 +438,7 @@ static void keepalive (void)
 | ||||||
|  |   | ||||||
|  |  static void test (void (*func) (void), const char *name) | ||||||
|  |  { | ||||||
|  | -  alarm (20);
 | ||||||
|  | +  alarm (30);
 | ||||||
|  |   | ||||||
|  |    printf ("%s test... ", name); | ||||||
|  |    func (); | ||||||
| diff --git a/stun/tests/test-conncheck.c b/stun/tests/test-conncheck.c
 | diff --git a/stun/tests/test-conncheck.c b/stun/tests/test-conncheck.c
 | ||||||
| index 610d43a..92b947c 100644
 | index 610d43a..92b947c 100644
 | ||||||
| --- a/stun/tests/test-conncheck.c
 | --- a/stun/tests/test-conncheck.c
 | ||||||
| @ -9184,6 +9242,44 @@ index a628791..a7d0d19 100644 | |||||||
|    } |    } | ||||||
|   |   | ||||||
|    if (stun_agent_init_response (agent, msg, buf, len, req) == FALSE) { |    if (stun_agent_init_response (agent, msg, buf, len, req) == FALSE) { | ||||||
|  | diff --git a/stun/usages/timer.c b/stun/usages/timer.c
 | ||||||
|  | index 82f3ea2..2862ab8 100644
 | ||||||
|  | --- a/stun/usages/timer.c
 | ||||||
|  | +++ b/stun/usages/timer.c
 | ||||||
|  | @@ -104,7 +104,7 @@ void stun_timer_start (StunTimer *timer, unsigned int initial_timeout,
 | ||||||
|  |      unsigned int max_retransmissions) | ||||||
|  |  { | ||||||
|  |    stun_gettime (&timer->deadline); | ||||||
|  | -  timer->retransmissions = 0;
 | ||||||
|  | +  timer->retransmissions = 1;
 | ||||||
|  |    timer->delay = initial_timeout; | ||||||
|  |    timer->max_retransmissions = max_retransmissions; | ||||||
|  |    add_delay (&timer->deadline, timer->delay); | ||||||
|  | diff --git a/stun/usages/timer.h b/stun/usages/timer.h
 | ||||||
|  | index e6501cb..e74353b 100644
 | ||||||
|  | --- a/stun/usages/timer.h
 | ||||||
|  | +++ b/stun/usages/timer.h
 | ||||||
|  | @@ -130,15 +130,18 @@ struct stun_timer_s {
 | ||||||
|  |   * STUN_TIMER_DEFAULT_TIMEOUT: | ||||||
|  |   * | ||||||
|  |   * The default intial timeout to use for the timer | ||||||
|  | + * RFC recommendds 500, but it's ridiculous, 50ms is known to work in most
 | ||||||
|  | + * cases as it is also what is used by SIP style VoIP when sending A-Law and
 | ||||||
|  | + * mu-Law audio, so 200ms should be hyper safe.
 | ||||||
|  |   */ | ||||||
|  | -#define STUN_TIMER_DEFAULT_TIMEOUT 600
 | ||||||
|  | +#define STUN_TIMER_DEFAULT_TIMEOUT 200
 | ||||||
|  |   | ||||||
|  |  /** | ||||||
|  |   * STUN_TIMER_DEFAULT_MAX_RETRANSMISSIONS: | ||||||
|  |   * | ||||||
|  |   * The default maximum retransmissions allowed before a timer decides to timeout | ||||||
|  |   */ | ||||||
|  | -#define STUN_TIMER_DEFAULT_MAX_RETRANSMISSIONS 3
 | ||||||
|  | +#define STUN_TIMER_DEFAULT_MAX_RETRANSMISSIONS 7
 | ||||||
|  |   | ||||||
|  |  /** | ||||||
|  |   * STUN_TIMER_DEFAULT_RELIABLE_TIMEOUT: | ||||||
| diff --git a/stun/usages/turn.c b/stun/usages/turn.c
 | diff --git a/stun/usages/turn.c b/stun/usages/turn.c
 | ||||||
| index f242650..3b94959 100644
 | index f242650..3b94959 100644
 | ||||||
| --- a/stun/usages/turn.c
 | --- a/stun/usages/turn.c
 | ||||||
| @ -1,13 +1,13 @@ | |||||||
| Name:           libnice | Name:           libnice | ||||||
| Version:        0.1.13 | Version:        0.1.13 | ||||||
| Release:        5%{?dist} | Release:        6%{?dist} | ||||||
| Summary:        GLib ICE implementation | Summary:        GLib ICE implementation | ||||||
| 
 | 
 | ||||||
| Group:          System Environment/Libraries | Group:          System Environment/Libraries | ||||||
| License:        LGPLv2 and MPLv1.1 | License:        LGPLv2 and MPLv1.1 | ||||||
| URL:            http://nice.freedesktop.org/wiki/ | URL:            http://nice.freedesktop.org/wiki/ | ||||||
| Source0:        http://nice.freedesktop.org/releases/%{name}-%{version}.tar.gz | Source0:        http://nice.freedesktop.org/releases/%{name}-%{version}.tar.gz | ||||||
| Patch1:         libnice-0.1.13-20160606.patch | Patch1:         libnice-0.1.13-20160610.patch | ||||||
| 
 | 
 | ||||||
| BuildRequires:	glib2-devel | BuildRequires:	glib2-devel | ||||||
| BuildRequires:	gobject-introspection-devel | BuildRequires:	gobject-introspection-devel | ||||||
| @ -124,6 +124,9 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';' | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Fri Jun 10 2016 David Woodhouse <dwmw2@infradead.org> - 0.1.13-6 | ||||||
|  | - More updates from libnice git; use-after-free fixes | ||||||
|  | 
 | ||||||
| * Mon Jun 06 2016 David Woodhouse <dwmw2@infradead.org> - 0.1.13-5 | * Mon Jun 06 2016 David Woodhouse <dwmw2@infradead.org> - 0.1.13-5 | ||||||
| - Wholesale update to git HEAD, which fixes SIPE again. | - Wholesale update to git HEAD, which fixes SIPE again. | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user