Commit Graph
100 Commits
Author SHA1 Message Date
Joachim Bauch a9280f1b43 Merge pull request #301 from strukturag/sdp-v3
Update to github.com/pion/sdp v3.0.5
2022-07-27 16:25:49 +02:00
Joachim Bauch e54fcf9559 Update to github.com/pion/sdp v3.0.5 2022-07-27 16:18:45 +02:00
Joachim Bauch dcc583736a Merge pull request #297 from strukturag/dependabot/go_modules/google.golang.org/grpc-1.48.0
Bump google.golang.org/grpc from 1.47.0 to 1.48.0
2022-07-25 15:01:12 +02:00
Joachim Bauch 51fb410c28 Merge pull request #296 from strukturag/clustered-session-limit
Implement per-backend session limit for clusters.
2022-07-13 12:04:49 +02:00
Joachim Bauch deaa17acc5 Implement per-backend session limit for clusters. 2022-07-13 11:52:20 +02:00
Joachim Bauch 12a8fa98d0 Merge pull request #295 from strukturag/virtualsessions-tests
Add tests for virtual sessions.
2022-07-12 15:21:29 +02:00
Joachim Bauch 706a876fc3 Send initial user flags to internal sessions asynchronously. 2022-07-12 14:16:33 +02:00
Joachim Bauch 532587eb9f Don't log message as string twice in case of errors. 2022-07-12 13:31:40 +02:00
Joachim Bauch f0eb80b6fd Add tests for virtual sessions. 2022-07-12 12:10:01 +02:00
Joachim Bauch faf7544f2d Add methods to get recipient of control/message messages. 2022-07-12 12:10:00 +02:00
Joachim Bauch 4f84d3ad0d Fix accessing sender when checking received control messages. 2022-07-12 11:55:51 +02:00
Joachim Bauch 7d9970713d Add methods to send internal messages. 2022-07-12 11:55:26 +02:00
Joachim Bauch e101e74672 Fix sending messages to virtual sessions on different servers. 2022-07-12 11:54:41 +02:00
Joachim Bauch 6173a350a1 Add method to get virtual sessions of a client session. 2022-07-12 11:11:52 +02:00
Joachim Bauch 8ea6072de5 Set userid / userdata when removing virtual session in backend. 2022-07-12 11:11:19 +02:00
Joachim Bauch d2036fcbd6 Add unexpected messages to ignore list instead of returning error. 2022-07-12 10:10:15 +02:00
Joachim Bauch d1c5d785c8 Fix deadlock if virtual session leaves room. 2022-07-12 10:09:22 +02:00
Joachim Bauch 5fc61b15b6 Add more "String()" methods to help with debugging. 2022-07-12 10:07:23 +02:00
Joachim Bauch 13d2795b00 Merge pull request #294 from strukturag/synchronous-roomsession-disconnect
Disconnect sessions with the same room session id synchronously.
2022-07-11 10:53:05 +02:00
Joachim Bauch 95d5e50705 Disconnect sessions with the same room session id synchronously.
Previously there was a difference in the events being received by other
sessions for the clustered case compared to the single-server case.
Now the events / ordering are the same for both cases.
2022-07-11 10:39:06 +02:00
Joachim Bauch 3de149c7ae Merge pull request #293 from strukturag/fix-unsharescreen
Fix handling of "unshareScreen" messages and add test.
2022-07-08 17:18:15 +02:00
Joachim Bauch 66e502dc9b Fix handling of "unshareScreen" messages and add test.
Also update tests for "requestoffer" / "sendoffer".
2022-07-08 17:09:22 +02:00
Joachim Bauch 4770fc8ad6 Merge pull request #292 from strukturag/more-tests
Add more tests
2022-07-08 16:00:12 +02:00
Joachim Bauch 608415c3ff Track anonymous sessions not in rooms instead of clients.
Otherwise it would be possible for clients to reconnect to reset their
timer to join a room.
2022-07-08 15:52:32 +02:00
Joachim Bauch ab26dfe90d Add testcase for initial permissions in a room. 2022-07-08 15:11:50 +02:00
Joachim Bauch 545bce0082 Fix and add test for clustered disconnect of duplicate room ids. 2022-07-08 14:57:29 +02:00
Joachim Bauch e99d843c65 Add testcase for anonymous clients needing to join new room. 2022-07-08 14:21:50 +02:00
Joachim Bauch a1f62ffd18 Add missing lock call for timeouts in waiter methods. 2022-07-08 14:19:13 +02:00
Joachim Bauch 6e9a36a434 Merge pull request #291 from strukturag/etcd-watch-race
etcd: Fix race in initialized event.
2022-07-08 11:02:55 +02:00
Joachim Bauch 40e1b208c0 etcd: Fix race in initialized event.
It could happen that the initialized event was triggered even though the
watch was not fully created yet.
2022-07-08 10:56:36 +02:00
Joachim Bauch 0165788fe3 Merge pull request #290 from strukturag/ci-fix-slow-cpu
Fix issues on slow CPUs
2022-07-08 10:12:18 +02:00
Joachim Bauch 8704bc3b5b Make sure replaced files have different modification times.
Depending on filesystem time resolution, the modified certificates could
have the same timestamp in tests, causing the reload to fail.
2022-07-08 10:06:15 +02:00
Joachim Bauch 75e5013dd8 Create copy of filtered messages.
Otherwise it can happen that the modified message is reused and sent to
another session.
2022-07-08 09:49:32 +02:00
Joachim Bauch 5296e09a2e grpc: Always use reloadable credentials.
Settings the callaback functions on tls.Config seems to causes issues on
slow CPUs (e.g. GitHub actions) where old certificates might be reused.
2022-07-08 09:34:17 +02:00
Joachim Bauch c463791e21 CI: Don't retry tests in case of failures.
Flaky tests should be fixed instead.
2022-07-08 08:33:57 +02:00
Joachim Bauch a9517feebb Merge pull request #289 from strukturag/jwt-v4
Update to Go module version of github.com/golang-jwt/jwt
2022-07-07 17:16:53 +02:00
Joachim Bauch 924fce6713 Stop using deprecated "jwt.StandardClaims". 2022-07-07 17:12:21 +02:00
Joachim Bauch 8a97fa7f5e Update to Go module version of github.com/golang-jwt/jwt 2022-07-07 17:04:34 +02:00
Joachim Bauch ce5d74bbec Run "go mod tidy". 2022-07-07 17:03:41 +02:00
Joachim Bauch 5b3b147794 Merge pull request #276 from Tachi107/systemd-hardening
dist: harden systemd service unit
2022-07-07 16:34:27 +02:00
Joachim Bauch d3f8876d25 Merge pull request #281 from strukturag/refactor-async-events
Clustering support
2022-07-07 16:24:15 +02:00
Joachim Bauch 042d447ab4 Merge pull request #288 from strukturag/initial-welcome
Send initial "welcome" message when clients connect.
2022-07-07 10:10:43 +02:00
Joachim Bauch 243411671d Add documentation for welcome message. 2022-07-07 10:04:13 +02:00
Joachim Bauch f7db8a38e1 Send initial "welcome" message when clients connect.
This can be used to detect server features before performing the
actual "hello" handshake.
2022-07-07 09:57:10 +02:00
Joachim Bauch ad1dea2780 Only send single "incall" message with "all: true" in clustered setup.
Previously each instance would send one message to all users in the cluster.
2022-07-04 15:26:12 +02:00
Joachim Bauch 32a2f822e0 Merge pull request #287 from strukturag/arbitrary-capabilities
Support arbitrary capabilities values.
2022-07-04 15:00:41 +02:00
Joachim Bauch ec62503bd3 Support arbitrary capabilities values. 2022-07-04 13:53:02 +02:00
Joachim Bauch b2da4002a4 grpc: Reload certificate if file has changed and support mutual authentication. 2022-07-04 11:05:21 +02:00
Joachim Bauch 06e9ae0644 Add certificate reloader class. 2022-07-04 10:50:44 +02:00
Joachim Bauch 44bf8b74c2 grpc: Make sure DNS discovery of clients continues if initial lookup failed. 2022-07-01 11:42:49 +02:00
Joachim Bauch 15dabeee1e grpc: Check clients for own server id asychronously.
The external address of the (own) GRPC server might only be reachable after
some time, so performing the check only initially could fail but will
succeed later.
2022-07-01 10:22:16 +02:00
Joachim Bauch 715b2317df Add helper to wait with exponential backoff. 2022-07-01 10:21:49 +02:00
Joachim Bauch 24eab34da7 Allow configuring backends through etcd. 2022-06-30 11:35:36 +02:00
Joachim Bauch 01858a89f4 grpc: Enable DNS discovery for GRPC clients. 2022-06-30 11:35:35 +02:00
Joachim Bauch 20cc51c2fe grpc: Automatically detect if a target is the current server itself.
This allows configuring the same list of targets for all instances without
having to setup the "own" address differently for each server.
2022-06-30 11:35:35 +02:00
Joachim Bauch 5a242b2570 readme: Add note on clustering. 2022-06-30 11:35:34 +02:00
Joachim Bauch 0e144906a4 Added tests for clustered behaviour. 2022-06-30 11:35:33 +02:00
Joachim Bauch dcb5be956c Implement "sendoffer" for remote sessions. 2022-06-30 11:35:33 +02:00
Joachim Bauch 36710c8aa9 Improve detection of decodable sessions that were created on a different server. 2022-06-30 11:35:32 +02:00
Joachim Bauch 25dabf910d Allow configuring GRPC targets through etcd. 2022-06-30 11:35:32 +02:00
Joachim Bauch b6e419f18a Add metrics for GRPC calls. 2022-06-30 11:35:31 +02:00
Joachim Bauch b315c09a3b Allow configuring GRPC transport credentials. 2022-06-30 11:35:30 +02:00
Joachim Bauch 6f64ff901d Create temporary connection to proxy used by remote publisher. 2022-06-30 11:35:30 +02:00
Joachim Bauch 2ca9fb21c4 Add SingleNotifier class. 2022-06-30 11:35:29 +02:00
Joachim Bauch a0d3af14e0 Add initial clustering support. 2022-06-30 11:35:28 +02:00
Joachim Bauch 7b24dc1d1d Add grpc 1.47.0 / protobuf 1.28.0 2022-06-24 13:37:38 +02:00
Joachim Bauch ece2903413 Trigger "joined" events through async messages. 2022-06-24 13:37:37 +02:00
Joachim Bauch 0115c97946 Refactor asynchronous events to central location. 2022-06-24 13:37:35 +02:00
Joachim Bauch ddb7ece622 Merge pull request #283 from strukturag/etcd-tests-running
Fix testing etcd server not starting up if etcd is running on host.
2022-06-24 13:37:11 +02:00
Joachim Bauch a761f135a8 Fix testing etcd server not starting up if etcd is running on host. 2022-06-24 13:30:32 +02:00
Joachim Bauch a06bc333d2 make: remove leftover easyjson bootstrap files in "clean" target 2022-06-24 13:01:03 +02:00
Joachim Bauch af4bd51ec0 Merge pull request #282 from strukturag/refactor-etcd
Move common etcd code to own class.
2022-06-24 12:20:15 +02:00
Joachim Bauch b0624be0a9 Move etcd configuration to common section. 2022-06-24 11:15:29 +02:00
Joachim Bauch 134d22bfe7 Move common etcd code to own class. 2022-06-24 11:15:29 +02:00
Joachim Bauch 28b94191b1 Merge pull request #277 from strukturag/dependabot/pip/docs/sphinx-5.0.2
Bump sphinx from 5.0.1 to 5.0.2 in /docs
2022-06-20 08:47:39 +02:00
Joachim Bauch 79532954da readme: Update link to documentation. 2022-06-15 09:13:14 +02:00
Joachim Bauch 3393ffde8a Merge pull request #275 from Tachi107/systemd-sysusers
dist: add systemd sysusers file
2022-06-15 08:39:27 +02:00
Joachim Bauch da1efac59d make: No need to run easyjson against room.go.
Doesn't define any JSON structs, so easyjson is no longer needed.
2022-06-14 16:50:34 +02:00
Joachim Bauch 4bedfdf780 Merge pull request #274 from strukturag/ignore-room-message-not-joined
Fix check for async room messages received while not joined to a room.
2022-06-14 16:44:14 +02:00
Joachim Bauch 078768f9c8 Fix check for async room messages received while not joined to a room. 2022-06-14 16:38:29 +02:00
Joachim Bauch 26f9edd476 Merge pull request #270 from strukturag/dependabot/pip/docs/sphinx-5.0.1
Bump sphinx from 5.0.0 to 5.0.1 in /docs
2022-06-03 08:25:44 +02:00
Joachim Bauch 6a1a00551d Merge pull request #269 from strukturag/dont_run_mod_tidy
Don't run "go mod tidy" while building.
2022-06-02 15:58:11 +02:00
Joachim Bauch b83bf7cb5d Don't run "go mod tidy" while building. 2022-06-02 15:52:29 +02:00
Joachim Bauch cbfc96e0a7 Update changelog for 0.5.0 2022-06-02 14:16:33 +02:00
Joachim Bauch f089a4ab25 Merge pull request #268 from strukturag/dependabot/pip/docs/sphinx-5.0.0
Bump sphinx from 4.5.0 to 5.0.0 in /docs
2022-05-31 08:27:13 +02:00
Joachim Bauch 24aad5d28c Merge pull request #266 from strukturag/dependabot/go_modules/github.com/nats-io/nats-server/v2-2.8.4
Bump github.com/nats-io/nats-server/v2 from 2.8.2 to 2.8.4
2022-05-30 08:16:22 +02:00
Joachim Bauch 157d1c0bcf Merge pull request #264 from strukturag/dependabot/github_actions/jandelgado/gcov2lcov-action-1.0.9
Bump jandelgado/gcov2lcov-action from 1.0.8 to 1.0.9
2022-05-30 08:10:23 +02:00
Joachim Bauch 2d8dd3f10d Merge pull request #267 from strukturag/dependabot/go_modules/github.com/nats-io/nats.go-1.16.0
Bump github.com/nats-io/nats.go from 1.15.0 to 1.16.0
2022-05-30 08:09:27 +02:00
Joachim Bauch 90a52d0692 Merge pull request #250 from strukturag/multiple-room-ping
Combine ping requests of different rooms on the same backend.
2022-05-17 16:43:18 +02:00
Joachim Bauch 800ece1d90 Support combining ping requests of different rooms on the same backend. 2022-05-17 16:38:16 +02:00
Joachim Bauch e1b5d453b5 Merge pull request #263 from strukturag/dependabot/github_actions/cirrus-actions/rebase-1.7
Bump cirrus-actions/rebase from 1.6 to 1.7
2022-05-17 09:15:41 +02:00
Joachim Bauch 0279b6db0d Merge pull request #261 from solracsf/patch-1
Update Alpine to 3.15 version, fix CVE-2022-28391
2022-05-16 15:16:10 +02:00
Joachim Bauch d1fb860d2c Merge pull request #262 from solracsf/patch-2
Add Go Report card
2022-05-16 15:14:11 +02:00
Joachim Bauch 7267a0c92d Processed classes implement the "json.Marshaler/Unmarshaler" interfaces. 2022-05-16 15:13:50 +02:00
Joachim Bauch 68f0393842 Merge pull request #257 from solracsf/patch-1
Update Dockerfile versions
2022-05-16 13:33:38 +02:00
Joachim Bauch 0b8c337534 Merge pull request #260 from strukturag/command-rebase
Add command bot for "/rebase".
2022-05-16 13:07:53 +02:00
Joachim Bauch fc66c8869f Add command bot for "/rebase". 2022-05-16 13:04:59 +02:00
Joachim Bauch 8ec99a49c0 Merge pull request #256 from strukturag/dependabot/go_modules/github.com/prometheus/client_golang-1.12.2
Bump github.com/prometheus/client_golang from 1.12.1 to 1.12.2
2022-05-16 11:01:23 +02:00
Joachim Bauch 68138eacbd Merge pull request #259 from strukturag/official-coturn-docker
Switch to official Coturn docker image.
2022-05-16 11:00:11 +02:00
Joachim Bauch c91dfc558d Switch to official Coturn docker image. 2022-05-16 10:55:46 +02:00