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

115 commits

Author SHA1 Message Date
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
36d6845dc1 Fix closing of replaced connections. 2021-02-01 14:08:54 +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
f0dcd0b1d9 Rework locking of tracks.
We now add tracks after the stream has been pushed, so we need a lock
on down streams.  Also rework sendUpRTCP to reduce locking.
2021-01-19 23:55:33 +01:00
Juliusz Chroboczek
9a5c8b6b43 Handle answers in stable state.
Don't break the stream, just ignore the SDP.
2021-01-19 23:30:01 +01:00
Juliusz Chroboczek
6098d4af9d Implement autolock. 2021-01-14 03:56:37 +01:00
Juliusz Chroboczek
49bcc342ed Queue negotiation if not in stable state.
If we send two offers back to back, the second answer will arive in
stable state, which will confuse us.  Instead, queue the second offer.
2021-01-12 20:44:48 +01:00
Juliusz Chroboczek
820b303e84 Send localDescription instead of original SDP. 2021-01-11 20:41:34 +01:00
Juliusz Chroboczek
dad113c1f9 Generate transceivers from incoming SDP. 2021-01-11 20:24:09 +01:00
Juliusz Chroboczek
63e2b5a4c4 Implement 'noecho' field in client messages. 2021-01-11 16:30:07 +01:00
Juliusz Chroboczek
617aee325f Reduce ping timetout to 45 to 55s.
Thanks to Jeroen van Veen for the debugging.
2021-01-08 14:05:02 +01:00
Juliusz Chroboczek
7f4306ab3b Optimise broadcast messages.
Avoid formatting JSON multiple times.
2021-01-04 18:28:54 +01:00
Juliusz Chroboczek
0ec9f92dad Make 'clearchat' into a user message. 2021-01-03 17:47:56 +01:00
Juliusz Chroboczek
e393819eda Carry raw SDP in the protocol. 2021-01-03 17:00:58 +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
dbec9df288 Use Pion's JSON support for ICE configuration. 2021-01-01 22:28:38 +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
Juliusz Chroboczek
d09c0f0a80 Make the value field of client messages carry arbitrary types. 2020-12-28 01:49:27 +01:00
Juliusz Chroboczek
9e4aede72a Fix issues with unaligned atomic operations.
This could be solved by simply reordering the fields, but it
is more robust to move the atomics into their own structure,
and the extra indirection should not cost much.
2020-12-27 01:31:31 +01:00
Juliusz Chroboczek
2785fa9f77 Store labels early.
This avoids spurious up.complete indications.
2020-12-25 22:32:30 +01:00
Juliusz Chroboczek
f4379f7a8c Protect against negotiation inconsistencies.
This is not an issue in the current code, assuming that clients
negotiate correctly, but will become one once we implement codec
flexibility.
2020-12-25 20:50:33 +01:00
Juliusz Chroboczek
d5c7a13aae Implement abort in the client->server direction. 2020-12-25 18:51:17 +01:00
Juliusz Chroboczek
d43a2b0104 Implement WallOps to send a warning to all operators. 2020-12-23 23:15:36 +01:00
Juliusz Chroboczek
4fde2c40e6 Run gofmt. 2020-12-19 17:38:47 +01:00
Juliusz Chroboczek
325f288189 Move to github. 2020-12-19 17:37:48 +01:00
Juliusz Chroboczek
a2f5bb82d1 Delete unrequested connections in addDownConnTracks.
We don't renegotiate down connections yet, but this is a latent bug.
2020-12-18 18:56:07 +01:00
Antonin Décimo
f5de94cf3e Correct spelling of privileged. 2020-12-15 14:52:46 +01:00
Juliusz Chroboczek
da8c592232 Fix log message.
Thanks to Antonin Décimo.
2020-12-12 23:21:49 +01:00
Juliusz Chroboczek
4de2953037 Fix incorrect closure in pushConnsAction.
This was causing us to lose connections.
2020-12-09 01:05:24 +01:00
Juliusz Chroboczek
ef1c211b7f SFU is now called Galène. 2020-12-06 19:51:02 +01:00
Juliusz Chroboczek
2d07c5d317 Move to Pion v3 API. 2020-12-06 11:15:59 +01:00
Juliusz Chroboczek
e8c732c54c Fix error handling at websocket close. 2020-12-05 03:07:22 +01:00
Juliusz Chroboczek
26e6ecc3bc Fix error handling on negotiation failure. 2020-12-05 00:32:01 +01:00
Juliusz Chroboczek
0e7bf0b348 Carry group around when pushing connections.
This avoids a race condition if the group changes before the connections
are pushed.
2020-12-05 00:07:34 +01:00
Juliusz Chroboczek
b134bfcf13 Improve error handling on join failure.
Solves the issue of groups with a name ending in "/".
2020-12-04 22:56:29 +01:00
Juliusz Chroboczek
e3098899e1 Log errors from PushConn. 2020-12-04 12:15:37 +01:00
Juliusz Chroboczek
ca6c371ec4 Send chat history after joined message.
This was broken when we eliminated the login message.
2020-12-04 11:31:20 +01:00
Juliusz Chroboczek
27a2e45500 Implement /subgroups. 2020-12-02 19:47:32 +01:00
Juliusz Chroboczek
43047fc00e Allow empty values in clientMessage. 2020-12-02 19:33:53 +01:00
Juliusz Chroboczek
2546aae7c1 Eliminate login from protocol.
The login message is replaced with handshake, which only carries
the client id.  Username and password is now in the join message.
Permissions is replaced with joined.
2020-12-02 13:49:53 +01:00
Juliusz Chroboczek
b30d4fe537 Add delay after login failure. 2020-12-02 00:07:31 +01:00
Juliusz Chroboczek
6e5348101c Propagate kick originators. 2020-11-30 20:04:58 +01:00
Juliusz Chroboczek
ed531cefc2 More spoofing protection. 2020-11-30 20:04:58 +01:00
Juliusz Chroboczek
74b3683cf1 Protect against chat message spoofing. 2020-11-30 20:04:58 +01:00
Juliusz Chroboczek
6040d1943c Allow forwarding usermessages.
They now have the same format as chat messages; the only difference
is that they are not stored in the chat history.

Also adds userMessage method to ServerConnection.

Fix usermessages.
2020-11-30 14:39:36 +01:00
Juliusz Chroboczek
4c0fd01258 Implement hashed passwords. 2020-11-29 22:17:51 +01:00
Juliusz Chroboczek
1ed2540bd7 Don't send permissions with each client message.
Thanks to Antonin Décimo.
2020-11-29 15:46:22 +01:00
Juliusz Chroboczek
21361a87cd Fix kick message. 2020-11-25 00:16:32 +01:00
Juliusz Chroboczek
7ee8cbc45a Don't push incomplete connections.
If a connetion is slow to get established, this would cause it to
be pushed twice, the first time before it is complete.  Thanks to
Roman Koval who noticed the issue.
2020-11-05 20:48:07 +01:00
Juliusz Chroboczek
6c6b0b39c9 Copy id list in setRequested.
Probably not necessary, but I'm supersticious.
2020-10-27 18:24:33 +01:00
Juliusz Chroboczek
90ba4814c8 Discard old history entries. 2020-10-08 14:41:33 +02:00
Juliusz Chroboczek
0eb1593bb8 Delay adding tracks until connection is complete.
This avoids losing packets at the beginning of a connection.
2020-10-06 04:18:46 +02:00
Juliusz Chroboczek
bda58b42c6 Rename disk to diskwriter. 2020-10-04 21:08:34 +02:00
Juliusz Chroboczek
66dd71678e Implement private messages. 2020-10-01 16:59:09 +02:00
Juliusz Chroboczek
bd5cd7c1a2 Avoid calling pc.Close under a lock.
Apparently Close can take unbounded amounts of time.
2020-10-01 16:08:12 +02:00
Juliusz Chroboczek
13d6b7ad1f Don't disconnect clients when negotiation fails.
This may happen if we receive an answer for a connection that has been
closed in the meantime.
2020-10-01 15:35:35 +02:00
Juliusz Chroboczek
9ce591e4c5 Override permissions for disk recording. 2020-10-01 13:40:15 +02:00
Juliusz Chroboczek
3bd9a1db4e Timestamp chat messages. 2020-09-30 00:54:12 +02:00
Juliusz Chroboczek
aeb8540ad4 Fix kickability. 2020-09-18 14:47:33 +02:00
Juliusz Chroboczek
f8ae908d7a Implement message for locked groups. 2020-09-18 11:40:00 +02:00
Juliusz Chroboczek
2347417f83 Merge branch 'modular' into master 2020-09-18 10:33:17 +02:00
Juliusz Chroboczek
6f5ae12f14 Move RTP-specific code into its own package. 2020-09-18 10:28:05 +02:00
Renamed from webclient.go (Browse further)