Juliusz Chroboczek
ee18b60226
Reduce server-side timeout.
2024-06-10 21:32:11 +02:00
Juliusz Chroboczek
bc512462c7
Fix parsing of AddClient error.
...
NotAuthorisedError may unwrap to os.ErrNotExist.
2024-06-08 14:52:14 +02:00
Juliusz Chroboczek
4eaf6d058a
Remove obsolete ErrAnonymousNotAuthorised.
2024-05-11 13:39:50 +02:00
Juliusz Chroboczek
ea4086243b
Use UTC dates in token issuedAt field.
2024-05-08 17:25:28 +02:00
Juliusz Chroboczek
1315084185
Implement message permission and shutup command.
2024-05-08 16:24:32 +02:00
Juliusz Chroboczek
ea4f14ee0a
Enforce clearchat permissions in the server.
...
It was only being enforced in the client.
2024-05-08 15:38:51 +02:00
Juliusz Chroboczek
a76f225bc0
Implement command /identify.
2024-05-01 23:38:31 +02:00
Juliusz Chroboczek
e7e8a9b555
Add method Addr to client.
2024-05-01 23:38:21 +02:00
Juliusz Chroboczek
2f5c21d161
Implement accessors for stateful tokens.
2024-05-01 22:39:48 +02:00
Juliusz Chroboczek
3409f5a27f
Replace uses of os.IsExist and os.IsNotExist with errors.Is.
...
The former don't properly unwrap errors.
2024-04-14 13:34:32 +02:00
Juliusz Chroboczek
68887f13d5
Rename tokens.Edit to Extend.
2024-04-14 13:21:55 +02:00
Juliusz Chroboczek
b8f7c68338
Return correct error message for invalid tokens.
2024-03-03 15:42:46 +01:00
Juliusz Chroboczek
89f947df1f
Rework handling of authorisation errors.
...
We'd sometimes return "Internal server error" on authentication
failures. This should be gone now.
2024-03-03 13:43:50 +01:00
Juliusz Chroboczek
29e006037c
Allow proxyURL to contain a path.
...
We now support or reasonable values for proxyURL, such as "http:"
or "/galene".
2024-02-24 12:46:30 +01:00
Juliusz Chroboczek
dc34350d8f
Complete parsing of WHIP candidates.
2023-12-20 01:42:11 +01:00
Juliusz Chroboczek
002d519f91
Use a named type for trackAction kind.
2023-12-09 22:13:24 +01:00
Juliusz Chroboczek
1c042b55af
Fix typo in error message.
2023-12-09 17:32:16 +01:00
Juliusz Chroboczek
00fbfafeeb
Make unbounded channels explicit.
...
We used to have unbounded channels embedded within rtpconn
and webClient. Make the structure explicit and testable.
2023-12-09 17:27:38 +01:00
Juliusz Chroboczek
1e050fa4e3
Implement the WHIP protocol.
2023-07-11 17:25:58 +02:00
Juliusz Chroboczek
dc8a78be32
Add test for parseStatefulToken.
2023-05-04 03:32:44 +02:00
Juliusz Chroboczek
76066a1a10
Fix error handling in maketoken.
2023-05-04 03:31:09 +02:00
Juliusz Chroboczek
1879ec81ea
Don't send empty version fields.
...
We used to send a null version field in every message. Don't.
2023-04-29 19:59:36 +02:00
Juliusz Chroboczek
8775ce6406
Keep track of issuer and creation date in tokens.
2023-04-08 21:13:35 +02:00
Juliusz Chroboczek
c501b76d2b
Rework selection of simulcast tracks.
...
We used to hard-wire the rid identifiers. We now assume that
the simulcast streams are ordered in decreasing order of quality.
2023-04-06 12:40:22 +02:00
Juliusz Chroboczek
4c9e00d874
Report username errors to client.
...
We now report ErrUsernameRequired and ErrDuplicateUsername
errors by setting the "error" field of messages.
2023-04-04 01:22:05 +02:00
Juliusz Chroboczek
8aa95f5e22
Add protocol messages for managing tokens.
2023-04-04 00:59:54 +02:00
Juliusz Chroboczek
aa53b78b2c
Distinguish between no username and empty username.
2023-04-03 22:58:38 +02:00
Juliusz Chroboczek
a1c1345719
Server-side support for protocol 2.
...
The "time" field of messages is now a string in RFC 3339 format,
and there is a new "error" field in messages.
2023-04-03 22:58:38 +02:00
Juliusz Chroboczek
cba04e7de5
Fix typo in handling of join messages.
2023-04-03 22:33:36 +02:00
Juliusz Chroboczek
cc52e39ce4
Make some errors non-fatal.
...
Don't disconnect the client for some more errors.
2022-12-17 01:00:49 +01:00
Juliusz Chroboczek
8a2357de21
Only send chat history when joining.
...
When we moved the chat history to the client goroutine back in 0.6,
we started sending the history whenever the group configuration changed.
Only send it when first joining the group. Thanks to Rémi Nollet.
2022-10-07 00:22:03 +02:00
Juliusz Chroboczek
0fe3ed2e15
Fix chathistory and display of anonymous users.
...
Chathistory messages were formatted incorrectly.
We were also not formatting correctly messages from
anonymous users.
2022-09-06 19:03:50 +02:00
Juliusz Chroboczek
3a2efbcc7e
Send chathistory messages in the client goroutine.
...
We used to send the chat history from the reader goroutine,
which would cause them to race with the join message.
2022-09-06 03:03:50 +02:00
Juliusz Chroboczek
533e4b9b32
Version the protocol.
...
The handshake message now contains a list of supported protocol
versions. Version mismatch is currently a warning, but it will be a
hard error in the future.
2022-09-02 14:30:51 +02:00
Juliusz Chroboczek
4bc873a574
Publish websocket endpoint in group status.
2022-09-01 14:55:52 +02:00
Juliusz Chroboczek
fc9f28fd68
Minor cleanups.
2022-04-23 18:43:01 +02:00
Juliusz Chroboczek
461c78b0e3
Fix race condition in estimator.
2022-04-21 01:28:41 +02:00
Juliusz Chroboczek
99055e5cae
Make duration functions work with negative values.
2022-04-16 01:20:29 +02:00
Juliusz Chroboczek
af462329ab
Set time offsets and cname as soon as possible.
2022-03-27 23:32:25 +02:00
Juliusz Chroboczek
1b492114ad
Fix typo in permissionsChangedAction.
2022-03-04 22:23:25 +01:00
Juliusz Chroboczek
de3a016f4d
Set the username in the server when using tokens.
...
This avoids the need to pass the username in the URL without
requiring the client to parse tokens.
2022-02-20 15:33:11 +01:00
Juliusz Chroboczek
a86fb08f6c
Replace ClientPermissions with a list of strings.
...
Now that we support external auth, the permissions list is
open-ended. Make it a list for simplicity.
2022-02-19 23:44:57 +01:00
Juliusz Chroboczek
03811db37d
Implement token authentication.
2022-02-18 13:35:17 +01:00
Juliusz Chroboczek
0ef5d10744
Display correct maxBitrate in statistics.
2022-02-01 15:20:43 +01:00
Juliusz Chroboczek
24187430e8
Rename client status to data, add group data.
...
We now distinguish between status, which is maintained by the server,
and data, which is provided by the client. In addition to client data,
we now support group data.
2022-01-29 23:28:08 +01:00
Juliusz Chroboczek
710cc3cc14
Add ability to set initial user status.
...
Setting the status after joining (using the "setstatus" action)
may cause multiple "user" messages to be sent to clients. Add
the ability to set the initial status at join time.
2022-01-28 22:21:19 +01:00
Juliusz Chroboczek
e8fbfcb9ba
Avoid overflow in bitrate computation.
2022-01-25 20:11:28 +01:00
Juliusz Chroboczek
39976d6d0d
Protect webClient.actions with its own mutex.
...
(*webClient).action may be called with the group mutex taken,
and therefore cannot take the client mutex.
2021-12-11 01:33:47 +01:00
Juliusz Chroboczek
abed33d654
Fix missing line break in subgroups command.
2021-11-29 17:33:46 +01:00
Juliusz Chroboczek
6af729eeee
Reduce delay before sending NACK.
2021-11-27 23:14:42 +01:00