Juliusz Chroboczek
84856f537b
Use null address generator in TURN server when possible.
2021-02-28 00:59:56 +01:00
Juliusz Chroboczek
8d569e9f30
Fix typo in README.
2021-02-27 14:27:48 +01:00
Juliusz Chroboczek
b7db959bfb
Update CHANGES for 0.3.1.
2021-02-26 19:13:15 +01:00
Juliusz Chroboczek
3cc1fadb10
Update CHANGES.
2021-02-26 18:11:59 +01:00
Juliusz Chroboczek
016c321484
Fix typing of userMessage value.
2021-02-26 16:22:55 +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
69c438ab30
Add unit tests for ICEConfiguration and RelayTest.
2021-02-26 13:23:54 +01:00
Juliusz Chroboczek
0a8f75d6c9
Make RelayTest take the timeout as parameter.
2021-02-26 13:22:47 +01:00
Juliusz Chroboczek
e8bc42d84c
Add certificate_test.go.
2021-02-26 12:52:54 +01:00
Juliusz Chroboczek
b3727824b3
Protect against simultaneous generation of certificates.
2021-02-26 12:38:18 +01:00
Juliusz Chroboczek
c19b356e54
Fail the connection if only one of cert.pem and key.pem exists.
2021-02-24 22:23:38 +01:00
Juliusz Chroboczek
b1babf5b77
Update TLS certificates, generate certificate if not found.
...
We now notice that a TLS certificate on disk has changed, and we
generate a self-signed certificate if none is found.
2021-02-24 20:29:03 +01:00
Juliusz Chroboczek
6cf82f6e0c
Update CHANGES for 0.3.
2021-02-18 22:53:05 +01:00
Juliusz Chroboczek
7df36c0287
Update dependencies.
2021-02-18 22:47:28 +01:00
Juliusz Chroboczek
ddb6039fa6
Fix error handling in client actions.
...
Thanks to Yacine.
2021-02-17 20:55:11 +01:00
Juliusz Chroboczek
be2f2d7cb3
Fix typo in new client pushing code.
2021-02-15 13:43:10 +01:00
Juliusz Chroboczek
260597d595
Ensure actions happen in order.
2021-02-15 00:35:09 +01:00
Juliusz Chroboczek
9ba1037208
Increase measured time in TestTime.
2021-02-14 20:16:27 +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
60297a247c
Update CHANGES.
2021-02-14 18:48:59 +01:00
Juliusz Chroboczek
a707ec16f5
Update dependencies.
2021-02-14 18:19:13 +01:00
Juliusz Chroboczek
e04193f78c
Display user message when browser doesn't do WebRTC.
...
Thanks to mscherer for the report.
2021-02-14 18:06:50 +01:00
Juliusz Chroboczek
183ab4fed7
Use an unbounded buffer for client actions.
...
We no longer risk deadlocking when sending actions, which in turn
enables pushing connections synchronously.
2021-02-14 17:24:42 +01:00
Juliusz Chroboczek
3b505a89fe
Factor out handling actions.
2021-02-14 16:47:36 +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
3c7b32056b
Reduce writer timeout, increase amount of buffering.
...
If the writer gets congested, the whole group might be delayed. Better
to drop the slow client in that case.
2021-02-14 16:26:56 +01:00
Juliusz Chroboczek
fe83f61998
Don't complain about ErrClosedPipe in RTCP receiver.
...
This simply indicates that the server closed the connection
before we received the close indication from the client.
2021-02-11 16:19:36 +01:00
Juliusz Chroboczek
8f89ac0bcf
Clean up path handling in webserver.
2021-02-07 01:43:40 +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
0261558e07
Protect against empty ids.
2021-02-05 16:07:58 +01:00
Juliusz Chroboczek
c3a19c9128
Avoid race between closing connections and terminating client.
...
We need to terminate all down connections synchronously, otherwise
we risk leaving open connections lying around.
2021-02-05 12:20:33 +01:00
Juliusz Chroboczek
66de0d16e7
Fix closing of replaced connections.
2021-02-04 23:51:51 +01:00
Juliusz Chroboczek
fe9b89257a
Set buttons visibility when disconnecting.
2021-02-04 23:11:40 +01:00
Juliusz Chroboczek
0ce509c62c
Revert "Log client errors."
...
We're already logging in the caller.
This reverts commit f4811e8cf5
.
2021-02-04 22:44:14 +01:00
Juliusz Chroboczek
c72cbe8f27
Don't attempt to replace empty connection in disk writer.
2021-02-04 22:01:41 +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
6054ae6cc6
Update client code for renegotiation.
...
We now need to deal with the case where a track disappears from the
labels array.
2021-02-03 20:26:05 +01:00
Juliusz Chroboczek
263258a0c1
Implement renegotiation of down streams.
...
We used to destroy and recreate down streams whenever something changed,
which turned out to be racy. We now properly implement renegotiation,
as well as atomic replacement of a stream by another one.
2021-02-03 19:15:40 +01:00
Juliusz Chroboczek
368da133fd
Update dependencies.
...
Webrtc 3.0.5 includes a fix for a hang in CreateOffer that may be
triggered by incorrect SDP.
2021-02-03 18:37:02 +01:00
Juliusz Chroboczek
6c4a71fda0
Increase timeout for connection completion.
2021-02-02 23:12:52 +01:00
Juliusz Chroboczek
f34ec0ab66
Don't hide mismatches in the PeerConnection state automaton.
...
The previous behaviour led to silent failures, which was confusing.
2021-02-02 22:57:56 +01:00
Juliusz Chroboczek
f4811e8cf5
Log client errors.
2021-02-02 22:46:54 +01:00
Juliusz Chroboczek
d9e72f4fd0
Return an error when adding a duplicate down track.
2021-02-02 22:46:48 +01:00
Juliusz Chroboczek
73f72c45fc
Fix race in pushConn.
2021-02-02 22:46:40 +01:00
Juliusz Chroboczek
36d6845dc1
Fix closing of replaced connections.
2021-02-01 14:08:54 +01:00
Juliusz Chroboczek
f63ecb3078
Support file playback on Mozilla.
2021-02-01 01:08:39 +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
9d9db1a920
Tweak README.
2021-01-26 23:07:07 +01:00