refactor: Improve handshake resiliency of peer (#95)

* fix: Synchronize peer logging with a channel

We were depending on the close mutex to properly
report connection state. This ensures the RTC
connection is properly closed before returning.

* Disable pion logging

* Remove buffer

* Try ICE servers

* Remove flushed

* Add diagram explaining handshake

* Fix candidate accept ordering

* Add debug logging to peerbroker

* Fix send ordering

* Lock adding ICE candidate

* Add test for negotiating out of order

* Reduce connection to a single negotiation channel

* Improve test times by pre-installing Terraform

* Lock remote session description being applied

* Organize conn

* Revert to multi-channel setup

* Properly close ICE gatherer

* Improve comments

* Try removing buffered candidates

* Buffer local and remote messages

* Log dTLS transport state

* Add pion logging
This commit is contained in:
Kyle Carberry
2022-01-30 20:11:18 -06:00
committed by GitHub
parent a7d6f4b673
commit 9db5fb0952
14 changed files with 330 additions and 271 deletions
+7 -1
View File
@@ -148,11 +148,17 @@ jobs:
- run: go install gotest.tools/gotestsum@latest
- uses: hashicorp/setup-terraform@v1
if: runner.os == 'Linux'
with:
terraform_version: 1.1.2
terraform_wrapper: false
- name: Test with Mock Database
run:
gotestsum --jsonfile="gotests.json" --packages="./..." --
-covermode=atomic -coverprofile="gotests.coverage" -timeout=3m
-count=3 -race -parallel=2
-count=3 -race -short -parallel=2
- name: Test with PostgreSQL Database
if: runner.os == 'Linux'