1
Fork 0
mirror of https://github.com/jech/galene.git synced 2024-11-10 02:35:58 +01:00
Commit graph

78 commits

Author SHA1 Message Date
Juliusz Chroboczek
c860fb96a3 Move server shutdown into group.go. 2021-09-11 15:42:14 +02:00
Juliusz Chroboczek
184bd30077 Protect against nil dereference in group.Get. 2021-09-11 15:14:13 +02:00
Juliusz Chroboczek
f683675ab4 Use a dedicated error value for anonymous users. 2021-09-09 22:26:08 +02:00
Juliusz Chroboczek
5beb13b21a Early paranoia in group name validation.
We will fail malicious paths in openDescriptionFile, but it
doesn't harm to be paranoid early.
2021-08-24 00:31:46 +02:00
Juliusz Chroboczek
0d0a745aa3 Fix typo in KickError.Error. 2021-08-24 00:04:30 +02:00
Juliusz Chroboczek
475e36d884 Pass description to descriptionChanged.
Thanks to Jeroen van Veen.
2021-08-23 20:45:04 +02:00
Juliusz Chroboczek
2d1763a743 Remove obsolete test.
It's no longer easy to test group expiration.
2021-08-23 18:14:38 +02:00
Juliusz Chroboczek
06f2ecec16 Update the list of public groups when expiring.
Thanks to Jeroen van Veen for suggesting the feature.
2021-08-22 16:36:18 +02:00
Juliusz Chroboczek
816b7a54df Restrict negotiation of downstream codecs, allow multiple profiles.
We now restrict the allowable codecs in the downstream direction,
which leads to a clean failure instead of a silent track.  We also
allow multiple profiles for a single codec.
2021-08-02 18:08:37 +02:00
Juliusz Chroboczek
f26cf32abb Fix group_test.go. 2021-07-31 23:38:19 +02:00
Juliusz Chroboczek
a5c97fd849 Add System permission.
This replaces the OverridePermissions method, and is communicated
to clients that can reliably and safely identify a system user.
2021-07-30 19:26:34 +02:00
Juliusz Chroboczek
eedfaccaff Add locked and displayName to public-groups.json. 2021-07-16 20:01:54 +02:00
Juliusz Chroboczek
52a26327d7 Implement group status.
We now inform clients of the status of a group (locked, etc.).  Also
cleans up the handling of administrative messages, which solves the
issue of receiving "user" before "joined".
2021-07-16 19:51:54 +02:00
Antonin Décimo
f89270e874 Fix typos. 2021-06-09 15:20:17 +02:00
Juliusz Chroboczek
3e00bb4293 AV1 support. 2021-05-15 19:54:07 +02:00
Juliusz Chroboczek
515c4a5cd0 Rename pushConns to requestConns, move into Client interface.
Also allow selecting just a single connection.
2021-05-14 23:21:14 +02:00
Juliusz Chroboczek
6f9d7fc306 Scalable video coding (SVC). 2021-05-14 23:21:14 +02:00
Juliusz Chroboczek
3f3b245926 Fix profile-id for VP9. 2021-05-13 12:59:47 +02:00
Juliusz Chroboczek
26bf8a341a Don't send client parameters in delete message.
This avoids a race condition since the delete messages are sent
asynchronously.
2021-05-10 16:58:28 +02:00
Juliusz Chroboczek
795a40ceaf Simulcast. 2021-05-08 21:12:29 +02:00
Juliusz Chroboczek
e24488ac62 Fix broken test. 2021-05-08 16:09:22 +02:00
Juliusz Chroboczek
99026c0e48 Implement option -udp-range. 2021-04-29 23:05:11 +02:00
Juliusz Chroboczek
cd6920d7e2 Allow group.API() to fail. 2021-04-29 21:10:04 +02:00
Juliusz Chroboczek
3ba2394be7 Implement user statuses.
The server now maintains a set of statuses for each user that are not
interpreted by the server but communicated to the other members of the
group using 'user' messages.
2021-04-28 17:01:05 +02:00
Juliusz Chroboczek
f0a39fca48 Send user permissions to client.
We now maintain the user list in the serverConnection.
2021-04-28 00:07:19 +02:00
Juliusz Chroboczek
189dfb4abe Export and document group.Description.
This is useful for people writing administrative interfaces.
2021-04-22 17:58:30 +02:00
Juliusz Chroboczek
b660bc404c Attempt to negotiate stereo Opus audio. 2021-03-13 16:29:58 +01:00
Juliusz Chroboczek
ea321be17a Make Kick part of the Client interface.
All clients implement Kick, no need for a separate interface.
2021-02-26 16:20:13 +01:00
Juliusz Chroboczek
be2f2d7cb3 Fix typo in new client pushing code. 2021-02-15 13:43:10 +01:00
Juliusz Chroboczek
aaaaae5588 Add unit test for groups. 2021-02-14 20:14:12 +01:00
Juliusz Chroboczek
105515d56e Add unit test for chat history. 2021-02-14 19:44:19 +01:00
Juliusz Chroboczek
fa625c693e Push clients synchronously.
Doing this asynchronously was racy -- under extreme circumstances, a
client could be deleted before it was added.
2021-02-14 16:46:15 +01:00
Juliusz Chroboczek
c4e26b65b7 Tighten user check.
Don't allow a user with a wildcard password entry to use the same
username as a user with a specific entry even at the same privilege
level.
2021-02-06 23:32:42 +01:00
Juliusz Chroboczek
91c161e548 Don't cache group files for 5s.
A stat of a cached file is cheap, no need to micro-optimise.
2021-02-06 21:44:14 +01:00
Juliusz Chroboczek
b4240c4505 Don't reuse API between peer connections.
This turns out to be incorrect when a MediaEngine is attached.
2021-02-04 21:03:17 +01:00
Juliusz Chroboczek
14a4303664 Rework connection replacement.
We used to signal connection replacement by reusing the same connection
id.  This turned out to be racy, as we couldn't reliably discard old
answers after a connection id was refused.

We now use a new id for every new connection, and explicitly signal
stream replacement in the offer message.  This requires maintaining a
local id on the client side.
2021-01-31 23:59:17 +01:00
Juliusz Chroboczek
a15915e8fc Tweak the autokick code. 2021-01-17 21:52:26 +01:00
Juliusz Chroboczek
c769a4aad4 Add autokick option. 2021-01-17 21:29:07 +01:00
Juliusz Chroboczek
6098d4af9d Implement autolock. 2021-01-14 03:56:37 +01:00
Juliusz Chroboczek
2df05ca257 Fix typo in ReadPublicGroups. 2021-01-14 01:49:06 +01:00
Juliusz Chroboczek
98235afe06 Disallow unknown fields in group descriptions.
Make the de-facto "comment" and "contact" fields official.
2021-01-13 23:00:48 +01:00
Juliusz Chroboczek
61990ff1ef Check all group files on startup, not just the toplevel directory. 2021-01-13 22:56:43 +01:00
Juliusz Chroboczek
43ed55a055 Update group API after description change. 2021-01-04 01:41:34 +01:00
Juliusz Chroboczek
f53276b89e Simplify the protocol and the protocol interface.
Split the id field into id and source, where source indicates the sender
of the message and id the entity being sent.  Remove the label request,
just use the offerer's username.  Maintain the username within the
ServerConnection, this removes a parameter from some methods.
2021-01-03 12:17:30 +01:00
Juliusz Chroboczek
450601f0e8 Move ICE code into own module, add tests. 2021-01-02 00:21:17 +01:00
Juliusz Chroboczek
845dccc2bb Implement coturn's use-auth-secret. 2021-01-01 23:50:34 +01:00
Juliusz Chroboczek
dbec9df288 Use Pion's JSON support for ICE configuration. 2021-01-01 22:28:38 +01:00
Juliusz Chroboczek
307c834b09 Check ICE configuration periodically. 2020-12-28 19:12:09 +01:00
Juliusz Chroboczek
89a9e6c738 Implement command-line option "relay-only". 2020-12-28 02:56:49 +01:00
Juliusz Chroboczek
a0418d26ec Send RTC configuration with joined message.
This avoids one HTTP request, and is potentially more flexible.
2020-12-28 02:55:19 +01:00