1
Fork 0
mirror of https://github.com/jech/galene.git synced 2024-11-23 09:05:59 +01:00
Commit graph

58 commits

Author SHA1 Message Date
Juliusz Chroboczek
77179c3db9 Allow usernames with spaces.
This requires a proper parser for commands.
2020-09-16 01:42:39 +02:00
Juliusz Chroboczek
f2fcc09e61 Implement NewDiskClient. 2020-09-13 20:33:53 +02:00
Juliusz Chroboczek
7126394e65 Fix locking in group.go.
Also export some fields as thread-safe methods.
2020-09-13 20:33:53 +02:00
Juliusz Chroboczek
938d231b30 Make API a method of group. 2020-09-13 13:09:34 +02:00
Juliusz Chroboczek
fb02c6fe1f Move client actions to webclient.go.
These are specific to webclients.
2020-09-13 11:57:33 +02:00
Juliusz Chroboczek
78e9c96a53 Make SetPermissions part of the client interface. 2020-09-13 10:45:16 +02:00
Juliusz Chroboczek
71022f4b58 Remove ErrWriterDead, replace with ErrClientDead. 2020-09-13 02:02:11 +02:00
Juliusz Chroboczek
6f120f0333 Make disk recording clients kickable.
Kick can no longer be called with groups locked.
2020-09-12 14:00:14 +02:00
Juliusz Chroboczek
e37e27036e Implement graceful server shutdown.
This gives the user a friendly message when the server shuts down.
2020-09-12 13:59:55 +02:00
Juliusz Chroboczek
7707775cca Implement user-readable message for kick. 2020-09-12 12:26:07 +02:00
Juliusz Chroboczek
4bdd7c7665 Implement group redirection. 2020-09-10 14:22:34 +02:00
Juliusz Chroboczek
c2b1723bd4 Fail early when a group doesn't exist. 2020-09-10 13:41:15 +02:00
Juliusz Chroboczek
fc9bbf20ea Don't close writer channel at client shutdown.
Closing the channel could cause a panic if a c.write was pending.
Instead, ensure we send a closeMessage to the writer, and cause the
writer to exit when it receives a closeMessage.
2020-09-08 00:29:30 +02:00
Juliusz Chroboczek
5a91a7aae8 Reset remote connection if SetRemoteDescription fails.
In current versions of pion, SetRemoteDescription fails if ICE is
currently gathering.  Work around the issue by resetting the connection.
2020-09-03 13:40:38 +02:00
Juliusz Chroboczek
240b05a660 Fix typo in renegotiation. 2020-08-13 13:48:17 +02:00
Juliusz Chroboczek
52c4f1a399 Restructure offers. 2020-08-12 13:56:35 +02:00
Juliusz Chroboczek
bc7bd36ba2 Restructure user notifications. 2020-08-12 13:51:31 +02:00
Juliusz Chroboczek
675035ab29 Restructure group and client management messages. 2020-08-12 12:40:40 +02:00
Juliusz Chroboczek
88d2a96819 Restructure error and chat messages. 2020-08-12 12:17:56 +02:00
Juliusz Chroboczek
7b51296262 Split handshake into login/join.
For now, join must follow login, but it will make it easier to extend
the protocol for joining multiple groups (think federation).
2020-08-12 11:50:30 +02:00
Juliusz Chroboczek
6bde5f986a Store password in client structure.
No need to carry password around.
2020-08-12 11:49:23 +02:00
Juliusz Chroboczek
6a37033ca8 Allow both sides to initiate renegotiation.
More reliable reaction to network failures when they are detected
by just one side.
2020-08-11 15:49:33 +02:00
Juliusz Chroboczek
7aab79c4c6 Have chat messages go through the server even when sent to oneself. 2020-08-07 11:33:59 +02:00
Juliusz Chroboczek
23c4aea58f Implement renegotiation in the up direction. 2020-08-07 11:15:58 +02:00
Juliusz Chroboczek
9506615272 Restart ICE instead of restarting down connections. 2020-08-07 11:15:58 +02:00
Juliusz Chroboczek
e724194ef6 Upgrade to pion/webrtc v3. 2020-08-07 11:15:58 +02:00
Juliusz Chroboczek
a4d0741704 Perform congestion control at the connection level.
REMB applies to the whole transport, not to individual tracks.
2020-06-12 20:17:46 +02:00
Juliusz Chroboczek
903e499dd6 Don't reduce video rate in large groups. 2020-06-12 17:27:38 +02:00
Juliusz Chroboczek
23cceba7ba Restart downstream connections on ICE failure. 2020-06-11 20:22:28 +02:00
Juliusz Chroboczek
e175ef0e49 Replace changed connections.
We used to destroy and recreate connections, we now replace them atomically.
2020-06-10 20:25:25 +02:00
Juliusz Chroboczek
448bb0374d Use pushConn to delete connections.
The previous mechanism (going through up.local) was racy and complicated.
2020-06-10 19:50:18 +02:00
Juliusz Chroboczek
917fa33d38 Don't duplicate username in call to addClient. 2020-06-08 22:31:12 +02:00
Juliusz Chroboczek
208f023d9e Make upConnections generic. 2020-06-08 22:14:28 +02:00
Juliusz Chroboczek
da97560cb3 Protect upConn.tracks by the upConn mutex rather than the client mutex.
Also don't rely on tracks being immutable in sendRR.
2020-06-08 19:11:20 +02:00
Juliusz Chroboczek
8ba50bd2ca Tweak SR sending policy.
Don't send SRs for tracks for which we have no time offset yet.
Send an unscheduled SR when we get our first time offset.
2020-06-04 19:12:52 +02:00
Juliusz Chroboczek
ce7f3670bc Resize packet cache dynamically. 2020-06-04 01:51:36 +02:00
Juliusz Chroboczek
b1542af47c Remove dead code. 2020-06-03 23:45:45 +02:00
Juliusz Chroboczek
4da03a3ce5 Make rate estimator estimate packet rates too. 2020-06-03 23:45:45 +02:00
Juliusz Chroboczek
19a65318c9 Compute down track RTT. 2020-06-03 23:45:45 +02:00
Juliusz Chroboczek
b447a2e9a0 Maintain sender report time in jiffies. 2020-06-03 21:05:03 +02:00
Juliusz Chroboczek
3e305e9827 Use jiffies instead of microseconds. 2020-06-03 20:58:01 +02:00
Juliusz Chroboczek
7ae9a9ea69 Rename mono to rtptime. 2020-06-03 20:12:25 +02:00
Juliusz Chroboczek
4d2bd6e473 Fix initialisation of maxLossBitrate. 2020-06-01 01:48:22 +02:00
Juliusz Chroboczek
dcb2111181 Send sender reports. 2020-06-01 01:34:44 +02:00
Juliusz Chroboczek
5b92226860 Maintain full time information from sender reports. 2020-06-01 01:09:15 +02:00
Juliusz Chroboczek
303d15539c Handle sender reports for down tracks.
In principle, we should be receiving receiver reports only, but let's
be robust.
2020-06-01 00:35:37 +02:00
Juliusz Chroboczek
8fda40b544 Set delay in receiver report to 0 if no sender report received. 2020-06-01 00:26:23 +02:00
Juliusz Chroboczek
70dee15f5c Rename rate.Add to rate.Accumulate. 2020-06-01 00:02:17 +02:00
Juliusz Chroboczek
c4284a45c5 Delay rtcpUpSender until the connection is complete.
This avoids locking in sendRR.
2020-06-01 00:02:17 +02:00
Juliusz Chroboczek
b8128f81a0 Move client notifications into addClient and delClient. 2020-06-01 00:02:17 +02:00