Juliusz Chroboczek
86eeb3d8cf
Protect against sending a file to oneself.
...
When a user sends a file to oneself (which is only possible
as a chat command), then the two file transfer data structures
have the same id, which causes confusion. We used to detect
this case too late, detect it earlier.
Thanks to J.-J. Sarton for the report.
2024-12-01 21:40:50 +01:00
Juliusz Chroboczek
d85a6ea203
Add versioning to file transfer protocol.
2024-11-02 14:22:52 +01:00
Juliusz Chroboczek
1745b6294e
Remove remainder of obsolete file transfer protocol.
2024-10-30 17:59:07 +01:00
Juliusz Chroboczek
1c71a73f8e
Fix remainders of old file transfer protocol.
2024-10-28 15:55:09 +01:00
Juliusz Chroboczek
eb72069c9b
Add id to chat messages.
2024-08-17 16:56:06 +02:00
Juliusz Chroboczek
4fb0b3334a
Simplify peer-to-peer file transfer.
2024-08-17 16:56:06 +02:00
Juliusz Chroboczek
dd979652c2
Handle cancelled file transfer in initial callback.
...
If the client cancelled a file upload in the initial callback,
we would incorrectly proceed with the handshake.
2024-08-11 17:38:55 +02:00
Juliusz Chroboczek
242875e55c
Implement a client-side timeout.
...
We already had a server-side timeout, but it didn't prevent
a client from hanging when it lost connectivity with the server.
2024-06-10 21:33:31 +02:00
Juliusz Chroboczek
7151fad149
Simplify the initial connection protocol.
...
The ServerConnection.connect method is no longer async,
we rely on the onconnected callback only. The onconnected
callback is now only called after the initial handshake
completes. There is a new onerror callback.
2024-06-10 21:12:47 +02:00
Juliusz Chroboczek
0fc9136774
Allow HTML elements in addToChatbox.
2023-12-08 23:41:51 +01:00
Juliusz Chroboczek
cc2ed14484
Reset c.sc after calling onclose.
...
The onclose callback might want to access c.sc.
2023-08-29 01:42:48 +02:00
Juliusz Chroboczek
892a4b8401
Fix parsing of server version.
2023-08-28 23:07:01 +02:00
Jackson Vieira
1ad91adf89
Fix audio activity detection for downstreams
...
Replaced the non-existent `track` property in `RTCStatsType`
with the valid `inbound-rtp` property.
2023-08-28 22:47:46 +02:00
Juliusz Chroboczek
a701d8c6fa
Remove client-side support for protocol version 1.
2023-07-16 15:54:58 +02:00
Juliusz Chroboczek
e786e1bd11
Pass file transfer cancel message to callback.
2023-04-28 16:57:00 +02:00
Juliusz Chroboczek
ac1dc77b30
Reconnect when server complains about a username.
...
If a token does not specify a username, the server will request
one by failing the join message. Disconnect from the WebSocket
in that case, and display the login dialog with the password
field invisible.
2023-04-04 01:22:05 +02:00
Juliusz Chroboczek
8c1510023f
Implement user interface for token management.
2023-04-04 01:22:05 +02:00
Juliusz Chroboczek
59ff25310d
Don't set group if joining failed.
...
We used to set sc.group even if joining failed, which would cause
us to spuriously call the onJoined callback when we disconnected.
2023-04-03 22:57:36 +02:00
Juliusz Chroboczek
58ef60f974
Minor tweaks to file transfer.
...
Avoid copying data when sending, improve error handling.
2023-01-22 22:24:51 +01:00
Juliusz Chroboczek
fae045fb61
Client-side support for protocol version 2.
...
This does not yet support the new 'need-username' error.
2022-12-16 18:38:30 +01:00
Juliusz Chroboczek
397892d906
Add forgotten time field to message typedef.
2022-12-16 17:56:41 +01:00
Juliusz Chroboczek
56baddc948
Make groupAction take an arbitrary parameter.
2022-10-23 16:04:10 +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
Jeroen van Veen
a21134d310
Fix usage of serverConnection in protocol.js
...
serverConnection is the global value in galene.js.
2022-08-29 20:15:19 +02:00
Juliusz Chroboczek
c5e5455e47
Document file transfer javascript.
2022-08-04 19:14:35 +02:00
Juliusz Chroboczek
b821cd71a9
Check MIME type in auth server response.
2022-08-03 15:00:50 +02:00
Juliusz Chroboczek
d69c517137
Allow auth server to fallback to password auth.
...
The authorisation server can now reply with 204 (no content)
in order to request that the client should continue with password
authentication.
2022-08-02 18:12:17 +02:00
Juliusz Chroboczek
3bdd82f06d
Rework file transfer.
...
Split into the protocol (in protocol.js) and the user interface
(in galene.js). Make the state automaton explicit, and improve
error-handling. The new protocol is incompatible with the old one.
2022-07-25 18:54:52 +02:00
Juliusz Chroboczek
eb21c1ab20
Maintain stream information for oneself.
...
We used to maintain stream information for all users except oneself.
2022-03-25 18:21:03 +01:00
Juliusz Chroboczek
e303992e45
Call onuser when deleting stream.
2022-03-25 17:04:31 +01:00
Juliusz Chroboczek
55ae4a684b
Remove parameter from the onpeerconnection callback.
...
The distinction is not likely to be useful, and it doesn't make
sense in all cases.
2022-03-23 00:11:12 +01:00
Juliusz Chroboczek
8d4bafe05c
Tweak documentation of protocol.js.
2022-03-23 00:08:16 +01:00
Juliusz Chroboczek
34b21a2598
Add preference forceRelay.
...
This may be useful to get around network blocks in some cases.
2022-03-22 18:23:16 +01:00
Juliusz Chroboczek
d798cfec75
Fix simulcast statistics display for Firefox.
...
Firefox doesn't include the rid in the statistics result.
Use the SSID instead.
2022-03-20 22:34:39 +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
14ca47651b
Fix data parameter of ServerConnection.join.
...
This was broken when we renamed status to data. Thanks to
Sylvie Tissot.
2022-02-05 13:48:05 +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
29b4734bc4
Adapt typing to TypeScript 4.5.4.
2022-01-25 01:22:59 +01:00
Juliusz Chroboczek
f72061996c
Fix error handling in gotClose.
2021-11-27 21:30:07 +01:00
Juliusz Chroboczek
09c5ba0d06
Protect against tracks without a stream.
2021-09-16 17:19:19 +02:00
Juliusz Chroboczek
b527c8757a
Add chathistory message.
2021-07-31 14:42:26 +02:00
Juliusz Chroboczek
a25d46314a
Fix documentation of onerror callback.
2021-07-30 17:40:15 +02:00
Juliusz Chroboczek
b9c1968b48
Treat closing unknown streams as a warning.
2021-07-16 23:10:13 +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
Juliusz Chroboczek
2da8faa8cf
Implement per-stream requests.
2021-05-14 23:21:14 +02:00
Juliusz Chroboczek
c18ec32c85
Protect against closed streams in recomputeUserStreams.
2021-05-13 04:09:56 +02:00
Juliusz Chroboczek
795a40ceaf
Simulcast.
2021-05-08 21:12:29 +02:00
Juliusz Chroboczek
acca3f9bb3
Maintain kinds of tracks in user data structure.
...
Needed to show in the user list whether a user is publishing a stream.
2021-04-29 21:10:04 +02:00