Commit graph

585 commits

Author SHA1 Message Date
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