Commit Graph
100 Commits
Author SHA1 Message Date
Joachim Bauch ec71f29fee Force HTTPS for backend connections in old-style configurations.
Prevents clients from sending a HTTP auth URL to trigger an insecure
connection from the signaling server to Nextcloud.
2021-07-07 09:16:59 +02:00
Joachim Bauch 2662d49017 Update changelog for 0.3.0 2021-07-01 09:24:52 +02:00
Joachim Bauch e40e86f32c Merge pull request #104 from strukturag/stream-selection-api
Add API to select a simulcast substream / temporal layer.
2021-07-01 08:54:11 +02:00
Joachim Bauch b091db000e Merge pull request #121 from strukturag/initial-virtual-flags
Notify new clients about flags of virtual sessions
2021-06-08 13:51:23 +02:00
Joachim Bauch 8a87a0d602 Add feature flag "simulcast". 2021-06-08 13:49:09 +02:00
Joachim Bauch 0a8ce3bda3 Add API to select a simulcast substream / temporal layer. 2021-06-08 13:49:08 +02:00
Joachim Bauch 9d2ad0f243 Notify new clients about current flags of virtual sessions. 2021-06-08 13:46:25 +02:00
Joachim Bauch 4d991725c3 Add method to get pending messages from testclient. 2021-06-08 13:45:58 +02:00
Joachim Bauch 6886bb9b53 Merge pull request #119 from strukturag/check-capabilities-v4api
Fetch capabilities to check if "v3" signaling API of Talk should be used.
2021-06-08 10:33:21 +02:00
Joachim Bauch 2bbc0a4d3c Fetch capabilities to check if "v3" signaling API of Talk should be used. 2021-06-08 10:23:27 +02:00
Joachim Bauch 60b11b1ba9 Don't start test until receiving goroutine is ready. 2021-06-08 09:44:53 +02:00
Joachim Bauch 6c72d3f2bc Merge pull request #116 from strukturag/dependabot/go_modules/github.com/nats-io/nats-server/v2-2.2.6
Bump github.com/nats-io/nats-server/v2 from 2.2.1 to 2.2.6
2021-06-08 09:38:43 +02:00
Joachim Bauch 35d3bf84e6 Merge pull request #115 from strukturag/test-improvements
Various test improvements
2021-06-08 09:27:05 +02:00
Joachim Bauch 7618bc683c Ignore room NATS messages that were sent before the room was joined.
Can happen mostly during tests (e.g. TestClientTakeoverRoomSession)
where the new client could receive the "leave" event that was sent
before it joined the room (but got delivered after joining).
2021-06-08 09:20:18 +02:00
Joachim Bauch 2628735431 Send close message when explicitly closing client. 2021-06-07 17:14:31 +02:00
Joachim Bauch 9a473b9bf1 Wait for close message to be processed in test client before closing. 2021-06-07 17:14:31 +02:00
Joachim Bauch 447fa9a279 Add "String" methods to ClientMessage/ServerMessage. 2021-06-07 16:53:26 +02:00
Joachim Bauch c8886d03c9 Simplify loopback NATS client.
Only use one goroutine per client instead of one per subscription.
This ensures that (like with the "real" client), all messages are
processed in order across different subscriptions.
2021-06-07 16:53:26 +02:00
Joachim Bauch fe95626f3b Support closing clients from message processor. 2021-06-07 15:15:50 +02:00
Joachim Bauch 618e7b085e Fix potential race condition when closing message channel. 2021-06-07 15:14:51 +02:00
Joachim Bauch 8bf4fb5675 Merge pull request #120 from strukturag/notify-multiple-waiters
Support multiple waiters for the same key.
2021-06-07 14:51:12 +02:00
Joachim Bauch 60a88b327b Support multiple waiters for the same key. 2021-06-07 14:36:52 +02:00
Joachim Bauch 7bdff5ddef Use subtests for testing with different values. 2021-06-07 10:44:25 +02:00
Joachim Bauch 04d315b0a4 Wait for any messages to be processed before stopping Hub in tests. 2021-06-07 10:37:56 +02:00
Joachim Bauch 3f19882612 No need to close NATS receiver channel.
Will be garbage collected once the room is removed and is not needed to
wakeup the reader (which is terminated in a "select" loop from the close
channel).
2021-06-07 10:29:50 +02:00
Joachim Bauch 2f4414561e No need to include trailing newline in log messages. 2021-06-04 16:42:17 +02:00
Joachim Bauch 9a921a6572 Merge pull request #111 from strukturag/async-client-processing
Make client message processing asynchronous.
2021-06-04 16:27:03 +02:00
Joachim Bauch 0b2df54343 Send hello response through session. 2021-06-04 15:46:22 +02:00
Joachim Bauch 6e54d8f4f4 Attempt to fix flaky tests. 2021-06-04 15:46:21 +02:00
Joachim Bauch 21f3f506d1 Send more responses through the session to handle disconnected / resuming clients. 2021-06-04 15:40:43 +02:00
Joachim Bauch 15d5c93b0b Support session resumption while a room is being joined.
If a client resumed a session while a (slow) backend request to join a room
was still active, the response could get lost.
2021-06-04 15:40:42 +02:00
Joachim Bauch b8b46264c1 Create messagechan for proxy clients. 2021-06-04 15:40:42 +02:00
Joachim Bauch 2b02a2f929 Make client message processing asynchronous.
This helps in detecting clients that disconnect while a backend request for
them is still active (e.g. joining a room).
2021-06-04 15:40:39 +02:00
Joachim Bauch 8f3db6da80 Merge pull request #105 from strukturag/nats-tests
Add tests for regular NATS client.
2021-06-04 15:39:44 +02:00
Joachim Bauch 1687c80122 Add more tests. 2021-06-04 15:30:55 +02:00
Joachim Bauch 762d1512c4 Remove unused "Request" method from NATS client. 2021-06-04 15:16:16 +02:00
Joachim Bauch 0d1c546355 Use buffered channel to receive read error. 2021-06-04 15:13:34 +02:00
Joachim Bauch c91b0de254 Add tests for regular NATS client. 2021-06-04 15:13:33 +02:00
Joachim Bauch 6fb57c7823 Merge pull request #114 from strukturag/janus-remove-nats
Remove NATS notifications for Janus publishers
2021-06-04 15:03:50 +02:00
Joachim Bauch 9b83993d48 Assume one Janus server is only used by one signaling server / -proxy.
With that, we can notify publisher events locally instead of through NATS
and can remove code that looks up publisher rooms by their ids on Janus.
2021-06-04 14:52:23 +02:00
Joachim Bauch d7bd809c54 Add class no notify named waiters. 2021-06-04 14:26:03 +02:00
Joachim Bauch f38ebdc518 Merge pull request #113 from strukturag/serialize-turn-credentials
Don't include TURN credentials in log message.
2021-06-01 08:30:10 +02:00
Joachim Bauch 5ed89af1eb Don't include TURN credentials in log message. 2021-06-01 08:24:48 +02:00
Joachim Bauch dcc32bd682 Merge pull request #112 from strukturag/ci-codeql
CI: Add CodeQL Analysis.
2021-05-31 17:13:16 +02:00
Joachim Bauch ca8ce625e4 CI: Add CodeQL Analysis. 2021-05-31 17:05:08 +02:00
Joachim Bauch 9919e5a7e6 Merge pull request #110 from strukturag/dependabot/github_actions/actions/cache-2.1.6
Bump actions/cache from 2.1.5 to 2.1.6
2021-05-31 12:30:27 +02:00
Joachim Bauch 52c1514978 Always use auth userid in ping requests.
Fixes issue introduced in 3a2adffab6 where some
ping requests were not evaluated correctly if a userid was given in the room
session data.
2021-05-19 16:24:15 +02:00
Joachim Bauch da5890a1c7 Merge pull request #108 from strukturag/dependabot/github_actions/actions/checkout-2.3.4
Bump actions/checkout from 2 to 2.3.4
2021-05-12 08:27:22 +02:00
Joachim Bauch 327597f768 Merge pull request #107 from strukturag/dependabot/github_actions/golangci/golangci-lint-action-2.5.2
Bump golangci/golangci-lint-action from 2 to 2.5.2
2021-05-12 08:27:03 +02:00
Joachim Bauch 87b8e3bfd2 Merge pull request #106 from strukturag/dependabot/github_actions/actions/cache-2.1.5
Bump actions/cache from 2 to 2.1.5
2021-05-12 08:26:47 +02:00
Joachim Bauch d432b0c1a9 Merge pull request #103 from strukturag/dependabot/github_actions/jandelgado/gcov2lcov-action-v1.0.8
Bump jandelgado/gcov2lcov-action from v1.0.2 to v1.0.8
2021-04-27 10:47:25 +02:00
Joachim Bauch 58cf21b63f Merge pull request #102 from strukturag/dependabot/github_actions/coverallsapp/github-action-v1.1.2
Bump coverallsapp/github-action from v1.1.1 to v1.1.2
2021-04-27 10:46:38 +02:00
Joachim Bauch e143ada50d Merge pull request #101 from strukturag/dependabot-actions
dependabot: check github actions for updates.
2021-04-27 09:05:12 +02:00
Joachim Bauch 1d12bfb107 dependabot: check github actions for updates. 2021-04-27 09:01:07 +02:00
Joachim Bauch 5d87df4b8e Return error if unknown hello session was received while waiting for joined events. 2021-04-27 08:48:36 +02:00
Joachim Bauch 9cf796640c Don't require certain order of own/other "joined" events. 2021-04-27 08:39:19 +02:00
Joachim Bauch 73acd90f2b Merge pull request #32 from strukturag/ci-golang-lint
CI: Also run golangci-lint
2021-04-26 17:36:42 +02:00
Joachim Bauch 929ac80b86 CI: Also run golangci-lint 2021-04-26 17:32:43 +02:00
Joachim Bauch 4298c082eb Merge pull request #100 from strukturag/lint-fixes
Fix various issues found by golangci-lint.
2021-04-26 17:32:16 +02:00
Joachim Bauch c8e4bfe007 Fix various issues found by golangci-lint. 2021-04-26 17:25:52 +02:00
Joachim Bauch e849dc8cbd Add coverage status badge. 2021-04-23 15:53:09 +02:00
Joachim Bauch 16c4cc14bf Merge pull request #34 from strukturag/ci-coverage
CI: Show coverage report.
2021-04-23 15:48:23 +02:00
Joachim Bauch a07d7e1305 Update flag name. 2021-04-23 15:36:11 +02:00
Joachim Bauch 0f12ec33f8 Pin version. 2021-04-23 15:36:11 +02:00
Joachim Bauch ba4e05ab68 CI: Show coverage report. 2021-04-23 15:36:09 +02:00
Joachim Bauch 0c53f10fd7 No need to manually close rooms in testing, will be done by hub on client disconnects. 2021-04-23 15:26:05 +02:00
Joachim Bauch 8052df4ef5 Wait for clients to be terminated before destroying hub in tests.
This should help with the flaky test failures on CI.
2021-04-23 15:12:09 +02:00
Joachim Bauch a5faca00cd Pass backend when fetching room for managing virtual sessions.
The internal room id is different depending on the backend.
2021-04-23 14:39:42 +02:00
Joachim Bauch d21ace3114 python3 is no longer needed for building since #29 has been merged. 2021-04-23 10:16:26 +02:00
Joachim Bauch cbeffdc8ed Don't include bin and vendor folders in Docker build context. 2021-04-23 10:14:10 +02:00
Joachim Bauch 3b8b6fbda6 Merge pull request #82 from schleiftier/master
fix(docs): update config example for Apache proxy config
2021-04-23 10:03:27 +02:00
Joachim Bauch f89584845b Merge pull request #76 from strukturag/bandwidth-proxy
Support defining maximum bandwidths at diferent levels.
2021-04-23 09:54:56 +02:00
Joachim Bauch 1ceb806c20 Support defining maximum bandwidths at diferent levels.
- Individually for each backend.
- For the proxy client (i.e. signaling server using cluster of proxies).
- For the proxy server / MCU.

The smallest bandwidth configured will be used, e.g. if a backend has a
larger limit than the MCU assigned for the stream, the limit of the MCU
server will be used.
2021-04-23 09:18:05 +02:00
Joachim Bauch e8012d99d0 Remove log entries about changed flags. 2021-04-22 14:23:06 +02:00
Joachim Bauch 3a2adffab6 Get userid from room session data if present. 2021-04-22 14:18:35 +02:00
Joachim Bauch 047e6655a1 Remove unnecessary assignments. 2021-04-21 14:12:11 +02:00
Joachim Bauch 0dd2e8a086 Remove remaining virtual sessions if client session is closed.
Previously any virtual sessions that have not been explicitly closed were
not removed from the backend if the client session was closed / expired.
2021-04-21 14:05:45 +02:00
Joachim Bauch d772e10fec Fix typo in JSON option. 2021-04-21 13:48:34 +02:00
Joachim Bauch 048b3b2f7d Merge pull request #96 from strukturag/cache-easyjson
make: Cache easyjson results.
2021-04-14 15:17:35 +02:00
Joachim Bauch b95a538e87 make: Cache easyjson results. 2021-04-14 15:11:39 +02:00
Joachim Bauch b6f20b20f2 Update to go.etcd.io/etcd 3.4.15 2021-04-14 15:00:39 +02:00
Joachim Bauch bccf2d5afd Remove deprecated github.com/gorilla/context 2021-04-14 14:23:53 +02:00
Joachim Bauch b32ef67692 Merge pull request #95 from strukturag/dependabot/go_modules/github.com/gorilla/websocket-1.4.2
Bump github.com/gorilla/websocket from 1.2.0 to 1.4.2
2021-04-14 14:21:36 +02:00
Joachim Bauch 2b4997ebfc Merge pull request #94 from strukturag/dependabot/go_modules/github.com/google/uuid-1.2.0
Bump github.com/google/uuid from 1.1.2 to 1.2.0
2021-04-14 11:08:55 +02:00
Joachim Bauch 8ad0396a93 Run "go mod tidy". 2021-04-14 11:00:31 +02:00
Joachim Bauch 09411714d0 Merge pull request #93 from strukturag/dependabot
Add dependabot integration.
2021-04-13 17:20:39 +02:00
Joachim Bauch 0cc37d88e6 Add dependabot integration. 2021-04-13 17:13:21 +02:00
Joachim Bauch fe4c02130c Merge pull request #91 from strukturag/update-maxminddb-golang
Update maxminddb-golang to 1.8.0
2021-04-13 17:05:15 +02:00
Joachim Bauch b29b98f320 Update maxminddb-golang to 1.8.0 2021-04-13 16:51:55 +02:00
Joachim Bauch e306ee6baf Merge pull request #92 from strukturag/update-nats.go
Update nats.go to 1.10.0
2021-04-13 16:51:25 +02:00
Joachim Bauch 9b0c4fab00 Update nats.go to 1.10.0 2021-04-13 16:47:28 +02:00
Joachim Bauch 2c126354a6 Merge pull request #90 from strukturag/remove-golang-x-net-context
Remove unnecessary dependency golang.org/x/net
2021-04-13 16:39:30 +02:00
Joachim Bauch 57deed0ce2 Remove unnecessary dependency golang.org/x/net 2021-04-13 16:35:32 +02:00
Joachim Bauch 7ee108c863 Merge pull request #89 from strukturag/update-gorilla-mux
Update gorilla/mux to 1.8.0
2021-04-13 16:34:33 +02:00
Joachim Bauch 87568ca891 Update gorilla/mux to 1.8.0 2021-04-13 16:22:30 +02:00
Joachim Bauch 2436d93aa2 Merge pull request #88 from strukturag/go-mod
Switch dependency tracking to Go modules.
2021-04-09 16:42:30 +02:00
Joachim Bauch 067af00d45 CI: Also test with golang 1.16 2021-04-09 16:35:10 +02:00
Joachim Bauch 8ba2e0ad64 Switch dependency tracking to Go modules.
With that bump minimum required version to Go 1.13.
2021-04-09 16:15:00 +02:00
Joachim Bauch eecb7d61dd Revert "CI: Also test with golang 1.16"
Needs changes to build steps first.

This reverts commit d8da0f43e3.
2021-04-08 15:36:38 +02:00
Joachim Bauch d8da0f43e3 CI: Also test with golang 1.16 2021-04-08 15:33:08 +02:00